antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright ACE-desktop/guidl/Horizontal_Deskbar....


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright ACE-desktop/guidl/Horizontal_Deskbar....
Date: Mon, 14 May 2007 12:16:12 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/05/14 12:16:12

Modified files:
        ACE-desktop/guidl: Horizontal_Deskbar.gdl 
        gtkshell       : add_options.c add_options.h arguments.c 
                         containers.c font.c gtkshell.c gtkshell.h 
                         label.c menu.c option_options.c 
                         option_options.h options.c options.h pane.c 
                         terminal.c text.c updated_label.c 
                         updated_progress.c 

Log message:
        Began refactoring of code split as macros.  Added a few more
        deskbar menu items.  

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/ACE-desktop/guidl/Horizontal_Deskbar.gdl?cvsroot=antiright&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.c?cvsroot=antiright&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.h?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/arguments.c?cvsroot=antiright&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/containers.c?cvsroot=antiright&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/font.c?cvsroot=antiright&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.h?cvsroot=antiright&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/label.c?cvsroot=antiright&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/menu.c?cvsroot=antiright&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/option_options.c?cvsroot=antiright&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/option_options.h?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.c?cvsroot=antiright&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.h?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/pane.c?cvsroot=antiright&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.c?cvsroot=antiright&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_label.c?cvsroot=antiright&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_progress.c?cvsroot=antiright&r1=1.14&r2=1.15

Patches:
Index: ACE-desktop/guidl/Horizontal_Deskbar.gdl
===================================================================
RCS file: 
/sources/antiright/antiright/ACE-desktop/guidl/Horizontal_Deskbar.gdl,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- ACE-desktop/guidl/Horizontal_Deskbar.gdl    5 May 2007 22:33:06 -0000       
1.13
+++ ACE-desktop/guidl/Horizontal_Deskbar.gdl    14 May 2007 12:16:11 -0000      
1.14
@@ -5,7 +5,7 @@
 option "undecorated";
 option "no fill";
 // menu button
-add button "ACE,ACE_32.png::ACE,ACE_32.png::ACE -A 
IDE,Text_Editor_32.png::eclipse-3.2,gtk-execute";
+add button "ACE,ACE_32.png::ACE,ACE_32.png::ACE -A 
IDE,Text_Editor_32.png::eclipse-3.2,gtk-execute::eclipse,gtk-execute::ACE -A 
Settings,gtk-preferences";
 
 add "separator";
 add button "ACE -A Command ,gtk-execute";

Index: gtkshell/add_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/add_options.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- gtkshell/add_options.c      10 May 2007 00:08:28 -0000      1.31
+++ gtkshell/add_options.c      14 May 2007 12:16:11 -0000      1.32
@@ -22,12 +22,20 @@
 
 #include "gtkshell.h"
 
+static void
+add_piped_label(GSH * gsh, const gchar * output)
+{
+       $(gsh, add.label, output);
+}
 
-#define ADD_PIPED_LABEL(gsh, output)\
-       $(gsh, add.label, output)
+static void
+add_piped_text(GSH * gsh, const gchar * output)
+{
+       GtkWidget * text_area;
 
-#define ADD_PIPED_TEXT(gsh, output)\
-       GSH_TEXT_AREA_SET_TEXT(gsh_text_area(gsh), output)
+       text_area=gsh_text_area(gsh);
+       GSH_TEXT_AREA_SET_TEXT(text_area, output);
+}
 
 #define GENERIC_FILE_CONTENTS(gsh, add, input)\
 {\
@@ -41,23 +49,32 @@
 #define GENERIC_COMMANDED_ADD(gsh, command, add)\
        GENERIC_FILE_CONTENTS(gsh, add, antiright_pipe_read(command))
 
-#define ADD_NEW_WINDOW(gsh)\
-{\
-       $(gsh, add.window);\
-       gsh->rows->current=1;\
-       $(gsh, init);\
+static void
+add_new_window(GSH * gsh)
+{
+       $(gsh, add.window);
+       gsh->rows->current=1;
+       $(gsh, init);
 }
 
-#define ADD_SEPARATOR(gsh) \
-       $(gsh, manage, (gsh->rows->total == 1)\
-                  ? gtk_vseparator_new() : gtk_hseparator_new());
+static void
+add_separator(GSH * gsh)
+{
+       GtkWidget * separator;
+
+       /* Create a separator widget.  If GSH has one row per column, use a 
vertical
+          separator, else use a horizontal separator.  This allows the 
separator
+          to be used for ACE's Deskbar.  */
+       separator = (gsh->rows->total == 1) ? gtk_vseparator_new() : 
gtk_hseparator_new();
+       /* Show and manage the separator.  */
+       $(gsh, manage, separator);
+}
 
 #define GCA_WIDGET(func) \
        GENERIC_COMMANDED_ADD(gsh, argv[*counter], func)
 
 static void
-handle_commanded_add_arguments(struct GSH * gsh, int argc, char **argv, 
-       int *counter)
+handle_commanded_add_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter)
 {
        if(!argv[*counter] || !argv[(*counter)+1])
                return;
@@ -73,8 +90,18 @@
        }
 }
 
+static void
+add_shell(GSH * gsh, const gchar * command)
+{
+       /* Create a terminal widget that is running COMMAND.  */
+       const GtkWidget * terminal = $(gsh->terminal, add, command);
+
+       /* Let GSH manage the terminal widget.  */
+       $(gsh, manage, (GtkWidget *)terminal);
+}
+
 void
