antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright/gtkshell callbacks.c callbacks.h comm...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright/gtkshell callbacks.c callbacks.h comm...
Date: Sun, 15 Aug 2010 18:44:18 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 10/08/15 18:44:18

Modified files:
        gtkshell       : callbacks.c callbacks.h command_shell.c 
                         gtkshell.c guidl_util.c macros.h ptk-app-menu.c 
                         row.c terminal.c text.c update_manager.c 
                         updated.c 

Log message:
        Change names of xmalloc and xfree to armalloc and arfree, respectively.
        Begin to refactor ptk-app-menu code further.  Update implemented
        sub-categories in order to conform with the current freedesktop.org
        specifications.  

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.c?cvsroot=antiright&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.h?cvsroot=antiright&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/command_shell.c?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_util.c?cvsroot=antiright&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/macros.h?cvsroot=antiright&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/ptk-app-menu.c?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/row.c?cvsroot=antiright&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.c?cvsroot=antiright&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/update_manager.c?cvsroot=antiright&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.c?cvsroot=antiright&r1=1.21&r2=1.22

Patches:
Index: callbacks.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/callbacks.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- callbacks.c 13 Aug 2010 20:22:21 -0000      1.36
+++ callbacks.c 15 Aug 2010 18:44:18 -0000      1.37
@@ -120,14 +120,22 @@
 }
 
 static void
+test_exit(struct GSH * gsh)
+{
+       if(GSH_FLAG(GSH_CBEXIT))
+               gtk_main_quit();
+}
+
+static void
 gsh_system_cb(GtkWidget *widget __attribute__((unused)), gpointer data)
 {
        if(data)
        {
                struct GSHCBData *cb = data;
+
                if(!test_special_command(cb))
                        (void) antiright_system(cb->data);
-               GSH_TEST_EXIT(cb->gsh);
+               test_exit(cb->gsh);
        }
 #ifdef LIBGC
        GC_gcollect();
@@ -168,8 +176,8 @@
                                GTK_COMBO_BOX(combo_box));
                exec_and_test_print(cb, input);
                /* Determine whether or not to exit 
-                  because of this callback.  */
-               GSH_TEST_EXIT(cb->gsh);
+                * because of this callback.  */
+               test_exit(cb->gsh);
                /* Add retrieved text to combo box popup list.  */
                gtk_combo_box_prepend_text(GTK_COMBO_BOX(combo_box),
                        (gchar *)input);
@@ -183,7 +191,7 @@
        struct GSHCBData * cb;
 
        /* Allocate.  */
-       cb = xmalloc(sizeof(struct GSHCBData));
+       cb = armalloc(sizeof(struct GSHCBData));
        /* Store constructor arguments.  */
        cb->gsh=gsh;
        cb->data=data;

Index: callbacks.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/callbacks.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- callbacks.h 11 Jun 2007 21:32:38 -0000      1.13
+++ callbacks.h 15 Aug 2010 18:44:18 -0000      1.14
@@ -35,13 +35,6 @@
 struct GSHCBData *
 gsh_new_GSHCBData(struct GSH * gsh, gpointer data);
 
-#define GSH_TEST_EXIT(gsh_arg)\
-{\
-       struct GSH * gsh = gsh_arg;\
-       if (GSH_FLAG(GSH_CBEXIT))\
-               gtk_main_quit();\
-}
-
 void
 gsh_send_signal(GtkWidget * widget, const gchar * signal_name);
 

