antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright gtkshell/Makefile gtkshell/about_dial...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright gtkshell/Makefile gtkshell/about_dial...
Date: Thu, 10 May 2007 00:16:03 -0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/05/10 00:08:28

Modified files:
        gtkshell       : Makefile about_dialog.c add_options.c 
                         arguments.c callbacks.c callbacks.h 
                         dialog_options.c dragdrop.c file_dialog.c 
                         gtkshell.c guidl_util.c init.c init.h menu.c 
                         menu.h module_includes.h options.c terminal.c 
                         text.c update_manager.c updated.c 
                         updated_options.c 
        libantiright   : Makefile library.h macros.h util.c util.h 
Added files:
        gtkshell       : pane.c pane.h 
        libantiright   : arguments.c arguments.h 

Log message:
        Continued refactoring such to make functions easier to read yet not
        increase function call overhead.  Separated paned container setup
        functions.  

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/Makefile?cvsroot=antiright&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/about_dialog.c?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.c?cvsroot=antiright&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/arguments.c?cvsroot=antiright&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.c?cvsroot=antiright&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/callbacks.h?cvsroot=antiright&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/dialog_options.c?cvsroot=antiright&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/dragdrop.c?cvsroot=antiright&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/file_dialog.c?cvsroot=antiright&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_util.c?cvsroot=antiright&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/init.c?cvsroot=antiright&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/init.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/menu.c?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/menu.h?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/module_includes.h?cvsroot=antiright&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.c?cvsroot=antiright&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.c?cvsroot=antiright&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/update_manager.c?cvsroot=antiright&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.c?cvsroot=antiright&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_options.c?cvsroot=antiright&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/pane.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/pane.h?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/Makefile?cvsroot=antiright&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/library.h?cvsroot=antiright&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/macros.h?cvsroot=antiright&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/util.c?cvsroot=antiright&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/util.h?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/arguments.c?cvsroot=antiright&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/arguments.h?cvsroot=antiright&rev=1.1

Patches:
Index: gtkshell/Makefile
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/Makefile,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- gtkshell/Makefile   3 May 2007 03:42:31 -0000       1.25
+++ gtkshell/Makefile   10 May 2007 00:08:28 -0000      1.26
@@ -38,7 +38,7 @@
        file_dialog.o row.o containers.o geometry.o font.o dragdrop.o\
        image_button.o terminal.o terminal_options.o menu.o updated.o\
        guidl_util.o about_dialog.o init.o guidl_dialog.o guidl_dictionary.o\
-       guidl_options.o guidl_widgets.o update_manager.o
+       guidl_options.o guidl_widgets.o update_manager.o pane.o
 
 program=main.o 
 

Index: gtkshell/about_dialog.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/about_dialog.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- gtkshell/about_dialog.c     9 May 2007 20:00:56 -0000       1.4
+++ gtkshell/about_dialog.c     10 May 2007 00:08:28 -0000      1.5
@@ -38,19 +38,28 @@
        gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors);\
 }
 
+#define SET_WEBSITE(dialog)\
+       gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), GSH_WEBSITE);
+
+#define SET_COMMENTS(dialog)\
+       gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), GSH_COMMENTS);  
+
+#define SET_COPYRIGHT(dialog)\
+       gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),\
+               GSH_COPYRIGHT);
+
+#define SET_VERSION(dialog)\
+       gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), PACKAGE_STRING);
+
 static GtkWidget *
 setup_about_fields(GtkWidget * dialog)
 {
        SETUP_AUTHORS_FIELD(dialog);
-       gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog),
-               PACKAGE_STRING);
-       gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog),
-               GSH_COPYRIGHT);
-       gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog),
-               GSH_WEBSITE);
        setup_about_license(dialog);
-       gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog),
-               GSH_COMMENTS);  
+       SET_WEBSITE(dialog);
+       SET_COMMENTS(dialog);
+       SET_COPYRIGHT(dialog);
+       SET_VERSION(dialog);
 
        return dialog;
 }

Index: gtkshell/add_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/add_options.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- gtkshell/add_options.c      9 May 2007 19:53:37 -0000       1.30
+++ gtkshell/add_options.c      10 May 2007 00:08:28 -0000      1.31
@@ -41,12 +41,11 @@
 #define GENERIC_COMMANDED_ADD(gsh, command, add)\
        GENERIC_FILE_CONTENTS(gsh, add, antiright_pipe_read(command))
 
-static void
-add_new_window(struct GSH * gsh)
-{
-       $(gsh, add.window);
-       gsh->rows->current=1;
-       $(gsh, init);
+#define ADD_NEW_WINDOW(gsh)\
+{\
+       $(gsh, add.window);\
+       gsh->rows->current=1;\
+       $(gsh, init);\
 }
 
 #define ADD_SEPARATOR(gsh) \
@@ -74,56 +73,6 @@
        }
 }
 
