finch/libgnt/gntwindow.c

branch
release-2.1.0
changeset 18132
6a8cc9df9fdc
parent 18114
adb3cfadc125
parent 16779
006f50afb7a6
child 19859
71d37b57eff2
--- a/finch/libgnt/gntwindow.c	Thu Jun 07 14:48:33 2007 +0000
+++ b/finch/libgnt/gntwindow.c	Fri Jun 08 10:21:50 2007 +0000
@@ -27,9 +27,13 @@
 
 enum
 {
-	SIGS = 1,
+	SIG_WORKSPACE_HIDE,
+	SIG_WORKSPACE_SHOW,
+	SIGS,
 };
 
+static guint signals[SIGS] = { 0 };
+
 static GntBoxClass *parent_class = NULL;
 
 static void (*org_destroy)(GntWidget *widget);
@@ -64,6 +68,24 @@
 	org_destroy = wid_class->destroy;
 	wid_class->destroy = gnt_window_destroy;
 
+	signals[SIG_WORKSPACE_HIDE] =
+		g_signal_new("workspace-hidden",
+					 G_TYPE_FROM_CLASS(klass),
+					 G_SIGNAL_RUN_LAST,
+					 0,
+					 NULL, NULL,
+					 g_cclosure_marshal_VOID__VOID,
+					 G_TYPE_NONE, 0);
+
+	signals[SIG_WORKSPACE_SHOW] =
+		g_signal_new("workspace-shown",
+					 G_TYPE_FROM_CLASS(klass),
+					 G_SIGNAL_RUN_LAST,
+					 0,
+					 NULL, NULL,
+					 g_cclosure_marshal_VOID__VOID,
+					 G_TYPE_NONE, 0);
+
 	gnt_bindable_class_register_action(bindable, "show-menu", show_menu,
 				GNT_KEY_CTRL_O, NULL);
 	gnt_bindable_register_binding(bindable, "show-menu", GNT_KEY_F10, NULL);
@@ -131,6 +153,20 @@
 	return wid;
 }
 
+void
+gnt_window_workspace_hiding(GntWindow *window)
+{
+	if (window->menu)
+		gnt_widget_hide(GNT_WIDGET(window->menu));
+	g_signal_emit(window, signals[SIG_WORKSPACE_HIDE], 0);
+}
+
+void
+gnt_window_workspace_showing(GntWindow *window)
+{
+	g_signal_emit(window, signals[SIG_WORKSPACE_SHOW], 0);
+}
+
 void gnt_window_set_menu(GntWindow *window, GntMenu *menu)
 {
 	/* If a menu already existed, then destroy that first. */

mercurial