Index: command_shell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/command_shell.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- command_shell.c     13 Aug 2010 20:22:21 -0000      1.5
+++ command_shell.c     15 Aug 2010 18:44:18 -0000      1.6
@@ -118,7 +118,7 @@
 {
        GSHCommandShell * shell;
 
-       shell=xmalloc(sizeof(GSHCommandShell));
+       shell=armalloc(sizeof(GSHCommandShell));
        setup_command_shell(shell);
 
        return shell;

Index: gtkshell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- gtkshell.c  20 Dec 2007 00:21:11 -0000      1.50
+++ gtkshell.c  15 Aug 2010 18:44:18 -0000      1.51
@@ -134,7 +134,7 @@
 {
        struct GSH *gsh;
 
-       gsh = (struct GSH *) xmalloc(sizeof(struct GSH));
+       gsh = (struct GSH *) armalloc(sizeof(struct GSH));
        setup_gsh(gsh);
        
        return gsh;

Index: guidl_util.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_util.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- guidl_util.c        13 Aug 2010 20:22:21 -0000      1.24
+++ guidl_util.c        15 Aug 2010 18:44:18 -0000      1.25
@@ -47,6 +47,7 @@
        /* Command line arguments (env->args) should remain 
         * intact for updater widgets.  */
        free_option_args(env->args);
+       arfree(env);
 }
 
 static void
@@ -80,7 +81,7 @@
 {
        struct GDLEnvironment * env;
 
-       env = xmalloc(sizeof(struct GDLEnvironment));
+       env = armalloc(sizeof(struct GDLEnvironment));
        setup_GDLEnvironment(env);
 
        return env;

Index: macros.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/macros.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- macros.h    13 Aug 2010 20:22:22 -0000      1.20
+++ macros.h    15 Aug 2010 18:44:18 -0000      1.21
@@ -70,6 +70,18 @@
 #define GSH_SHOW_CREATE(var, type, ...)\
        gtk_widget_show(var=GTK_WIDGET(gtk_##type##_new(__VA_ARGS__)))
 
+#define GSH_ADD_WIDGET(cont, var, type, ...)\
+{\
+       GSH_SHOW_CREATE(var, type, __VA_ARGS__);\
+       GSHCA(cont, var);\
+}
+
+#define GSH_ADD_MANAGED(gsh, var, type, ...)\
+{\
+       GSH_SHOW_CREATE(var, type, __VA_ARGS__);\
+       $(gsh, manage, var);\
+}
+
 #define GSHCONNECT(widget, signal, cb, cbdata)\
        g_signal_connect(G_OBJECT(widget), signal, G_CALLBACK(cb), cbdata);
 

Index: ptk-app-menu.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/ptk-app-menu.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- ptk-app-menu.c      11 Aug 2010 12:03:23 -0000      1.3
+++ ptk-app-menu.c      15 Aug 2010 18:44:18 -0000      1.4
@@ -61,12 +61,14 @@
 static const char* development_cats[]={
    "Development",
    "Translation",
-   "Building","Debugger",
+   "Building",
+   "Debugger",
    "IDE",
    "GUIDesigner",
    "Profiling",
    "RevisionControl",
    "WebDevelopment",
+   "ProjectManagement",
    NULL
 };
 
@@ -77,6 +79,12 @@
    "Calendar",
    "ContactManagement",
    "Database",
+   "Finance",
+   "PDA",
+   "Presentation",
+   "Spreadsheet",
+   "WordProcessor",
+   "Publishing",
    NULL
 };
 
@@ -87,6 +95,9 @@
    "VectorGraphics",
    "RasterGraphics",
    "Viewer",
+   "Scanning",
+   "OCR",
+   "Photography",
    NULL
 };
 
@@ -102,6 +113,10 @@
    "P2P",
    "RemoteAccess",
    "Telephony",
+   "TelephonyTools",
+   "VideoConference",
+   "HamRadio",
+   "Chat",
    NULL
 };
 
@@ -110,6 +125,7 @@
    "DesktopSettings",
    "HardwareSettings",
    "Accessibility",
+   "Printing",
    NULL
 };
 
@@ -118,6 +134,12 @@
    "Core",
    "Security",
    "PackageManager",
+   "Emulator",
+   "FileManager",
+   "TerminalEmulator",
+   "Filesystem",
+   "Monitor",
+   "Security",
    NULL
 };
 
@@ -140,16 +162,61 @@
 static const char* game_cats[] = {
    "Game",
    "Amusement",
+   "ActionGame",
+   "AdventureGame",
+   "ArcadeGame",
+   "BoardGame",
+   "BlocksGame",
+   "CardGame",
+   "KidsGame",
+   "LogicGame",
+   "RolePlaying",
+   "Simulation",
+   "SportsGame",
+   "StrategyGame",
    NULL
 };
 
 static const char* education_cats[] = {
    "Education",
+   "Art",
+   "Construction",
+   "Music",
+   "Languages",
+   "Science",
+   "ArtificialIntelligence",
+   "Astronomy",
+   "Biology",
+   "Chemestry",
+   "ComputerScience",
+   "DataVisualization",
+   "Economy",
+   "Electricity",
+   "Electronics",
+   "Geography",
+   "Geology",
+   "Geoscience",
+   "History",
+   "ImageProcessing",
+   "Literature",
+   "Math",
+   "NumericalAnalysis",
+   "MedicalSoftware",
+   "Physics",
+   "Robotics",
+   "Sports",
+   "ParallelComputing",
    NULL
 };
 
 static const char* utility_cats[] = {
    "Utility",
+   "TextTools",
+   "Archiving",
+   "Compression",
+   "Calculator",
+   "Clock",
+   "TextEditor",
    NULL
 };
 