-static void
-reparent(GtkWidget * widget, GtkWidget * old, GtkWidget * new)
-{
-       gtk_widget_ref(widget);
-       gtk_container_remove(GTK_CONTAINER(old), widget);
-       gtk_container_add(GTK_CONTAINER(new), widget);
-       gtk_widget_unref(widget);
-}
-
-#define REPARENT_TO(new) reparent(gsh->rows->v, gsh->rows->h, new)
-
-static void
-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);
-}
-
-static void
-setup_second_pane_half(struct GSH * gsh, gchar ** pair, GtkWidget * pane)
-{
-       GtkWidget * second;
-
-       gtk_widget_show(second=gtk_frame_new(pair[1]));
-       g_strfreev(pair);
-       REPARENT_TO(second);
-       gtk_paned_add2(GTK_PANED(pane), second);
-}
-
-static void
-setup_hpaned(struct GSH * gsh, const gchar * label_pair)
-{
-       GtkWidget * pane;
-       gchar **pair;
-               
-       pair=g_strsplit(label_pair, ",", 2);
-       pane=gtk_hpaned_new();
-       setup_first_pane_half(gsh, (const gchar **)pair, pane);
-       /* PAIR freed here.  */
-       setup_second_pane_half(gsh, pair, pane);
-}
-
 void
 gsh_handle_add_arguments(struct GSH * gsh, int argc, char **argv, int *counter)
 {
@@ -132,7 +81,7 @@
        {
        case 'b':
                GSH_COUNT(argc, counter);
-               setup_hpaned(gsh, argv[*counter]);
+               gsh_setup_hpaned(gsh, argv[*counter]);
                break;
        case 'c':
                handle_commanded_add_arguments(gsh, argc, argv, counter);
@@ -184,7 +133,7 @@
                break;
 
        case 'w':
-               add_new_window(gsh);
+               ADD_NEW_WINDOW(gsh);
                break;
 
        default:

Index: gtkshell/arguments.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/arguments.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- gtkshell/arguments.c        5 May 2007 23:38:07 -0000       1.23
+++ gtkshell/arguments.c        10 May 2007 00:08:28 -0000      1.24
@@ -32,7 +32,8 @@
 
        tokens=g_strsplit(string, "::", SPLIT_ALL);
        /* Determine if the button is a regular button or a menu button.  */
-       tokens[1] ? menubutton_parse(gsh, tokens) : $(gsh, add.button, string);
+       tokens[1] ? gsh_menubutton_parse(gsh, tokens) 
+               : $(gsh, add.button, string);
        g_strfreev(tokens);
 }
 
@@ -41,7 +42,6 @@
 button_parse(struct GSH * gsh, const gchar * string)
 {
        gchar **menubar_tokens;
-       guint i;
 
        /* 
           This allows a group of buttons and menu buttons to be specified
@@ -52,8 +52,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]);
+       }
        g_strfreev(menubar_tokens);
 }
 

Index: gtkshell/callbacks.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/callbacks.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- gtkshell/callbacks.c        9 May 2007 16:13:49 -0000       1.24
+++ gtkshell/callbacks.c        10 May 2007 00:08:28 -0000      1.25
@@ -29,18 +29,6 @@
        g_free(cb);
 }
 
-
-
-static void
-gsh_test_exit(struct GSH * gsh)
-{
-#ifdef DEBUG
-       ARPASSERT(gsh);
-#endif /* DEBUG */
-       if (GSH_FLAG(GSH_CBEXIT))
-               gtk_main_quit();
-}
-
 static void
 terminal_feed(gchar * command, GtkWidget * terminal)
 {
@@ -106,7 +94,7 @@
                struct GSHCBData *cb = data;
                if(!test_special_command(cb))
                        (void) antiright_system(cb->data);
-               (void) gsh_test_exit(cb->gsh);
+               GSH_TEST_EXIT(cb->gsh);
        }
 }
 
@@ -134,36 +122,54 @@
        ARPASSERT(data);
 #endif /* DEBUG */
 
+       /* Convert to dereferencable form.  */
        cb = (struct GSHCBData *) data;
 
        {
                GtkWidget * combo_box;
-               const gchar *input;     /* Must not be freed.  */
-               
+               /* INPUT must not be freed, as 
+                  it is internal to the widget.   */
+               const gchar *input;     
+               /* Get widget from which to retrieve text.  */
                combo_box=gtk_widget_get_ancestor(widget, GTK_TYPE_COMBO_BOX);
+               /* Get the text from the widget.  */
                input = gtk_combo_box_get_active_text(
                                GTK_COMBO_BOX(combo_box));
 #ifdef DEBUG
+               /* Check return value INPUT.  */
                ARPASSERT(input);
 #endif /* DEBUG */
                exec_and_test_print(cb, input);
-               gsh_test_exit(cb->gsh);
+               /* Determine whether or not to exit 
+                  because of this callback.  */
+               GSH_TEST_EXIT(cb->gsh);
+               /* Add retrieved text to combo box popup list.  */
                gtk_combo_box_prepend_text(GTK_COMBO_BOX(combo_box),
                                                   (gchar *)input);
        }
 }
 
+/* Assign the function pointers for GSHCBData's methods.  */
+#define ASSIGN_METHODS(cb)\
+{\
+       cb->delete=&gsh_delete_GSHCBData;\
+       cb->entry=&gsh_entry_cb;\
+       cb->system=&gsh_system_cb;\
+}
+
+/* GSHCBData Constructor */
 struct GSHCBData *
 gsh_new_GSHCBData(struct GSH * gsh, gpointer data)
 {
        struct GSHCBData * cb;
 
+       /* Allocate.  */
        cb = xmalloc(sizeof(struct GSHCBData));
+       /* Store constructor arguments.  */
        cb->gsh=gsh;
        cb->data=data;
-       cb->delete=&gsh_delete_GSHCBData;
-       cb->entry=&gsh_entry_cb;
-       cb->system=&gsh_system_cb;
+       /* Set up methods.  */
+       ASSIGN_METHODS(cb);
 
        return cb;
 }

Index: gtkshell/callbacks.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/callbacks.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- gtkshell/callbacks.h        8 May 2007 20:40:07 -0000       1.9
+++ gtkshell/callbacks.h        10 May 2007 00:08:28 -0000      1.10
@@ -35,4 +35,11 @@
 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();\
+}
+
 #endif /* not GSH_CALLBACKS_H */

