--- trunk/src/map-tool.c 2009/07/29 19:24:15 34 +++ trunk/src/map-tool.c 2009/07/30 08:29:52 35 @@ -63,9 +63,10 @@ g_free(host); } + return proxy_buffer; } - return proxy_buffer; + return NULL; } static void map_zoom(map_context_t *context, int step) { @@ -91,16 +92,16 @@ return FALSE; } -#define DEG2RAD(a) ((a) * M_PI / 180.0) - static gboolean cb_map_gps(GtkButton *button, map_context_t *context) { pos_t *refpos = get_pos(context->appdata); if(refpos && !isnan(refpos->lat) && !isnan(refpos->lon)) { - printf("pos is %f %f\n", refpos->lat, refpos->lon); - - osm_gps_map_set_center(OSM_GPS_MAP(context->widget), - DEG2RAD(refpos->lat), DEG2RAD(refpos->lon)); + osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget), + refpos->lat, refpos->lon, 14); + } else { + /* no coordinates given: display the entire world */ + osm_gps_map_set_mapcenter(OSM_GPS_MAP(context->widget), + 0.0, 0.0, 1); } return FALSE; @@ -131,6 +132,14 @@ return TRUE; } +static gboolean on_map_configure(GtkWidget *widget, + GdkEventConfigure *event, + map_context_t *context) { + + cb_map_gps(NULL, context); + + return FALSE; +} void map(appdata_t *appdata) { map_context_t context; @@ -151,15 +160,18 @@ GtkWidget *hbox = gtk_hbox_new(FALSE, 0); char *path = g_strdup_printf("%s/map/", appdata->image_path); + const char *proxy = get_proxy_uri(appdata); context.widget = g_object_new(OSM_TYPE_GPS_MAP, "repo-uri", MAP_SOURCE_OPENSTREETMAP, - "proxy-uri", get_proxy_uri(appdata), "tile-cache", path, + proxy?"proxy-uri":NULL, proxy, NULL); g_free(path); + g_signal_connect(G_OBJECT(context.widget), "configure-event", + G_CALLBACK(on_map_configure), &context); #if 0 g_signal_connect(G_OBJECT(context.widget), "button-release-event", G_CALLBACK(on_map_button_release_event), &context); @@ -197,6 +209,7 @@ gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_timeout_remove(context.handler_id); + gtk_widget_destroy(dialog); - }