@@ -160,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", "gnome-graphics", graphics_cats},
+    {N_("Graphics"), "Graphics", "gtk-exec", 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},
@@ -173,9 +240,9 @@
     char** cat;
     for( cat = cats; *cat; ++cat )
     {
-        int i;
+        register int i=1;
         /* Skip other */
-        for( i = 1; i < G_N_ELEMENTS(known_cats); ++i )
+       while(++i<G_N_ELEMENTS(known_cats))
         {
             const char** sub_cats = known_cats[i].sub_cats;
             while( *sub_cats )
@@ -193,27 +260,28 @@
 
 static void app_dirs_foreach( GFunc func, gpointer user_data );
 
-static int compare_menu_item_titles( gpointer a, gpointer b )
+static inline int
+compare_menu_item_titles( gpointer a, gpointer b )
 {
-    const gchar *title_a, *title_b;
-    title_a = gtk_label_get_text( GTK_LABEL(gtk_bin_get_child(GTK_BIN(a))) );
-    title_b = gtk_label_get_text( GTK_LABEL(gtk_bin_get_child(GTK_BIN(b))) );
-    return g_ascii_strcasecmp(title_a, title_b);
+#define TITLE(x) gtk_label_get_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(x))))
+    return g_ascii_strcasecmp(TITLE(a), TITLE(b));
 }
 
-static int find_menu_item_by_name( gpointer a, gpointer b )
+static inline int
+find_menu_item_by_name( gpointer a, gpointer name)
 {
-    PtkAppMenuItem* data = g_object_get_qdata( G_OBJECT(a), 
PTK_APP_MENU_ITEM_ID );
-    const char* name = (char*)b;
-    return strcmp(data->name, name);
+       return strcmp(((PtkAppMenuItem*)g_object_get_qdata(G_OBJECT(a),
+               PTK_APP_MENU_ITEM_ID))->name, (char *)name);
 }
 
 static char* load_cat_title( GKeyFile* kf, CatInfo* inf )
 {
     char* ret = NULL;
-    char* fn = g_strconcat( "desktop-directories/", inf->directory_file, 
".directory", NULL );
+    char* fn = g_strconcat( "desktop-directories/", inf->directory_file, 
+                  ".directory", NULL );
     if( g_key_file_load_from_data_dirs( kf, fn, NULL, 0, NULL ) )
-        ret = g_key_file_get_locale_string( kf, desktop_ent, "Name", NULL, 
NULL );
+        ret = g_key_file_get_locale_string( kf, desktop_ent, "Name", 
+               NULL, NULL );
     g_free( fn );
     return ret;
 }
@@ -224,7 +292,8 @@
     GList* l;
     for( l = items; l; l = l->next )
     {
-        GtkWidget* sub_menu = gtk_menu_item_get_submenu( 
GTK_MENU_ITEM(l->data) );
+        GtkWidget* sub_menu = gtk_menu_item_get_submenu( 
+               GTK_MENU_ITEM(l->data) );
         GtkWidget* img;
         if( ! GTK_IS_IMAGE_MENU_ITEM(l->data) )
             continue;
@@ -234,7 +303,7 @@
         if( img )
             gtk_widget_destroy( img );
         if( sub_menu )
-            unload_old_icons( sub_menu );
+               unload_old_icons(sub_menu);
     }
     g_list_free( items );
 }
@@ -243,7 +312,7 @@
                                        GtkRequisition* req,
                                        gpointer user_data )
 {
-    int min_height = ICON_SIZE + (GTK_CONTAINER(item)->border_width +
+    const int min_height = ICON_SIZE + (GTK_CONTAINER(item)->border_width +
              item->style->ythickness) * 2;
     if( req->height < min_height ) {
         req->height = min_height;
@@ -258,28 +327,28 @@
 {
     GtkWidget* img;
     GdkPixbuf* pix;
+
     PtkAppMenuItem* data = (PtkAppMenuItem*)user_data;
-    if( !data )
-        return FALSE;
-    if( !GTK_IS_IMAGE_MENU_ITEM(item) )
+    if((!data) || (!GTK_IS_IMAGE_MENU_ITEM(item)))
     return FALSE;
     img = GTK_WIDGET(gtk_image_menu_item_get_image((GtkImageMenuItem *) item));
-    if( img )
-        return FALSE;
-    if( G_UNLIKELY(!data) || G_UNLIKELY(!data->icon) )
+    if( img || G_UNLIKELY(!data) || G_UNLIKELY(!data->icon) )
         return FALSE;
     pix = NULL;
     if( data->icon[0] == '/' )
     {
-        pix = gdk_pixbuf_new_from_file_at_size(data->icon, ICON_SIZE, 
ICON_SIZE, NULL);
+        pix = gdk_pixbuf_new_from_file_at_size(data->icon, 
+               ICON_SIZE, ICON_SIZE, NULL);
     }
     else
     {
         GtkIconInfo* inf;
-        inf = gtk_icon_theme_lookup_icon(gtk_icon_theme_get_default(), 
data->icon, ICON_SIZE, 0);
+        inf = gtk_icon_theme_lookup_icon(gtk_icon_theme_get_default(), 
+               data->icon, ICON_SIZE, 0);
         if( inf )
         {
-            pix = gdk_pixbuf_new_from_file_at_size( 
gtk_icon_info_get_filename(inf), ICON_SIZE, ICON_SIZE, NULL);
+            pix = gdk_pixbuf_new_from_file_at_size( 
+               gtk_icon_info_get_filename(inf), ICON_SIZE, ICON_SIZE, NULL);
             gtk_icon_info_free ( inf );
         }
     }
@@ -298,24 +367,11 @@
     return FALSE;
 }
 
-static void on_app_menu_item_activate( GtkMenuItem* item, PtkAppMenuItem* data 
)
+static void on_app_menu_item_activate( GtkMenuItem* item, 
+       PtkAppMenuItem* data )
 {
-    GError* err = NULL;
-    /* FIXME: support startup notification */
-#ifdef DEBUG
-    g_debug("run command: %s", data->exec);
-#endif
-    if( !g_spawn_command_line_async( data->exec, &err ) )
-    {
-       GtkWidget * dialog;
-       dialog=gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, 
-               GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, err->message);
-       gtk_dialog_run(GTK_DIALOG(dialog));
-       gtk_widget_destroy(dialog);
-       g_clear_error(&err);
-    }
+       antiright_system(data->exec);
 }
-
 static void ptk_app_menu_item_free( PtkAppMenuItem* data )
 {
     g_free( data->name );
@@ -324,6 +380,15 @@
     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);
+}
+
 static char* translate_exec_to_cmd( const char* exec, const char* icon,
                              const char* title, const char* fpath )
 {
@@ -337,31 +402,33 @@
                 break;
             switch( *exec )
             {
+#define GSAC(x) g_string_append(cmd, x)
                 case 'c':
-                    g_string_append( cmd, title );
+                       GSAC(title);
                     break;
                 case 'i':
                     if( icon )
                     {
-                        g_string_append( cmd, "--icon " );
-                        g_string_append( cmd, icon );
+                           GSAC("--icon ");
+                           GSAC(icon);
                     }
                     break;
                 case 'k':
                 {
                     char* uri = g_filename_to_uri( fpath, NULL, NULL );
-                    g_string_append( cmd, uri );
+                   GSAC(uri);
                     g_free( uri );
                     break;
                 }
                 case '%':
-                    g_string_append_c( cmd, '%' );
+                       GSAC("%");
                     break;
             }
         }
         else
             g_string_append_c( cmd, *exec );
     }