Index: gtkshell/dialog_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/dialog_options.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- gtkshell/dialog_options.c   9 May 2007 20:00:56 -0000       1.18
+++ gtkshell/dialog_options.c   10 May 2007 00:08:28 -0000      1.19
@@ -36,14 +36,9 @@
 static void
 gsh_message_dialog(struct GSH * gsh, GtkMessageType type, char *text)
 {
-       GtkWidget *dialog;
-
-       dialog = gtk_message_dialog_new(GTK_WINDOW(gsh->widgets.window),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       type,
-                                       GTK_BUTTONS_CLOSE,
-                                       (gchar *) text);
-       gtk_dialog_run(GTK_DIALOG(dialog));
+       gtk_dialog_run(GTK_DIALOG(gtk_message_dialog_new(GTK_WINDOW(
+               gsh->widgets.window), GTK_DIALOG_DESTROY_WITH_PARENT, type,
+               GTK_BUTTONS_CLOSE, (gchar *) text)));
 
        exit(0);
 }
@@ -85,11 +80,8 @@
 {
        GdkColor color;
 
-       gtk_color_selection_get_current_color(
-                       GTK_COLOR_SELECTION(
-                               GTK_COLOR_SELECTION_DIALOG(dialog)
-                               ->colorsel),
-                       &color);
+       gtk_color_selection_get_current_color( GTK_COLOR_SELECTION(
+               GTK_COLOR_SELECTION_DIALOG(dialog)->colorsel), &color);
        g_print("#%x%x%x\n", color.red, color.green, color.blue);
 }
 
@@ -111,7 +103,9 @@
                            int *counter)
 {
        g_assert(strlen(argv[(*counter)]) > 2);
+#ifdef DEBUG
        ARPASSERT(gsh);
+#endif /* DEBUG */
 
        switch (argv[(*counter)][2])
        {

Index: gtkshell/dragdrop.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/dragdrop.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- gtkshell/dragdrop.c 9 May 2007 16:13:49 -0000       1.11
+++ gtkshell/dragdrop.c 10 May 2007 00:08:28 -0000      1.12
@@ -60,12 +60,11 @@
 #define DND_SIGNAL(sig, func) \
        (void) g_signal_connect(widget, sig, G_CALLBACK(func), NULL)
 
-static void
-setup_drag_drop_signals(GtkWidget * widget)
-{
-       DND_SIGNAL("drag-data-received", drag_received);
-       DND_SIGNAL("drag-drop", drag_drop);
-       DND_SIGNAL("drag-data-get", drag_data_get);
+#define SETUP_DRAG_DROP_SIGNALS(widget)\
+{\
+       DND_SIGNAL("drag-data-received", drag_received);\
+       DND_SIGNAL("drag-drop", drag_drop);\
+       DND_SIGNAL("drag-data-get", drag_data_get);\
 }
 
 void
@@ -78,7 +77,7 @@
        gtk_drag_source_set(widget, GDK_BUTTON1_MASK, target_list, n_targets,
                            GDK_ACTION_COPY);
 
-       setup_drag_drop_signals(widget);
+       SETUP_DRAG_DROP_SIGNALS(widget);
 
        if (GSH_FLAG(GSH_CBEXIT))
                DND_SIGNAL("drag-end", gtk_main_quit);

Index: gtkshell/file_dialog.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/file_dialog.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- gtkshell/file_dialog.c      9 May 2007 20:00:56 -0000       1.7
+++ gtkshell/file_dialog.c      10 May 2007 00:08:28 -0000      1.8
@@ -21,6 +21,15 @@
 */
 #include "gtkshell.h"
 
+static void
+file_dialog_submit(GtkWidget * dialog)
+{
+       gchar *name;
+
+       name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+       g_print("%s\n", name);
+       g_free(name);
+}
 
 /* Taken from the GTK+ Reference Manual */
 void
@@ -33,13 +42,7 @@
                GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
 
        if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
-       {
-               gchar *name;
-
-               name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
-               g_print("%s\n", name);
-               g_free(name);
-       }
+               file_dialog_submit(dialog);
 
        exit(0);
 }

Index: gtkshell/gtkshell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- gtkshell/gtkshell.c 9 May 2007 19:53:37 -0000       1.36
+++ gtkshell/gtkshell.c 10 May 2007 00:08:28 -0000      1.37
@@ -37,29 +37,21 @@
        GSH_FREE_IF(gsh->geometry);
 }
 
-static GtkWidget *
-gsh_GSH_new_window(struct GSH * gsh)
-{
-       return gsh->widgets.window=gsh_create_main_window();
-}
-
-static void
-setup_add_methods(struct GSH * gsh)
-{
-       gsh->add.window=&gsh_GSH_new_window;
-       gsh->add.button=&gsh_add_button;
-       gsh->add.label=&gsh_add_label;
+#define SETUP_ADD_METHODS(gsh)\
+{\
+       gsh->add.window=&gsh_GSH_add_window;\
+       gsh->add.button=&gsh_add_button;\
+       gsh->add.label=&gsh_add_label;\
 }
 
-static void
-setup_methods(struct 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);
+#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) \
@@ -98,7 +90,7 @@
 #define SETUP_GSH(gsh) \
 {\
        SETUP_CHILD_CLASSES(gsh);\
-       setup_methods(gsh);\
+       SETUP_METHODS(gsh);\
        SETUP_MEMBER_FIELDS(gsh);\
        $(gsh, add.window);\
 }

Index: gtkshell/guidl_util.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_util.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- gtkshell/guidl_util.c       9 May 2007 19:53:37 -0000       1.17
+++ gtkshell/guidl_util.c       10 May 2007 00:08:28 -0000      1.18
@@ -24,14 +24,37 @@
 
 struct GDLEnvironment * gsh_guidl_env=NULL;
 
+#define EDEL(member) ARDELETE(env->member)
+
 static void
 gsh_delete_GDLEnvironment(struct GDLEnvironment * env)
 {
 #ifdef DEBUG
        ARPASSERT(env);
 #endif /* DEBUG */
-       $(env->dictionaries, delete);
-       $(env->args, delete);
+       EDEL(dictionaries);
+       EDEL(args);
+}
+
+#define APPEND_SWITCH(env, swtiches) $(env->args, add, switches)
+
+/* A command base argument (for command line 
+   switch translation) is required.  */        
+#define IF_SWITCHES_ADD(env, switches)\
+{\
+       if(switches)\
+               APPEND_SWITCH(env, switches);\
+       else\
+               return;\
+}
+
+#define ADD_ARGUMENT_IF_GIVEN(env, argument)\
+{\
+       if(argument)\
+       {\
+               APPEND_SWITCH(env, argument);\
+               g_free(argument);\
+       }\
 }
 
 static void
@@ -41,17 +64,8 @@
 #ifdef DEBUG
        ARPASSERT(switches);
 #endif /* DEBUG */
-       /* A command base argument (for command line 
-          switch translation) is required.  */ 
-       if(switches)
-               $(env->args, add, switches);
-       else
-               return;
-       if(argument)
-       {       
-               $(env->args, add, argument);
-               g_free(argument);
-       }
+       IF_SWITCHES_ADD(env, switches);
+       ADD_ARGUMENT_IF_GIVEN(env, argument);
 }
 
 #define CONSTRUCT_MEMBER_CLASSES(env)\

Index: gtkshell/init.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/init.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gtkshell/init.c     9 May 2007 20:00:56 -0000       1.8
+++ gtkshell/init.c     10 May 2007 00:08:28 -0000      1.9
@@ -34,11 +34,11 @@
        
 
 GtkWidget *
-gsh_create_main_window()
+gsh_GSH_add_window(struct GSH * gsh)
 {
        GtkWidget *window;
 
-       window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+       window = gsh->widgets.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        SETUP_QUIT_SIGNALS(window);
        
        return window;

Index: gtkshell/init.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/init.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- gtkshell/init.h     3 May 2007 21:23:07 -0000       1.3
+++ gtkshell/init.h     10 May 2007 00:08:28 -0000      1.4
@@ -24,7 +24,7 @@
 #define GSH_INIT_H
 
 GtkWidget *
-gsh_create_main_window();
+gsh_GSH_add_window(struct GSH * gsh);
 
 void
 gsh_GSH_finalize(struct GSH * gsh);

Index: gtkshell/menu.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/menu.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- gtkshell/menu.c     9 May 2007 19:53:37 -0000       1.10
+++ gtkshell/menu.c     10 May 2007 00:08:28 -0000      1.11
@@ -86,11 +86,10 @@
        CONT_ADD(status_frame, GW.status_bar);
 }
 
-static void
-setup_app_mode_frame(struct GSH * gsh)
-{
-       SHOW_CREAT(GW.app_frame, frame, NULL);
-       CONT_ADD(GW.app_row, GW.app_frame);
+#define SETUP_APP_MODE_FRAME(gsh)\
+{\
+       SHOW_CREAT(GW.app_frame, frame, NULL);\
+       CONT_ADD(GW.app_row, GW.app_frame);\
 }
 
 static void
@@ -99,7 +98,7 @@
        SHOW_CREAT(GW.app_row, vbox, FALSE, 1);
        /* Add menu bar to application column.  */
        CONT_ADD(GW.app_row, GW.menu_bar);
-       setup_app_mode_frame(gsh);
+       SETUP_APP_MODE_FRAME(gsh);
        setup_app_mode_status_bar(gsh);
 }
 
@@ -138,7 +137,7 @@
 }
 
 void
