[gtk+] widget-factory: show off needs-attention stack pages



commit 5e5ecbbf811bde57d7bacad4f0f0d50bfe51fbae
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Jul 4 15:46:47 2014 -0400

    widget-factory: show off needs-attention stack pages
    
    When clicking 'Action' in the 'Act' dialog, we mark the third
    page as needing attention a second later. This unveils that we
    currently don't have any theming for needs-attention in Adwaita.

 demos/widget-factory/widget-factory.c  |   26 +++++++++++++++++++++++++-
 demos/widget-factory/widget-factory.ui |    2 +-
 2 files changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c
index 9ba633f..041b0b2 100644
--- a/demos/widget-factory/widget-factory.c
+++ b/demos/widget-factory/widget-factory.c
@@ -75,7 +75,7 @@ activate_about (GSimpleAction *action,
   };
   gchar *version;
 
-  version = g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d",
+  version = g_strdup_printf ("%s\nRunning against GTK+ %d.%d.%d",
                              PACKAGE_VERSION,
                              gtk_get_major_version (),
                              gtk_get_minor_version (),
@@ -283,12 +283,32 @@ close_dialog (GtkWidget *dialog)
   gtk_widget_hide (dialog);
 }
 
+static gboolean
+demand_attention (gpointer page)
+{
+  GtkWidget *stack;
+
+  stack = gtk_widget_get_parent (page);
+  gtk_container_child_set (GTK_CONTAINER (stack), page,
+                           "needs-attention", TRUE,
+                           NULL);
+
+  return G_SOURCE_REMOVE;
+}
+
+static void
+action_dialog_button_clicked (GtkButton *button, GtkWidget *page)
+{
+  g_timeout_add (1000, demand_attention, page);
+}
+
 static void
 activate (GApplication *app)
 {
   GtkBuilder *builder;
   GtkWindow *window;
   GtkWidget *widget;
+  GtkWidget *page;
   GtkWidget *dialog;
   GtkAdjustment *adj;
   static GActionEntry win_entries[] = {
@@ -356,6 +376,10 @@ activate (GApplication *app)
   widget = (GtkWidget *)gtk_builder_get_object (builder, "action_dialog_button");
   g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog);
 
+  widget = (GtkWidget *)gtk_builder_get_object (builder, "act_action_dialog");
+  page = (GtkWidget *)gtk_builder_get_object (builder, "page3_content");
+  g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), page);
+
   dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog");
   g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL);
   widget = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog_button");
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index b0f1917..13a3d43 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -2727,7 +2727,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
               </packing>
             </child>
             <child>
-              <object class="GtkSpinner">
+              <object class="GtkSpinner" id="page3_content">
                 <property name="visible">True</property>
                 <property name="active">True</property>
                 <property name="expand">True</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]