+
     return g_string_free( cmd, FALSE );
 }
 
@@ -388,35 +455,26 @@
         if( name[0] =='.' )
             continue;
         fpath = g_build_filename( path, name, NULL );
+#define SKIP {g_free(fpath); continue;}
         if( g_file_test(fpath, G_FILE_TEST_IS_DIR) )
         {
             do_load_dir( prefix_len, fpath, sub_menus );
-            g_free( fpath );
-            continue;
-        }
-        if( ! g_str_has_suffix( name, ".desktop" ) )
-        {
-            g_free( fpath );
-            continue;
-        }
-        if( ! g_key_file_load_from_file( file, fpath, 0, NULL ) )
-        {
-            g_free( fpath );
-            continue;
+           SKIP;
         }
-        if( g_key_file_get_boolean( file, desktop_ent, "NoDisplay", NULL ) )
-        {
-            g_free( fpath );
-            continue;
-        }
-        only_show_in = g_key_file_get_string_list( file, desktop_ent, 
"OnlyShowIn", NULL, NULL );
+       if(!g_str_has_suffix(name, ".desktop")
+               || !g_key_file_load_from_file(file, fpath, 0, NULL)
+               || g_key_file_get_boolean(file, desktop_ent, 
+                       "NoDisplay", NULL))
+               SKIP;
+        only_show_in = g_key_file_get_string_list( file, 
+               desktop_ent, "OnlyShowIn", NULL, NULL );
         if( only_show_in )
         {
-            g_free( fpath );
             g_strfreev( only_show_in );
-            continue;
+           SKIP;
         }
