gtk-demo: Cosmetic changes
authorMatthias Clasen <mclasen@redhat.com>
Sun, 28 Jun 2015 13:23:28 +0000 (09:23 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 28 Jun 2015 21:41:35 +0000 (17:41 -0400)
Clean up the code of many examples in minor ways, fix some memory
leaks, and avoid the use of dialogs where a regular toplevel works
just as well.

52 files changed:
demos/gtk-demo/Makefile.am
demos/gtk-demo/assistant.c
demos/gtk-demo/builder.c
demos/gtk-demo/button_box.c
demos/gtk-demo/clipboard.c
demos/gtk-demo/colorsel.c
demos/gtk-demo/combobox.c
demos/gtk-demo/css_accordion.c
demos/gtk-demo/css_basics.c
demos/gtk-demo/css_multiplebgs.c
demos/gtk-demo/css_pixbufs.c
demos/gtk-demo/css_shadows.c
demos/gtk-demo/cursors.c
demos/gtk-demo/dialog.c
demos/gtk-demo/drawingarea.c
demos/gtk-demo/editable_cells.c
demos/gtk-demo/entry_buffer.c
demos/gtk-demo/entry_completion.c
demos/gtk-demo/event_axes.c
demos/gtk-demo/expander.c
demos/gtk-demo/flowbox.c
demos/gtk-demo/font-features.ui
demos/gtk-demo/font_features.c
demos/gtk-demo/gestures.c
demos/gtk-demo/headerbar.c
demos/gtk-demo/hypertext.c
demos/gtk-demo/iconview.c
demos/gtk-demo/iconview_edit.c
demos/gtk-demo/images.c
demos/gtk-demo/infobar.c
demos/gtk-demo/links.c
demos/gtk-demo/menus.c
demos/gtk-demo/offscreen_window.c
demos/gtk-demo/offscreen_window2.c
demos/gtk-demo/overlay.c
demos/gtk-demo/pagesetup.c
demos/gtk-demo/panes.c
demos/gtk-demo/pickers.c
demos/gtk-demo/pixbufs.c
demos/gtk-demo/popover.c
demos/gtk-demo/revealer.c
demos/gtk-demo/revealer.ui
demos/gtk-demo/rotated_text.c
demos/gtk-demo/search_entry.c
demos/gtk-demo/search_entry2.c
demos/gtk-demo/sidebar.c
demos/gtk-demo/sizegroup.c
demos/gtk-demo/spinner.c
demos/gtk-demo/stack.c
demos/gtk-demo/theming_style_classes.c
demos/gtk-demo/transparent.c
demos/gtk-demo/tree_store.c

index c6791ae28e7c1e94dffa07c5c648a3931322c370..72ba8755952857bedad04ad273e230c176570c7b 100644 (file)
@@ -98,7 +98,7 @@ EXTRA_DIST +=                                 \
        data/source.svg                 \
        data/symbolic-source.svg        \
        demo.gresource.xml              \
-       $(RESOURCES)                    \
+       $(resource_files)               \
        org.gtk.Demo.gschema.xml        \
        demos.h.win32
 
@@ -130,81 +130,10 @@ gtk3_demo_application_SOURCES = \
 
 gtk3_demo_application_LDADD = $(LDADDS)
 
-demo_resources.c: demo.gresource.xml $(RESOURCES)
-       $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml
-
-RESOURCES =                            \
-       $(demos)                        \
-       main.ui                         \
-       application.ui                  \
-       demo.ui                         \
-       menus.ui                        \
-       stack.ui                        \
-       revealer.ui                     \
-       theming.ui                      \
-       listbox.ui                      \
-       popover.ui                      \
-       alphatest.png                   \
-       apple-red.png                   \
-       brick.png                       \
-       brick2.png                      \
-       background.jpg                  \
-       floppybuddy.gif                 \
-       glarea-fragment.glsl            \
-       glarea-vertex.glsl              \
-       gnome-applets.png               \
-       gnome-calendar.png              \
-       gnome-foot.png                  \
-       gnome-fs-directory.png          \
-       gnome-fs-regular.png            \
-       gnome-gimp.png                  \
-       gnome-gmush.png                 \
-       gnome-gsame.png                 \
-       gnu-keys.png                    \
-       messages.txt                    \
-       css_accordion.css               \
-       css_basics.css                  \
-       css_multiplebgs.css             \
-       css_pixbufs.css                 \
-       css_shadows.css                 \
-       cssview.css                     \
-       reset.css                       \
-       alias_cursor.png                \
-       all_scroll_cursor.png           \
-       cell_cursor.png                 \
-       col_resize_cursor.png           \
-       copy_cursor.png                 \
-       crosshair_cursor.png            \
-       default_cursor.png              \
-       e_resize_cursor.png             \
-       ew_resize_cursor.png            \
-       grabbing_cursor.png             \
-       grab_cursor.png                 \
-       hand_cursor.png                 \
-       help_cursor.png                 \
-       move_cursor.png                 \
-       ne_resize_cursor.png            \
-       nesw_resize_cursor.png          \
-       none_cursor.png                 \
-       no_drop_cursor.png              \
-       not_allowed_cursor.png          \
-       n_resize_cursor.png             \
-       ns_resize_cursor.png            \
-       nw_resize_cursor.png            \
-       nwse_resize_cursor.png          \
-       pointer_cursor.png              \
-       progress_cursor.png             \
-       row_resize_cursor.png           \
-       se_resize_cursor.png            \
-       s_resize_cursor.png             \
-       sw_resize_cursor.png            \
-       text_cursor.png                 \
-       vertical_text_cursor.png        \
-       wait_cursor.png                 \
-       w_resize_cursor.png             \
-       zoom_in_cursor.png              \
-       zoom_out_cursor.png
+resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(builddir)/demo.gresource.xml)
 
+demo_resources.c: demo.gresource.xml $(resource_files)
+       $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml
 
 iconthemedir = $(datadir)/icons/hicolor
 
index b461171c65179062c946f9cf3c355af9c99c9e95..6b8a0364cefc6c437ac4aec17d120fc9e5813372 100644 (file)
@@ -168,7 +168,7 @@ do_assistant (GtkWidget *do_widget)
     {
       assistant = gtk_assistant_new ();
 
-         gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300);
+      gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300);
 
       gtk_window_set_screen (GTK_WINDOW (assistant),
                              gtk_widget_get_screen (do_widget));
