Add support for setting a response override func in wizard
authorJose Dapena Paz <jdapena@igalia.com>
Wed, 18 Feb 2009 15:43:15 +0000 (15:43 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Wed, 18 Feb 2009 15:43:15 +0000 (15:43 +0000)
pmo-trunk-r7556

src/widgets/modest-wizard-dialog.c
src/widgets/modest-wizard-dialog.h

index 6f77c66..7b9bf11 100644 (file)
@@ -111,6 +111,8 @@ struct _ModestWizardDialogPrivate {
     GtkBox      *box;
     GtkWidget   *image;
     gboolean    autotitle;
+
+    ModestWizardDialogResponseOverrideFunc override_func;
 };
 
 
@@ -248,6 +250,7 @@ init (ModestWizardDialog *wizard_dialog)
     GtkWidget *vbox = gtk_vbox_new (FALSE, 0);
     gtk_dialog_set_has_separator (dialog, FALSE);
     wizard_dialog->priv = priv;
+    priv->override_func = NULL;
     priv->box = GTK_BOX (gtk_hbox_new (FALSE, 0));
 #ifdef MODEST_TOOLKIT_HILDON2
     priv->image = NULL;
@@ -528,6 +531,10 @@ response (ModestWizardDialog   *wizard_dialog,
     GtkNotebook *notebook = priv->notebook;
     gint current = 0;
     gboolean is_first, is_last;
+
+    if (priv->override_func) {
+       priv->override_func (wizard_dialog, response_id, gtk_notebook_get_current_page (notebook));
+    }
     
     switch (response_id) {
         
@@ -689,3 +696,12 @@ invoke_enable_buttons_vfunc (ModestWizardDialog *wizard_dialog)
                (*(klass->enable_buttons))(wizard_dialog, current_page_widget);
        }
 }
+
+void 
+modest_wizard_dialog_set_response_override_handler (ModestWizardDialog *wizard_dialog,
+                                                   ModestWizardDialogResponseOverrideFunc callback)
+{
+    ModestWizardDialogPrivate *priv = wizard_dialog->priv;
+
+    priv->override_func = callback;
+}
index c7bdbe1..df0c01c 100644 (file)
@@ -93,6 +93,9 @@ struct _ModestWizardDialogClass {
     void (*_gtk_reserved4)  (void);
 };
 
+typedef void (* ModestWizardDialogResponseOverrideFunc) (ModestWizardDialog *dialog, 
+                                                        gint response_id, gint page_number);
+
 
 GType modest_wizard_dialog_get_type   (void) G_GNUC_CONST;
 
@@ -102,6 +105,9 @@ GtkWidget* modest_wizard_dialog_new   (GtkWindow        *parent,
                                        
 void modest_wizard_dialog_force_title_update (ModestWizardDialog* wizard_dialog);
 
+void modest_wizard_dialog_set_response_override_handler (ModestWizardDialog *wizard_dialog,
+                                                        ModestWizardDialogResponseOverrideFunc callback);
+
 G_END_DECLS
 
 #endif /* __MODEST_WIZARD_DIALOG_H__ */