-        cats = g_key_file_get_string_list( file, desktop_ent, "Categories", 
NULL, NULL );
+        cats = g_key_file_get_string_list( file, desktop_ent, 
+               "Categories", NULL, NULL );
         if( cats )
         {
             int i = find_cat( cats );
@@ -428,38 +486,42 @@
                 exec = g_key_file_get_string( file, desktop_ent, "Exec", NULL);
                 if( exec )
                 {
-                    title = g_key_file_get_locale_string( file, desktop_ent, 
"Name", NULL, NULL);
+                    title = g_key_file_get_locale_string( file, desktop_ent, 
+                                  "Name", NULL, NULL);
                     if( title )
                     {
                         PtkAppMenuItem* data;
                         GList* prev;
-                        prev =g_list_find_custom( sub_menus[i], (fpath + 
prefix_len),
+                        prev =g_list_find_custom( sub_menus[i], 
+                               (fpath + prefix_len),
                               (GCompareFunc) find_menu_item_by_name );
                         if( ! prev )
                         {
-                            menu_item = gtk_image_menu_item_new_with_label( 
title );
+                            menu_item = gtk_image_menu_item_new_with_label( 
+                                          title );
                             data = g_slice_new0(PtkAppMenuItem);
                         }
                         else
                         {
                             GtkLabel* label;
                             menu_item = GTK_WIDGET(prev->data);
-                            label = 
GTK_LABEL(gtk_bin_get_child(GTK_BIN(menu_item)));
-                            data = (PtkAppMenuItem*)g_object_get_qdata( 
G_OBJECT(menu_item), PTK_APP_MENU_ITEM_ID );
+                            label = GTK_LABEL(gtk_bin_get_child(
+                                                  GTK_BIN(menu_item)));
+                            data = (PtkAppMenuItem*)g_object_get_qdata( 
+                                       G_OBJECT(menu_item), 
+                                       PTK_APP_MENU_ITEM_ID );
                             gtk_label_set_text( label, title );
                             g_free( data->name );
                             g_free( data->exec );
                             g_free( data->icon );
                         }
                         data->name = g_strdup( fpath + prefix_len );
-                        data->exec = exec ? translate_exec_to_cmd( exec, 
data->icon, title, fpath ) : NULL;
+                        data->exec = exec ? translate_exec_to_cmd( exec, 
+                               data->icon, title, fpath ) : NULL;
                         g_free( title );
-                        g_signal_connect( menu_item, "expose-event",
-                      G_CALLBACK(on_menu_item_expose), data );
-                        g_signal_connect( menu_item,
-                                          "size-request",
-                      G_CALLBACK(on_menu_item_size_request), data );
-                        icon = g_strdup( g_key_file_get_string( file, 
desktop_ent, "Icon", NULL) );
+                       setup_menu_item_signals(menu_item, data);
+                        icon = g_strdup( g_key_file_get_string( file, 
+                                       desktop_ent, "Icon", NULL) );
                         if( icon )
                         {
                             char* dot = strchr( icon, '.' );
@@ -469,9 +531,10 @@
                         data->icon = icon;
                         if( !prev )
                         {
-                            g_signal_connect( menu_item, "activate",
-                          G_CALLBACK(on_app_menu_item_activate), data );
-                            g_object_set_qdata_full( G_OBJECT(menu_item), 
PTK_APP_MENU_ITEM_ID, data,
+                               GSHCONNECT(menu_item,"activate",
+                                       on_app_menu_item_activate, data);
+                            g_object_set_qdata_full( G_OBJECT(menu_item), 
+                                          PTK_APP_MENU_ITEM_ID, data,
                              (GDestroyNotify) ptk_app_menu_item_free );
                             sub_menus[i] = g_list_insert_sorted( sub_menus[i],
                                  (gpointer) menu_item,
@@ -539,7 +602,8 @@
       sub_menu = GTK_MENU(gtk_menu_new());
 
       for( l = sub_items; l; l = l->next )
-         gtk_menu_shell_append( GTK_MENU_SHELL(sub_menu), GTK_WIDGET(l->data) 
);
+         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] );
@@ -549,11 +613,17 @@
 
       data = g_slice_new0( 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 );
-      g_signal_connect( menu_item, "expose-event", 
G_CALLBACK(on_menu_item_expose), data );
-      g_signal_connect( menu_item, "size-request", 
G_CALLBACK(on_menu_item_size_request), data );
+      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);
+/*      g_signal_connect( menu_item, "expose-event", 
+                    G_CALLBACK(on_menu_item_expose), data );
+      g_signal_connect( menu_item, "size-request", 
+                    G_CALLBACK(on_menu_item_size_request), data );*/
       on_menu_item_expose( menu_item, NULL, data );
-      gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu_item), 
GTK_WIDGET(sub_menu) );
+      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 );
@@ -567,8 +637,10 @@
    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) );
