[Top][All Lists]
[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 */
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright gtkshell/Makefile gtkshell/about_dial...,
Jeffrey Bedard <=