[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Antiright-devel] antiright/gtkshell button.c gtkshell.c image_bu...
From: |
Jeffrey Bedard |
Subject: |
[Antiright-devel] antiright/gtkshell button.c gtkshell.c image_bu... |
Date: |
Tue, 15 May 2007 17:59:35 +0000 |
CVSROOT: /sources/antiright
Module name: antiright
Changes by: Jeffrey Bedard <jefbed> 07/05/15 17:59:35
Modified files:
gtkshell : button.c gtkshell.c image_button.c init.c
macros.h menu.c terminal.c terminal_struct.h
Log message:
Added support for title and status bar updating driven by terminal.
Only add appropriate toolbuttons from menubar. Refactored button code.
Added a signal connection macro, GSHCONNECT, to macros.h. Store a
pointer
to GSH in GSH_Terminal.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/button.c?cvsroot=antiright&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/image_button.c?cvsroot=antiright&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/init.c?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/macros.h?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/menu.c?cvsroot=antiright&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal_struct.h?cvsroot=antiright&r1=1.6&r2=1.7
Patches:
Index: button.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/button.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- button.c 14 May 2007 20:23:22 -0000 1.42
+++ button.c 15 May 2007 17:59:34 -0000 1.43
@@ -70,23 +70,58 @@
}
static void
-setup_command_button(struct GSH * gsh, const gchar * command)
+common_button_setup(GSH * gsh, GtkWidget * button, const gchar * command)
{
- GtkWidget * button;
-
- setup_label(button=gsh->widgets.button, command);
gsh_setup_drag_drop(gsh, button);
setup_callback(gsh, button, command);
- if(GSH_FLAG(GSH_APP_MODE) && gsh->widgets.app.toolbar)
- {
+}
+
+static void
+setup_label_for_toolbutton(GtkWidget * toolbutton, const gchar * command)
+{
+ gchar * label_text;
+
+ label_text=antiright_beautified_label(command);
+ gtk_button_set_label(GTK_BUTTON(toolbutton), label_text);
+ g_free(label_text);
+}
+
+static void
+setup_toolbutton_from_command_button(GSH * gsh, const gchar * command)
+{
GtkWidget * toolbutton;
toolbutton=gtk_button_new_with_label(command);
- gsh_setup_drag_drop(gsh, toolbutton);
- setup_callback(gsh, toolbutton, command);
+ common_button_setup(gsh, toolbutton, command);
GSHCA(gsh->widgets.app.toolbar, toolbutton);
+ setup_label_for_toolbutton(toolbutton, command);
gtk_widget_show(toolbutton);
+}
+
+static void
+test_create_toolbutton(GSH * gsh, const gchar * command)
+{
+ if( GSH_FLAG(GSH_APP_MODE)
+ && gsh->widgets.app.toolbar
+ && GTK_IS_MENU_ITEM(gsh->widgets.button)
+ && strcmp(command, "File")
+ && strcmp(command, "Edit")
+ && strcmp(command, "View")
+ && strcmp(command, "Help")
+ && strcmp(command, "Tools"))
+ {
+ setup_toolbutton_from_command_button(gsh, command);
}
+}
+
+static void
+setup_command_button(struct GSH * gsh, const gchar * command)
+{
+ GtkWidget * button;
+
+ setup_label(button=gsh->widgets.button, command);
+ common_button_setup(gsh, button, command);
+ test_create_toolbutton(gsh, command);
if(GTK_IS_BUTTON(button))
gtk_button_set_alignment(GTK_BUTTON(button), 0.0, 0.5);
}
Index: gtkshell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- gtkshell.c 14 May 2007 20:23:22 -0000 1.40
+++ gtkshell.c 15 May 2007 17:59:34 -0000 1.41
@@ -63,7 +63,7 @@
{
gsh->update = ARNEW(gsh, GSHUpdateManager);
gsh->rows = ARNEW(gsh, GSHRows);
- gsh->terminal = ARNEW(gsh, GSH_Terminal);
+ gsh->terminal = ARNEW(gsh, GSH_Terminal, gsh);
}
Index: image_button.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/image_button.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- image_button.c 9 May 2007 19:53:37 -0000 1.16
+++ image_button.c 15 May 2007 17:59:34 -0000 1.17
@@ -23,15 +23,23 @@
#include "gtkshell.h"
static void
+set_up_containers_for_menu_item_row(GtkWidget * button, GtkWidget * hrow,
+ GtkWidget * label, GtkWidget * image)
+{
+ GSHCA(button, hrow);
+ GSHCA_TIGHT(hrow, image);
+ GSHCA(hrow, label);
+}
+
+static void
setup_row_for_menu_item_image(struct GSH * gsh, GtkWidget * label,
GtkWidget * image)
{
GtkWidget * hrow;
hrow=gtk_hbox_new(FALSE, 2);
- gtk_container_add(GTK_CONTAINER(gsh->widgets.button), hrow);
- gtk_box_pack_start(GTK_BOX(hrow), image, FALSE, FALSE, 0);
- gtk_container_add(GTK_CONTAINER(hrow), label);
+ set_up_containers_for_menu_item_row(gsh->widgets.button, hrow,
+ label, image);
gtk_widget_show(hrow);
}
@@ -48,11 +56,11 @@
gtk_widget_show(label);
}
-#define SET_BUTTON_IMAGE(gsh, image) \
-{\
- gtk_button_set_image(GTK_BUTTON(gsh->widgets.button), image);\
- gtk_button_set_relief(GTK_BUTTON(gsh->widgets.button),\
- GTK_RELIEF_NONE);\
+static void
+set_button_image(GtkWidget * button, GtkWidget * image)
+{
+ gtk_button_set_image(GTK_BUTTON(button), image);
+ gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
}
/* Get an image from the antiright icon distribution or the GTK stock
@@ -75,17 +83,20 @@
return image;
}
-#define GET_IMAGE(gsh, name) \
- g_file_test(name, G_FILE_TEST_EXISTS)\
- ? gtk_image_new_from_file(name)\
- : get_default_image(gsh, name)
+static GtkWidget *
+get_image(GSH * gsh, const gchar * name)
+{
+ return g_file_test(name, G_FILE_TEST_EXISTS)
+ ? gtk_image_new_from_file(name)
+ : get_default_image(gsh, name);
+}
void
gsh_image_button(struct GSH * gsh, char *command, char *name)
{
GtkWidget * image;
- image = GET_IMAGE(gsh, name);
+ image = get_image(gsh, name);
$(gsh, add.button, command);
ARIFP(image)
{
@@ -94,7 +105,7 @@
&& !GTK_IS_MENU_ITEM(gsh->rows->v)
&& !GTK_IS_MENU(gsh->rows->v))
{
- SET_BUTTON_IMAGE(gsh, image);
+ set_button_image(gsh->widgets.button, image);
}
else
set_menu_item_image(gsh, image);
Index: init.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/init.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- init.c 14 May 2007 20:23:22 -0000 1.10
+++ init.c 15 May 2007 17:59:34 -0000 1.11
@@ -42,7 +42,7 @@
GtkWidget *window;
window = gsh->widgets.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- setup_quit_signals(window);
+ setup_quit_signals(GTK_WINDOW(window));
return window;
}
Index: macros.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/macros.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- macros.h 14 May 2007 20:23:22 -0000 1.10
+++ macros.h 15 May 2007 17:59:35 -0000 1.11
@@ -61,5 +61,8 @@
#define GSH_SHOW_CREATE(var, type, ...)\
gtk_widget_show(var=gtk_##type##_new(__VA_ARGS__))
+#define GSHCONNECT(widget, signal, cb, cbdata)\
+ g_signal_connect(G_OBJECT(widget), signal, G_CALLBACK(cb), cbdata);
+
#endif /* not GSH_MACROS_H */
Index: menu.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/menu.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- menu.c 14 May 2007 20:23:23 -0000 1.14
+++ menu.c 15 May 2007 17:59:35 -0000 1.15
@@ -144,7 +144,7 @@
{
GtkWidget * menu;
- gtk_widget_show(menu=gtk_menu_new());
+ GSH_SHOW_CREATE(menu, menu);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(add_menu_launcher(gsh,
tokens[0])), menu);
add_menu_items(gsh, menu, tokens);
Index: terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- terminal.c 14 May 2007 18:06:35 -0000 1.18
+++ terminal.c 15 May 2007 17:59:35 -0000 1.19
@@ -86,13 +86,56 @@
* reference counting. */
}
+static void
+title_change_cb(VteTerminal * widget, gpointer data)
+{
+ struct GSHCBData * cb;
+ GSH * gsh;
+ GtkWindow * window;
+
+ cb=(struct GSHCBData *)data;
+ gsh=cb->gsh;
+ window=GTK_WINDOW(gsh->widgets.window);
+
+ gtk_window_set_title(window, vte_terminal_get_window_title(widget));
+}
+
+static void
+status_changed_cb(VteTerminal * widget, gpointer data)
+{
+ struct GSHCBData * cb;
+ GSH * gsh;
+ GtkWidget * status;
+
+ cb=(struct GSHCBData *)data;
+ gsh=cb->gsh;
+ if((status=gsh->widgets.app.status))
+ {
+ gtk_label_set_text(GTK_LABEL(status),
+ vte_terminal_get_status_line(widget));
+ }
+}
+
static GtkWidget *
gsh_GSH_Terminal_add(struct GSH_Terminal * term, const gchar * command)
{
+ GtkWidget * widget;
+ GSH * gsh;
+
+ gsh=(GSH *)term->gsh;
/* Create and set properties of the VTE-based terminal. */
/* Exit from the application if the terminal process dies. */
- g_signal_connect(G_OBJECT(term->widget=vte_terminal_new()),
+ g_signal_connect(G_OBJECT(widget=term->widget=vte_terminal_new()),
"child-exited", G_CALLBACK(gtk_main_quit), NULL);
+ {
+ struct GSHCBData * cb;
+
+ cb=ARNEW(gsh, GSHCBData, gsh, NULL);
+ GSHCONNECT(widget, "status-line-changed",
+ status_changed_cb, cb);
+ GSHCONNECT(widget, "window-title-changed",
+ title_change_cb, cb);
+ }
set_terminal_options(term);
gsh_terminal_run(term, command);
@@ -123,12 +166,13 @@
}
struct GSH_Terminal *
-gsh_new_GSH_Terminal()
+gsh_new_GSH_Terminal(GSH * gsh)
{
struct GSH_Terminal * term;
term=xmalloc(sizeof(struct GSH_Terminal));
setup_GSH_Terminal(term);
+ term->gsh = (gpointer)gsh;
return term;
}
Index: terminal_struct.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal_struct.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- terminal_struct.h 14 May 2007 18:06:35 -0000 1.6
+++ terminal_struct.h 15 May 2007 17:59:35 -0000 1.7
@@ -31,6 +31,7 @@
ARDimensions dimensions;
void (*delete)(struct GSH_Terminal *);
GtkWidget * (*add)(struct GSH_Terminal *, const gchar *);
+ gpointer gsh;
};
struct GSH_Terminal *
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Antiright-devel] antiright/gtkshell button.c gtkshell.c image_bu...,
Jeffrey Bedard <=