+   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* ptk_app_menu_new()
@@ -582,31 +654,22 @@
 static void app_dirs_foreach( GFunc func, gpointer user_data )
 {
     const char** sys_dirs = (const char**)g_get_system_data_dirs();
-    char* path;
-    int i, len;
-    struct stat dir_stat;
+       register guint len;
 
     len = g_strv_length((gchar **) sys_dirs);
-    if( !times )
-        times = g_new0( time_t, len + 2 );
-    for( i = 0; i < len; ++i )
+       while(len--)
     {
-        path = g_build_filename( sys_dirs[i], app_dir_name, NULL );
+               register char * path;
+               struct stat dir_stat;
+       
+               path = g_build_filename( sys_dirs[len], app_dir_name, NULL );
         if( stat( path, &dir_stat) == 0 )
         {
-            times[i] = dir_stat.st_mtime;
+                       //times[len] = dir_stat.st_mtime;
             func( path, user_data );
         }
         g_free( path );
     }
-    path = g_build_filename( g_get_user_data_dir(), app_dir_name, NULL );
-    times[i] = dir_stat.st_mtime;
-    if( stat( path, &dir_stat) == 0 )
-    {
-        times[i] = dir_stat.st_mtime;
-        func( path, user_data );
-    }
-    g_free( path );
 }
 
 bool ptk_app_menu_need_reload( GtkWidget* menu )
@@ -661,12 +724,11 @@
        GtkWidget * hbox;
        guint * current_row = &(gsh->rows->current);
 
+       GSH_ADD_MANAGED(gsh, hbox, hbox, TRUE, 0);
        (*current_row)++;       
-       hbox=gtk_hbox_new(TRUE, 0);
        gtk_container_set_border_width(GTK_CONTAINER(hbox), 0);
        GSHCA(hbox, menu_bar);
        (*current_row)++;
-       $(gsh, manage, hbox);
 }
 
 static GtkWidget *
@@ -674,10 +736,9 @@
 {
        GtkWidget * menu_bar;
 
-       menu_bar = gtk_menu_bar_new();
+       GSH_SHOW_CREATE(menu_bar, menu_bar);
        gtk_menu_bar_append(menu_bar, menu_button_item);
        gtk_container_set_border_width(GTK_CONTAINER(menu_bar), 0);
-       gtk_widget_show(menu_bar);
 
        return menu_bar;
 }

Index: row.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/row.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- row.c       11 Aug 2010 12:03:23 -0000      1.26
+++ row.c       15 Aug 2010 18:44:18 -0000      1.27
@@ -25,11 +25,8 @@
 static void
 gsh_GSHRows_new(struct GSHRows * this)
 {
-       bool is_first_row=!this->v;
-       gtk_container_add(GTK_CONTAINER(this->h), 
-               this->v=gtk_vbox_new(FALSE, 2));
-       gtk_widget_show(this->v);
-       this->current=is_first_row?2:1;
+       this->current=(this->v)?1:2;
+       GSH_ADD_WIDGET(this->h, this->v, vbox, FALSE, 2);
 }
 
 static void
