Mercurial > geeqie
diff src/bar_gps.c @ 1667:0806ccdfe06b
simplified menu_item_add_radio usage
author | nadvornik |
---|---|
date | Sat, 27 Jun 2009 20:12:56 +0000 |
parents | c6d522fe3e5e |
children | 1867687f2fcb |
line wrap: on
line diff
--- a/src/bar_gps.c Sat Jun 27 17:54:31 2009 +0000 +++ b/src/bar_gps.c Sat Jun 27 20:12:56 2009 +0000 @@ -384,17 +384,15 @@ static void bar_pane_gps_change_map_cb(GtkWidget *widget, gpointer data) { - PaneGPSData *pgd; + PaneGPSData *pgd = data; gchar *mapsource; if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return; - pgd = (PaneGPSData *) submenu_item_get_data(widget); - if (!pgd) return; - mapsource = data; + mapsource = g_object_get_data(G_OBJECT(widget), "menu_item_radio_data"); bar_pane_gps_set_map_source(pgd, mapsource); } @@ -554,51 +552,28 @@ return map_id; } -static GtkWidget *bar_pane_gps_add_radio(GtkWidget *menu, GtkWidget *parent, - const gchar *label, GCallback func, gchar *value, - gboolean show_current, const gchar *current_value) -{ - GtkWidget *item; - - if (show_current) - { - item = menu_item_add_radio(menu, parent, - label, (g_strcmp0(value, current_value) == 0), func, value); - } - else - { - item = menu_item_add(menu, label, func, value); - } - - return item; -} - static GtkWidget *bar_pane_gps_menu(PaneGPSData *pgd) { GtkWidget *menu; GtkWidget *map_centre; - static gboolean show_current = TRUE; GtkWidget *parent; ChamplainMapSourceFactory *map_factory; GSList *map_list; ChamplainMapSourceDesc *map_desc; + const gchar *current; menu = popup_menu_short_lived(); map_factory = champlain_map_source_factory_get_default(); map_list = champlain_map_source_factory_get_list(map_factory); - map_desc = (ChamplainMapSourceDesc *)(map_list->data); - map_list = g_slist_next(map_list); - - g_object_set_data(G_OBJECT(menu), "submenu_data", pgd); - - parent = bar_pane_gps_add_radio(menu, NULL, (map_desc->name), G_CALLBACK(bar_pane_gps_change_map_cb), map_desc->id, show_current, bar_pane_gps_get_map_id(pgd)); + current = bar_pane_gps_get_map_id(pgd); while (map_list) { - map_desc = (ChamplainMapSourceDesc *)(map_list->data); - bar_pane_gps_add_radio(menu, parent, (map_desc->name), G_CALLBACK(bar_pane_gps_change_map_cb), map_desc->id, - show_current, bar_pane_gps_get_map_id(pgd)); + map_desc = (ChamplainMapSourceDesc *)(map_list->data); + + menu_item_add_radio(menu, map_desc->name, map_desc->id, strcmp(map_desc->id, current) == 0, G_CALLBACK(bar_pane_gps_change_map_cb), pgd); + map_list = g_slist_next(map_list); } @@ -717,8 +692,10 @@ scrolled = gtk_scrolled_window_new(NULL, NULL); vbox = gtk_vbox_new(FALSE, 0); - view = champlain_view_new(); - gpswidget = champlain_view_embed_new(CHAMPLAIN_VIEW(view)); + + gpswidget = gtk_champlain_embed_new (); + view = gtk_champlain_embed_get_view (GTK_CHAMPLAIN_EMBED (gpswidget)); + viewport = gtk_viewport_new(NULL, NULL); gtk_container_add(GTK_CONTAINER(viewport), gpswidget);