index 33c86ac5d4e98de5be9134f26a9ec5f0825c827a..83399f24cc1932fe30aee78c99d233feb9bee505 100644 (file)
@@ -5,16 +5,13 @@
 
 #include <gtk/gtk.h>
 
-static GtkBuilder *builder;
-
 static void
 quit_activate (GSimpleAction *action,
                GVariant      *parameter,
                gpointer       user_data)
 {
-  GtkWidget *window;
+  GtkWidget *window = user_data;
 
-  window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
   gtk_widget_destroy (window);
 }
 
@@ -23,8 +20,11 @@ about_activate (GSimpleAction *action,
                 GVariant      *parameter,
                 gpointer       user_data)
 {
+  GtkWidget *window = user_data;
+  GtkBuilder *builder;
   GtkWidget *about_dlg;
 
+  builder = g_object_get_data (G_OBJECT (window), "builder");
   about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1"));
   gtk_dialog_run (GTK_DIALOG (about_dlg));
   gtk_widget_hide (about_dlg);
@@ -55,6 +55,8 @@ do_builder (GtkWidget *do_widget)
 
   if (!window)
     {
+      GtkBuilder *builder;
+
       builder = gtk_builder_new_from_resource ("/builder/demo.ui");
 
       gtk_builder_connect_signals (builder, NULL);
@@ -69,7 +71,7 @@ do_builder (GtkWidget *do_widget)
       actions = (GActionGroup*)g_simple_action_group_new ();
       g_action_map_add_action_entries (G_ACTION_MAP (actions),
                                        win_entries, G_N_ELEMENTS (win_entries),
-                                       NULL);
+                                       window);
       gtk_widget_insert_action_group (window, "win", actions);
       accel_group = gtk_accel_group_new ();
       gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
@@ -109,18 +111,14 @@ do_builder (GtkWidget *do_widget)
       item = (GtkWidget*)gtk_builder_get_object (builder, "about_item");
       gtk_widget_add_accelerator (item, "activate", accel_group,
                                   GDK_KEY_F7, 0, GTK_ACCEL_VISIBLE);
+
+      g_object_set_data_full (G_OBJECT(window), "builder", builder, g_object_unref);
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
-
+    gtk_widget_destroy (window);
 
   return window;
 }
index c99bbb79dd19e812e58aeaae4e561c5a0c908c27..7d383d383f27c8c7c5bbcebb52fb18b9fad57860 100644 (file)
@@ -56,7 +56,7 @@ do_button_box (GtkWidget *do_widget)
     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     gtk_window_set_screen (GTK_WINDOW (window),
                            gtk_widget_get_screen (do_widget));
-    gtk_window_set_title (GTK_WINDOW (window), "Button Boxes demo");
+    gtk_window_set_title (GTK_WINDOW (window), "Button Boxes");
 
     g_signal_connect (window, "destroy",
                       G_CALLBACK (gtk_widget_destroyed),
@@ -129,14 +129,9 @@ do_button_box (GtkWidget *do_widget)
   }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index e4b882e57a8ee6fe71081d7ad9d49da625d4d6fb..f04a203bb0c90f8d64777df6a3304a9118a46244 100644 (file)
@@ -13,8 +13,6 @@
 #include <gtk/gtk.h>
 #include <string.h>
 
-static GtkWidget *window = NULL;
-
 void
 copy_button_clicked (GtkWidget *button,
                      gpointer   user_data)
@@ -107,12 +105,12 @@ drag_begin (GtkWidget      *widget,
 }
 
 void
-drag_data_get  (GtkWidget        *widget,
-                GdkDragContext   *context,
-                GtkSelectionData *selection_data,
-                guint             info,
-                guint             time,
-                gpointer          data)
+drag_data_get (GtkWidget        *widget,
+               GdkDragContext   *context,
+               GtkSelectionData *selection_data,
+               guint             info,
+               guint             time,
+               gpointer          data)
 {
   GdkPixbuf *pixbuf;
 
@@ -202,6 +200,8 @@ button_press (GtkWidget      *widget,
 GtkWidget *
 do_clipboard (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *vbox, *hbox;
@@ -325,10 +325,7 @@ do_clipboard (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 8f0cc188c2c5185578fbf444d3c6da9c6641007e..c00d50357d481aa20045c35c1378d73c721ca03c 100644 (file)
@@ -32,9 +32,7 @@ response_cb (GtkDialog *dialog,
              gpointer   user_data)
 {
   if (response_id == GTK_RESPONSE_OK)
-    {
-      gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color);
-    }
+    gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color);
 
   gtk_widget_destroy (GTK_WIDGET (dialog));
 }
@@ -49,10 +47,8 @@ change_color_callback (GtkWidget *button,
   gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
   gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
 
-  g_signal_connect (dialog,
-                    "response",
-                    G_CALLBACK (response_cb),
-                    NULL);
+  g_signal_connect (dialog, "response",
+                    G_CALLBACK (response_cb), NULL);
 
   gtk_widget_show_all (dialog);
 }
@@ -88,7 +84,6 @@ do_colorsel (GtkWidget *do_widget)
        * Create the color swatch area
        */
 
-
       frame = gtk_frame_new (NULL);
       gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
       gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0);
@@ -113,14 +108,9 @@ do_colorsel (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index dec9a0636ac97bb9d3e7b938504a8384148b43ab..5bdaf02ab5d1be8a7a4c1e02d6bf8f7f521eb3bf 100644 (file)
@@ -321,8 +321,7 @@ do_combobox (GtkWidget *do_widget)
     gtk_window_set_title (GTK_WINDOW (window), "Combo Boxes");
 
     g_signal_connect (window, "destroy",
-                      G_CALLBACK (gtk_widget_destroyed),
-                      &window);
+                      G_CALLBACK (gtk_widget_destroyed), &window);
 
     gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
@@ -400,8 +399,7 @@ do_combobox (GtkWidget *do_widget)
     gtk_tree_path_free (path);
     gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter);
 
-    /* A GtkComboBoxEntry with validation.
-     */
+    /* A GtkComboBoxEntry with validation */
     frame = gtk_frame_new ("Editable");
     gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
 
@@ -441,14 +439,9 @@ do_combobox (GtkWidget *do_widget)
   }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 8c3dae70ef20f2a43ce87e0b87bac6745ae4f792..2afa6b57bbfead465db411c7944a964728674b04 100644 (file)
