gboolean previous,
gboolean finish,
gboolean next);
-
+
static gboolean invoke_before_next_vfunc (ModestWizardDialog *wizard_dialog);
static void invoke_enable_buttons_vfunc (ModestWizardDialog *wizard_dialog);
GtkBox *box;
GtkWidget *image;
gboolean autotitle;
+
+ ModestWizardDialogResponseOverrideFunc override_func;
};
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;
gtk_dialog_add_button (dialog, _HL("ecdg_bd_wizard_cancel"), MODEST_WIZARD_DIALOG_CANCEL);
#endif
#ifdef MODEST_TOOLKIT_HILDON2
- gtk_dialog_add_button (dialog, _HL("ecdg_bd_wizard_finish"), MODEST_WIZARD_DIALOG_FINISH);
- gtk_dialog_add_button (dialog, _HL("ecdg_bd_wizard_previous"), MODEST_WIZARD_DIALOG_PREVIOUS);
- gtk_dialog_add_button (dialog, _HL("ecdg_bd_wizard_next"), MODEST_WIZARD_DIALOG_NEXT);
+ gtk_dialog_add_button (dialog, _HL("wdgt_bd_finish"), MODEST_WIZARD_DIALOG_FINISH);
+ gtk_dialog_add_button (dialog, _HL("wdgt_bd_previous"), MODEST_WIZARD_DIALOG_PREVIOUS);
+ gtk_dialog_add_button (dialog, _HL("wdgt_bd_next"), MODEST_WIZARD_DIALOG_NEXT);
#endif
#ifdef MODEST_TOOLKIT_GTK
gtk_dialog_add_button (dialog, GTK_STOCK_SAVE, MODEST_WIZARD_DIALOG_FINISH);
priv->wizard_name, current + 1, pages, steps);
*/
- str = g_strdup_printf (_HL("%s: %s"),
+ str = g_strdup_printf ((steps&&*steps)?_HL("%s: %s"):_HL("%s"),
priv->wizard_name, steps);
/* } */
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) {
gint last = gtk_notebook_get_n_pages (notebook) - 1;
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 /* previous */, !is_first /* finish */, !is_last /* next*/);
-
+ (is_first) ? FALSE : TRUE,
+ TRUE,
+ (is_last) ? FALSE : TRUE);
+
/* Allow derived classes to disable buttons to prevent navigation,
* according to their own validation logic: */
invoke_enable_buttons_vfunc (wizard_dialog);
-
+
/* Don't let the dialog close */
g_signal_stop_emission_by_name (wizard_dialog, "response");
(*(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;
+}