]> Pileus Git - ~andy/gtk/commitdiff
A new demo.
authorMatthias Clasen <mclasen@redhat.com>
Wed, 21 Apr 2004 17:52:33 +0000 (17:52 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 21 Apr 2004 17:52:33 +0000 (17:52 +0000)
2004-04-21  Matthias Clasen  <mclasen@redhat.com>

* demos/gtk-demo/expander.c (do_expander): A new demo.

* demos/gtk-demo/Makefile.am (demos): Add expander.c.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
demos/gtk-demo/Makefile.am
demos/gtk-demo/expander.c [new file with mode: 0644]

index e14b21d80f6f8edc9bf6704832ff1e3cb195aad7..f92166f3e04d588f4fb309bf4476f0e6e5fe6f08 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * demos/gtk-demo/expander.c (do_expander): A new demo.
+
+       * demos/gtk-demo/Makefile.am (demos): Add expander.c.
+
 2004-04-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
index e14b21d80f6f8edc9bf6704832ff1e3cb195aad7..f92166f3e04d588f4fb309bf4476f0e6e5fe6f08 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * demos/gtk-demo/expander.c (do_expander): A new demo.
+
+       * demos/gtk-demo/Makefile.am (demos): Add expander.c.
+
 2004-04-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
index e14b21d80f6f8edc9bf6704832ff1e3cb195aad7..f92166f3e04d588f4fb309bf4476f0e6e5fe6f08 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * demos/gtk-demo/expander.c (do_expander): A new demo.
+
+       * demos/gtk-demo/Makefile.am (demos): Add expander.c.
+
 2004-04-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
index e14b21d80f6f8edc9bf6704832ff1e3cb195aad7..f92166f3e04d588f4fb309bf4476f0e6e5fe6f08 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * demos/gtk-demo/expander.c (do_expander): A new demo.
+
+       * demos/gtk-demo/Makefile.am (demos): Add expander.c.
+
 2004-04-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
index e14b21d80f6f8edc9bf6704832ff1e3cb195aad7..f92166f3e04d588f4fb309bf4476f0e6e5fe6f08 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * demos/gtk-demo/expander.c (do_expander): A new demo.
+
+       * demos/gtk-demo/Makefile.am (demos): Add expander.c.
+
 2004-04-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
index d79ba016930e62dc160d9b984b61717eb4b4586c..c139feb3dadf9405f5c3149570e095b099dbc6b2 100644 (file)
@@ -13,6 +13,7 @@ demos =                                               \
        drawingarea.c                           \
        editable_cells.c                        \
        entry_completion.c                      \
+       expander.c                              \
        hypertext.c                             \
        images.c                                \
        list_store.c                            \
diff --git a/demos/gtk-demo/expander.c b/demos/gtk-demo/expander.c
new file mode 100644 (file)
index 0000000..bc52a96
--- /dev/null
@@ -0,0 +1,59 @@
+/* Expander
+ *
+ * GtkExpander allows to provide additional content that is initially hidden.
+ * This is also known as "disclosure triangle".
+ *
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+
+static GtkWidget *window = NULL;
+
+
+GtkWidget *
+do_expander (GtkWidget *do_widget)
+{
+  GtkWidget *vbox;
+  GtkWidget *label;
+  GtkWidget *expander;
+  
+  if (!window)
+  {
+    window = gtk_dialog_new_with_buttons ("GtkExpander",
+                                         GTK_WINDOW (do_widget),
+                                         0,
+                                         GTK_STOCK_CLOSE,
+                                         GTK_RESPONSE_NONE,
+                                         NULL);
+    gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
+
+    g_signal_connect (window, "response",
+                     G_CALLBACK (gtk_widget_destroy), NULL);
+    g_signal_connect (window, "destroy",
+                     G_CALLBACK (gtk_widget_destroyed), &window);
+
+    vbox = gtk_vbox_new (FALSE, 5);
+    gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0);
+    gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+
+    label = gtk_label_new ("Expander demo. Click on the triangle for details.");
+    gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+    /* Create the expander */
+    expander = gtk_expander_new ("Details");
+    gtk_box_pack_start (GTK_BOX (vbox), expander, FALSE, FALSE, 0);
+
+    label = gtk_label_new ("Details can be shown or hidden.");
+    gtk_container_add (GTK_CONTAINER (expander), label);
+  }
+
+  if (!GTK_WIDGET_VISIBLE (window))
+    gtk_widget_show_all (window);
+  else
+    gtk_widget_destroy (window);
+
+  return window;
+}
+
+