JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkAssistant_gtk_1assistant_1set_1page_1type ( JNIEnv* env, jclass cls, jlong _self, jlong _page, jint _type ) { GtkAssistant* self; GtkWidget* page; GtkAssistantPageType type; // convert parameter self self = (GtkAssistant*) _self; // convert parameter page page = (GtkWidget*) _page; // convert parameter type type = (GtkAssistantPageType) _type; // call function gtk_assistant_set_page_type(self, page, type); // cleanup parameter self // cleanup parameter page // cleanup parameter type }
static void create_page1 (GtkWidget *assistant) { GtkWidget *box, *label, *entry; GdkPixbuf *pixbuf; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); label = gtk_label_new ("You must fill out this entry to continue:"); gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (on_entry_changed), assistant); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 1"); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), box, GTK_ASSISTANT_PAGE_INTRO); pixbuf = gtk_widget_render_icon_pixbuf (assistant, GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); gtk_assistant_set_page_header_image (GTK_ASSISTANT (assistant), box, pixbuf); g_object_unref (pixbuf); }
static void account_assistant_present_error_page (EmpathyAccountAssistant *self, GError *error, gint page_num) { GtkWidget *error_page, *back_button; gint num; error_page = account_assistant_build_error_page (self, error, page_num); num = gtk_assistant_append_page (GTK_ASSISTANT (self), error_page); gtk_assistant_set_page_title (GTK_ASSISTANT (self), error_page, _("An error occurred")); gtk_assistant_set_page_type (GTK_ASSISTANT (self), error_page, GTK_ASSISTANT_PAGE_SUMMARY); back_button = gtk_button_new_from_stock (GTK_STOCK_GO_BACK); gtk_assistant_add_action_widget (GTK_ASSISTANT (self), back_button); g_object_set_data (G_OBJECT (back_button), "page-num", GINT_TO_POINTER (page_num)); g_signal_connect (back_button, "clicked", G_CALLBACK (account_assistant_back_button_clicked_cb), self); gtk_widget_show (back_button); gtk_assistant_set_current_page (GTK_ASSISTANT (self), num); }
void linphone_gtk_show_audio_assistant(void){ GtkWidget *w; if(audio_assistant!=NULL) return; w=audio_assistant=linphone_gtk_create_window("audio_assistant"); gtk_window_set_resizable (GTK_WINDOW(w), FALSE); gtk_window_set_title(GTK_WINDOW(w),_("Audio Assistant")); GtkWidget *welcome=create_intro(); GtkWidget *mic_page=create_mic_page(); GtkWidget *speaker_page=create_speaker_page(); GtkWidget *play_record_page=create_play_record_page(); GtkWidget *end_page=create_end_page(); gtk_assistant_append_page(GTK_ASSISTANT(w),welcome); gtk_assistant_set_page_type(GTK_ASSISTANT(w),welcome,GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_title(GTK_ASSISTANT(w),welcome,_("Audio assistant")); gtk_assistant_set_page_complete(GTK_ASSISTANT(w),welcome,TRUE); gtk_assistant_append_page(GTK_ASSISTANT(w),mic_page); gtk_assistant_set_page_type(GTK_ASSISTANT(w),mic_page,GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_title(GTK_ASSISTANT(w),mic_page,_("Mic Gain calibration")); gtk_assistant_set_page_complete(GTK_ASSISTANT(w),mic_page,TRUE); gtk_assistant_append_page(GTK_ASSISTANT(w),speaker_page); gtk_assistant_set_page_type(GTK_ASSISTANT(w),speaker_page,GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete(GTK_ASSISTANT(w),speaker_page,FALSE); gtk_assistant_set_page_title(GTK_ASSISTANT(w),speaker_page,_("Speaker volume calibration")); gtk_assistant_append_page(GTK_ASSISTANT(w),play_record_page); gtk_assistant_set_page_type(GTK_ASSISTANT(w),play_record_page,GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete(GTK_ASSISTANT(w),play_record_page,TRUE); gtk_assistant_set_page_title(GTK_ASSISTANT(w),play_record_page,_("Record and Play")); gtk_assistant_append_page(GTK_ASSISTANT(w),end_page); gtk_assistant_set_page_type(GTK_ASSISTANT(w),end_page,GTK_ASSISTANT_PAGE_SUMMARY); gtk_assistant_set_page_complete(GTK_ASSISTANT(w),end_page,TRUE); gtk_assistant_set_page_title(GTK_ASSISTANT(w),end_page,_("Terminating")); g_signal_connect(G_OBJECT(w),"close",(GCallback)linphone_gtk_close_audio_assistant,w); g_signal_connect(G_OBJECT(w),"cancel",(GCallback)linphone_gtk_close_audio_assistant,w); g_signal_connect(G_OBJECT(w),"prepare",(GCallback)prepare,NULL); gtk_widget_show(w); }
static void append_intro_page(TyonXceleratorCalibrationAssistant *assistant) { GtkWidget *label; label = gtk_label_new(_("You can calibrate the X-Celerator analog thumb paddle after pressing next")); gtk_assistant_append_page(GTK_ASSISTANT(assistant), label); gtk_assistant_set_page_title(GTK_ASSISTANT(assistant), label, _("Start calibration")); gtk_assistant_set_page_type(GTK_ASSISTANT(assistant), label, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), label, TRUE); }
static void append_confirm_page(TyonXceleratorCalibrationAssistant *assistant) { TyonXceleratorCalibrationAssistantPrivate *priv = assistant->priv; priv->confirm_page = gtk_label_new(_("Finished!")); priv->confirm_page_index = gtk_assistant_append_page(GTK_ASSISTANT(assistant), priv->confirm_page); gtk_assistant_set_page_title(GTK_ASSISTANT(assistant), priv->confirm_page, _("Finish")); gtk_assistant_set_page_type(GTK_ASSISTANT(assistant), priv->confirm_page, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), priv->confirm_page, TRUE); }
static void empathy_account_assistant_init (EmpathyAccountAssistant *self) { EmpathyAccountAssistantPriv *priv; GtkAssistant *assistant = GTK_ASSISTANT (self); GtkWidget *page; priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EMPATHY_TYPE_ACCOUNT_ASSISTANT, EmpathyAccountAssistantPriv); self->priv = priv; g_signal_connect (self, "close", G_CALLBACK (account_assistant_close_cb), NULL); gtk_assistant_set_forward_page_func (assistant, account_assistant_page_forward_func, self, NULL); /* first page (introduction) */ page = account_assistant_build_introduction_page (self); gtk_assistant_append_page (assistant, page); gtk_assistant_set_page_title (assistant, page, _("Welcome to Empathy")); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_complete (assistant, page, TRUE); /* second page (import accounts) */ page = account_assistant_build_import_page (self); gtk_assistant_append_page (assistant, page); gtk_assistant_set_page_title (assistant, page, _("Import your existing accounts")); gtk_assistant_set_page_complete (assistant, page, TRUE); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONFIRM); /* third page (enter account details) */ page = account_assistant_build_enter_or_create_page (self); gtk_assistant_append_page (assistant, page); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONFIRM); priv->enter_or_create_page = page; gtk_window_set_resizable (GTK_WINDOW (self), FALSE); }
static GtkWidget * add_new_page(CongNewFileAssistant *assistant, const char *text, GtkAssistantPageType type) { GtkWidget *page = gtk_label_new(text); gtk_label_set_line_wrap(GTK_LABEL(page), TRUE); gtk_assistant_append_page(assistant->druid, page); gtk_assistant_set_page_type(assistant->druid, page, type); gtk_assistant_set_page_title(assistant->druid, page, _("Creating a new file")); format_page(assistant, page); return page; }
static void append_summary_page(TyonXceleratorCalibrationAssistant *assistant) { TyonXceleratorCalibrationAssistantPrivate *priv = assistant->priv; priv->summary_page = gtk_label_new(NULL); priv->summary_label = GTK_LABEL(priv->summary_page); priv->summary_page_index = gtk_assistant_append_page(GTK_ASSISTANT(assistant), priv->summary_page); gtk_assistant_set_page_title(GTK_ASSISTANT(assistant), priv->summary_page, _("Summary")); gtk_assistant_set_page_type(GTK_ASSISTANT(assistant), priv->summary_page, GTK_ASSISTANT_PAGE_SUMMARY); gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), priv->summary_page, TRUE); }
static NPWPage* npw_druid_add_new_page (NPWDruid* druid) { gint current; NPWPage* page; /* Get page in cache */ current = gtk_assistant_get_current_page (GTK_ASSISTANT (druid->window)); page = g_queue_peek_nth (druid->page_list, current - (druid->no_selection ? 0 : 1) + 1); if (page == NULL) { /* Page not found in cache, create */ GtkBuilder *builder; GtkWidget *widget; GtkAssistantPageType type; GtkWidget *table; GtkAssistant *assistant; /* Build another complete wizard dialog from the gtk builder file * but keep only the property assistant page */ builder = gtk_builder_new (); if (!gtk_builder_add_from_file (builder, GTK_BUILDER_UI_FILE, NULL)) { g_warn_if_reached (); g_object_unref (builder); return NULL; } assistant = GTK_ASSISTANT (gtk_builder_get_object (builder, NEW_PROJECT_DIALOG)); widget = GTK_WIDGET (gtk_builder_get_object (builder, PROPERTY_PAGE)); table = GTK_WIDGET (gtk_builder_get_object (builder, PROPERTY_TABLE)); type = gtk_assistant_get_page_type (assistant, widget); gtk_container_remove (GTK_CONTAINER (assistant), widget); gtk_assistant_insert_page (GTK_ASSISTANT (druid->window), widget, current + 1); gtk_assistant_set_page_type (GTK_ASSISTANT (druid->window), widget, type); gtk_assistant_set_page_complete (GTK_ASSISTANT (druid->window), widget, TRUE); gtk_widget_destroy (GTK_WIDGET (assistant)); /* Builder get reference on all built widget, so unref it when all work is done */ g_object_unref (builder); /* Create new page */ page = npw_page_new (druid->values); npw_page_set_widget (page, table); /* Add page in cache */ g_queue_push_tail (druid->page_list, page); } return page; }
void balsa_druid_page_finish(GtkAssistant * druid) { static const gchar bye[] = N_("You’ve successfully set up Balsa. Have fun!\n" " -- The Balsa development team"); GtkWidget *page = gtk_label_new(_(bye)); gtk_assistant_append_page(druid, page); gtk_assistant_set_page_title(druid, page, _("All Done!")); gtk_assistant_set_page_type(druid, page, GTK_ASSISTANT_PAGE_SUMMARY); }
static void create_page3 (GtkWidget *assistant) { GtkWidget *label; label = gtk_label_new ("This is a confirmation page, press 'Apply' to apply changes"); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, "Confirmation"); }
GtkWidget* eee_account_wizard_page(EPlugin *epl, EConfigHookItemFactoryData *data) { GtkWidget *page, *panel, *section, *checkbutton_status, *label; char *title = _("3e Calendar Account"); assistant = GTK_ASSISTANT(data->parent); if (data->old) return data->old; page = gtk_vbox_new (FALSE, 12); gtk_container_set_border_width (GTK_CONTAINER (page), 12); // toplevel vbox contains frames that group 3E account settings into various // groups // Status group section = add_section(page, _("Enable 3e calendar account")); // char* note = g_strdup(_("3e calendar server has been found for your domain. You can enable\n" // "calendar account if you have it. If you don't know ask your system\n" // "administrator or provider of your email service. Go to email account\n" // "preferences to change this setting later.")); label = GTK_WIDGET(g_object_new(GTK_TYPE_LABEL, "label", "", "use-markup", TRUE, "justify", GTK_JUSTIFY_LEFT, "xalign", 0, "yalign", 0.5, NULL)); // g_free(note); lbl = (GtkLabel*)label; gtk_box_pack_start(GTK_BOX(section), label, FALSE, FALSE, 0); checkbutton_status = gtk_check_button_new_with_label(_("Enable 3e calendar account")); gtk_widget_set_can_focus (checkbutton_status, FALSE); gtk_box_pack_start(GTK_BOX(section), checkbutton_status, FALSE, FALSE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_status), TRUE); g_signal_connect(checkbutton_status, "toggled", G_CALLBACK(wizard_chb_status_changed), (gpointer)title); gtk_widget_show_all(page); gtk_assistant_append_page(GTK_ASSISTANT(data->parent), page); gtk_assistant_set_page_title (GTK_ASSISTANT(data->parent), page, title); gtk_assistant_set_page_type (GTK_ASSISTANT(data->parent), page, GTK_ASSISTANT_PAGE_CONTENT); // g_object_set_data((GObject *)data->parent, "restore", GINT_TO_POINTER(FALSE)); return GTK_WIDGET(page); }
static void account_assistant_radio_choice_toggled_cb (GtkToggleButton *button, EmpathyAccountAssistant *self) { FirstPageResponse response; EmpathyAccountAssistantPriv *priv = GET_PRIV (self); GtkWidget *intro_page; response = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "response")); priv->first_resp = response; intro_page = gtk_assistant_get_nth_page (GTK_ASSISTANT (self), PAGE_INTRO); if (response == RESPONSE_SALUT_ONLY) gtk_assistant_set_page_type (GTK_ASSISTANT (self), intro_page, GTK_ASSISTANT_PAGE_SUMMARY); else gtk_assistant_set_page_type (GTK_ASSISTANT (self), intro_page, GTK_ASSISTANT_PAGE_INTRO); }
/* GtkAssistant is a very weird widget, why is it derived from GtkWindow instead of GtkNotebook I do not know! If there is no GTK_ASSISTANT_PAGE_CONFIRM, GtkAssistant abort when trying to update its navigation buttons! */ static void glade_gtk_assistant_update_page_type (GtkAssistant * assistant) { gint i, current, pages; GtkWidget *page; current = gtk_assistant_get_current_page (assistant); pages = gtk_assistant_get_n_pages (assistant) - 1; if (pages < 0) return; /* Last Page */ page = gtk_assistant_get_nth_page (assistant, pages); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONFIRM); /* First page */ page = gtk_assistant_get_nth_page (assistant, 0); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_INTRO); /* In betwen pages */ for (i = 1; i < pages; i++) { page = gtk_assistant_get_nth_page (assistant, i); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONTENT); } /* Now we have set page-type in every page, force button update */ for (i = 0; i <= pages; i++) { page = gtk_assistant_get_nth_page (assistant, i); gtk_assistant_set_page_complete (assistant, page, TRUE); } if (current >= 0) gtk_assistant_set_current_page (assistant, current); }
static void account_assistant_radio_create_again_clicked_cb (GtkButton *button, EmpathyAccountAssistant *self) { CreateEnterPageResponse response; EmpathyAccountAssistantPriv *priv = GET_PRIV (self); response = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "response")); priv->create_enter_resp = response; gtk_assistant_set_page_type (GTK_ASSISTANT (self), priv->enter_or_create_page, (response == RESPONSE_CREATE_AGAIN) ? GTK_ASSISTANT_PAGE_CONTENT : GTK_ASSISTANT_PAGE_CONFIRM); }
static void create_page4 (GtkWidget *assistant) { progress_bar = gtk_progress_bar_new (); gtk_widget_set_halign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_set_valign (progress_bar, GTK_ALIGN_CENTER); gtk_widget_show (progress_bar); gtk_assistant_append_page (GTK_ASSISTANT (assistant), progress_bar); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), progress_bar, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), progress_bar, "Applying changes"); /* This prevents the assistant window from being * closed while we're "busy" applying changes. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), progress_bar, FALSE); }
static void create_page3 (GtkWidget *assistant) { GtkWidget *label; GdkPixbuf *pixbuf; label = gtk_label_new ("This is a confirmation page, press 'Apply' to apply changes"); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, "Confirmation"); pixbuf = gtk_widget_render_icon_pixbuf (assistant, GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); gtk_assistant_set_page_header_image (GTK_ASSISTANT (assistant), label, pixbuf); g_object_unref (pixbuf); }
static void create_page4 (GtkWidget *assistant) { GtkWidget *page; page = gtk_alignment_new (0.5, 0.5, 0.5, 0.0); progress_bar = gtk_progress_bar_new (); gtk_container_add (GTK_CONTAINER (page), progress_bar); gtk_widget_show_all (page); gtk_assistant_append_page (GTK_ASSISTANT (assistant), page); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, "Applying changes"); /* This prevents the assistant window from being * closed while we're "busy" applying changes. */ gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), page, FALSE); }
GtkWidget* eee_account_wizard_page(EPlugin *epl, EConfigHookItemFactoryData *data) { GtkWidget *page, *panel, *section, *checkbutton_status, *label; char *title = _("3e Calendar Account"); assistant = GTK_ASSISTANT(data->parent); if (data->old) return data->old; page = gtk_vbox_new (FALSE, 12); gtk_container_set_border_width (GTK_CONTAINER (page), 12); // toplevel vbox contains frames that group 3E account settings into various // groups // Status group section = add_section(page, _("Enable 3e calendar account")); label = gtk_label_new (NULL); gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); lbl = GTK_LABEL (label); gtk_box_pack_start(GTK_BOX(section), label, FALSE, FALSE, 0); checkbutton_status = gtk_check_button_new_with_label(_("Enable 3e calendar account")); gtk_widget_set_can_focus (checkbutton_status, FALSE); gtk_box_pack_start(GTK_BOX(section), checkbutton_status, FALSE, FALSE, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton_status), TRUE); g_signal_connect(checkbutton_status, "toggled", G_CALLBACK(wizard_chb_status_changed), (gpointer)title); gtk_widget_show_all(page); gtk_assistant_append_page(GTK_ASSISTANT(data->parent), page); gtk_assistant_set_page_title (GTK_ASSISTANT(data->parent), page, title); gtk_assistant_set_page_type (GTK_ASSISTANT(data->parent), page, GTK_ASSISTANT_PAGE_CONTENT); // g_object_set_data((GObject *)data->parent, "restore", GINT_TO_POINTER(FALSE)); return page; }
static void create_welcome_page (AssistantWindow *assistant) { GtkWidget *label; label = gtk_label_new (_("This is the Ekiga general configuration assistant. " "The following steps will set up Ekiga by asking " "a few simple questions.\n\nOnce you have completed " "these steps, you can always change them later by " "selecting Preferences in the Edit menu.")); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, _("Welcome to Ekiga")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_INTRO); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); assistant->priv->welcome_page = label; }
static void account_assistant_reset_enter_create_page (EmpathyAccountAssistant *self) { EmpathyAccountAssistantPriv *priv = GET_PRIV (self); GtkWidget *page; gint idx; page = account_assistant_build_enter_or_create_page (self); idx = gtk_assistant_append_page (GTK_ASSISTANT (self), page); gtk_assistant_set_page_type (GTK_ASSISTANT (self), page, GTK_ASSISTANT_PAGE_CONFIRM); priv->enter_or_create_page = page; gtk_assistant_set_current_page (GTK_ASSISTANT (self), idx); account_assistant_finish_enter_or_create_page (self, priv->first_resp == RESPONSE_ENTER_ACCOUNT ? TRUE : FALSE); }
/* Build the page to look more or less like GnomeDruid would have done it */ static GtkWidget * add_new_page_with_widget(CongNewFileAssistant *assistant, const char *title, const char *question, const char *info, GtkWidget *widget) { GtkWidget *page, *top_label, *bottom_label; char *text; page = gtk_vbox_new(FALSE, 0); if(question) { top_label = gtk_label_new(question); g_object_set(top_label, "use-markup", TRUE, "use-underline", TRUE, "mnemonic-widget", widget, "justify", GTK_JUSTIFY_LEFT, "xalign", 0.0, NULL); gtk_box_pack_start(GTK_BOX(page), top_label, FALSE, FALSE, 0); } gtk_box_pack_start(GTK_BOX(page), widget, FALSE, FALSE, 0); if(info) { text = g_strconcat("<span size=\"small\">", info, "</span>", NULL); bottom_label = gtk_label_new(text); g_free(text); g_object_set(bottom_label, "use-markup", TRUE, "justify", GTK_JUSTIFY_LEFT, "xalign", 0.0, "xpad", 24, NULL); gtk_box_pack_start(GTK_BOX(page), bottom_label, FALSE, FALSE, 0); } gtk_assistant_append_page(assistant->druid, page); gtk_assistant_set_page_type(assistant->druid, page, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_title(assistant->druid, page, title); gtk_assistant_set_page_complete(assistant->druid, page, TRUE); format_page(assistant, page); return page; }
static GtkWidget * create_page (AssistantWindow *assistant, const gchar *title, GtkAssistantPageType page_type) { GtkWidget *vbox; vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); gtk_assistant_append_page (GTK_ASSISTANT (assistant), vbox); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), vbox, title); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), vbox, page_type); if (page_type != GTK_ASSISTANT_PAGE_CONTENT) gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox, TRUE); return vbox; }
static void append_progress_page(TyonXceleratorCalibrationAssistant *assistant) { TyonXceleratorCalibrationAssistantPrivate *priv = assistant->priv; GtkWidget *vbox; priv->progress_label = GTK_LABEL(gtk_label_new(NULL)); priv->progress_page = gtk_hbox_new(FALSE, 0); priv->positional = TYON_2D_POSITIONAL(tyon_2d_positional_new()); vbox = gtk_vbox_new(FALSE, 0); priv->progress_bar = GTK_PROGRESS_BAR(gtk_progress_bar_new()); gtk_box_pack_start(GTK_BOX(priv->progress_page), GTK_WIDGET(priv->positional), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(priv->progress_page), vbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(priv->progress_label), TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(priv->progress_bar), TRUE, FALSE, 0); gtk_assistant_append_page(GTK_ASSISTANT(assistant), priv->progress_page); gtk_assistant_set_page_title(GTK_ASSISTANT(assistant), priv->progress_page, _("Calibration")); gtk_assistant_set_page_type(GTK_ASSISTANT(assistant), priv->progress_page, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), priv->progress_page, FALSE); }
static void create_page1 (GtkWidget *assistant) { GtkWidget *box, *label, *entry; box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (box), 12); label = gtk_label_new ("You must fill out this entry to continue:"); gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); entry = gtk_entry_new (); gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (on_entry_changed), assistant); gtk_widget_show_all (box); gtk_assistant_append_page (GTK_ASSISTANT (assistant), box); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), box, "Page 1"); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), box, GTK_ASSISTANT_PAGE_INTRO); }
static void create_info_page (AssistantWindow *assistant) { GtkWidget *label; label = gtk_label_new (_("You usually need a SIP or H323 account in order to use Ekiga.\n" "Many services allow you creating such accounts.\n\n" "We suggest that you use a free ekiga.im account, " "which allows you to be called by any person with a SIP account.\n\n" "If you want to call regular phone lines too, we suggest " "that you purchase an inexpensive call out account." "\n\nThe following two pages allow you creating " "such accounts.")); gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_widget_show (label); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label, _("Introduction to Accounts")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label, TRUE); assistant->priv->info_page = label; }
static VALUE rg_set_page_type(VALUE self, VALUE page, VALUE type) { gtk_assistant_set_page_type(_SELF(self), GTK_WIDGET(RVAL2GOBJ(page)), RVAL2GENUM(type, GTK_TYPE_ASSISTANT_PAGE_TYPE)); return self; }
BackupAssistant::BackupAssistant(int dummy) : AssistantBase(_("Backup"), _("backup")) // Backup assistant. { gtk_assistant_set_forward_page_func (GTK_ASSISTANT (assistant), GtkAssistantPageFunc (assistant_forward_function), gpointer(this), NULL); g_signal_connect (G_OBJECT (assistant), "apply", G_CALLBACK (on_assistant_apply_signal), gpointer(this)); g_signal_connect (G_OBJECT (assistant), "prepare", G_CALLBACK (on_assistant_prepare_signal), gpointer(this)); introduction (_("A backup helps keep your data safe")); // Configuration and initialization. extern Settings *settings; ustring project = settings->genconfig.project_get(); // Build the GUI for the task selector. vbox_select_type = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox_select_type); page_number_select_type = gtk_assistant_append_page (GTK_ASSISTANT (assistant), vbox_select_type); gtk_container_set_border_width (GTK_CONTAINER (vbox_select_type), 10); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), vbox_select_type, _("What would you like to backup?")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), vbox_select_type, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox_select_type, true); GSList *radiobutton_select_type_group = NULL; radiobutton_select_type_bible = gtk_radio_button_new_with_mnemonic (NULL, _("Bible")); gtk_widget_show (radiobutton_select_type_bible); gtk_box_pack_start (GTK_BOX (vbox_select_type), radiobutton_select_type_bible, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_select_type_bible), radiobutton_select_type_group); radiobutton_select_type_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_select_type_bible)); radiobutton_select_type_notes = gtk_radio_button_new_with_mnemonic (NULL, _("Notes")); gtk_widget_show (radiobutton_select_type_notes); gtk_box_pack_start (GTK_BOX (vbox_select_type), radiobutton_select_type_notes, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_select_type_notes), radiobutton_select_type_group); radiobutton_select_type_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_select_type_notes)); radiobutton_select_type_resource = gtk_radio_button_new_with_mnemonic (NULL, _("Resource")); gtk_widget_show (radiobutton_select_type_resource); gtk_box_pack_start (GTK_BOX (vbox_select_type), radiobutton_select_type_resource, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_select_type_resource), radiobutton_select_type_group); radiobutton_select_type_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_select_type_resource)); radiobutton_select_type_everything = gtk_radio_button_new_with_mnemonic (NULL, _("Everything")); gtk_widget_show (radiobutton_select_type_everything); gtk_box_pack_start (GTK_BOX (vbox_select_type), radiobutton_select_type_everything, FALSE, FALSE, 0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_select_type_everything), radiobutton_select_type_group); radiobutton_select_type_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_select_type_everything)); Shortcuts shortcuts_select_type (0); shortcuts_select_type.button (radiobutton_select_type_bible); shortcuts_select_type.button (radiobutton_select_type_notes); shortcuts_select_type.button (radiobutton_select_type_resource); shortcuts_select_type.button (radiobutton_select_type_everything); shortcuts_select_type.consider_assistant(); shortcuts_select_type.process(); // Confirm or change Bible. vbox_bible_name = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox_bible_name); page_number_bible_name = gtk_assistant_append_page (GTK_ASSISTANT (assistant), vbox_bible_name); gtk_container_set_border_width (GTK_CONTAINER (vbox_bible_name), 10); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), vbox_bible_name, _("Is this the right Bible?")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), vbox_bible_name, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox_bible_name, true); label_bible_name = gtk_label_new (_("Bible name")); gtk_widget_show (label_bible_name); gtk_box_pack_start (GTK_BOX (vbox_bible_name), label_bible_name, FALSE, FALSE, 0); button_bible_name = gtk_button_new (); gtk_widget_show (button_bible_name); gtk_box_pack_start (GTK_BOX (vbox_bible_name), button_bible_name, FALSE, FALSE, 0); g_signal_connect ((gpointer) button_bible_name, "clicked", G_CALLBACK (on_button_bible_name_clicked), gpointer (this)); GtkWidget *alignment1; GtkWidget *hbox1; GtkWidget *image1; GtkWidget *label1; alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (button_bible_name), alignment1); hbox1 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (alignment1), hbox1); image1 = gtk_image_new_from_stock (_("gtk-open"), GTK_ICON_SIZE_BUTTON); gtk_widget_show (image1); gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0); label1 = gtk_label_new_with_mnemonic (_("Choose another one")); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 0); Shortcuts shortcuts_bible_name (0); shortcuts_bible_name.label (label1); shortcuts_bible_name.consider_assistant(); shortcuts_bible_name.process(); // Confirm or change Resource. vbox_resource_name = gtk_vbox_new (FALSE, 5); gtk_widget_show (vbox_resource_name); page_number_resource_name = gtk_assistant_append_page (GTK_ASSISTANT (assistant), vbox_resource_name); gtk_container_set_border_width (GTK_CONTAINER (vbox_resource_name), 10); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), vbox_resource_name, _("Is this the right Resource?")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), vbox_resource_name, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox_resource_name, true); label_resource_name = gtk_label_new (_("Resource name")); gtk_widget_show (label_resource_name); gtk_box_pack_start (GTK_BOX (vbox_resource_name), label_resource_name, FALSE, FALSE, 0); button_resource_name = gtk_button_new (); gtk_widget_show (button_resource_name); gtk_box_pack_start (GTK_BOX (vbox_resource_name), button_resource_name, FALSE, FALSE, 0); g_signal_connect ((gpointer) button_resource_name, "clicked", G_CALLBACK (on_button_resource_name_clicked), gpointer (this)); alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (button_resource_name), alignment1); hbox1 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (alignment1), hbox1); image1 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image1); gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0); label1 = gtk_label_new_with_mnemonic (_("Choose another one")); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (hbox1), label1, FALSE, FALSE, 0); Shortcuts shortcuts_resource_name (0); shortcuts_resource_name.label (label1); shortcuts_resource_name.consider_assistant(); shortcuts_resource_name.process(); // Select file where to save to. vbox_file = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox_file); page_number_file = gtk_assistant_append_page (GTK_ASSISTANT (assistant), vbox_file); gtk_container_set_border_width (GTK_CONTAINER (vbox_file), 10); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), vbox_file, _("Where would you like to save it?")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), vbox_file, GTK_ASSISTANT_PAGE_CONTENT); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox_file, false); button_file = gtk_button_new (); gtk_widget_show (button_file); gtk_box_pack_start (GTK_BOX (vbox_file), button_file, FALSE, FALSE, 0); GtkWidget *alignment2; GtkWidget *hbox2; GtkWidget *image2; alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment2); gtk_container_add (GTK_CONTAINER (button_file), alignment2); hbox2 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox2); gtk_container_add (GTK_CONTAINER (alignment2), hbox2); image2 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image2); gtk_box_pack_start (GTK_BOX (hbox2), image2, FALSE, FALSE, 0); label_file = gtk_label_new_with_mnemonic (""); gtk_widget_show (label_file); gtk_box_pack_start (GTK_BOX (hbox2), label_file, FALSE, FALSE, 0); g_signal_connect ((gpointer) button_file, "clicked", G_CALLBACK (on_button_file_clicked), gpointer(this)); // Build the confirmation stuff. label_confirm = gtk_label_new (_("Backup is about to be made")); gtk_widget_show (label_confirm); page_number_confirm = gtk_assistant_append_page (GTK_ASSISTANT (assistant), label_confirm); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label_confirm, _("Backup is about to be made")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label_confirm, GTK_ASSISTANT_PAGE_CONFIRM); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label_confirm, true); label_progress = gtk_label_new (""); gtk_widget_show (label_progress); gtk_assistant_append_page (GTK_ASSISTANT (assistant), label_progress); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label_progress, ""); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label_progress, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label_progress, true); label_summary = gtk_label_new (_("Backup is done")); gtk_widget_show (label_summary); summary_page_number = gtk_assistant_append_page (GTK_ASSISTANT (assistant), label_summary); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), label_summary, _("The backup was completed successfully.")); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), label_summary, GTK_ASSISTANT_PAGE_SUMMARY); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), label_summary, true); // Finish building assistant. gtk_widget_show_all (assistant); gtk_assistant_set_current_page (GTK_ASSISTANT (assistant), 0); }
/* main program */ int main( int argc, char **argv ) { gtk_init( &argc, &argv ); /* initialize each page */ PageInfo page[ PAGE_SIZE ] = { { NULL, -1, "Introduction", GTK_ASSISTANT_PAGE_INTRO, TRUE }, { NULL, -1, NULL, GTK_ASSISTANT_PAGE_CONTENT, FALSE }, { NULL, -1, "Click the Check Button", GTK_ASSISTANT_PAGE_CONTENT, FALSE }, { NULL, -1, "Click the Button", GTK_ASSISTANT_PAGE_PROGRESS, FALSE }, { NULL, -1, "Confirmation", GTK_ASSISTANT_PAGE_CONFIRM, TRUE }, }; /* create a new assistant widget with no pages */ GtkWidget *assistant = gtk_assistant_new(); gtk_widget_set_size_request( assistant, 450, 300 ); gtk_window_set_title( GTK_WINDOW( assistant ), "Assistant implements multiple page dialog" ); gtk_container_set_border_width( GTK_CONTAINER( assistant ), 10 ); g_signal_connect( G_OBJECT( assistant ), "destroy", G_CALLBACK( gtk_main_quit ), NULL ); /* initialize widgets for each page */ page[ 0 ].widget = gtk_label_new( "This is an example of a GtkAssistant. By\n" \ "clicking the forward button, you can continue\n" \ "to the next section, Good Luck, man!" ); page[ 1 ].widget = gtk_hbox_new( FALSE, 5 ); page[ 2 ].widget = gtk_check_button_new_with_label( "Click me to coninue" ); page[ 3 ].widget = gtk_alignment_new( 0.5f, .5f, .0f, .0f ); page[ 4 ].widget = gtk_label_new( "Text has been entered in the label and the\n" \ "combo box is clicked. If you are done, then\n" \ "it is time to leave!" ); /* create the necessary widgets for the second page */ GtkWidget *label = gtk_label_new( "Your name: " ); GtkWidget *entry = gtk_entry_new(); gtk_box_pack_start( GTK_BOX( page[1].widget ), label, FALSE, FALSE, 5 ); gtk_box_pack_start( GTK_BOX( page[1].widget ), entry, FALSE, FALSE, 5 ); /* * create the necessary widgets for the fourth page. The, attach the progress bar * to the GtkAlignment widget for later access */ GtkWidget *button = gtk_button_new_with_label( "click me!" ); GtkWidget *progress = gtk_progress_bar_new(); GtkWidget *hbox = gtk_hbox_new( FALSE, 5 ); gtk_box_pack_start( GTK_BOX( hbox ), progress, TRUE, FALSE, 5 ); gtk_box_pack_start( GTK_BOX( hbox ), button, FALSE, FALSE, 5 ); gtk_container_add( GTK_CONTAINER( page[3].widget ), hbox ); g_object_set_data( G_OBJECT( page[3].widget ), "pbar", (gpointer) progress ); /* add five pages to assistant */ int i; for ( i = 0; i < PAGE_SIZE; i++ ) { /* first, append page onto assistant */ page[ i ].index = gtk_assistant_append_page( GTK_ASSISTANT( assistant ), page[i].widget ); /* set attributes */ gtk_assistant_set_page_title( GTK_ASSISTANT( assistant ), page[i].widget, page[i].title ); gtk_assistant_set_page_type( GTK_ASSISTANT( assistant ), page[i].widget, page[i].type ); gtk_assistant_set_page_complete( GTK_ASSISTANT( assistant ), page[i].widget, page[i].complete ); } /* * set event handler for page 2 and page 4. * the handlers will update page2 and page 4 as complete if the pre-conditions * are set. */ g_signal_connect( G_OBJECT( entry ), "changed", G_CALLBACK( entry_changed ), (gpointer) assistant ); g_signal_connect( G_OBJECT( page[2].widget ), "toggled", G_CALLBACK( button_toggled ), (gpointer) assistant ); g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( button_clicked ), (gpointer) assistant ); g_signal_connect( G_OBJECT( assistant ), "cancel", G_CALLBACK( assistant_cancel ), NULL ); g_signal_connect( G_OBJECT( assistant ), "close", G_CALLBACK( assistant_close ), NULL ); gtk_widget_show_all( assistant ); gtk_main(); return 0; }