@@ -6,8 +6,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 apply_css (GtkWidget *widget, GtkStyleProvider *provider)
 {
@@ -19,6 +17,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider)
 GtkWidget *
 do_css_accordion (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *container, *child;
@@ -63,10 +63,7 @@ do_css_accordion (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 6bc245fe9e904de5d93e13e5112b9f33e60012ea..1016abadc233909387839a7bc685a9ba4d810890 100644 (file)
@@ -7,8 +7,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 show_parsing_error (GtkCssProvider *provider,
                     GtkCssSection  *section,
@@ -64,6 +62,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider)
 GtkWidget *
 do_css_basics (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *container, *child;
@@ -112,10 +112,7 @@ do_css_basics (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index c10a5cac634fae15851af6d43109369f71b2720d..a5d2e0f48bb74265ade846c460cfc929c8c26cde 100644 (file)
@@ -7,8 +7,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 show_parsing_error (GtkCssProvider *provider,
                     GtkCssSection  *section,
@@ -82,6 +80,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider)
 GtkWidget *
 do_css_multiplebgs (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *paned, *container, *child;
@@ -163,10 +163,7 @@ do_css_multiplebgs (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 360c0d5049a0d6192600532a18b49a704b2c8e15..45dee45486053ab9b77098bf701c09cfe3a4eb8f 100644 (file)
@@ -6,8 +6,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 show_parsing_error (GtkCssProvider *provider,
                     GtkCssSection  *section,
@@ -63,6 +61,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider)
 GtkWidget *
 do_css_pixbufs (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *paned, *container, *child;
@@ -95,15 +95,13 @@ do_css_pixbufs (GtkWidget *do_widget)
                                   NULL);
 
       provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
-      
+
       container = gtk_scrolled_window_new (NULL, NULL);
       gtk_container_add (GTK_CONTAINER (paned), container);
       child = gtk_text_view_new_with_buffer (text);
       gtk_container_add (GTK_CONTAINER (container), child);
-      g_signal_connect (text,
-                        "changed",
-                        G_CALLBACK (css_text_changed),
-                        provider);
+      g_signal_connect (text, "changed",
+                        G_CALLBACK (css_text_changed), provider);
 
       bytes = g_resources_lookup_data ("/css_pixbufs/gtk.css", 0, NULL);
       gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes));
@@ -120,10 +118,7 @@ do_css_pixbufs (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index a4b5497174af67fefaf5ac525e7471f4014eedb6..ae2392e0bfc53e4acf16ca7007d68106d11fdb75 100644 (file)
@@ -5,8 +5,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 show_parsing_error (GtkCssProvider *provider,
                     GtkCssSection  *section,
@@ -86,6 +84,8 @@ create_toolbar (void)
 GtkWidget *
 do_css_shadows (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *paned, *container, *child;
@@ -117,15 +117,13 @@ do_css_shadows (GtkWidget *do_widget)
                                   NULL);
 
       provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
-      
+
       container = gtk_scrolled_window_new (NULL, NULL);
       gtk_container_add (GTK_CONTAINER (paned), container);
       child = gtk_text_view_new_with_buffer (text);
       gtk_container_add (GTK_CONTAINER (container), child);
-      g_signal_connect (text,
-                        "changed",
-                        G_CALLBACK (css_text_changed),
-                        provider);
+      g_signal_connect (text, "changed",
+                        G_CALLBACK (css_text_changed), provider);
 
       bytes = g_resources_lookup_data ("/css_shadows/gtk.css", 0, NULL);
       gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes));
@@ -142,10 +140,7 @@ do_css_shadows (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 1ccb580f27e4593c723dbef3953554edab9eca5a..eb922a3ef485f550a598596e67e9e47bc402f62a 100644 (file)
@@ -152,14 +152,9 @@ do_cursors (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
 
   return window;
index 081bbe38f43352ef5f02eb8db2caa0950eeaef7d..0eb1c62397ed9ac9734d61bde44809e4e516b2d8 100644 (file)
@@ -111,7 +111,9 @@ do_dialog (GtkWidget *do_widget)
                              gtk_widget_get_screen (do_widget));
       gtk_window_set_title (GTK_WINDOW (window), "Dialogs and Message Boxes");
 
-      g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed), &window);
+
       gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 
       frame = gtk_frame_new ("Dialogs");
@@ -163,14 +165,9 @@ do_dialog (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index c7bbcae313507d8825cd0f1fb87c7276f01779bb..3b7da92dcd6f2d0719ea112982db32a7e926c0df 100644 (file)
@@ -212,7 +212,8 @@ do_drawingarea (GtkWidget *do_widget)
                              gtk_widget_get_screen (do_widget));
       gtk_window_set_title (GTK_WINDOW (window), "Drawing Area");
 
-      g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (close_window), NULL);
 
       gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 
index dd8a970d662e5d9840754caedc8c0ce831a4fa0b..f57ae5cdfe6dd0138ae2b71e8283241e29ca249e 100644 (file)
@@ -14,8 +14,6 @@
 #include <string.h>
 #include <stdlib.h>
 
-static GtkWidget *window = NULL;
-
 typedef struct
 {
   gint   number;
@@ -335,6 +333,8 @@ add_columns (GtkTreeView  *treeview,
 GtkWidget *
 do_editable_cells (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *vbox;
@@ -345,7 +345,6 @@ do_editable_cells (GtkWidget *do_widget)
       GtkTreeModel *items_model;
       GtkTreeModel *numbers_model;
 
-      /* create window, etc */
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_screen (GTK_WINDOW (window),
                              gtk_widget_get_screen (do_widget));
@@ -406,10 +405,7 @@ do_editable_cells (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 7774467863e307de0d264b801ceb4dc20185d9ff..d4863e38962a31ff97bd57255328a146bb943a3d 100644 (file)
@@ -8,56 +8,48 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 GtkWidget *
 do_entry_buffer (GtkWidget *do_widget)
 {
-  GtkWidget *content_area;
+  static GtkWidget *window = NULL;
   GtkWidget *vbox;
   GtkWidget *label;
   GtkWidget *entry;
   GtkEntryBuffer *buffer;
 
   if (!window)
-  {
-    window = gtk_dialog_new_with_buttons ("Entry Buffer",
-                                          GTK_WINDOW (do_widget),
-                                          0,
-                                          _("_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);
-
-    content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
-    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-    gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
-    gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
-
-    label = gtk_label_new (NULL);
-    gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other.");
-    gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
-
-    /* Create a buffer */
-    buffer = gtk_entry_buffer_new (NULL, 0);
-
-    /* Create our first entry */
-    entry = gtk_entry_new_with_buffer (buffer);
-    gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
-
-    /* Create the second entry */
-    entry = gtk_entry_new_with_buffer (buffer);
-    gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
-    gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
-
-    g_object_unref (buffer);
-  }
+    {
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (do_widget));
+      gtk_window_set_title (GTK_WINDOW (window), "Entry Buffer");
+      gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed), &window);
+
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+      gtk_container_add (GTK_CONTAINER (window), vbox);
+      gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+
+      label = gtk_label_new (NULL);
+      gtk_label_set_markup (GTK_LABEL (label),
+                            "Entries share a buffer. Typing in one is reflected in the other.");
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+      /* Create a buffer */
+      buffer = gtk_entry_buffer_new (NULL, 0);
+
+      /* Create our first entry */
+      entry = gtk_entry_new_with_buffer (buffer);
+      gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
+
+      /* Create the second entry */
+      entry = gtk_entry_new_with_buffer (buffer);
+      gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
+      gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
+
+      g_object_unref (buffer);
+    }
 
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
index 301f5d7ea03152cc287268d704dc22995b635d63..cb822356b5062a680f633e7b846c33bdf3cd485f 100644 (file)
@@ -8,8 +8,6 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 /* Creates a tree model containing the completions */
 GtkTreeModel *
 create_completion_model (void)
@@ -38,7 +36,7 @@ create_completion_model (void)
 GtkWidget *
 do_entry_completion (GtkWidget *do_widget)
 {
-  GtkWidget *content_area;
+  static GtkWidget *window = NULL;
   GtkWidget *vbox;
   GtkWidget *label;
   GtkWidget *entry;
@@ -47,23 +45,17 @@ do_entry_completion (GtkWidget *do_widget)
 
   if (!window)
     {
-      window = gtk_dialog_new_with_buttons ("Entry Completion",
-                                            GTK_WINDOW (do_widget),
-                                            0,
-                                            _("_Close"),
-                                            GTK_RESPONSE_NONE,
-                                            NULL);
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (do_widget));
+      gtk_window_set_title (GTK_WINDOW (window), "Entry Completion");
       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);
 
-      content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-      gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
+      gtk_container_add (GTK_CONTAINER (window), vbox);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
 
       label = gtk_label_new (NULL);
index 7c77d183725a54645a8793b45198e5dd20b1bd9b..bc31f5330842199803f40ff0d6d6305b70f62b25 100644 (file)
@@ -412,10 +412,7 @@ do_event_axes (GtkWidget *toplevel)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index bc40b542af2804a029064cc740ad34cd8f7ece50..2a2dff8b9542003a0a4fd96b8b080f2c2231a9bb 100644 (file)
@@ -3,6 +3,8 @@
  * GtkExpander allows to provide additional content that is initially hidden.
  * This is also known as "disclosure triangle".
  *
+ * This example also shows how to make the window resizable only if the expander
+ * is expanded.
  */
 
 #include <glib/gi18n.h>
index 38ce3c06b0ffcfd90be02fa80f69063cf419cb8c..863838db4f5f0b65a29d06bb3a200848226c2ab9 100644 (file)
@@ -10,8 +10,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-static GtkWidget *window = NULL;
-
 static gboolean
 draw_color (GtkWidget  *drawingarea,
             cairo_t    *cr,
@@ -46,6 +44,7 @@ color_swatch_new (const gchar *color)
 GtkWidget *
 do_flowbox (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *scrolled, *flowbox;
   const gchar *colors[] = {
     "AliceBlue",
@@ -726,8 +725,7 @@ do_flowbox (GtkWidget *do_widget)
       gtk_window_set_default_size (GTK_WINDOW (window), 400, 600);
 
       g_signal_connect (window, "destroy",
-                        G_CALLBACK (gtk_widget_destroyed),
-                        &window);
+                        G_CALLBACK (gtk_widget_destroyed), &window);
 
       scrolled = gtk_scrolled_window_new (NULL, NULL);
       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -740,9 +738,7 @@ do_flowbox (GtkWidget *do_widget)
       gtk_container_add (GTK_CONTAINER (window), scrolled);
 
       for (i = 0; colors[i]; i++)
-        {
-          gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i]));
-        }
+        gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i]));
 
       gtk_widget_show_all (scrolled);
     }
index b378a100051a57cb4a90ee534a41f25d1c9305f1..d2715153047fc0a156bd780753271c35b1cee45d 100644 (file)
                   <object class="GtkBox" id="box2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="margin_left">10</property>
-                    <property name="margin_right">10</property>
-                    <property name="margin_top">10</property>
-                    <property name="margin_bottom">10</property>
+                    <property name="margin">10</property>
                     <property name="orientation">vertical</property>
                     <property name="spacing">6</property>
                     <child>
@@ -77,8 +74,8 @@
                           <object class="GtkBox" id="box13">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box3">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box4">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box5">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box6">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box7">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box8">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box9">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
                           <object class="GtkBox" id="box10">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="margin_left">20</property>
-                            <property name="margin_right">20</property>
+                            <property name="margin_start">20</property>
+                            <property name="margin_end">20</property>
                             <property name="margin_top">10</property>
                             <property name="orientation">vertical</property>
                             <child>
             <child>
               <object class="GtkStack" id="stack">
                 <property name="visible">True</property>
-                <property name="margin_left">20</property>
-                <property name="margin_right">20</property>
+                <property name="margin_start">20</property>
+                <property name="margin_end">20</property>
                 <property name="margin_top">20</property>
                 <property name="margin_bottom">20</property>
                 <child>
               <object class="GtkLabel" id="settings">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="margin_left">20</property>
-                <property name="margin_right">20</property>
+                <property name="margin_start">20</property>
+                <property name="margin_end">20</property>
                 <property name="margin_bottom">20</property>
                 <property name="xalign">0</property>
               </object>
index 4d4a53b0697b8ac4db632cb15a68b67cf6703326..ac1492e20f25eff49c473b82bc35b9b339c14685 100644 (file)
@@ -189,17 +189,14 @@ do_font_features (GtkWidget *do_widget)
 
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
+
+      g_object_unref (builder);
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_window_present (GTK_WINDOW (window));
-    }
+    gtk_window_present (GTK_WINDOW (window));
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 55d1ae01067646831d22a0c70f6273a9b5957db2..b5a29583c22ec7303af2ad31876bf2a82022e900 100644 (file)
@@ -7,7 +7,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
 static GtkGesture *rotate = NULL;
 static GtkGesture *zoom = NULL;
 static gdouble swipe_x = 0;