-menubutton_parse(struct GSH * gsh, gchar **tokens)
+gsh_menubutton_parse(struct GSH * gsh, gchar **tokens)
 {
        GtkWidget * menu;
 

Index: gtkshell/menu.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/menu.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gtkshell/menu.h     6 Apr 2007 15:05:28 -0000       1.1
+++ gtkshell/menu.h     10 May 2007 00:08:28 -0000      1.2
@@ -25,6 +25,6 @@
 #define GSH_MENU_H
 
 void
-menubutton_parse(struct GSH * gsh, gchar **tokens);
+gsh_menubutton_parse(struct GSH * gsh, gchar **tokens);
 
 #endif /* GSH_MENU_H */

Index: gtkshell/module_includes.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/module_includes.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- gtkshell/module_includes.h  5 May 2007 23:38:07 -0000       1.1
+++ gtkshell/module_includes.h  10 May 2007 00:08:28 -0000      1.2
@@ -53,5 +53,6 @@
 #include "guidl_options.h"
 #include "guidl_widgets.h"
 #include "update_manager.h"
+#include "pane.h"
 
 #endif /* not GSH_MODULE_INCLUDES_H */

Index: gtkshell/options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/options.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- gtkshell/options.c  9 May 2007 19:53:37 -0000       1.23
+++ gtkshell/options.c  10 May 2007 00:08:28 -0000      1.24
@@ -36,18 +36,27 @@
 }
 #endif /* DEBUG */
 
