antiright-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Antiright-devel] antiright/gtkshell Makefile ptk-app-menu.c


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright/gtkshell Makefile ptk-app-menu.c
Date: Mon, 16 Aug 2010 14:23:42 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 10/08/16 14:23:42

Modified files:
        gtkshell       : Makefile ptk-app-menu.c 

Log message:
        Remove unused ptk-app-menu code.  Further refactor.  Use "exec" for 
default
        icon, when icon file cannot be found for an entry.  

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/Makefile?cvsroot=antiright&r1=1.62&r2=1.63
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/ptk-app-menu.c?cvsroot=antiright&r1=1.7&r2=1.8

Patches:
Index: Makefile
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/Makefile,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- Makefile    16 Aug 2010 11:51:21 -0000      1.62
+++ Makefile    16 Aug 2010 14:23:42 -0000      1.63
@@ -79,5 +79,5 @@
 
 indent: 
        indent *.[ch]
-       #rm *~
+       rm *~
 

Index: ptk-app-menu.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/ptk-app-menu.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- ptk-app-menu.c      16 Aug 2010 11:51:22 -0000      1.7
+++ ptk-app-menu.c      16 Aug 2010 14:23:42 -0000      1.8
@@ -227,7 +227,7 @@
   {N_("Education"), "Education", "gnome-amusements", education_cats},
   {N_("Development"), "Development", "gnome-devel", development_cats},
   {N_("Audio & Video"), "Multimedia", "gnome-multimedia", audiovideo_cats},
-  {N_("Graphics"), "Graphics", "gtk-exec", graphics_cats},
+  {N_("Graphics"), "Graphics", "gnome-graphics", graphics_cats},
   {N_("Settings"), "Settings", "gnome-settings", settings_cats},
   {N_("System Tools"), "System-Tools", "gnome-system", system_cats},
   {N_("Network"), "Internet", "gnome-globe", network_cats},
@@ -288,29 +288,6 @@
 }
 
 static void
