Revision: 1766
          http://geeqie.svn.sourceforge.net/geeqie/?rev=1766&view=rev
Author:   nadvornik
Date:     2009-06-27 20:12:56 +0000 (Sat, 27 Jun 2009)

Log Message:
-----------
simplified menu_item_add_radio usage

Modified Paths:
--------------
    trunk/src/bar_gps.c
    trunk/src/bar_histogram.c
    trunk/src/layout_util.c
    trunk/src/menu.c
    trunk/src/ui_menu.c
    trunk/src/ui_menu.h

Modified: trunk/src/bar_gps.c
===================================================================
--- trunk/src/bar_gps.c 2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/bar_gps.c 2009-06-27 20:12:56 UTC (rev 1766)
@@ -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);
+       current = bar_pane_gps_get_map_id(pgd);
 
-       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));
-
        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);

Modified: trunk/src/bar_histogram.c
===================================================================
--- trunk/src/bar_histogram.c   2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/bar_histogram.c   2009-06-27 20:12:56 UTC (rev 1766)
@@ -198,124 +198,56 @@
 
 static void bar_pane_histogram_popup_channels_cb(GtkWidget *widget, gpointer 
data)
 {
-       PaneHistogramData *phd;
+       PaneHistogramData *phd = data;
        gint channel;
 
        if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) 
return;
 
-       phd = submenu_item_get_data(widget);
-
        if (!phd) return;
 
-       channel = GPOINTER_TO_INT(data);
+       channel = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), 
"menu_item_radio_data"));
        if (channel == histogram_get_channel(phd->histogram)) return;
 
        histogram_set_channel(phd->histogram, channel);
        bar_pane_histogram_update(phd);
 }
 
-static void bar_pane_histogram_popup_logmode_cb(GtkWidget *widget, gpointer 
data)
+static void bar_pane_histogram_popup_mode_cb(GtkWidget *widget, gpointer data)
 {
-       PaneHistogramData *phd;
+       PaneHistogramData *phd = data;
        gint logmode;
        
        if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) 
return;
 
-       phd = submenu_item_get_data(widget);
-
        if (!phd) return;
 
-       logmode = GPOINTER_TO_INT(data);
+       logmode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), 
"menu_item_radio_data"));
        if (logmode == histogram_get_mode(phd->histogram)) return;
 
        histogram_set_mode(phd->histogram, logmode);
        bar_pane_histogram_update(phd);
 }
 