-gsh_handle_add_arguments(struct GSH * gsh, int argc, char **argv, int *counter)
+gsh_handle_add_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter)
 {
        g_assert(strlen(argv[(*counter)]) > 1);
        switch (argv[(*counter)][2])
@@ -83,9 +110,11 @@
                GSH_COUNT(argc, counter);
                gsh_setup_hpaned(gsh, argv[*counter]);
                break;
+
        case 'c':
                handle_commanded_add_arguments(gsh, argc, argv, counter);
                break;
+
        case 'e':
                GSH_COUNT(argc, counter);
                gsh_text_editor(gsh, argv[*counter]);
@@ -97,11 +126,11 @@
                break;
 
        case 'P':
-               ADD_PIPED_GENERIC(gsh, ADD_PIPED_TEXT);
+               ADD_PIPED_GENERIC(gsh, add_piped_text);
                break;
 
        case 'p':
-               ADD_PIPED_GENERIC(gsh, ADD_PIPED_LABEL);
+               ADD_PIPED_GENERIC(gsh, add_piped_label);
                break;
 
        case 'r': /* Force creation of a new row.  */
@@ -109,12 +138,12 @@
                break;
 
        case 'S': /* Add a separator.  */
-               ADD_SEPARATOR(gsh);
+               add_separator(gsh);
                break;
 
        case 's': /* Add a shell.  */
                GSH_COUNT(argc, counter);
-               $(gsh, manage, $(gsh->terminal, add, argv[*counter]));
+               add_shell(gsh, argv[*counter]);
                break;
 
        case 't':
@@ -133,7 +162,7 @@
                break;
 
        case 'w':
-               ADD_NEW_WINDOW(gsh);
+               add_new_window(gsh);
                break;
 
        default:

Index: gtkshell/add_options.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/add_options.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- gtkshell/add_options.h      28 Feb 2007 03:53:51 -0000      1.4
+++ gtkshell/add_options.h      14 May 2007 12:16:11 -0000      1.5
@@ -26,6 +26,6 @@
 #include "gtkshell.h"
 
 void
-     gsh_handle_add_arguments(struct GSH * gsh, int argc, char **argv, int 
*counter);
+gsh_handle_add_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter);
 
 #endif

Index: gtkshell/arguments.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/arguments.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- gtkshell/arguments.c        10 May 2007 00:08:28 -0000      1.24
+++ gtkshell/arguments.c        14 May 2007 12:16:11 -0000      1.25
@@ -26,10 +26,14 @@
 #define SPLIT_ALL -1
 
 static void
-menubar_parse(struct GSH * gsh, const gchar * string)
+menubar_parse(GSH * gsh, const gchar * string)
 {
        gchar **tokens;
 
+#ifdef DEBUG
+       ARPASSERT(gsh);
+       ARPASSERT(string);
+#endif /* DEBUG */
        tokens=g_strsplit(string, "::", SPLIT_ALL);
        /* Determine if the button is a regular button or a menu button.  */
        tokens[1] ? gsh_menubutton_parse(gsh, tokens) 
@@ -37,9 +41,23 @@
        g_strfreev(tokens);
 }
 
+static void
+add_each_menu(GSH * gsh, gchar ** menubar_tokens)
+{
+       guint i;
+
+#ifdef DEBUG
+       ARPASSERT(gsh);
+       ARPASSERT(menubar_tokens);
+#endif /* DEBUG */
+
+       for(i=0; menubar_tokens[i]; i++)
+               menubar_parse(gsh, menubar_tokens[i]);
+}
+
 /* Decide whether to use a regular button or a menu button.  */
 static void
-button_parse(struct GSH * gsh, const gchar * string)
+button_parse(GSH * gsh, const gchar * string)
 {
        gchar **menubar_tokens;
 
@@ -52,17 +70,12 @@
        menubar_tokens=g_strsplit(string, ":::", SPLIT_ALL);
        /* If ":::" is not found, STRING will be contained in
           menubar_tokens[0].  */
-       {
-               guint i;
-
-               for(i=0; menubar_tokens[i]; i++)
-                       menubar_parse(gsh, menubar_tokens[i]);
-       }
+       add_each_menu(gsh, menubar_tokens);
        g_strfreev(menubar_tokens);
 }
 
 void
-gsh_parse_arguments(struct GSH * gsh, gint argc, gchar **argv)
+gsh_parse_arguments(GSH * gsh, gint argc, gchar **argv)
 {
        int counter;
 

Index: gtkshell/containers.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/containers.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- gtkshell/containers.c       11 May 2007 23:28:52 -0000      1.18
+++ gtkshell/containers.c       14 May 2007 12:16:11 -0000      1.19
@@ -22,14 +22,31 @@
 
 #include "gtkshell.h"
 
-static void
-set_scrolled_window_options(struct GSH * gsh)
-{
-       gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(
-               gsh->widgets.scrolled_window), GTK_POLICY_AUTOMATIC, 
-               GTK_POLICY_AUTOMATIC);
-       gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(
-               gsh->widgets.scrolled_window), GTK_SHADOW_OUT);
+/* GTK Scrolled Window Set */
+#define GSWS(item, window, ...)\
+       gtk_scrolled_window_set_##item(GTK_SCROLLED_WINDOW(window),\
+               __VA_ARGS__)
+
+/* GTK Scrolled Window Set WIDGET */
+#define GSWSWIDGET gsh->widgets.scrolled_window
+
+/* GTK Scrolled Window Set (with WIDGET) */
+#define GSWSW(item, ...) GSWS(item, GSWSWIDGET, __VA_ARGS__)
+
+/* GSWSW for scrolling policy.  */
+#define GSWSWP(h_policy, v_policy) GSWSW(policy, h_policy, v_policy)
+
+/* GSWSW for shadow type.  */
+#define GSWSWST(type) GSWSW(shadow_type, type)
+
+/* Shortened name.  */
+#define GTKPA GTK_POLICY_AUTOMATIC
+
+/* Use macro, as only used within scrolled window creation function.  */
+#define SET_SCROLLED_WINDOW_OPTIONS(gsh)\
+{\
+       GSWSWP(GTKPA, GTKPA);\
+       GSWSWST(GTK_SHADOW_OUT);\
 }
 
 static void