@@ -132,6 +131,7 @@ drawing_area_draw (GtkWidget *widget,
 GtkWidget *
 do_gestures (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *drawing_area;
   GtkGesture *gesture;
 
@@ -190,10 +190,7 @@ do_gestures (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 64356c8917dfd916cae6b1855373e12398df193b..2bf99a2f9c59d7e56ef40c9e436b16eaad08ed5d 100644 (file)
@@ -58,14 +58,9 @@ do_headerbar (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 7b541ea9dc074478d7e8a2bf41138a15a8fd10d0..28d605a273939dcb6003ba0db49b5a3f28d798c2 100644 (file)
@@ -258,15 +258,14 @@ do_hypertext (GtkWidget *do_widget)
       regular_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (do_widget), GDK_XTERM);
 
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_title (GTK_WINDOW (window), "Hypertext");
       gtk_window_set_screen (GTK_WINDOW (window),
                              gtk_widget_get_screen (do_widget));
-      gtk_window_set_default_size (GTK_WINDOW (window),
-                                   450, 450);
+      gtk_window_set_default_size (GTK_WINDOW (window), 450, 450);
 
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
 
-      gtk_window_set_title (GTK_WINDOW (window), "Hypertext");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
       view = gtk_text_view_new ();
@@ -293,14 +292,9 @@ do_hypertext (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 199a34316c07e3b63baa557d85e46922da79e625..67cdabb43cca9f51b71c70c850c09c6567cca6c7 100644 (file)
@@ -328,10 +328,7 @@ do_iconview (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 25bc80f02d73fd5e995f99bb2ce4c523b255a1fd..3d626fddb77c03d155508a0212ddd26a16c7f761 100644 (file)
@@ -8,8 +8,6 @@
 #include <gtk/gtk.h>
 #include <string.h>
 
-static GtkWidget *window = NULL;
-
 enum
 {
   COL_TEXT,
@@ -100,6 +98,8 @@ edited (GtkCellRendererText *cell,
 GtkWidget *
 do_iconview_edit (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *icon_view;
@@ -152,10 +152,7 @@ do_iconview_edit (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index a36c8df2f737942bdbe55ab9b4cb7857b2d7f85b..2561c7d9bf07ec9d55b043f6c45734558f923586 100644 (file)
@@ -436,14 +436,9 @@ do_images (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 7b0b5751c09d7ad409aa7fe2d6e9095c0568b185..b16ed1bf3800589c81e9dcaa26a4627b1c8c2dda 100644 (file)
@@ -6,14 +6,13 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 static void
 on_bar_response (GtkInfoBar *info_bar,
                  gint        response_id,
                  gpointer    user_data)
 {
   GtkWidget *dialog;
+  GtkWidget *window;
 
   if (response_id == GTK_RESPONSE_CLOSE)
     {
@@ -21,6 +20,7 @@ on_bar_response (GtkInfoBar *info_bar,
       return;
     }
 
+  window = gtk_widget_get_toplevel (GTK_WIDGET (info_bar));
   dialog = gtk_message_dialog_new (GTK_WINDOW (window),
                                    GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
                                    GTK_MESSAGE_INFO,
@@ -40,6 +40,7 @@ on_bar_response (GtkInfoBar *info_bar,
 GtkWidget *
 do_infobar (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *frame;
   GtkWidget *bar;
   GtkWidget *vbox;
@@ -131,14 +132,9 @@ do_infobar (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index fa3075d22566286a32a076abe1ba5b3fed1edf9e..5a39a1a84268ef251027b1e572d18ee68771b32e 100644 (file)
@@ -44,11 +44,10 @@ activate_link (GtkWidget   *label,
   return FALSE;
 }
 
-static GtkWidget *window = NULL;
-
 GtkWidget *
 do_links (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *label;
 
   if (!window)
@@ -78,14 +77,9 @@ do_links (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 9e69afa6ad875692d20886495b0d6918a21f57b4..86c435e86aca4cb3eae5aa39685c17c79e0d8b43 100644 (file)
@@ -158,14 +158,9 @@ do_menus (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 7c72194cf251f6867ac01638b0d6c1b6e27a69bf..433cad1b84f975861514a2563f9d03a55edb3831 100644 (file)
@@ -565,11 +565,11 @@ scale_changed (GtkRange      *range,
   gtk_rotated_bin_set_angle (bin, gtk_range_get_value (range));
 }
 
-static GtkWidget *window = NULL;
-
 GtkWidget *
 do_offscreen_window (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *bin, *vbox, *scale, *button;
@@ -603,10 +603,7 @@ do_offscreen_window (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index b327f71052c6cc93e3ba5bf4c49e5b9ec58c4fca..50f77a2899a3e8b00c7d6ac8acea4a3848991c0d 100644 (file)
@@ -468,11 +468,11 @@ gtk_mirror_bin_draw (GtkWidget *widget,
 
 /*** ***/
 
-static GtkWidget *window = NULL;
-
 GtkWidget *
 do_offscreen_window2 (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *bin, *vbox;
@@ -516,10 +516,7 @@ do_offscreen_window2 (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index f06da408e6b276589766324c91d5ed1aa85ac6bb..f6d67edd0acce48aef24f7558962ed94121ae727 100644 (file)
@@ -77,14 +77,9 @@ do_overlay (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 59709ab654ba4fd0008f0d67e7707fc7094ae3ef..f169bae5c5ec9e61c11f27036e1e3620f29e7137 100644 (file)
@@ -29,10 +29,7 @@ do_pagesetup (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 97c7237b84673ae1ee903d2f30924dc3ebe60e2b..98cf8bc47b9e86d5d4a1c492273a2538c317f849 100644 (file)
@@ -192,14 +192,9 @@ do_panes (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 46826b5707f4b90b377cae1e67f183578565379b..db8ee77d65bd98ba64f31343ff778496473829c9 100644 (file)
@@ -20,8 +20,7 @@ do_pickers (GtkWidget *do_widget)
     gtk_window_set_title (GTK_WINDOW (window), "Pickers");
 
     g_signal_connect (window, "destroy",
-                      G_CALLBACK (gtk_widget_destroyed),
-                      &window);
+                      G_CALLBACK (gtk_widget_destroyed), &window);
 
     gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
@@ -76,14 +75,9 @@ do_pickers (GtkWidget *do_widget)
   }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index d220b7557f875e05e6f6d6590b53980547c7a5a2..e4faae4e6b8d849855cf498528c4a21012398eb4 100644 (file)
@@ -183,7 +183,6 @@ do_pixbufs (GtkWidget *do_widget)
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
 
-
       error = NULL;
       if (!load_pixbufs (&error))
         {
@@ -221,13 +220,10 @@ do_pixbufs (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
     {
       gtk_widget_destroy (window);
-      window = NULL;
       g_object_unref (frame);
     }
 
index cb2c6b9765a9d5af2d90ce52af4dd69943788338..94c376b6b6b1afd7f9875b54ac79d9849d4c683c 100644 (file)
@@ -176,10 +176,7 @@ do_popover (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 703223acbabfb6bbcb124de3ca18f771d2166b00..23092d059a45a79d15785de37132790751f5d859 100644 (file)
@@ -6,8 +6,8 @@
 
 #include <gtk/gtk.h>
 
-static GtkBuilder *builder;
 static gint count = 0;
+static guint timeout = 0;
 
 static void
 change_direction (GtkRevealer *revealer)
@@ -18,14 +18,15 @@ change_direction (GtkRevealer *revealer)
   gtk_revealer_set_reveal_child (revealer, !revealed);
 }
 
-static guint timeout = 0;
-
 static gboolean
 reveal_one (gpointer data)
 {
+  GtkWidget *window = data;
+  GtkBuilder *builder;
   gchar *name;
   GtkRevealer *revealer;
 
+  builder = GTK_BUILDER (g_object_get_data (G_OBJECT (window), "builder"));
   name = g_strdup_printf ("revealer%d", count);
   revealer = (GtkRevealer *)gtk_builder_get_object (builder, name);
 
@@ -44,53 +45,45 @@ reveal_one (gpointer data)
     return TRUE;
 }
 
+static GtkWidget *window = NULL;
+
 static void
-response_cb (GtkWidget *dialog,
-             gint       response_id,
-             gpointer   data)
+on_destroy (gpointer data)
 {
+  window = NULL;
   if (timeout != 0)
     {
       g_source_remove (timeout);
       timeout = 0;
     }
-  gtk_widget_destroy (dialog);
 }
 
 GtkWidget *
 do_revealer (GtkWidget *do_widget)
 {
-  static GtkWidget *window = NULL;
-  GError *err = NULL;
-
   if (!window)
     {
-      builder = gtk_builder_new ();
-      gtk_builder_add_from_resource (builder, "/revealer/revealer.ui", &err);
-      if (err)
-        {
-          g_error ("ERROR: %s\n", err->message);
-          return NULL;
-        }
+      GtkBuilder *builder;
+
+      builder = gtk_builder_new_from_resource ("/revealer/revealer.ui");
       gtk_builder_connect_signals (builder, NULL);
-      window = GTK_WIDGET (gtk_builder_get_object (builder, "dialog1"));
+      window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
       gtk_window_set_screen (GTK_WINDOW (window),
                              gtk_widget_get_screen (do_widget));
       g_signal_connect (window, "destroy",
-                        G_CALLBACK (gtk_widget_destroyed), &window);
-      g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL);
+                        G_CALLBACK (on_destroy), NULL);
+      g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref);
     }
 
   if (!gtk_widget_get_visible (window))
     {
       count = 0;
-      timeout = g_timeout_add (690, reveal_one, NULL);
+      timeout = g_timeout_add (690, reveal_one, window);
       gtk_widget_show_all (window);
     }
   else
     {
       gtk_widget_destroy (window);
-      window = NULL;
     }
 
 
index f1cbac007d4a9a81afc6cbfec85137f61d75dcf9..356b2606b03c779f0e0af8831aba70ce1aaf557f 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.6 -->
-  <object class="GtkDialog" id="dialog1">
-    <property name="can_focus">False</property>
+  <object class="GtkWindow" id="window">
     <property name="border_width">5</property>
-    <property name="type_hint">dialog</property>
     <property name="default_width">300</property>
     <property name="default_height">300</property>
     <property name="title">Revealer</property>
-    <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox1">
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area1">
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
+    <child>
+      <object class="GtkGrid">
+        <property name="visible">True</property>
+        <property name="halign">center</property>
+        <property name="valign">center</property>
+        <child>
+          <object class="GtkRevealer" id="revealer0">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">crossfade</property>
             <child>
-              <object class="GtkButton" id="button1">
-                <property name="label" translatable="yes">_Close</property>
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_underline">True</property>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="left-attach">2</property>
+            <property name="top-attach">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkGrid" id="grid1">
+          <object class="GtkRevealer" id="revealer1">
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="halign">center</property>
-            <property name="valign">center</property>
-            <child>
-              <object class="GtkRevealer" id="revealer0">
-                <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">crossfade</property>
-                <child>
-                  <object class="GtkImage" id="image0">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="left-attach">2</property>
-                <property name="top-attach">2</property>
-              </packing>
-            </child>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-up</property>
             <child>
-              <object class="GtkRevealer" id="revealer1">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-up</property>
-                <child>
-                  <object class="GtkImage" id="image1">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">2</property>
-                <property name="top-attach">1</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer2">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-right</property>
             <child>
-              <object class="GtkRevealer" id="revealer2">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-right</property>
-                <child>
-                  <object class="GtkImage" id="image2">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">3</property>
-                <property name="top-attach">2</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">3</property>
+            <property name="top-attach">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer3">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
             <child>
-              <object class="GtkRevealer" id="revealer3">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-down</property>
-                <child>
-                  <object class="GtkImage" id="image3">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">2</property>
-                <property name="top-attach">3</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer4">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-left</property>
             <child>
-              <object class="GtkRevealer" id="revealer4">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-left</property>
-                <child>
-                  <object class="GtkImage" id="image4">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">1</property>
-                <property name="top-attach">2</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">1</property>
+            <property name="top-attach">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer5">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-up</property>
             <child>
-              <object class="GtkRevealer" id="revealer5">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-up</property>
-                <child>
-                  <object class="GtkImage" id="image5">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">2</property>
-                <property name="top-attach">0</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer6">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-right</property>
             <child>
-              <object class="GtkRevealer" id="revealer6">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-right</property>
-                <child>
-                  <object class="GtkImage" id="image6">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">4</property>
-                <property name="top-attach">2</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">4</property>
+            <property name="top-attach">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer7">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
             <child>
-              <object class="GtkRevealer" id="revealer7">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-down</property>
-                <child>
-                  <object class="GtkImage" id="image7">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">2</property>
-                <property name="top-attach">4</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">4</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRevealer" id="revealer8">
+            <property name="visible">True</property>
+            <property name="transition-duration">2000</property>
+            <property name="transition-type">slide-left</property>
             <child>
-              <object class="GtkRevealer" id="revealer8">
+              <object class="GtkImage">
                 <property name="visible">True</property>
-                <property name="transition-duration">2000</property>
-                <property name="transition-type">slide-left</property>
-                <child>
-                  <object class="GtkImage" id="image8">
-                    <property name="visible">True</property>
-                    <property name="icon-name">face-cool-symbolic</property>
-                    <property name="icon-size">6</property>
-                  </object>
-                </child>
+                <property name="icon-name">face-cool-symbolic</property>
+                <property name="icon-size">6</property>
               </object>
-              <packing>
-                <property name="left-attach">0</property>
-                <property name="top-attach">2</property>
-              </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="left-attach">0</property>
+            <property name="top-attach">2</property>
           </packing>
         </child>
       </object>
     </child>
-    <action-widgets>
-      <action-widget response="0">button1</action-widget>
-    </action-widgets>
   </object>
 </interface>
index 8b4ecb23b2474b058254f39a544194653917429b..6afe6ca4d6cb914367b6da1c1f686891ff617142 100644 (file)
@@ -11,8 +11,6 @@
 #include <gtk/gtk.h>
 #include <string.h>
 
-static GtkWidget *window = NULL;
-
 #define HEART "♥"
 const char text[] = "I ♥ GTK+";
 
@@ -173,6 +171,8 @@ rotated_text_draw (GtkWidget *widget,
 GtkWidget *
 do_rotated_text (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *box;
@@ -186,7 +186,8 @@ do_rotated_text (GtkWidget *do_widget)
                              gtk_widget_get_screen (do_widget));
       gtk_window_set_title (GTK_WINDOW (window), "Rotated Text");
       gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS);
-      g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed), &window);
 
       box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_set_homogeneous (GTK_BOX (box), TRUE);
@@ -218,14 +219,9 @@ do_rotated_text (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 5594118bed937c4a9e25050339677803a46a6731..3e61e2de6a6a19a82f93fa81e42c44be3f3e1849 100644 (file)
@@ -167,7 +167,7 @@ activate_cb (GtkEntry  *entry,
 }
 
 static void
-search_entry_destroyed (GtkWidget  *widget)
+search_entry_destroyed (GtkWidget *widget)
 {
   if (finish_search_id != 0)
     g_source_remove (finish_search_id);
@@ -210,34 +210,24 @@ entry_populate_popup (GtkEntry *entry,
 GtkWidget *
 do_search_entry (GtkWidget *do_widget)
 {
-  GtkWidget *content_area;
   GtkWidget *vbox;
   GtkWidget *hbox;
   GtkWidget *label;
   GtkWidget *entry;
-  GtkWidget *button;
   GtkWidget *find_button;
   GtkWidget *cancel_button;
 
   if (!window)
     {
-      window = gtk_dialog_new_with_buttons ("Search Entry",
-                                            GTK_WINDOW (do_widget),
-                                            0,
-                                            _("_Close"),
-                                            GTK_RESPONSE_NONE,
-                                            NULL);
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget));
+      gtk_window_set_title (GTK_WINDOW (window), "Search Entry");
       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 (search_entry_destroyed), &window);
 
-      content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-      gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
+      gtk_container_add (GTK_CONTAINER (window), vbox);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
 
       label = gtk_label_new (NULL);
@@ -284,12 +274,9 @@ do_search_entry (GtkWidget *do_widget)
       gtk_menu_attach_to_widget (GTK_MENU (menu), entry, NULL);
 
       /* add accessible alternatives for icon functionality */
+      g_object_set (entry, "populate-all", TRUE, NULL);
       g_signal_connect (entry, "populate-popup",
                         G_CALLBACK (entry_populate_popup), NULL);
-
-      /* Give the focus to the close button */
-      button = gtk_dialog_get_widget_for_response (GTK_DIALOG (window), GTK_RESPONSE_NONE);
-      gtk_widget_grab_focus (button);
     }
 
   if (!gtk_widget_get_visible (window))
@@ -298,7 +285,6 @@ do_search_entry (GtkWidget *do_widget)
     {
       gtk_widget_destroy (menu);
       gtk_widget_destroy (window);
-      window = NULL;
     }
 
   return window;
index 988eaace2366a7d0343d6c634c24828c84847f04..b20cb13dea0cc9f7a5b8e2de3a9868b25ec18e6e 100644 (file)
@@ -8,14 +8,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
-static void
-search_entry_destroyed (GtkWidget  *widget)
-{
-  window = NULL;
-}
-
 static void
 search_changed_cb (GtkSearchEntry *entry,
                    GtkLabel       *result_label)
@@ -73,6 +65,7 @@ stop_search (GtkSearchEntry *entry,
 GtkWidget *
 do_search_entry2 (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *vbox;
   GtkWidget *hbox;
   GtkWidget *label;
@@ -90,7 +83,7 @@ do_search_entry2 (GtkWidget *do_widget)
       gtk_widget_set_size_request (window, 200, -1);
 
       g_signal_connect (window, "destroy",
-                        G_CALLBACK (search_entry_destroyed), &window);
+                        G_CALLBACK (gtk_widget_destroyed), &window);
 
       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -164,10 +157,7 @@ do_search_entry2 (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 61f4dcf386ad7251ffd0b7940b5c34ddf6bca0e9..6830accfb63f68b95c3f4d18da4fff40240678a4 100644 (file)
@@ -9,11 +9,10 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 GtkWidget *
 do_sidebar (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *sidebar;
   GtkWidget *stack;
   GtkWidget *box;
index d99cc8a0b736f800faea220a4a9deb658fa2328b..1a639244a76412b1a47a514d42e69db7904dfc87 100644 (file)
@@ -16,8 +16,6 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 /* Convenience function to create a combo box holding a number of strings
  */
 GtkWidget *
@@ -48,12 +46,14 @@ add_row (GtkGrid      *table,
 
   label = gtk_label_new_with_mnemonic (label_text);
   gtk_widget_set_halign (label, GTK_ALIGN_START);
-  gtk_widget_set_valign (label, GTK_ALIGN_END);
+  gtk_widget_set_valign (label, GTK_ALIGN_BASELINE);
   gtk_widget_set_hexpand (label, TRUE);
   gtk_grid_attach (table, label, 0, row, 1, 1);
 
   combo_box = create_combo_box (options);
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box);
+  gtk_widget_set_halign (combo_box, GTK_ALIGN_END);
+  gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE);
   gtk_size_group_add_widget (size_group, combo_box);
   gtk_grid_attach (table, combo_box, 1, row, 1, 1);
 }
@@ -79,7 +79,7 @@ toggle_grouping (GtkToggleButton *check_button,
 GtkWidget *
 do_sizegroup (GtkWidget *do_widget)
 {
-  GtkWidget *content_area;
+  static GtkWidget *window = NULL;
   GtkWidget *table;
   GtkWidget *frame;
   GtkWidget *vbox;
@@ -95,28 +95,20 @@ do_sizegroup (GtkWidget *do_widget)
   };
 
   static const char *end_options[] = {
-    "Square", "Round", "Arrow", NULL
+    "Square", "Round", "Double Arrow", NULL
   };
 
   if (!window)
     {
-      window = gtk_dialog_new_with_buttons ("Size Groups",
-                                            GTK_WINDOW (do_widget),
-                                            0,
-                                            _("_Close"),
-                                            GTK_RESPONSE_NONE,
-                                            NULL);
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget));
+      gtk_window_set_title (GTK_WINDOW (window), "Size Groups");
       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);
 
-      content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
-      gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
+      gtk_container_add (GTK_CONTAINER (window), vbox);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
 
       size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
index c0690a6e75a926bb4901471dc16e32d542c41b6e..c368c20fbb4ab4cf7650579ebd88313ef7faeeb1 100644 (file)
@@ -7,7 +7,6 @@
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
 static GtkWidget *spinner_sensitive = NULL;
 static GtkWidget *spinner_unsensitive = NULL;
 
@@ -28,6 +27,7 @@ on_stop_clicked (GtkButton *button, gpointer user_data)
 GtkWidget *
 do_spinner (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
   GtkWidget *content_area;
   GtkWidget *vbox;
   GtkWidget *hbox;
index d536187943e63c382656355063c0ec957774efd0..6a82cb7c72b6c3195fc8d748a119acbda2db0060 100644 (file)
@@ -8,8 +8,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkBuilder *builder;
-
 GtkWidget *
 do_stack (GtkWidget *do_widget)
 {
@@ -17,6 +15,8 @@ do_stack (GtkWidget *do_widget)
 
   if (!window)
     {
+      GtkBuilder *builder;
+
       builder = gtk_builder_new_from_resource ("/stack/stack.ui");
       gtk_builder_connect_signals (builder, NULL);
       window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
@@ -24,17 +24,14 @@ do_stack (GtkWidget *do_widget)
                              gtk_widget_get_screen (do_widget));
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
+
+      g_object_unref (builder);
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show_all (window);
-    }
+    gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
 
   return window;
index fa9cded39a32d9c2996b700348559541facc4de3..ad8db28957d731dab4cd5012a3857ce799a10b7e 100644 (file)
@@ -17,7 +17,6 @@ do_theming_style_classes (GtkWidget *do_widget)
 {
   GtkWidget *grid;
   GtkBuilder *builder;
-  GError *err = NULL;
 
   if (!window)
     {
@@ -29,13 +28,7 @@ do_theming_style_classes (GtkWidget *do_widget)
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
 
-      builder = gtk_builder_new ();
-      gtk_builder_add_from_resource (builder, "/theming_style_classes/theming.ui", NULL);
-      if (err)
-        {
-          g_error ("ERROR: %s\n", err->message);
-          return NULL;
-        }
+      builder = gtk_builder_new_from_resource ("/theming_style_classes/theming.ui");
 
       grid = (GtkWidget *)gtk_builder_get_object (builder, "grid");
       gtk_widget_show_all (grid);
@@ -44,14 +37,9 @@ do_theming_style_classes (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index ea685a1a5f495d63e82ad55a9f19679376fb66e4..f156ff20e2de5022eb227718437439011bba672c 100644 (file)
@@ -196,8 +196,7 @@ do_transparent (GtkWidget *do_widget)
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_screen (GTK_WINDOW (window),
                              gtk_widget_get_screen (do_widget));
-      gtk_window_set_default_size (GTK_WINDOW (window),
-                                   450, 450);
+      gtk_window_set_default_size (GTK_WINDOW (window), 450, 450);
 
       g_signal_connect (window, "destroy",
                         G_CALLBACK (gtk_widget_destroyed), &window);
@@ -235,14 +234,9 @@ do_transparent (GtkWidget *do_widget)
     }
 
   if (!gtk_widget_get_visible (window))
-    {
-      gtk_widget_show (window);
-    }
+    gtk_widget_show (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }
index 3706e4dfb5851d581228c2949fdcc49c0434a8c1..228b21d5577b116566ce3bb8fe6b00d24f4e81e9 100644 (file)
@@ -10,8 +10,6 @@
 
 #include <gtk/gtk.h>
 
-static GtkWidget *window = NULL;
-
 /* TreeItem structure */
 typedef struct _TreeItem TreeItem;
 struct _TreeItem
@@ -387,6 +385,8 @@ add_columns (GtkTreeView *treeview)
 GtkWidget *
 do_tree_store (GtkWidget *do_widget)
 {
+  static GtkWidget *window = NULL;
+
   if (!window)
     {
       GtkWidget *vbox;
@@ -440,10 +440,7 @@ do_tree_store (GtkWidget *do_widget)
   if (!gtk_widget_get_visible (window))
     gtk_widget_show_all (window);
   else
-    {
-      gtk_widget_destroy (window);
-      window = NULL;
-    }
+    gtk_widget_destroy (window);
 
   return window;
 }