-static GtkWidget *bar_pane_histogram_add_radio(GtkWidget *menu, GtkWidget 
*parent,
-                                       const gchar *label,
-                                       GCallback func, gint value,
-                                       gboolean show_current, gint 
current_value)
-{
-       GtkWidget *item;
-
-       if (show_current)
-               {
-               item = menu_item_add_radio(menu, parent,
-                                          label, (value == current_value),
-                                          func, GINT_TO_POINTER((gint)value));
-               }
-       else
-               {
-               item = menu_item_add(menu, label,
-                                    func, GINT_TO_POINTER((gint)value));
-               }
-
-       return item;
-}
-
-GtkWidget *bar_pane_histogram_add_channels(GtkWidget *menu, GCallback func, 
gpointer data,
-                                          gboolean show_current, gint 
current_value)
-{
-       GtkWidget *submenu;
-       GtkWidget *parent;
-
-       submenu = gtk_menu_new();
-       g_object_set_data(G_OBJECT(submenu), "submenu_data", data);
-
-       parent = bar_pane_histogram_add_radio(submenu, NULL, _("_Red"), func, 
HCHAN_R, show_current, current_value);
-       bar_pane_histogram_add_radio(submenu, parent, _("_Green"), func, 
HCHAN_G, show_current, current_value);
-       bar_pane_histogram_add_radio(submenu, parent, _("_Blue"),func, HCHAN_B, 
show_current, current_value);
-       bar_pane_histogram_add_radio(submenu, parent, _("_RGB"),func, 
HCHAN_RGB, show_current, current_value);
-       bar_pane_histogram_add_radio(submenu, parent, _("_Value"),func, 
HCHAN_MAX, show_current, current_value);
-
-       if (menu)
-               {
-               GtkWidget *item;
-
-               item = menu_item_add(menu, _("Channels"), NULL, NULL);
-               gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
-               return item;
-               }
-
-       return submenu;
-}
-GtkWidget *bar_pane_histogram_add_logmode(GtkWidget *menu, GCallback func, 
gpointer data,
-                                          gboolean show_current, gint 
current_value)
-{
-       GtkWidget *submenu;
-       GtkWidget *parent;
-
-       submenu = gtk_menu_new();
-       g_object_set_data(G_OBJECT(submenu), "submenu_data", data);
-
-       parent = bar_pane_histogram_add_radio(submenu, NULL, _("_Linear"), 
func, 0, show_current, current_value);
-       bar_pane_histogram_add_radio(submenu, parent, _("Lo_garithmical"), 
func, 1, show_current, current_value);
-
-       if (menu)
-               {
-               GtkWidget *item;
-
-               item = menu_item_add(menu, _("Mode"), NULL, NULL);
-               gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
-               return item;
-               }
-
-       return submenu;
-}
-
-
 static GtkWidget *bar_pane_histogram_menu(PaneHistogramData *phd)
 {
        GtkWidget *menu;
-       static gboolean show_current = TRUE;
+       gint channel = histogram_get_channel(phd->histogram);
+       gint mode = histogram_get_mode(phd->histogram);
 
        menu = popup_menu_short_lived();
-       bar_pane_histogram_add_channels(menu, 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd,
-                                       show_current, 
histogram_get_channel(phd->histogram));
-       bar_pane_histogram_add_logmode(menu, 
G_CALLBACK(bar_pane_histogram_popup_logmode_cb), phd,
-                                      show_current, 
histogram_get_mode(phd->histogram));
 
+       /* use the same strings as in layout_util.c */
+       menu_item_add_radio(menu, _("Histogram on _Red"),   
GINT_TO_POINTER(HCHAN_R), (channel == HCHAN_R), 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd);
+       menu_item_add_radio(menu, _("Histogram on _Green"), 
GINT_TO_POINTER(HCHAN_G), (channel == HCHAN_G), 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd);
+       menu_item_add_radio(menu, _("Histogram on _Blue"),  
GINT_TO_POINTER(HCHAN_B), (channel == HCHAN_B), 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd);
+       menu_item_add_radio(menu, _("_Histogram on RGB"),   
GINT_TO_POINTER(HCHAN_RGB), (channel == HCHAN_RGB), 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd);
+       menu_item_add_radio(menu, _("Histogram on _Value"), 
GINT_TO_POINTER(HCHAN_MAX), (channel == HCHAN_MAX), 
G_CALLBACK(bar_pane_histogram_popup_channels_cb), phd);
+       
+       menu_item_add_divider(menu);
+       
+       menu_item_add_radio(menu, _("Li_near Histogram"), GINT_TO_POINTER(0), 
(mode == 0), G_CALLBACK(bar_pane_histogram_popup_mode_cb), phd);
+       menu_item_add_radio(menu, _("L_og Histogram"),    GINT_TO_POINTER(1), 
(mode == 1), G_CALLBACK(bar_pane_histogram_popup_mode_cb), phd);
+
        return menu;
 }
 