@@ -39,21 +56,24 @@
 
        scrolled_window = gsh->widgets.scrolled_window 
                = gtk_scrolled_window_new(NULL, NULL);
-       set_scrolled_window_options(gsh);
+       SET_SCROLLED_WINDOW_OPTIONS(gsh);
        gtk_container_add(GTK_CONTAINER(gsh->widgets.window), scrolled_window);
        gtk_widget_show(scrolled_window);
        gtk_scrolled_window_add_with_viewport(
                GTK_SCROLLED_WINDOW(scrolled_window), gsh->rows->h);
 }
 
+#define GTKCA(container, widget)\
+       gtk_container_add(GTK_CONTAINER(container), widget)
+
 static void
 setup_framed(struct GSH * gsh)
 {
        GtkWidget *frame;
 
        gtk_widget_show(frame = gtk_frame_new(NULL));
-       gtk_container_add(GTK_CONTAINER(gsh->widgets.window), frame);
-       gtk_container_add(GTK_CONTAINER(frame), gsh->rows->h);
+       GTKCA(gsh->widgets.window, frame);
+       GTKCA(frame, gsh->rows->h);
 }
 
 void
@@ -63,18 +83,20 @@
        $(gsh->rows, new);
 }
 
+#define GWA gsh->widgets.app
+
 static void
 setup_app_mode_frame(struct GSH * gsh)
 {
-       gtk_container_add(GTK_CONTAINER(gsh->widgets.app_frame), 
+       gtk_container_add(GTK_CONTAINER(GWA.frame), 
                gsh->rows->h); 
-       gsh->rows->h=gsh->widgets.app_row;
+       gsh->rows->h=GWA.row;
 }
 
 void
 gsh_setup_base_container(struct GSH * gsh)
 {
-       if(gsh->widgets.app_frame)
+       if(GWA.frame)
                setup_app_mode_frame(gsh);
        if (GSH_FLAG(GSH_SCROLL))
                gsh_setup_scrolled_window(gsh);

Index: gtkshell/font.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/font.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- gtkshell/font.c     3 May 2007 03:42:31 -0000       1.6
+++ gtkshell/font.c     14 May 2007 12:16:11 -0000      1.7
@@ -38,7 +38,7 @@
 #ifdef DEBUG
        ARPASSERT(widget);
 #endif /* DEBUG */
-       if(!font)
+       if(!font) /* Allowed assignmet for uninitialized const var.  */
                font="Mono 12";
        if(VTE_IS_TERMINAL(widget))
                vte_terminal_set_font_from_string(VTE_TERMINAL(widget), font);

Index: gtkshell/gtkshell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- gtkshell/gtkshell.c 11 May 2007 23:28:52 -0000      1.38
+++ gtkshell/gtkshell.c 14 May 2007 12:16:11 -0000      1.39
@@ -23,77 +23,95 @@
 
 #include "gtkshell.h"
 
-#define GSH_DELETE_CHILD_CLASSES(gsh)\
-{\
-       ARDELETE(gsh->rows);\
-       ARDELETE(gsh->terminal);\
-       ARDELETE(gsh->update);\
+static void
+delete_child_classes(GSH * gsh)
+{
+       ARDELETE(gsh->rows);
+       ARDELETE(gsh->terminal);
+       ARDELETE(gsh->update);
 }
 
 static void
 gsh_delete_GSH(struct GSH * gsh)
 {
-       GSH_DELETE_CHILD_CLASSES(gsh);
+       delete_child_classes(gsh);
        GSH_FREE_IF(gsh->geometry);
 }
 
-#define SETUP_ADD_METHODS(gsh)\
-{\
-       gsh->add.window=&gsh_GSH_add_window;\
-       gsh->add.button=&gsh_add_button;\
-       gsh->add.label=&gsh_add_label;\
-}
-
-#define SETUP_METHODS(gsh)\
-{\
-       gsh->delete = &gsh_delete_GSH;\
-       gsh->parse = &gsh_parse_arguments;\
-       gsh->finalize = &gsh_GSH_finalize;\
-       gsh->init = &gsh_setup_containers;\
-       gsh->manage=&gsh_manage;\
-       SETUP_ADD_METHODS(gsh);\
-}
-
-#define SETUP_CHILD_CLASSES(gsh) \
-{\
-       gsh->update = ARNEW(gsh, GSHUpdateManager);\
-       gsh->rows = ARNEW(gsh, GSHRows);\
-       gsh->terminal = ARNEW(gsh, GSH_Terminal);\
-}
-
-#define SETUP_WIDGET_MEMBER_FIELDS(gsh)\
-{\
-       gsh->widgets.menu_bar=NULL;\
-       gsh->widgets.app_frame=NULL;\
-       gsh->widgets.last_managed=NULL;\
-}
-
-#define SETUP_EDITOR_MEMBER_FIELDS(gsh)\
-{\
-       gsh->editor.widget=NULL;\
-       gsh->editor.filename=NULL;\
-}
-
-#define SETUP_MAIN_MEMBER_FIELDS(gsh) \
-{\
-       gsh->geometry = (gchar *)NULL;\
-       gsh->bflags = 0;\
-       gsh->icon_size=GTK_ICON_SIZE_DND;\
-}
-
-#define SETUP_MEMBER_FIELDS(gsh) \
-{\
-       SETUP_WIDGET_MEMBER_FIELDS(gsh);\
-       SETUP_EDITOR_MEMBER_FIELDS(gsh);\
-       SETUP_MAIN_MEMBER_FIELDS(gsh);\
-}
-
-#define SETUP_GSH(gsh) \
-{\
-       SETUP_CHILD_CLASSES(gsh);\
-       SETUP_METHODS(gsh);\
-       SETUP_MEMBER_FIELDS(gsh);\
-       $(gsh, add.window);\
+static void
+setup_add_methods(GSH * gsh)
+{
+#define GSHA gsh->add
+       GSHA.window=&gsh_GSH_add_window;
+       GSHA.button=&gsh_add_button;
+       GSHA.label=&gsh_add_label;
+}
+
+static void
+setup_methods(GSH * gsh)
+{
+       gsh->delete = &gsh_delete_GSH;
+       gsh->parse = &gsh_parse_arguments;
+       gsh->finalize = &gsh_GSH_finalize;
+       gsh->init = &gsh_setup_containers;
+       gsh->manage=&gsh_manage;
+       setup_add_methods(gsh);
+}
+
+static void
+setup_child_classes(GSH * gsh)
+{
+       gsh->update = ARNEW(gsh, GSHUpdateManager);
+       gsh->rows = ARNEW(gsh, GSHRows);
+       gsh->terminal = ARNEW(gsh, GSH_Terminal);
+}
+
+
+static void
+setup_widget_app_member_fields(GSH * gsh)
+{
+#define GWA gsh->widgets.app
+       GWA.menubar=NULL;
+       GWA.frame=NULL;
+}
+
+static void
+setup_widget_member_fields(GSH * gsh)
+{
+       gsh->widgets.last_managed=NULL;
+       setup_widget_app_member_fields(gsh);
+}
+
+static void
+setup_editor_member_fields(GSH * gsh)
+{
+       gsh->editor.widget=NULL;
+       gsh->editor.filename=NULL;
+}
+
+static void
+setup_main_member_fields(GSH * gsh)
+{
+       gsh->geometry = (gchar *)NULL;
+       gsh->bflags = 0;
+       gsh->icon_size=GTK_ICON_SIZE_DND;
+}
+
+static void
+setup_member_fields(GSH * gsh)
+{
+       setup_widget_member_fields(gsh);
+       setup_editor_member_fields(gsh);
+       setup_main_member_fields(gsh);
+}
+
+static void
+setup_gsh(GSH * gsh)
+{
+       setup_child_classes(gsh);
+       setup_methods(gsh);
+       setup_member_fields(gsh);
+       $(gsh, add.window);
 }
 
 struct GSH *
@@ -102,7 +120,7 @@
        struct GSH *gsh;
 
        gsh = (struct GSH *) xmalloc(sizeof(struct GSH));
-       SETUP_GSH(gsh);
+       setup_gsh(gsh);
 
        return gsh;
 }

Index: gtkshell/gtkshell.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- gtkshell/gtkshell.h 11 May 2007 23:28:52 -0000      1.45
+++ gtkshell/gtkshell.h 14 May 2007 12:16:11 -0000      1.46
@@ -60,11 +60,14 @@
                GtkWidget * window;
                GtkWidget * scrolled_window;
                GtkWidget * button;
-               GtkWidget * menu_bar;
-               GtkWidget * status_bar;
-               GtkWidget * app_frame;
-               GtkWidget * app_row;
                GtkWidget * last_managed;
+               struct /* app mode */
+               {
+                       GtkWidget * menubar;
+                       GtkWidget * status;
+                       GtkWidget * frame;
+                       GtkWidget * row;
+               } app;
        } widgets;
        struct /* text editor */
        {
@@ -79,7 +82,7 @@
 
        /* methods */
        void (*delete)(struct GSH *);
-       void (*parse)(struct GSH *, gint, gchar **);
+       void (*parse)(struct GSH *, const gint, gchar **);
        void (*init)(struct GSH *);
        void (*finalize)(struct GSH *);
        void (*manage)(struct GSH *, GtkWidget *);
@@ -94,6 +97,8 @@
 
 };
 
+typedef struct GSH GSH;
+
 #include "module_includes.h"
 
 struct GSH *

Index: gtkshell/label.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/label.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- gtkshell/label.c    3 May 2007 22:55:10 -0000       1.19
+++ gtkshell/label.c    14 May 2007 12:16:11 -0000      1.20
@@ -35,15 +35,13 @@
 static GtkWidget *
 make_framed_label(GtkWidget * label)
 {
-       gtk_widget_show(label);
-       {
                GtkWidget *frame;
 
-               gtk_container_add(GTK_CONTAINER(frame=gtk_frame_new(NULL)), 
-                       label);
+       frame=gtk_frame_new(NULL);
+       gtk_container_add(GTK_CONTAINER(frame), label);
+       gtk_widget_show(label);
 
                return frame;
-       }
 }
 
 GtkWidget *

Index: gtkshell/menu.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/menu.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- gtkshell/menu.c     11 May 2007 23:28:52 -0000      1.12
+++ gtkshell/menu.c     14 May 2007 12:16:11 -0000      1.13
@@ -45,34 +45,40 @@
 }
 
 static void
-add_menu_items(struct GSH * gsh, GtkWidget * menu, gchar **tokens)
+perform_addition_for_each_item(struct GSH * gsh, gchar ** tokens)
 {
-       GtkWidget * old_row;
-
-       /* Set gsh->rows->v to a row within a menu.
-        * Create the menu before overwriting, then
-        * set back at end.  */
-
-       old_row=gsh->rows->v;
-       gsh->rows->v=menu;
-
-       {
                guint i;
 
                for(i=1; ARPBOOL(tokens[i]); i++) 
                        menuitem_parse(gsh, tokens[i]);
-       }
 
-       gsh->rows->v=old_row;
+}
+
+
+static void
+add_menu_items(struct GSH * gsh, GtkWidget * menu, gchar **tokens)
+{
+#define GSHR gsh->rows
+       /* Set gsh->rows->v to a row within a menu.
+        * Create the menu before overwriting, then
+        * set back at end.  */
+       const GtkWidget * old_row = gsh->rows->v;
+
+       GSHR->v=menu;
+       perform_addition_for_each_item(gsh, tokens);
+       GSHR->v=(GtkWidget *)old_row;
 }
 
 #define CONT_ADD(cont, widget)\
        gtk_container_add(GTK_CONTAINER(cont), widget)
+#define CONT_ADD_TIGHT(cont, widget)\
+       gtk_box_pack_start(GTK_BOX(cont), widget, FALSE, FALSE, 0);
 
 #define SHOW_CREAT(var, type, ...)\
        gtk_widget_show(var=gtk_##type##_new(__VA_ARGS__))
 
 #define GW gsh->widgets
+#define GWA GW.app
 
 static void
 setup_app_mode_status_bar(struct GSH * gsh)
@@ -81,59 +87,57 @@
 
        SHOW_CREAT(status_frame, frame, NULL);
        gtk_frame_set_shadow_type(GTK_FRAME(status_frame), GTK_SHADOW_IN);
-       CONT_ADD(GW.app_row, status_frame);
-       SHOW_CREAT(GW.status_bar, label, "status");
-       CONT_ADD(status_frame, GW.status_bar);
+       CONT_ADD_TIGHT(GWA.row, status_frame);
+       SHOW_CREAT(GWA.status, label, "status");
+       CONT_ADD(status_frame, GWA.status);
 }
 
 #define SETUP_APP_MODE_FRAME(gsh)\
 {\
-       SHOW_CREAT(GW.app_frame, frame, NULL);\
-       CONT_ADD(GW.app_row, GW.app_frame);\
+       SHOW_CREAT(GWA.frame, frame, NULL);\
+       CONT_ADD(GWA.row, GWA.frame);\
 }
 
 static void
 setup_app_mode(struct GSH * gsh)
 {
-       SHOW_CREAT(GW.app_row, vbox, FALSE, 1);
+       SHOW_CREAT(GWA.row, vbox, FALSE, 1);
        /* Add menu bar to application column.  */
-       CONT_ADD(GW.app_row, GW.menu_bar);
+/* FIXME:  add such that it does not expand.  */
+       CONT_ADD_TIGHT(GWA.row, GWA.menubar);
        SETUP_APP_MODE_FRAME(gsh);
        setup_app_mode_status_bar(gsh);
 }
 
 #define MANAGE_MENU_BAR(gsh) \
        GSH_FLAG(GSH_APP_MODE) ?  setup_app_mode(gsh)\
-               : $(gsh, manage, gsh->widgets.menu_bar);
+               : $(gsh, manage, GWA.menubar);
 
 static GtkWidget *
 add_menu_bar(struct GSH * gsh)
 {
-       if(!gsh->widgets.menu_bar)
+       if(!GWA.menubar)
        {
-               gtk_widget_show(gsh->widgets.menu_bar=gtk_menu_bar_new());
+               gtk_widget_show(GWA.menubar=gtk_menu_bar_new());
                MANAGE_MENU_BAR(gsh);
        }
 
-       return gsh->widgets.menu_bar;
+       return GWA.menubar;
 }
 
 static GtkWidget *
 add_menu_launcher(struct GSH * gsh, gchar * label)
 {
-       GtkWidget * old_row;
+       const GtkWidget * old_row = gsh->rows->v;
+       GtkWidget * menu_item;
 
-       old_row=gsh->rows->v;
        gsh->rows->v=add_menu_bar(gsh);
        GSH_SET(GSH_MENU_BUTTON);
-       {
-               GtkWidget * menu_item;
-
-               gtk_widget_show(menu_item=gsh_add_button(gsh, label));
-               gsh->rows->v=old_row;
+       menu_item = $(gsh, add.button, label);
+       gtk_widget_show(menu_item);
+       gsh->rows->v=(GtkWidget *)old_row;
 
                return menu_item;
-       }
 }
 
 void

Index: gtkshell/option_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/option_options.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- gtkshell/option_options.c   11 May 2007 23:28:52 -0000      1.27
+++ gtkshell/option_options.c   14 May 2007 12:16:11 -0000      1.28
@@ -26,44 +26,51 @@
 /* This is for windows that should not be touched by the window manager,
    such as the ACE Deskbar panel.  */
 static void
-set_no_decorations(struct GSH * gsh)
+set_no_decorations(GSH * gsh)
 {
-       /* Recreate main window as popup type.  */
-       gsh->widgets.window=gtk_window_new(GTK_WINDOW_POPUP);
+       /* Alias to minimize dereferences through GSH.  */
+       GtkWindow * window;
 
-       gtk_window_set_type_hint(GTK_WINDOW(gsh->widgets.window),
-                                GDK_WINDOW_TYPE_HINT_DESKTOP);
-       gtk_window_set_decorated(GTK_WINDOW(gsh->widgets.window),
-                                FALSE);
-       gtk_window_set_skip_taskbar_hint(GTK_WINDOW(gsh->widgets.window), 
-                                        TRUE);
+       /* Recreate main window as popup type.  This is not recommended, but is
+          necessary when using window managers that do not decorate according
+          to hints, such as evilwm.  */
+       window=GTK_WINDOW(gsh->widgets.window=gtk_window_new(GTK_WINDOW_POPUP));
+
+       gtk_window_set_type_hint(window, GDK_WINDOW_TYPE_HINT_DESKTOP);
+       gtk_window_set_decorated(window, FALSE);
+       gtk_window_set_skip_taskbar_hint(window, TRUE);
        /* Show window on all desktops.  */
-       gtk_window_stick(GTK_WINDOW(gsh->widgets.window));
-
-       gtk_window_set_accept_focus(GTK_WINDOW(gsh->widgets.window),
-                                   TRUE);
+       gtk_window_stick(window);
+       /* Window does not seem to really accept focus when this is set, most
+          likely because of the POPUP option's side effect of overriding
+          window manager redirection. */
+       gtk_window_set_accept_focus(window, TRUE);
 }
 
 static void
-set_icon_size(struct GSH * gsh, const gchar * arg)
+set_icon_size(GSH * gsh, const gchar * arg)
 {
-       if(!strcmp("menu", arg))
+
+       /* Define some shortcuts.  */
+#define GIS gsh->icon_size
+#define GISCMP(text) !strcmp(text, arg)
+
+       if(GISCMP("menu"))
                gsh->icon_size=GTK_ICON_SIZE_MENU;
-       else if(!strcmp("small toolbar", arg))
-               gsh->icon_size=GTK_ICON_SIZE_SMALL_TOOLBAR;
-       else if(!strcmp("large toolbar", arg))
-               gsh->icon_size=GTK_ICON_SIZE_LARGE_TOOLBAR;
-       else if(!strcmp("button", arg))
-               gsh->icon_size=GTK_ICON_SIZE_BUTTON;
-       else if(!strcmp("dialog", arg))       
-               gsh->icon_size=GTK_ICON_SIZE_DIALOG;
+       else if(GISCMP("small toolbar"))
+               GIS=GTK_ICON_SIZE_SMALL_TOOLBAR;
+       else if(GISCMP("large toolbar") || GISCMP("toolbar"))
+               GIS=GTK_ICON_SIZE_LARGE_TOOLBAR;
+       else if(GISCMP("button"))
+               GIS=GTK_ICON_SIZE_BUTTON;
+       else if(GISCMP("dialog"))       
+               GIS=GTK_ICON_SIZE_DIALOG;
        else /* default */
-               gsh->icon_size=GTK_ICON_SIZE_DND;
+               GIS=GTK_ICON_SIZE_DND;
 }
 
 void
-gsh_handle_option_arguments(struct GSH * gsh, int argc, char **argv,
-                           int *counter)
+gsh_handle_option_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter)
 {
        switch (argv[(*counter)][2])
        {

Index: gtkshell/option_options.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/option_options.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gtkshell/option_options.h   28 Feb 2007 03:53:51 -0000      1.5
+++ gtkshell/option_options.h   14 May 2007 12:16:11 -0000      1.6
@@ -1,6 +1,6 @@
 /*
   AntiRight
-  (c) 2002-2006 Jeffrey Bedard
+  (c) 2002-2007 Jeffrey Bedard
   address@hidden
 
   This file is part of AntiRight.
@@ -24,7 +24,6 @@
 #define GSH_OPTION_OPTIONS_H
 
 void
-gsh_handle_option_arguments(
-              struct GSH * gsh, int argc, char **argv, int *counter);
+gsh_handle_option_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter);
 
 #endif

Index: gtkshell/options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/options.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- gtkshell/options.c  10 May 2007 00:08:28 -0000      1.24
+++ gtkshell/options.c  14 May 2007 12:16:11 -0000      1.25
@@ -40,23 +40,25 @@
 /* Determine whether or not to include an initial
    dummy argument.  Needed as argv[0] is skipped
    by the command line handling code. */
-#define TEST_DUMMY(gsh)\
-{\
-       if(!GSH_FLAG(GSH_GUIDL_NO_DUMMY))\
-               $(gsh_guidl_env->args, add, (const gchar *)"guidl");\
+static void
+check_for_dummy_argument(GSH * gsh)
+{
+       if(!GSH_FLAG(GSH_GUIDL_NO_DUMMY))
+               $(gsh_guidl_env->args, add, (const gchar *)"guidl");
 }
 
-#define CHECK_GSH_GUIDL_ENV(gsh)\
-{\
-       if(!gsh_guidl_env)\
-               gsh_guidl_env=ARNEW(gsh, GDLEnvironment);\
+static void
+check_gsh_guidl_env(GSH * gsh)
+{
+       if(!gsh_guidl_env)
+               gsh_guidl_env=ARNEW(gsh, GDLEnvironment);
 }
 
 static void
-common_guidl_handler(struct GSH * gsh)
+common_guidl_handler(GSH * gsh)
 {
-       CHECK_GSH_GUIDL_ENV(gsh);
-       TEST_DUMMY(gsh);
+       check_gsh_guidl_env(gsh);
+       check_for_dummy_argument(gsh);
        yyparse();
 #ifdef DEBUG
        print_arguments(gsh_guidl_env->args->argc, gsh_guidl_env->args->argv);
@@ -67,21 +69,21 @@
        gsh_guidl_env=NULL;
 }
 
-/* If the argument is "-", use stdin for yyin.  */
-/* Otherwise, use FILENAME.  */
-#define GUIDL_HANDLER_FOR_FILE(gsh, filename) \
-{\
-       if(strcmp("-", filename))\
-               yyin=fopen(filename, "r");\
-       common_guidl_handler(gsh);\
+static void
+guidl_handler_for_file(GSH * gsh, const gchar * filename)
+{
+       /* If the argument is "-", use stdin for yyin.  */
+       /* Otherwise, use FILENAME.  */
+       if(strcmp("-", filename))
+               yyin=fopen(filename, "r");
+       common_guidl_handler(gsh);
 }
 
 #define HANDLE(type)\
        gsh_handle_##type##_arguments(gsh, argc, argv, counter);
 
 void
-gsh_handle_switch_arguments(struct GSH * gsh, int argc,
-                           char **argv, int *counter)
+gsh_handle_switch_arguments(GSH * gsh, const const gint argc, gchar **argv, 
gint *counter)
 {
        $(gsh->rows, check);
        switch (argv[*counter][1])
@@ -94,7 +96,7 @@
                break;
        case 'f':
                GSH_COUNT(argc, counter);
-               GUIDL_HANDLER_FOR_FILE(gsh, argv[*counter]);
+               guidl_handler_for_file(gsh, argv[*counter]);
                break;
        case 'o':
                HANDLE(option);

Index: gtkshell/options.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/options.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gtkshell/options.h  4 May 2007 00:59:58 -0000       1.5
+++ gtkshell/options.h  14 May 2007 12:16:11 -0000      1.6
@@ -39,7 +39,6 @@
 #endif /* DEBUG */
 
 void
-gsh_handle_switch_arguments(struct GSH * gsh, int argc, char **argv, 
-       int *counter);
+gsh_handle_switch_arguments(GSH * gsh, const gint argc, gchar **argv, gint 
*counter);
 
 #endif /* not GSH_OPTIONS_H */

Index: gtkshell/pane.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/pane.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- gtkshell/pane.c     11 May 2007 23:28:52 -0000      1.2
+++ gtkshell/pane.c     14 May 2007 12:16:11 -0000      1.3
@@ -36,21 +36,28 @@
 #define REPARENT_TO(new) reparent(gsh->rows->v, gsh->rows->h, new)
 
 static void
+split_columns_for_pane(struct GSH * gsh, GtkWidget * pane)
+{
+       struct GSHRows * rows;
+
+       rows=gsh->rows;
+       $(rows, new);
+       $(gsh, manage, pane);
+       $(rows, new);
+}
+
+static GtkWidget *
 setup_first_pane_half(struct GSH * gsh, const gchar ** pair, GtkWidget * pane)
 {
-       {
                GtkWidget * first;
 
                gtk_widget_show(first=gtk_frame_new(pair[0]));
                REPARENT_TO(first);
-               gtk_paned_add1(GTK_PANED(pane), first);
-       }
-       $(gsh->rows, new);
-       $(gsh, manage, pane);
-       $(gsh->rows, new);
+
+       return first;
 }
 
-static void
+static GtkWidget *
 setup_second_pane_half(struct GSH * gsh, gchar ** pair, GtkWidget * pane)
 {
        GtkWidget * second;
@@ -58,6 +65,14 @@
        gtk_widget_show(second=gtk_frame_new(pair[1]));
        g_strfreev(pair);
        REPARENT_TO(second);
+
+       return second;
+}
+
+static void
+assign_pane_sections(GtkWidget * pane, GtkWidget * first, GtkWidget * second)
+{
+       gtk_paned_add1(GTK_PANED(pane), first);
        gtk_paned_add2(GTK_PANED(pane), second);
 }
 
@@ -69,11 +84,22 @@
                
        pair=g_strsplit(label_pair, ",", 2);
        pane=gtk_hpaned_new();
-       setup_first_pane_half(gsh, (const gchar **)pair, pane);
+       {
+               GtkWidget * first;
+
+               first=setup_first_pane_half(gsh, (const gchar **)pair, pane);
+               split_columns_for_pane(gsh, pane);
+               {
+                       GtkWidget * second;
+
        /* PAIR freed here.  */
-       setup_second_pane_half(gsh, pair, pane);
+                       second=setup_second_pane_half(gsh, pair, pane);
+                       assign_pane_sections(pane, first, second);
+               }
+       }
 }
 
+
 void
 gsh_pane_previous(struct GSH * gsh, GtkWidget * target)
 {
@@ -86,8 +112,7 @@
        ARPASSERT(gsh->widgets.last_managed);
 #endif /* DEBUG */
        reparent(gsh->widgets.last_managed, gsh->rows->v, prev_frame);
-       gtk_paned_add1(GTK_PANED(pane), prev_frame);
-       gtk_paned_add2(GTK_PANED(pane), target);
+       assign_pane_sections(pane, prev_frame, target);
        gtk_widget_show(prev_frame);
        gtk_widget_show(target);
        GSH_UNSET(GSH_PANE_NEXT);

Index: gtkshell/terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- gtkshell/terminal.c 10 May 2007 00:08:28 -0000      1.16
+++ gtkshell/terminal.c 14 May 2007 12:16:11 -0000      1.17
@@ -22,6 +22,7 @@
 
 #include "gtkshell.h"
 
+
 #define VSET(element, widget, ...)\
        vte_terminal_set_##element(VTE_TERMINAL(widget), __VA_ARGS__)
 
@@ -30,13 +31,17 @@
 #define VSETW(element, ...)\
        VSET(element, term->widget, __VA_ARGS__)
 
-#define SET_TERMINAL_OPTIONS(term)\
-{\
-       VSETW(size, term->width, term->height);\
-       VSETW(allow_bold, TRUE);\
-       VSETW(backspace_binding, VTE_ERASE_ASCII_BACKSPACE);\
-       VSETW(background_transparent, TRUE);\
-       gsh_widget_set_font(term->widget, term->font);\
+static void
+set_terminal_options(struct GSH_Terminal * term)
+{
+       VSETW(size, term->width, term->height);
+       VSETW(allow_bold, TRUE);
+       VSETW(backspace_binding, VTE_ERASE_ASCII_BACKSPACE);
+       VSETW(background_transparent, TRUE);
+       gsh_widget_set_font(term->widget, term->font);
+}
+
+{
 }
 
 static void
@@ -84,7 +89,7 @@
        /* Exit from the application if the terminal process dies.  */
        g_signal_connect(G_OBJECT(term->widget=vte_terminal_new()), 
                "child-exited", G_CALLBACK(gtk_main_quit), NULL);
-       SET_TERMINAL_OPTIONS(term);
+       set_terminal_options(term);
        gsh_terminal_run(term, command);
 
        return term->widget;

Index: gtkshell/text.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/text.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- gtkshell/text.c     11 May 2007 23:28:52 -0000      1.28
+++ gtkshell/text.c     14 May 2007 12:16:12 -0000      1.29
@@ -93,6 +93,9 @@
 {
        GtkWidget *text;
 
+#ifdef DEBUG
+       ARPASSERT(gsh);
+#endif /* DEBUG */
        $(gsh, manage, gsh->editor.widget=text=gtk_text_view_new());
        SET_OPTIONS(text);
 
@@ -128,6 +131,7 @@
        CHECK_GEOMETRY(gsh);
 }
 
+/* Check that the editor widget has been initialized.  */
 #define TEST_EDITOR_EXISTS(gsh)\
        if(!gsh->editor.widget)\
                return;
@@ -137,6 +141,7 @@
 gsh_editor_save(struct GSH * gsh)
 {
        TEST_EDITOR_EXISTS(gsh);
+       /* Choose action based on whether or not file has been chosen.*/
        if(gsh->editor.filename)
        {
                gchar * text;
@@ -152,8 +157,10 @@
 static void
 get_filename(struct GSH * gsh)
 {
+       /* Make sure that FILENAME is freed if previously used.  */
        if(gsh->editor.filename)
                g_free(gsh->editor.filename);
+       /* Get the filename.  */
        gsh->editor.filename=PROMPT_FILENAME();
 }
 

Index: gtkshell/updated_label.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated_label.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- gtkshell/updated_label.c    9 May 2007 19:53:37 -0000       1.19
+++ gtkshell/updated_label.c    14 May 2007 12:16:12 -0000      1.20
@@ -55,18 +55,19 @@
 void
 gsh_add_updated_label(struct GSH * gsh, const gchar *command)
 {
+#define GWA gsh->widgets.app
+       GtkWidget * status = GWA.status;
 #ifdef DEBUG
        g_message("gsh_add_updated_label()");
        ARPASSERT(gsh);
        ARPASSERT(command);
 #endif /* DEBUG */
        $(gsh->update, add, ARNEW(gsh, GSHUpdatedWidget, &gsh_update_label, 
-               command, (GSH_FLAG(GSH_APP_MODE) && gsh->widgets.status_bar
-               && !strncmp(gtk_label_get_text(
-               GTK_LABEL(gsh->widgets.status_bar)), "status", 6))
-               ? gsh->widgets.status_bar 
+               command, (GSH_FLAG(GSH_APP_MODE) && status
+               && !strncmp(gtk_label_get_text(GTK_LABEL(status)), 
+               "status", 6)) ? status
                : gsh_add_label(gsh, (char *)command)));
        /* Prevent two updaters from being 
           assigned to the status bar label.  */
-       gsh->widgets.status_bar=NULL;
+       GWA.status=NULL;
 }

Index: gtkshell/updated_progress.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated_progress.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- gtkshell/updated_progress.c 9 May 2007 17:20:53 -0000       1.14
+++ gtkshell/updated_progress.c 14 May 2007 12:16:12 -0000      1.15
@@ -40,14 +40,14 @@
 void
 gsh_add_updated_progress(struct GSH * gsh, const gchar *command)
 {
-       GtkWidget *widget;
+       GtkWidget *progress;
 
 #ifdef DEBUG
        ARPASSERT(gsh);
        ARPASSERT(command);
 #endif /* DEBUG */
-
-       gsh_manage(gsh, widget=gtk_progress_bar_new());
+       progress=gtk_progress_bar_new();
+       $(gsh, manage, progress);
        $(gsh->update, add, ARNEW(gsh, GSHUpdatedWidget, 
-               &gsh_update_progress, command, widget));
+               &gsh_update_progress, command, progress));
 }




reply via email to

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