summaryrefslogtreecommitdiff
path: root/src/yelp-base.c
diff options
context:
space:
mode:
authorMikael Hallendal <micke@codefactory.se>2001-12-10 05:27:42 +0000
committerMikael Hallendal <hallski@src.gnome.org>2001-12-10 05:27:42 +0000
commit80a80809210b1b834e6179d83a498e64a026b701 (patch)
tree7996e49b8399d7dceea9202d11b6982d6a800cb0 /src/yelp-base.c
parent78bcb93c83d699a8a87c04933c8b71c92d68499f (diff)
downloadyelp-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.c20
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;
}