diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index 7c30f91f18..84ead9749d 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -65,12 +65,26 @@ show_about (GtkMenuItem *item, GtkWidget *window)
g_object_unref (pixbuf);
}
+static void
+on_page_toggled (GtkToggleButton *button,
+ GtkNotebook *pages)
+{
+ gint page;
+
+ if (!gtk_toggle_button_get_active (button))
+ return;
+
+ page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "page"));
+ gtk_notebook_set_current_page (pages, page);
+}
+
int
main (int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
GtkWidget *widget;
+ GtkWidget *notebook;
gboolean dark = FALSE;
gtk_init (&argc, &argv);
@@ -88,6 +102,15 @@ main (int argc, char *argv[])
g_signal_connect (widget, "toggled", G_CALLBACK (dark_toggled), NULL);
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), dark);
+ notebook = (GtkWidget*) gtk_builder_get_object (builder, "toplevel_notebook");
+ widget = (GtkWidget*) gtk_builder_get_object (builder, "togglepage1");
+ g_object_set_data (G_OBJECT (widget), "page", GINT_TO_POINTER (0));
+ g_signal_connect (widget, "toggled", G_CALLBACK (on_page_toggled), notebook);
+
+ widget = (GtkWidget*) gtk_builder_get_object (builder, "togglepage2");
+ g_object_set_data (G_OBJECT (widget), "page", GINT_TO_POINTER (1));
+ g_signal_connect (widget, "toggled", G_CALLBACK (on_page_toggled), notebook);
+
widget = (GtkWidget*) gtk_builder_get_object (builder, "aboutmenuitem");
g_signal_connect (widget, "activate", G_CALLBACK (show_about), window);
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index 22a95187e1..b76e04e8d4 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -475,6 +475,47 @@ Suspendisse feugiat quam quis dolor accumsan cursus.
True
+
+
+
+ True
+ True
+
+
- True
+ False
True
@@ -515,108 +556,484 @@ Suspendisse feugiat quam quis dolor accumsan cursus.
-