@@ -39,13 +36,6 @@
                $(this, new);
 }
 
-/*
-static void
-gsh_delete_GSHRows(struct GSHRows * rows)
-{
-       g_free(rows);
-}*/
-
 static inline void
 setup_methods(struct GSHRows * rows)
 {
@@ -69,7 +59,7 @@
 {
        struct GSHRows * rows;
 
-       rows = xmalloc(sizeof(struct GSHRows));
+       rows = armalloc(sizeof(struct GSHRows));
        setup_member_fields(rows);
        setup_methods(rows);
 

Index: terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- terminal.c  9 Jan 2008 21:24:44 -0000       1.34
+++ terminal.c  15 Aug 2010 18:44:18 -0000      1.35
@@ -353,7 +353,7 @@
 {
        struct GSH_Terminal * term;
 
-       term=xmalloc(sizeof(struct GSH_Terminal));
+       term=armalloc(sizeof(struct GSH_Terminal));
        setup_GSH_Terminal(term);
        term->gsh = (gpointer)gsh;
 

Index: text.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/text.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- text.c      13 Aug 2010 20:22:22 -0000      1.45
+++ text.c      15 Aug 2010 18:44:18 -0000      1.46
@@ -117,7 +117,7 @@
 #ifdef DEBUG
        ARPASSERT(gsh);
 #endif /* DEBUG */
-       gtk_widget_show(text=gsh->editor.widget=gtk_text_view_new());
+       GSH_SHOW_CREATE(text=gsh->editor.widget, text_view);
        set_options(gsh, text);
        setup_text_scroller(gsh, text);
        setup_undo(gsh);
@@ -161,9 +161,7 @@
                undo_button=GTK_WIDGET(
                        gtk_tool_button_new_from_stock("gtk-undo"));
                destination=gsh->widgets.app.toolbar;
-               gtk_widget_show(
-                       separator=GTK_WIDGET(gtk_separator_tool_item_new()));
-               GSHCA(destination, separator);
+               GSH_ADD_WIDGET(destination, separator, separator_tool_item);
        }
        else
        {
@@ -172,8 +170,7 @@
                /* Set up a horizontal container 
                   for undo and redo buttons.  */
                GSH_SET(GSH_NO_EXPAND);
-               GSH_SHOW_CREATE(destination, hbox, TRUE, 0);
-               $(gsh, manage, destination);
+               GSH_ADD_MANAGED(gsh, destination, hbox, TRUE, 0);
        }
        gtk_widget_show(undo_button);
        gtk_widget_show(redo_button);

Index: update_manager.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/update_manager.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- update_manager.c    13 Aug 2010 20:22:23 -0000      1.12
+++ update_manager.c    15 Aug 2010 18:44:18 -0000      1.13
@@ -87,7 +87,7 @@
 {
        g_slist_foreach(updaters->list, gsh_delete_each_updater, NULL);
        g_slist_free(updaters->list);
-       g_free(updaters);
+       arfree(updaters);
 }
 
 /* Setup method function pointer assignments.  */
@@ -119,7 +119,7 @@
 {
        struct GSHUpdateManager * updater;
        
-       updater=xmalloc(sizeof(struct GSHUpdateManager));
+       updater=armalloc(sizeof(struct GSHUpdateManager));
        setup_updater(updater);
 
        return updater;

Index: updated.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- updated.c   25 Oct 2007 17:33:17 -0000      1.21
+++ updated.c   15 Aug 2010 18:44:18 -0000      1.22
@@ -26,7 +26,7 @@
 gsh_delete_GSHUpdatedWidget(struct GSHUpdatedWidget * item)
 {
        GSH_FREE_IF(item->command);
-       g_free(item);
+       arfree(item);
 }
 
 static void
@@ -42,7 +42,7 @@
 {
        struct GSHUpdatedWidget * updater;
 
-       updater=xmalloc(sizeof(struct GSHUpdatedWidget));
+       updater=armalloc(sizeof(struct GSHUpdatedWidget));
        /* Assign method function pointers.  */
        updater->update=&gsh_GSHUpdatedWidget_update;
        updater->delete=&gsh_delete_GSHUpdatedWidget;



reply via email to

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