Modified: trunk/src/layout_util.c
===================================================================
--- trunk/src/layout_util.c     2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/layout_util.c     2009-06-27 20:12:56 UTC (rev 1766)
@@ -1384,8 +1384,8 @@
   { "Escape",          GTK_STOCK_LEAVE_FULLSCREEN,N_("_Leave full screen"),    
        "Escape",               N_("Leave full screen"),                
CB(layout_menu_escape_cb) },
   { "EscapeAlt1",      GTK_STOCK_LEAVE_FULLSCREEN,N_("_Leave full screen"),    
        "Q",                    N_("Leave full screen"),                
CB(layout_menu_escape_cb) },
   { "ImageOverlayCycle",NULL,                  N_("_Cycle through overlay 
modes"),     "I",                    N_("Cycle through Overlay modes"),      
CB(layout_menu_overlay_toggle_cb) },
-  { "HistogramChanCycle",NULL,                 N_("Cycle through histogram 
_channels"),"K",                    N_("Cycle through histogram channels"), 
CB(layout_menu_histogram_toggle_channel_cb) },
-  { "HistogramModeCycle",NULL,                 N_("Cycle through histogram 
_modes"),   "J",                    N_("Cycle through histogram modes"),    
CB(layout_menu_histogram_toggle_mode_cb) },
+  { "HistogramChanCycle",NULL,                 N_("Cycle through histogram 
ch_annels"),"K",                    N_("Cycle through histogram channels"), 
CB(layout_menu_histogram_toggle_channel_cb) },
+  { "HistogramModeCycle",NULL,                 N_("Cycle through histogram 
mo_des"),   "J",                    N_("Cycle through histogram modes"),    
CB(layout_menu_histogram_toggle_mode_cb) },
   { "HideTools",       NULL,                   N_("_Hide file list"),          
        "<control>H",           N_("Hide file list"),                   
CB(layout_menu_hide_cb) },
   { "SlideShowPause",  GTK_STOCK_MEDIA_PAUSE,  N_("_Pause slideshow"),         
        "P",                    N_("Pause slideshow"),                  
CB(layout_menu_slideshow_pause_cb) },
   { "Refresh",         GTK_STOCK_REFRESH,      N_("_Refresh"),                 
        "R",                    N_("Refresh"),                          
CB(layout_menu_refresh_cb) },
@@ -1444,13 +1444,13 @@
   { "HistogramChanR",  NULL,                   N_("Histogram on _Red"),        
        NULL,                   N_("Histogram on Red"),         HCHAN_R },
   { "HistogramChanG",  NULL,                   N_("Histogram on _Green"),      
        NULL,                   N_("Histogram on Green"),       HCHAN_G },
   { "HistogramChanB",  NULL,                   N_("Histogram on _Blue"),       
        NULL,                   N_("Histogram on Blue"),        HCHAN_B },
-  { "HistogramChanRGB",        NULL,                   N_("Histogram on RGB"), 
                NULL,                   N_("Histogram on RGB"),         
HCHAN_RGB },
-  { "HistogramChanV",  NULL,                   N_("Histogram on Value"),       
        NULL,                   N_("Histogram on Value"),       HCHAN_MAX }
+  { "HistogramChanRGB",        NULL,                   N_("_Histogram on 
RGB"),                        NULL,                   N_("Histogram on RGB"),   
      HCHAN_RGB },
+  { "HistogramChanV",  NULL,                   N_("Histogram on _Value"),      
        NULL,                   N_("Histogram on Value"),       HCHAN_MAX }
 };
 
 static GtkRadioActionEntry menu_histogram_mode[] = {
   { "HistogramModeLin",        NULL,                   N_("Li_near 
Histogram"),                NULL,                   N_("Linear Histogram"),     
    0 },
-  { "HistogramModeLog",        NULL,                   N_("Lo_g Histogram"),   
                NULL,                   N_("Log Histogram"),            1 },
+  { "HistogramModeLog",        NULL,                   N_("L_og Histogram"),   
                NULL,                   N_("Log Histogram"),            1 },
 };
 
 

Modified: trunk/src/menu.c
===================================================================
--- trunk/src/menu.c    2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/menu.c    2009-06-27 20:12:56 UTC (rev 1766)
@@ -153,7 +153,7 @@
        return "";
 }
 
-static GtkWidget *submenu_add_sort_item(GtkWidget *menu, GtkWidget *parent,
+static GtkWidget *submenu_add_sort_item(GtkWidget *menu,
                                        GCallback func, SortType type,
                                        gboolean show_current, SortType 
show_type)
 {
@@ -161,8 +161,8 @@
 
        if (show_current)
                {
-               item = menu_item_add_radio(menu, parent,
-                                          sort_type_get_text(type), (type == 
show_type),
+               item = menu_item_add_radio(menu,
+                                          sort_type_get_text(type), 
GINT_TO_POINTER((gint)type), (type == show_type),
                                           func, GINT_TO_POINTER((gint)type));
                }
        else
@@ -179,19 +179,18 @@
                            gboolean show_current, SortType type)
 {
        GtkWidget *submenu;
-       GtkWidget *parent;
 
        submenu = gtk_menu_new();
        g_object_set_data(G_OBJECT(submenu), "submenu_data", data);
 
-       parent = submenu_add_sort_item(submenu, NULL, func, SORT_NAME, 
show_current, type);
+       submenu_add_sort_item(submenu, func, SORT_NAME, show_current, type);
 #ifdef HAVE_STRVERSCMP
-       submenu_add_sort_item(submenu, parent, func, SORT_NUMBER, show_current, 
type);
+       submenu_add_sort_item(submenu, func, SORT_NUMBER, show_current, type);
 #endif
-       submenu_add_sort_item(submenu, parent, func, SORT_TIME, show_current, 
type);
-       submenu_add_sort_item(submenu, parent, func, SORT_SIZE, show_current, 
type);
-       if (include_path) submenu_add_sort_item(submenu, parent, func, 
SORT_PATH, show_current, type);
-       if (include_none) submenu_add_sort_item(submenu, parent, func, 
SORT_NONE, show_current, type);
+       submenu_add_sort_item(submenu, func, SORT_TIME, show_current, type);
+       submenu_add_sort_item(submenu, func, SORT_SIZE, show_current, type);
+       if (include_path) submenu_add_sort_item(submenu, func, SORT_PATH, 
show_current, type);
+       if (include_none) submenu_add_sort_item(submenu, func, SORT_NONE, 
show_current, type);
 
        if (menu)
                {

Modified: trunk/src/ui_menu.c
===================================================================
--- trunk/src/ui_menu.c 2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/ui_menu.c 2009-06-27 20:12:56 UTC (rev 1766)
@@ -97,19 +97,13 @@
        return item;
 }
 
-GtkWidget *menu_item_add_radio(GtkWidget *menu, GtkWidget *parent,
-                              const gchar *label, gboolean active,
+GtkWidget *menu_item_add_radio(GtkWidget *menu, const gchar *label, gpointer 
item_data, gboolean active,
                               GCallback func, gpointer data)
 {
-       GtkWidget *item;
-       GSList *group = NULL;
+       GtkWidget *item = menu_item_add_check(menu, label, active, func, data);
+       g_object_set_data(G_OBJECT(item), "menu_item_radio_data", item_data);
+       g_object_set(G_OBJECT(item), "draw-as-radio", TRUE, NULL);
 
-       if (parent) group = 
gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(parent));
-
-       item = gtk_radio_menu_item_new_with_mnemonic(group, label);
-       if (active) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), 
active);
-       menu_item_finish(menu, item, func, data);
-
        return item;
 }
 

Modified: trunk/src/ui_menu.h
===================================================================
--- trunk/src/ui_menu.h 2009-06-27 17:54:31 UTC (rev 1765)
+++ trunk/src/ui_menu.h 2009-06-27 20:12:56 UTC (rev 1766)
@@ -25,8 +25,7 @@
                                         GCallback func, gpointer data);
 GtkWidget *menu_item_add_check(GtkWidget *menu, const gchar *label, gboolean 
active,
                               GCallback func, gpointer data);
-GtkWidget *menu_item_add_radio(GtkWidget *menu, GtkWidget *parent,
-                              const gchar *label, gboolean active,
+GtkWidget *menu_item_add_radio(GtkWidget *menu, const gchar *label, gpointer 
item_data, gboolean active,
                               GCallback func, gpointer data);
 void menu_item_add_divider(GtkWidget *menu);
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
_______________________________________________
Geeqie-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geeqie-svn

Reply via email to