-static void
-common_guidl_handler(struct GSH * gsh)
-{
-       if(gsh_guidl_env == NULL)
-               gsh_guidl_env=ARNEW(gsh, GDLEnvironment);
 
-       /* Determine whether or not to include an initial
+/* Determine whether or not to include an initial
           dummy argument.  Needed as argv[0] is skipped
           by the command line handling code. */
-       if(!GSH_FLAG(GSH_GUIDL_NO_DUMMY))
-               $(gsh_guidl_env->args, add, (const gchar *)"guidl");
+#define TEST_DUMMY(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
+common_guidl_handler(struct GSH * gsh)
+{
+       CHECK_GSH_GUIDL_ENV(gsh);
+       TEST_DUMMY(gsh);
        yyparse();
 #ifdef DEBUG
        print_arguments(gsh_guidl_env->args->argc, gsh_guidl_env->args->argv);
@@ -67,6 +76,9 @@
        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)
@@ -75,17 +87,17 @@
        switch (argv[*counter][1])
        {
        case 'a':
-               gsh_handle_add_arguments(gsh, argc, argv, counter);
+               HANDLE(add);
                break;
        case 'd':
-               gsh_handle_dialog_arguments(gsh, argc, argv, counter);
+               HANDLE(dialog);
                break;
        case 'f':
                GSH_COUNT(argc, counter);
                GUIDL_HANDLER_FOR_FILE(gsh, argv[*counter]);
                break;
        case 'o':
-               gsh_handle_option_arguments(gsh, argc, argv, counter);
+               HANDLE(option);
                break;
        case 't': /* test area.  */
                break;

Index: gtkshell/terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- gtkshell/terminal.c 9 May 2007 19:53:37 -0000       1.15
+++ gtkshell/terminal.c 10 May 2007 00:08:28 -0000      1.16
@@ -22,27 +22,50 @@
 
 #include "gtkshell.h"
 
-static void
-gsh_set_terminal_options(struct GSH_Terminal * term)
-{
-       vte_terminal_set_size(VTE_TERMINAL(term->widget), 
-               term->width, term->height);
-       vte_terminal_set_allow_bold(VTE_TERMINAL(term->widget), TRUE);
-       vte_terminal_set_backspace_binding(VTE_TERMINAL(term->widget),
-               VTE_ERASE_ASCII_BACKSPACE);
-       gsh_widget_set_font(term->widget, term->font);
-       vte_terminal_set_background_transparent(VTE_TERMINAL(term->widget), 
-               TRUE);
+#define VSET(element, widget, ...)\
+       vte_terminal_set_##element(VTE_TERMINAL(widget), __VA_ARGS__)
+
+#define GT term
+
+#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
 gsh_terminal_run(struct GSH_Terminal * term, const gchar * command)
 {
+       /* Set up line and column counts so that VI has correct display
+          in IDE terminal.  */
+       gchar * height;
+       gchar * width;
+       /* Use format of a shell export statement.  */
+       ar_asprintf(&height, "LINES=%d", term->height);
+       ar_asprintf(&width, "COLUMNS=%d", term->width);
+       {
+               /* Null terminated list of environment elements.  */
+               const gchar *envv[] = {height, width, NULL};
+               /* Determine which shell to use.  */
        const gchar * shell = getenv("SHELL");
+               /* Null terminated list of program arguments.  Use
+                  the shell as a command processor, such to avoid
+                  handling argument separation here.  */
        const gchar *argv[] = { shell, "-c", command, NULL };
 
+               /* Start the command in the terminal.  */
        vte_terminal_fork_command(VTE_TERMINAL(term->widget), shell, 
-               (char **)argv, NULL, NULL, TRUE, TRUE, TRUE);
+                       (char **)argv, (char **)envv, NULL, TRUE, TRUE, TRUE);
+       }
+       /* Free after use.  */
+       g_free(height);
+       g_free(width);
 }
 
 static void
@@ -61,20 +84,30 @@
        /* 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);
-       gsh_set_terminal_options(term);
+       SET_TERMINAL_OPTIONS(term);
        gsh_terminal_run(term, command);
 
        return term->widget;
 }
 
-#define SETUP_GSH_TERMINAL(term) \
+#define ASSIGN_METHODS(term)\
+{\
+       term->delete=&gsh_delete_GSH_Terminal;\
+       term->add=&gsh_GSH_Terminal_add;\
+}
+
+#define INITIALIZE_FIELDS(term)\
 {\
        term->widget=NULL;\
        term->font=NULL;\
        term->width=80;\
        term->height=24;\
-       term->delete=&gsh_delete_GSH_Terminal;\
-       term->add=&gsh_GSH_Terminal_add;\
+}
+
+#define SETUP_GSH_TERMINAL(term) \
+{\
+       INITIALIZE_FIELDS(term);\
+       ASSIGN_METHODS(term);\
 }
 
 struct GSH_Terminal *

Index: gtkshell/text.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/text.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- gtkshell/text.c     9 May 2007 19:53:37 -0000       1.26
+++ gtkshell/text.c     10 May 2007 00:08:28 -0000      1.27
@@ -35,18 +35,24 @@
        ADD_ENTRY(widget, "ACE");\
 }
 
+#ifdef DEBUG
+#define VALIDATE_ENTRY_PARAMETERS(gsh, entry, command)\
+{\
+       ARPASSERT(gsh);\
+       ARPASSERT(entry);\
+       ARPASSERT(command);\
+}
+#else /* not DEBUG */
+#define VALIDATE_ENTRY_PARAMETERS(gsh, entry, command) /* undefined */
+#endif /* DEBUG */
+
 static void
 setup_entry_cb(struct GSH * gsh, GtkWidget * entry, const gchar * command)
 {
 
        struct GSHCBData * cb;
 
-#ifdef DEBUG
-       /* Validate parameters.  */
-       ARPASSERT(gsh);
-       ARPASSERT(entry);
-       ARPASSERT(command);
-#endif /* DEBUG */
+       VALIDATE_ENTRY_PARAMETERS(gsh, entry, command);
        cb=ARNEW(gsh, GSHCBData, gsh, (gpointer)(command ? command : "echo"));
        g_signal_connect(G_OBJECT(gtk_bin_get_child(GTK_BIN(entry))), 
                "activate", G_CALLBACK(cb->entry), (gpointer)cb);
@@ -70,36 +76,55 @@
        return entry;
 }
 
+#define SET_WRAP_MODE(text)\
+       gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD)
+
+#define SET_MONOSPACED_FONT(text)\
+       gsh_widget_set_font(text, NULL)
+
+#define SET_OPTIONS(text)\
+{\
+       SET_WRAP_MODE(text);\
+       SET_MONOSPACED_FONT(text);\
+}
+
+
 GtkWidget *
 gsh_text_area(struct GSH * gsh)
 {
        GtkWidget *text;
 
-       gtk_text_view_set_wrap_mode(
-               GTK_TEXT_VIEW(gsh->editor.widget=text=gtk_text_view_new()), 
-               GTK_WRAP_WORD);
-       gsh_manage(gsh, text);
-       gsh_widget_set_font(text, NULL);
+       $(gsh, manage, gsh->editor.widget=text=gtk_text_view_new());
+       SET_OPTIONS(text);
 
        return text;
 }
 
+#define CHECK_GEOMETRY(gsh)\
+{\
+       ARIFNP(gsh->geometry)\
+               gsh->geometry=g_strdup("775x700");\
+}
+
+#ifdef DEBUG
+#define VALIDATE_TEXT_EDITOR_PARAMETERS(gsh, filename)\
+{\
+       ARPASSERT(gsh);\
+       ARPASSERT(filename);\
+}
+#else /* not DEBUG */
+#define VALIDATE_TEXT_EDITOR_PARAMETERS(gsh, filename) /* undefined */
+#endif /* DEBUG */
 
 /* This is currently just a text file viewer.  */
 void
 gsh_text_editor(struct GSH * gsh, const gchar *filename)
 {
-#ifdef DEBUG
-       ARPASSERT(gsh);
-       ARPASSERT(filename);
-#endif /* DEBUG */
-       {
                gchar * text;
 
-               GSH_TEXT_AREA_SET_TEXT(gsh_text_area(gsh), 
-                       text=antiright_read_named_file(filename));
+       VALIDATE_TEXT_EDITOR_PARAMETERS(gsh, filename);
+       text=antiright_read_named_file(filename);
+       GSH_TEXT_AREA_SET_TEXT(gsh_text_area(gsh), text);
                g_free(text);
-       }
-       ARIFNP(gsh->geometry)
-               gsh->geometry=g_strdup("775x700");
+       CHECK_GEOMETRY(gsh);
 }

Index: gtkshell/update_manager.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/update_manager.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- gtkshell/update_manager.c   9 May 2007 20:00:56 -0000       1.2
+++ gtkshell/update_manager.c   10 May 2007 00:08:28 -0000      1.3
@@ -130,17 +130,25 @@
        g_free(updaters);
 }
 
