diff options
author | Mikael Hallendal <micke@codefactory.se> | 2001-12-10 05:27:42 +0000 |
---|---|---|
committer | Mikael Hallendal <hallski@src.gnome.org> | 2001-12-10 05:27:42 +0000 |
commit | 80a80809210b1b834e6179d83a498e64a026b701 (patch) | |
tree | 7996e49b8399d7dceea9202d11b6982d6a800cb0 /src/yelp-base.c | |
parent | 78bcb93c83d699a8a87c04933c8b71c92d68499f (diff) | |
download | yelp-80a80809210b1b834e6179d83a498e64a026b701.tar.gz |
added signal for new window. (yw_new_window_cb): amit
2001-12-10 Mikael Hallendal <micke@codefactory.se>
* src/yelp-window.c (yw_class_init): added signal for new window.
(yw_new_window_cb): amit new_window_requested-signal
* src/yelp-base.c:
(yelp_base_new_window_cb): added, listens for new_window_requested
from windows.
(yelp_base_new_window): connect to signal in gtk-window.
* TODO (FEATURES): updated
Diffstat (limited to 'src/yelp-base.c')
-rw-r--r-- | src/yelp-base.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/yelp-base.c b/src/yelp-base.c index c252e624..4c00962d 100644 --- a/src/yelp-base.c +++ b/src/yelp-base.c @@ -32,6 +32,8 @@ typedef struct { static void yelp_base_init (YelpBase *base); static void yelp_base_class_init (YelpBaseClass *klass); +static void yelp_base_new_window_cb (YelpWindow *window, + YelpBase *base); struct _YelpBasePriv { GtkTreeStore *content_store; @@ -82,6 +84,19 @@ yelp_base_class_init (YelpBaseClass *klass) { } +static void +yelp_base_new_window_cb (YelpWindow *window, YelpBase *base) +{ + GtkWidget *new_window; + + g_return_if_fail (YELP_IS_WINDOW (window)); + g_return_if_fail (YELP_IS_BASE (base)); + + new_window = yelp_base_new_window (base); + + gtk_widget_show_all (new_window); +} + YelpBase * yelp_base_new (void) { @@ -102,7 +117,12 @@ yelp_base_new_window (YelpBase *base) g_return_val_if_fail (YELP_IS_BASE (base), NULL); + /* FIXME: Have the windows in a list */ window = yelp_window_new (GTK_TREE_MODEL (base->priv->content_store)); + g_signal_connect (window, "new_window_requested", + G_CALLBACK (yelp_base_new_window_cb), + base); + return window; } |