-unload_old_icons (GtkWidget * menu)
-{
-  GList *items = gtk_container_get_children (GTK_CONTAINER (menu));
-  GList *l;
-  for (l = items; l; l = l->next)
-    {
-      GtkWidget *sub_menu =
-       gtk_menu_item_get_submenu (GTK_MENU_ITEM (l->data));
-      GtkWidget *img;
-      if (!GTK_IS_IMAGE_MENU_ITEM (l->data))
-       continue;
-      img = gtk_image_menu_item_get_image ((GtkImageMenuItem *) l->data);
-      if (!g_object_get_qdata (G_OBJECT (l->data), PTK_APP_MENU_ITEM_ID))
-       continue;
-      if (img)
-       gtk_widget_destroy (img);
-      if (sub_menu)
-       unload_old_icons (sub_menu);
-    }
-  g_list_free (items);
-}
-
-static void
 on_menu_item_size_request (GtkWidget * item,
                           GtkRequisition * req, gpointer user_data)
 {
@@ -334,10 +311,8 @@
   PtkAppMenuItem *data = (PtkAppMenuItem *) user_data;
   if ((!data) || (!GTK_IS_IMAGE_MENU_ITEM (item)))
     return FALSE;
-  img =
-    GTK_WIDGET (gtk_image_menu_item_get_image ((GtkImageMenuItem *) item));
-  if (img || G_UNLIKELY (!data) || G_UNLIKELY (!data->icon))
-    return FALSE;
+  img = GTK_WIDGET (gtk_image_menu_item_get_image ((GtkImageMenuItem *) item));
+  if(img) return FALSE;
   pix = NULL;
   if (data->icon[0] == '/')
     {
@@ -349,6 +324,11 @@
       GtkIconInfo *inf;
       inf = gtk_icon_theme_lookup_icon (gtk_icon_theme_get_default (),
                                        data->icon, ICON_SIZE, 0);
+      if(!inf)
+        {
+          inf = gtk_icon_theme_lookup_icon (gtk_icon_theme_get_default (),
+                                       "exec", ICON_SIZE, 0);
+        }
       if (inf)
        {
          pix =
@@ -361,8 +341,7 @@
   if (G_LIKELY (pix))
     {
       img = gtk_image_new_from_pixbuf (pix);
-      if (G_LIKELY (pix))
-       g_object_unref (pix);
+      g_object_unref(pix);
     }
   else
     {
@@ -388,11 +367,10 @@
   g_slice_free (PtkAppMenuItem, data);
 }
 
-static void
-setup_menu_item_signals (GtkWidget * menu_item, gpointer data)
-{
-  GSHCONNECT (menu_item, "expose-event", on_menu_item_expose, data);
-  GSHCONNECT (menu_item, "size-request", on_menu_item_size_request, data);
+#define SETUP_MENU_ITEM_SIGNALS(menu_item, data)\
+{\
+  GSHCONNECT (menu_item, "expose-event", on_menu_item_expose, data);\
+  GSHCONNECT (menu_item, "size-request", on_menu_item_size_request, data);\
 }
 
 static char *
@@ -476,6 +454,8 @@
          if (icon[0] != '/' && dot)
            *dot = '\0';
        }
+      else
+        icon="exec";
 
       return icon;
 }
@@ -500,7 +480,7 @@
                                                 data->icon, title,
                                                 fpath) : NULL;
       g_free (title);
-      setup_menu_item_signals (menu_item, data);
+      SETUP_MENU_ITEM_SIGNALS (menu_item, data);
       data->icon = get_icon(file);
       if (!prev)
        {
@@ -608,10 +588,35 @@
   return (g_object_get_qdata (G_OBJECT (item), PTK_APP_MENU_ITEM_ID) != NULL);
 }
 
+static char *
+get_title(const unsigned int i)
+{
+  char * title;
+  GKeyFile * kf;
+
+  kf = g_key_file_new ();
+  title = load_cat_title (kf, (CatInfo *) & known_cats[i]);
+  g_key_file_free (kf);
+
+  return title;
+}
+
+static GtkWidget *
+new_menu_item_with_title(const unsigned int i)
+{
+  char * title = get_title(i);
+  GtkWidget * menu_item 
+    = gtk_image_menu_item_new_with_label (title ? title 
+                                          : _(known_cats[i].title));
+  g_free (title);
+
+  return menu_item;
+}
+
 /*
  * Insert application menus into specified menu
  * menu: The parent menu to which the items should be inserted
- * pisition: Position to insert items.
+ * position: Position to insert items.
              Passing -1 in this parameter means append all items
              at the end of menu.
  */
@@ -619,24 +624,19 @@
 ptk_app_menu_insert_items (GtkMenu * menu, int position)
 {
   GList *sub_menus[G_N_ELEMENTS (known_cats)] = { 0 };
-  int i;
+  unsigned int i=0;
   GList *sub_items, *l;
-  guint change_handler;
-  GKeyFile *kf;
 
   if (G_UNLIKELY (PTK_APP_MENU_ITEM_ID == 0))
     PTK_APP_MENU_ITEM_ID = g_quark_from_static_string ("PtkAppMenuItem");
 
   app_dirs_foreach ((GFunc) load_dir, sub_menus);
 
-  kf = g_key_file_new ();
-
-  for (i = 0; i < G_N_ELEMENTS (known_cats); ++i)
+  while(++i < G_N_ELEMENTS (known_cats))
     {
       GtkMenu *sub_menu;
       GtkWidget *menu_item;
       PtkAppMenuItem *data;
-      char *title;
 
       if (!(sub_items = sub_menus[i]))
        continue;
@@ -646,41 +646,23 @@
        gtk_menu_shell_append (GTK_MENU_SHELL (sub_menu),
                               GTK_WIDGET (l->data));
       g_list_free (sub_items);
-
-      title = load_cat_title (kf, (CatInfo *) & known_cats[i]);
-      menu_item = gtk_image_menu_item_new_with_label (title
-                                                     ? title :
-                                                     _(known_cats[i].title));
-      g_free (title);
+      menu_item=new_menu_item_with_title(i);
 
       data=alloca(sizeof(PtkAppMenuItem));
       data->icon = g_strdup (known_cats[i].icon);
       g_object_set_qdata_full (G_OBJECT (menu_item), PTK_APP_MENU_ITEM_ID,
                               data, (GDestroyNotify) ptk_app_menu_item_free);
 
-      setup_menu_item_signals (menu_item, data);
+      SETUP_MENU_ITEM_SIGNALS (menu_item, data);
       on_menu_item_expose (menu_item, NULL, data);
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item),
                                 GTK_WIDGET (sub_menu));
-
-      if (position == -1)
-       gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+      if(position>=0)
+        gtk_menu_shell_insert(GTK_MENU_SHELL(menu), menu_item, position);
       else
-       {
-         gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, position);
-         ++position;
-       }
+        GSHCA(menu, menu_item);
     }
-
-  g_key_file_free (kf);
-
   gtk_widget_show_all (GTK_WIDGET (menu));
-  change_handler = g_signal_connect_swapped (gtk_icon_theme_get_default (),
-                                            "changed",
-                                            G_CALLBACK (unload_old_icons),
-                                            menu);
-  g_object_weak_ref (G_OBJECT (menu), on_app_menu_destroy,
-                    GINT_TO_POINTER (change_handler));
 }
 
 GtkWidget *



reply via email to

[Prev in Thread] Current Thread [Next in Thread]