-static void
-gsh_setup_GSHUpdateManager(struct GSHUpdateManager * update)
-{
-       /* Setup member data fields.  */
-       update->period = 1000;
-       /* Pointer must have not previously been used.  */
-       update->list = (GSList *) NULL;
-       /* Setup method function pointer assignments.  */
-       update->delete=&gsh_delete_GSHUpdateManager;
-       update->add=&gsh_GSHUpdateManager_add;
-       update->start=&gsh_GSHUpdateManager_start;
+/* Setup method function pointer assignments.  */
+#define ASSIGN_METHODS(update)\
+{\
+       update->delete=&gsh_delete_GSHUpdateManager;\
+       update->add=&gsh_GSHUpdateManager_add;\
+       update->start=&gsh_GSHUpdateManager_start;\
+}
+
+/* Setup member data fields.  */
+#define INITIALIZE_FIELDS(update)\
+{\
+       update->period = 1000;\
+       update->list = (GSList *) NULL;\
+}
+
+#define SETUP_GSHUPDATEMANAGER(update)\
+{\
+       ASSIGN_METHODS(update);\
+       INITIALIZE_FIELDS(update);\
 }
 
 struct GSHUpdateManager *
@@ -149,7 +157,7 @@
        struct GSHUpdateManager * updater;
 
        updater=xmalloc(sizeof(struct GSHUpdateManager));
-       gsh_setup_GSHUpdateManager(updater);
+       SETUP_GSHUPDATEMANAGER(updater);
 
        return updater;
 }

Index: gtkshell/updated.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- gtkshell/updated.c  9 May 2007 17:20:53 -0000       1.16
+++ gtkshell/updated.c  10 May 2007 00:08:28 -0000      1.17
@@ -35,6 +35,13 @@
        item->function(item->command, item->widget);
 }
 
+/* Assign GSHUpdatedWidget class methods.  */
+#define ASSIGN_METHODS(updater)\
+{\
+       updater->update=&gsh_GSHUpdatedWidget_update;\
+       updater->delete=&gsh_delete_GSHUpdatedWidget;\
+}
+
 struct GSHUpdatedWidget *
 gsh_new_GSHUpdatedWidget(void (*function)(const gchar *, gpointer), 
        const gchar * command, GtkWidget * widget)
@@ -42,15 +49,13 @@
        struct GSHUpdatedWidget * updater;
 
        updater=xmalloc(sizeof(struct GSHUpdatedWidget));
+       ASSIGN_METHODS(updater);
        /* Assign widget-specific update information, specifically
         * the widget command, a pointer to the widget, and the widget's
         * updater function.  */
        updater->command=g_strdup(command);
        updater->widget=widget;
        updater->function=function;
-       /* Assign GSHUpdatedWidget class methods.  */
-       updater->update=&gsh_GSHUpdatedWidget_update;
-       updater->delete=&gsh_delete_GSHUpdatedWidget;
 
        return updater;
 }

Index: gtkshell/updated_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated_options.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- gtkshell/updated_options.c  9 May 2007 17:20:53 -0000       1.15
+++ gtkshell/updated_options.c  10 May 2007 00:08:28 -0000      1.16
@@ -22,39 +22,37 @@
 
 #include "gtkshell.h"
 
