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;
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*\/); */
- make_buttons_sensitive (wizard_dialog, TRUE, TRUE, TRUE);
-
+ make_buttons_sensitive (wizard_dialog,
+ (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;
+}