Don't call the _set_sensitivity again after switching the page. Fixes NB#49374. Addin...
authorMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Wed, 25 Jul 2007 08:41:48 +0000 (08:41 +0000)
committerMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Wed, 25 Jul 2007 08:41:48 +0000 (08:41 +0000)
ChangeLog
examples/Makefile.am
examples/hildon-wizard-dialog-example.c [new file with mode: 0644]
src/hildon-wizard-dialog.c

index 782506f..900683a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2007-07-25  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com> 
 
+       * src/hildon-wizard-dialog.c: Don't call the _set_sensitivity again after
+       switching the page. Fixes NB#49374.
+
+       * examples/Makefile.am:
+       * examples/hildon-wizard-dialog-example.c: Adding an example for
+       HildonWizardDialog that shows how to handle manual sensitivity setting on
+       the wizard dialog.
+
+2007-07-25  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com> 
+
        * configure.ac:
        * src/Makefile.am:
        * src/hildon-version.h.in:
index 77f3113..745d61e 100644 (file)
@@ -34,13 +34,19 @@ noinst_PROGRAMS                             = hildon-window-example                         \
                                          hildon-bread-crumb-trail-example              \
                                          hildon-finger-example                         \
                                          hildon-seekbar-example                        \
-                                         hildon-find-toolbar-example
+                                         hildon-find-toolbar-example                   \
+                                         hildon-wizard-dialog-example
 
 # Hildon window
 hildon_window_example_LDADD            = $(HILDON_OBJ_LIBS)
 hildon_window_example_CFLAGS           = $(HILDON_OBJ_CFLAGS)
 hildon_window_example_SOURCES          = hildon-window-example.c
 
+# Hildon wizard dialog
+hildon_wizard_dialog_example_LDADD     = $(HILDON_OBJ_LIBS)
+hildon_wizard_dialog_example_CFLAGS    = $(HILDON_OBJ_CFLAGS)
+hildon_wizard_dialog_example_SOURCES   = hildon-wizard-dialog-example.c
+
 # Hildon find toolbar
 hildon_find_toolbar_example_LDADD      = $(HILDON_OBJ_LIBS)
 hildon_find_toolbar_example_CFLAGS     = $(HILDON_OBJ_CFLAGS)
diff --git a/examples/hildon-wizard-dialog-example.c b/examples/hildon-wizard-dialog-example.c
new file mode 100644 (file)
index 0000000..baf4d49
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * This file is a part of hildon examples
+ *
+ * Copyright (C) 2005, 2006, 2007 Nokia Corporation, all rights reserved.
+ *
+ * Author: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include                                        <stdio.h>
+#include                                        <stdlib.h>
+#include                                        <glib.h>
+#include                                        <gtk/gtk.h>
+#include                                        "hildon.h"
+
+gboolean
+on_page_switch (GtkNotebook *notebook, 
+                GtkNotebookPage *page, 
+                guint num,
+                HildonWizardDialog *dialog);
+
+gboolean
+on_page_switch (GtkNotebook *notebook, 
+                GtkNotebookPage *page, 
+                guint num,
+                HildonWizardDialog *dialog)
+{
+    g_debug ("Page %d", num);
+
+    if (num == 1) {
+        g_debug ("Making next insensitive! %d", num);
+        gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), HILDON_WIZARD_DIALOG_NEXT, FALSE);
+    }
+    
+    return TRUE;
+}
+
+int
+main (int argc, char **args)
+{
+    gtk_init (&argc, &args);
+   
+    GtkWidget *notebook = gtk_notebook_new ();
+    GtkWidget *label_1 = gtk_label_new ("Page 1");
+    GtkWidget *label_2 = gtk_label_new ("Page 2");
+    GtkWidget *label_3 = gtk_label_new ("Page 3");
+
+    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_1, NULL);
+    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_2, NULL);
+    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_3, NULL);
+
+    GtkWidget *dialog = hildon_wizard_dialog_new (NULL, "Wizard", GTK_NOTEBOOK (notebook));
+    g_signal_connect (G_OBJECT (notebook), "switch-page", G_CALLBACK (on_page_switch), dialog);
+
+    gtk_widget_show_all (dialog);
+    gtk_dialog_run (GTK_DIALOG (dialog));
+    
+    return 0;
+}
+
+
index 28249e6..510cfe5 100644 (file)
@@ -459,11 +459,6 @@ response                                        (HildonWizardDialog *wizard_dial
     is_last = current == last;
     is_first = current == 0;
 
-    /* If first page, previous and finish are disabled, 
-       if last page, next is disabled */
-    make_buttons_sensitive (wizard_dialog,
-            !is_first, !is_first, !is_last);
-
     /* Don't let the dialog close */
     g_signal_stop_emission_by_name (wizard_dialog, "response");