Make sure that all timeouts in HildonBanner are removed
[hildon] / examples / hildon-wizard-dialog-example.c
index baf4d49..e542221 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is a part of hildon examples
  *
- * Copyright (C) 2005, 2006, 2007 Nokia Corporation, all rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2009 Nokia Corporation, all rights reserved.
  *
  * Author: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
  *
 
 #include                                        <stdio.h>
 #include                                        <stdlib.h>
+#include                                        <string.h>
 #include                                        <glib.h>
 #include                                        <gtk/gtk.h>
-#include                                        "hildon.h"
+#include                                        <hildon/hildon.h>
 
 gboolean
 on_page_switch (GtkNotebook *notebook, 
@@ -43,29 +44,51 @@ on_page_switch (GtkNotebook *notebook,
     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);
+    /*     g_debug ("Making next insensitive! %d", num); */
+    /*     gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), HILDON_WIZARD_DIALOG_NEXT, FALSE); */
     }
-    
+
+    return TRUE;
+}
+
+static gboolean
+some_page_func (GtkNotebook *nb,
+                gint current,
+                gpointer userdata)
+{
+  GtkEntry *entry;
+
+  /* Validate data only for the third page. */
+  switch (current) {
+  case 2:
+    entry = GTK_ENTRY (gtk_notebook_get_nth_page (nb, current));
+    return (strlen (gtk_entry_get_text (entry)) != 0);
+  default:
     return TRUE;
+  }
 }
 
 int
-main (int argc, char **args)
+main (int argc, char **argv)
 {
-    gtk_init (&argc, &args);
-   
+    hildon_gtk_init (&argc, &argv);
+
     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");
+    GtkWidget *entry_3 = hildon_entry_new (HILDON_SIZE_AUTO);
+    hildon_gtk_entry_set_placeholder_text (GTK_ENTRY (entry_3), " Write something to continue");
+    GtkWidget *label_4 = gtk_label_new ("Page 4");
 
     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);
+    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), entry_3, NULL);
+    gtk_notebook_append_page (GTK_NOTEBOOK (notebook), label_4, 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);
+    hildon_wizard_dialog_set_forward_page_func (HILDON_WIZARD_DIALOG (dialog),
+                                                some_page_func, NULL, NULL);
 
     gtk_widget_show_all (dialog);
     gtk_dialog_run (GTK_DIALOG (dialog));