-#define GSH_TEST_UPDATING(gsh)\
+#define START_UPDATING(gsh)\
 {\
-       if(!(GSH_FLAG(GSH_UPDATING)))\
-       {\
                $(gsh->update, start);\
                 GSH_SET(GSH_UPDATING);\
+}
+
+#define TEST_UPDATING(gsh) \
+{\
+       if(!(GSH_FLAG(GSH_UPDATING)))\
+       {\
+               START_UPDATING(gsh);\
         }\
 }
 
-static void
-gsh_updater_argument_generic(struct GSH * gsh, int argc, int *counter)
-{
-#ifdef DEBUG
-       ARPASSERT(gsh);
-#endif /* DEBUG */
-       GSH_COUNT(argc, counter);
-       GSH_TEST_UPDATING(gsh);
+#define GENERIC_ARGUMENT(gsh, argc, counter)\
+{\
+       GSH_COUNT(argc, counter);\
+       TEST_UPDATING(gsh);\
 }
 
 static void
-add_updater(struct GSH * gsh, int argc, int * counter, char **argv,
+add_updater(struct GSH * gsh, int argc, int * counter, char ** argv,
                   void (*add_func)(struct GSH *, const gchar *))
 {
-#ifdef DEBUG
-       ARBUG("add_updater()");
-       ARPASSERT(gsh);
-       ARPASSERT(add_func);
-#endif /* DEBUG */
-
-       (*add_func)(gsh, (const gchar *)argv[*counter+1]);
-       gsh_updater_argument_generic(gsh, argc, counter);
+       add_func(gsh, (const gchar *)argv[*counter+1]);
+       GENERIC_ARGUMENT(gsh, argc, counter);
 }
 
+#define UADD(type) \
+       add_updater(gsh, argc, counter, argv, &gsh_add_updated_##type)
+
 void
 gsh_handle_updated_arguments(struct GSH * gsh, int argc,
                             char **argv, int *counter)
@@ -66,13 +64,11 @@
        g_assert(strlen(argv[(*counter)]) > 2);
        switch (argv[(*counter)][3])
        {
-#define ADD_UPDATER(func)\
-               add_updater(gsh, argc, counter, argv, &func)
        case 'l':
-               ADD_UPDATER(gsh_add_updated_label);
+               UADD(label);
                break;
        case 'p':
-               ADD_UPDATER(gsh_add_updated_progress);
+               UADD(progress);
                break;
        }
 }

Index: libantiright/Makefile
===================================================================
RCS file: /sources/antiright/antiright/libantiright/Makefile,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libantiright/Makefile       27 Apr 2007 21:46:06 -0000      1.9
+++ libantiright/Makefile       10 May 2007 00:08:28 -0000      1.10
@@ -5,7 +5,7 @@
 
 all: libantiright.a
 
-objects=pipe.o string.o system.o util.o tuple.o 
+objects=pipe.o string.o system.o util.o tuple.o arguments.o
 
 libantiright.a: ${objects}
        ar rcs libantiright.a ${objects}

Index: libantiright/library.h
===================================================================
RCS file: /sources/antiright/antiright/libantiright/library.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- libantiright/library.h      27 Apr 2007 21:46:06 -0000      1.17
+++ libantiright/library.h      10 May 2007 00:08:28 -0000      1.18
@@ -35,6 +35,7 @@
 #include "system.h"
 #include "util.h"
 #include "tuple.h"
+#include "arguments.h"
 
 #include "macros.h"
 

Index: libantiright/macros.h
===================================================================
RCS file: /sources/antiright/antiright/libantiright/macros.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libantiright/macros.h       9 May 2007 19:53:37 -0000       1.6
+++ libantiright/macros.h       10 May 2007 00:08:28 -0000      1.7
@@ -83,5 +83,11 @@
 #define ARDELETE(class)\
        $(class, delete)
 
+#define ARINHERIT(parent, child, member)\
+       child->member=parent->member
+
+#define AROVERRIDE(parent, child, member)\
+       parent->member=child->member
+
 #endif /* not LIBAR_MACROS_H */
 

Index: libantiright/util.c
===================================================================
RCS file: /sources/antiright/antiright/libantiright/util.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- libantiright/util.c 3 May 2007 03:42:31 -0000       1.14
+++ libantiright/util.c 10 May 2007 00:08:28 -0000      1.15
@@ -34,71 +34,3 @@
        return (g_malloc(size));
 }
 
-static void
-ar_ARArguments_delete_contents(struct ARArguments * args)
-{
-       for(; args->argc>0; args->argc--)
-               g_free(args->argv[args->argc-1]);
-       g_free(args->argv);
-}
-
-static void
-ar_delete_ARArguments(struct ARArguments * args)
-{
-       ar_ARArguments_delete_contents(args);
-       g_free(args);
-}
-
-static void
-ar_ARArguments_add(struct ARArguments * this, const gchar * item)
-{
-       this->argc++;
-       this->argv=realloc(this->argv, sizeof(gchar*)*this->argc);
-       this->argv[this->argc-1]=g_strdup(item);
-}
-
-static void
-ar_ARArguments_add_as_first(struct ARArguments * this, const gchar * item)
-{
-       gchar * swap;
-
-       ar_ARArguments_add(this, item);
-       swap=this->argv[0];
-       this->argv[0]=this->argv[this->argc-1];
-       this->argv[this->argc-1]=swap;
-}
-
-static void
-ar_ARArguments_setup(struct ARArguments * args)
-{
-       args->argc=0;
-       args->argv=NULL;
-       args->add=&ar_ARArguments_add;
-       args->add_as_first=&ar_ARArguments_add_as_first;
-       args->delete=&ar_delete_ARArguments;
-}
-
-struct ARArguments *
-ar_new_ARArguments()
-{
-       struct ARArguments * args;
-
-       args=g_malloc(sizeof(struct ARArguments));
-       ar_ARArguments_setup(args);
-
-       return args;
-}
-
-/*
-void
-rand_seed()
-{
-       srandom((unsigned int) time(NULL));
-}
-
-int
-rand_ranged(int start, int finish)
-{
-       return random() % (finish - start) + start;
-}
-*/

Index: libantiright/util.h
===================================================================
RCS file: /sources/antiright/antiright/libantiright/util.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- libantiright/util.h 3 May 2007 03:42:31 -0000       1.10
+++ libantiright/util.h 10 May 2007 00:08:28 -0000      1.11
@@ -23,18 +23,6 @@
 #ifndef LIBAR_UTIL_H
 #define LIBAR_UTIL_H
 
-/* argument structure */
-struct ARArguments
-{
-       gchar ** argv;
-       gint argc;
-       void (*add)(struct ARArguments *, const gchar *);
-       void (*add_as_first)(struct ARArguments *, const gchar *);
-       void (*delete)(struct ARArguments *);
-};
-
-struct ARArguments *
-ar_new_ARArguments();
 
 /* Decimal bitmasks for boolean storage.  */
 #define ARB_0 1
@@ -51,11 +39,5 @@
 xmalloc(size_t size);
 
 #define UNUSED(arg) { arg = arg; }
-/*
-void
-rand_seed();
 
-int
-rand_ranged(int start, int finish);
-*/
 #endif

Index: gtkshell/pane.c
===================================================================
RCS file: gtkshell/pane.c
diff -N gtkshell/pane.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/pane.c     10 May 2007 00:08:28 -0000      1.1
@@ -0,0 +1,75 @@
+/*
+  AntiRight
+  (c) 2002-2007 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA  02110-1301  USA
+*/
+
+
+#include "gtkshell.h"
+
+static void
+reparent(GtkWidget * widget, GtkWidget * old, GtkWidget * new)
+{
+       gtk_widget_ref(widget);
+       gtk_container_remove(GTK_CONTAINER(old), widget);
+       gtk_container_add(GTK_CONTAINER(new), widget);
+       gtk_widget_unref(widget);
+}
+
+#define REPARENT_TO(new) reparent(gsh->rows->v, gsh->rows->h, new)
+
+static void
+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);
+}
+
+static void
+setup_second_pane_half(struct GSH * gsh, gchar ** pair, GtkWidget * pane)
+{
+       GtkWidget * second;
+
+       gtk_widget_show(second=gtk_frame_new(pair[1]));
+       g_strfreev(pair);
+       REPARENT_TO(second);
+       gtk_paned_add2(GTK_PANED(pane), second);
+}
+
+void
+gsh_setup_hpaned(struct GSH * gsh, const gchar * label_pair)
+{
+       GtkWidget * pane;
+       gchar **pair;
+               
+       pair=g_strsplit(label_pair, ",", 2);
+       pane=gtk_hpaned_new();
+       setup_first_pane_half(gsh, (const gchar **)pair, pane);
+       /* PAIR freed here.  */
+       setup_second_pane_half(gsh, pair, pane);
+}

