[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright/gtkshell callbacks.c callbacks.h comm...,
Jeffrey Bedard <=