Index: gtkshell/pane.h
===================================================================
RCS file: gtkshell/pane.h
diff -N gtkshell/pane.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gtkshell/pane.h     10 May 2007 00:08:28 -0000      1.1
@@ -0,0 +1,31 @@
+/*
+  AntiRight
+  (c) 2002-2007 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA  02110-1301  USA
+*/
+
+
+#ifndef GSH_PANE_H
+#define GSH_PANE_H
+
+void
+gsh_setup_hpaned(struct GSH * gsh, const gchar * label_pair);
+
+#endif /* not GSH_PANE_H */

Index: libantiright/arguments.c
===================================================================
RCS file: libantiright/arguments.c
diff -N libantiright/arguments.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libantiright/arguments.c    10 May 2007 00:08:28 -0000      1.1
@@ -0,0 +1,78 @@
+/*
+  AntiRight
+  (c) 2002-2005 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "library.h"
+
+static void
+ar_ARArguments_delete_contents(struct ARArguments * args)
+{
+       for(; args->argc>0; args->argc--)
+               g_free(args->argv[args->argc-1]);
+       g_free(args->argv);
+}
+
+static void
+ar_delete_ARArguments(struct ARArguments * args)
+{
+       ar_ARArguments_delete_contents(args);
+       g_free(args);
+}
+
+static void
+ar_ARArguments_add(struct ARArguments * this, const gchar * item)
+{
+       this->argc++;
+       this->argv=realloc(this->argv, sizeof(gchar*)*this->argc);
+       this->argv[this->argc-1]=g_strdup(item);
+}
+
+static void
+ar_ARArguments_add_as_first(struct ARArguments * this, const gchar * item)
+{
+       gchar * swap;
+
+       ar_ARArguments_add(this, item);
+       swap=this->argv[0];
+       this->argv[0]=this->argv[this->argc-1];
+       this->argv[this->argc-1]=swap;
+}
+
+static void
+ar_ARArguments_setup(struct ARArguments * args)
+{
+       args->argc=0;
+       args->argv=NULL;
+       args->add=&ar_ARArguments_add;
+       args->add_as_first=&ar_ARArguments_add_as_first;
+       args->delete=&ar_delete_ARArguments;
+}
+
+struct ARArguments *
+ar_new_ARArguments()
+{
+       struct ARArguments * args;
+
+       args=g_malloc(sizeof(struct ARArguments));
+       ar_ARArguments_setup(args);
+
+       return args;
+}

Index: libantiright/arguments.h
===================================================================
RCS file: libantiright/arguments.h
diff -N libantiright/arguments.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libantiright/arguments.h    10 May 2007 00:08:28 -0000      1.1
@@ -0,0 +1,42 @@
+/*
+  AntiRight
+  (c) 2002-2005 Jeffrey Bedard
+  address@hidden
+
+  This file is part of AntiRight.
+
+  AntiRight is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  AntiRight is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with AntiRight; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+
+
+#ifndef AR_ARGUMENTS_H
+#define AR_ARGUMENTS_H
+
+/* argument structure */
+struct ARArguments
+{
+       gchar ** argv;
+       gint argc;
+       void (*add)(struct ARArguments *, const gchar *);
+       void (*add_as_first)(struct ARArguments *, const gchar *);
+       void (*delete)(struct ARArguments *);
+};
+
+struct ARArguments *
+ar_new_ARArguments();
+
+#endif /* AR_ARGUMENTS_H */
+




reply via email to

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