/*! * \fn G_MODULE_EXPORT void validAssistantNewCsuOne(GtkWidget *widget, gpointer data) * Valid the first page of the assistant for a new csu file * \param[in] widget the widget which send the signal * \param[in] data the globalData */ G_MODULE_EXPORT void validAssistantNewCsuOne(GtkWidget *widget, gpointer data) { globalData *user_data = (globalData*) data; gchar name[SIZE_MAX_FILE_NAME]; gint index; gchar *folder; bool folder_ok; bool filename_ok; GtkWidget *grid_1 = getWidgetFromBuilder(user_data->ptr_builder,"grid_new_csu_file_assistant_1"); /* Get the filename, the index of the game configuration and the folder */ g_utf8_strncpy(name,gtk_entry_get_text(GTK_ENTRY(gtk_grid_get_child_at(GTK_GRID(grid_1),1,0))),SIZE_MAX_FILE_NAME/8); index = gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_grid_get_child_at(GTK_GRID(grid_1),1,3))); folder = g_locale_from_utf8(gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(gtk_grid_get_child_at(GTK_GRID(grid_1),1,1))),-1,NULL,NULL,NULL); #ifndef PORTABLE folder_ok = changeSystemPath(folder); #else folder_ok = checkPath(folder); #endif // PORTABLE filename_ok = checkFilename(name,folder); /* Test the filename */ if (strcmp(name,"") == 0 || filename_ok == false) setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,0)),0,TRUE,100,0,0,FALSE,0,0,0); else setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,0)),0,FALSE,100,0,0,FALSE,0,0,0); /* Test if a game configuration is selected */ if (index < 0 ) setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,3)),0,TRUE,100,0,0,FALSE,0,0,0); else setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,3)),0,FALSE,100,0,0,FALSE,0,0,0); /* Test the folder */ if (folder_ok == false) setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,1)),0,TRUE,100,0,0,FALSE,0,0,0); else setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid_1),0,1)),0,FALSE,100,0,0,FALSE,0,0,0); /* Test if the page one is valid or not */ if (strcmp(name,"") != 0 && index >=0 && folder_ok != false && filename_ok == true) { gtk_assistant_set_page_complete(GTK_ASSISTANT(user_data->ptr_new_csu_file_assistant),grid_1,TRUE); if (user_data->ptr_csu_struct_tmp != NULL) closeCsuStruct(user_data->ptr_csu_struct_tmp); user_data->ptr_csu_struct_tmp = newCsuStruct(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gtk_grid_get_child_at(GTK_GRID(grid_1),1,2))),user_data->config); } else gtk_assistant_set_page_complete(GTK_ASSISTANT(user_data->ptr_new_csu_file_assistant),grid_1,FALSE); g_free(folder); }
static void gxi_update_conversion_forward (GncXmlImportData *data) { GtkAssistant *assistant = GTK_ASSISTANT(data->assistant); gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); if (data->n_unassigned || data->n_impossible) gtk_assistant_set_page_complete (assistant, page, FALSE); else gtk_assistant_set_page_complete (assistant, page, TRUE); }
void csv_export_assistant_account_page_prepare (GtkAssistant *assistant, gpointer user_data) { CsvExportInfo *info = user_data; gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); /* Enable the Forward Assistant Button if we have accounts */ if (info->csva.num_accounts > 0) gtk_assistant_set_page_complete (assistant, page, TRUE); else gtk_assistant_set_page_complete (assistant, page, FALSE); }
/* If the check button is toggled, set the page as complete. Otherwise, * stop the user from progressing the next page. */ static void button_toggled (GtkCheckButton *toggle, GtkAssistant *assistant) { gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle)); gtk_assistant_set_page_complete (assistant, GTK_WIDGET (toggle), active); }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkAssistant_gtk_1assistant_1set_1page_1complete ( JNIEnv* env, jclass cls, jlong _self, jlong _page, jboolean _complete ) { GtkAssistant* self; GtkWidget* page; gboolean complete; // convert parameter self self = (GtkAssistant*) _self; // convert parameter page page = (GtkWidget*) _page; // convert parameter complete complete = (gboolean) _complete; // call function gtk_assistant_set_page_complete(self, page, complete); // cleanup parameter self // cleanup parameter page // cleanup parameter complete }
void RemoteRepositoryAssistant::entry_changed_timeout() { // Progress. ProgressWindow progresswindow (_("Testing read access"), false); progresswindow.set_fraction (0.5); // Event done. event_id_entry_repository = 0; // Test read access to the repository. GwSpawn spawn("git"); spawn.arg("ls-remote"); spawn.arg(repository_url_get()); spawn.read(); spawn.run(); bool access = spawn.exitstatus == 0; ustring message; if (access) { message = _("Read access to the repository has been granted"); } else { message = _("Cannot access the repository:"); for (unsigned int i = 0; i < spawn.standarderr.size(); i++) { message.append("\n"); message.append(spawn.standarderr[i]); } } gtk_label_set_text (GTK_LABEL (label_repository_accessible), message.c_str()); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), vbox_repository, access); }
/* Update selected project */ static void on_druid_project_update_selected (GtkIconView* view, NPWDruid *druid) { GList *selected; NPWHeader* header = NULL; /* No item can be selected when the view is mapped */ selected = gtk_icon_view_get_selected_items (view); if (selected != NULL) { GtkTreeIter iter; GtkTreeModel *model; model = gtk_icon_view_get_model (view); if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)selected->data)) { gtk_tree_model_get (model, &iter, DATA_COLUMN, &header, -1); } gtk_tree_path_free ((GtkTreePath *)selected->data); g_list_free (selected); } druid->header = header; gtk_assistant_set_page_complete (GTK_ASSISTANT (druid->window), druid->project_page, header != NULL); }
/* Fill up the progress bar, 10% every second when the button is clicked. Then, * set the page as complete when the progress bar is filled. */ static void button_clicked (GtkButton *button, GtkAssistant *assistant) { GtkProgressBar *progress; GtkWidget *page; gdouble percent = 0.0; gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE); page = gtk_assistant_get_nth_page (assistant, 3); progress = GTK_PROGRESS_BAR (g_object_get_data (G_OBJECT (page), "pbar")); while (percent <= 100.0) { gchar *message = g_strdup_printf ("%.0f%% Complete", percent); gtk_progress_bar_set_fraction (progress, percent / 100.0); gtk_progress_bar_set_text (progress, message); while (gtk_events_pending ()) gtk_main_iteration (); g_usleep (500000); percent += 5.0; } gtk_assistant_set_page_complete (assistant, page, TRUE); }
static void dsn_auth_changed_cb (GdauiProviderAuthEditor *auth, GdauiDsnAssistant *assistant) { gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), assistant->priv->cnc_auth_page, _gdaui_provider_auth_editor_is_valid (auth)); }
static void dsn_name_changed_cb (GtkEntry *entry, GdauiDsnAssistant *assistant) { const gchar *name; gboolean page_complete = TRUE; GdaDsnInfo *dsn_info; /* check required fields have values */ name = gtk_entry_get_text (GTK_ENTRY (assistant->priv->general_name)); if (!name || strlen (name) < 1) { gtk_widget_grab_focus (assistant->priv->general_name); page_complete = FALSE; } dsn_info = gda_config_get_dsn_info (name); if (dsn_info) { gint i = 2; gchar *str = NULL; do { g_free (str); str = g_strdup_printf ("%s_%d", name, i); dsn_info = gda_config_get_dsn_info (str); } while (dsn_info); gtk_entry_set_text (entry, str); g_free (str); /*gtk_widget_grab_focus (assistant->priv->general_name);*/ } gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), assistant->priv->general_page, page_complete); }
/* Fill last page (summary) */ static void npw_druid_fill_summary_page (NPWDruid* druid) { NPWPage* page; guint i; GString* text; GtkLabel* label; text = g_string_new (NULL); g_string_append_printf (text, "<b>%s</b>\n\n", _("Confirm the following information:")); /* The project type is translated too, it is something like * generic, GNOME applet, Makefile project... */ g_string_append_printf (text, _("Project Type: %s\n"), npw_header_get_name (druid->header)); for (i = 0; (page = g_queue_peek_nth (druid->page_list, i)) != NULL; ++i) { npw_page_foreach_property (page, (GFunc)cb_druid_add_summary_property, text); } label = GTK_LABEL (druid->finish_text); gtk_label_set_markup (label, text->str); g_string_free (text, TRUE); gtk_assistant_set_page_complete (GTK_ASSISTANT (druid->window), druid->finish_page, TRUE); }
void csv_export_assistant_finish_page_prepare (GtkAssistant *assistant, gpointer user_data) { CsvExportInfo *info = user_data; gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); gchar *text; /* Set Finish page text */ if (info->export_type == XML_EXPORT_TREE) text = g_strdup_printf (gettext (finish_tree_string), info->file_name); else { if ((info->export_type == XML_EXPORT_REGISTER) && (info->account == NULL)) text = g_strdup_printf (gettext (finish_trans_search_gl_string), info->file_name); else text = g_strdup_printf (gettext (finish_trans_string), info->file_name, info->csva.num_accounts); } gtk_label_set_text (GTK_LABEL(info->finish_label), text); g_free (text); /* Enable the Assistant Buttons */ gtk_assistant_set_page_complete (assistant, page, TRUE); }
/* event handler for page 4, most important part of this program, a new guy: progressbar comes */ static void button_clicked( GtkButton *button, GtkAssistant *assistant ) { /* * Fill up the progress bar, 10% every second when the button is clicked. * Then set the page as complete when the progress bar is filled */ /* first, deactive the button */ gtk_widget_set_sensitive( GTK_WIDGET( button ), FALSE ); GtkWidget *current_page = gtk_assistant_get_nth_page( assistant, 3 ); GtkProgressBar *progressbar = GTK_PROGRESS_BAR( g_object_get_data( G_OBJECT(current_page), "pbar" ) ); gdouble percent = 0.f; while ( percent <= 100.f ) { gchar *msg = g_strdup_printf( "%.0f%% Complete", percent ); gtk_progress_bar_set_fraction( progressbar, percent / 100.f ); gtk_progress_bar_set_text( progressbar, msg ); while ( gtk_events_pending() ) { gtk_main_iteration(); } g_usleep( 500000 ); percent += 5.f; } gtk_assistant_set_page_complete( assistant, current_page, TRUE ); }
static void dsn_spec_changed_cb (GdauiProviderSpecEditor *spec, GdauiDsnAssistant *assistant) { gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), assistant->priv->cnc_params_page, _gdaui_provider_spec_editor_is_valid (spec)); }
static void assistant_instert_book_options_page (hierarchy_data *data) { kvp_frame *slots = qof_book_get_slots (gnc_get_current_book ()); GtkWidget *vbox = gtk_vbox_new (FALSE, 0); data->options = gnc_option_db_new_for_type (QOF_ID_BOOK); gnc_option_db_load_from_kvp (data->options, slots); gnc_option_db_clean (data->options); data->optionwin = gnc_options_dialog_new_modal (TRUE, _("New Book Options")); gnc_options_dialog_build_contents_full (data->optionwin, data->options, FALSE); gnc_options_dialog_set_close_cb (data->optionwin, book_options_dialog_close_cb, (gpointer)data->options); gnc_options_dialog_set_new_book_option_values (data->options); gtk_widget_reparent (gnc_options_dialog_notebook (data->optionwin), vbox); gtk_widget_show_all (vbox); gtk_assistant_insert_page (GTK_ASSISTANT(data->dialog), vbox, 2); gtk_assistant_set_page_title (GTK_ASSISTANT(data->dialog), vbox, _("New Book Options")); gtk_assistant_set_page_complete (GTK_ASSISTANT(data->dialog), vbox, TRUE); }
void csv_import_assistant_finish_page_prepare (GtkAssistant *assistant, gpointer user_data) { CsvImportInfo *info = user_data; gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); gchar *text; /* Set Finish page text */ /* Before creating accounts, if this is a new book, tell user they can * specify book options, since they affect how transactions are created */ if (info->new_book) { text = g_strdup_printf (gettext (new_book_finish_tree_string), info->file_name); } else { text = g_strdup_printf (gettext (finish_tree_string), info->file_name); } gtk_label_set_text (GTK_LABEL(info->finish_label), text); g_free(text); /* Save the Window size and directory */ gnc_set_default_directory(GCONF_SECTION, info->starting_dir); /* Enable the Assistant Buttons */ gtk_assistant_set_page_complete (assistant, page, TRUE); }
/************************************************** * csv_export_file_chooser_confirm_cb * * call back for ok button in file chooser widget **************************************************/ void csv_export_file_chooser_confirm_cb (GtkWidget *button, CsvExportInfo *info) { GtkAssistant *assistant = GTK_ASSISTANT(info->window); gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); gchar *file_name; gtk_assistant_set_page_complete (assistant, page, FALSE); file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(info->file_chooser)); if (file_name) { if (g_file_test (file_name, G_FILE_TEST_EXISTS)) { const char *format = _("The file %s already exists. " "Are you sure you want to overwrite it?"); /* if user says cancel, we should break out */ if (!gnc_verify_dialog (NULL, FALSE, format, file_name)) return; } info->file_name = g_strdup (file_name); gtk_assistant_set_page_complete (assistant, page, TRUE); } if (file_name) { gchar *filepath = gnc_uri_get_path (file_name); gchar *filedir = g_path_get_dirname (filepath); info->starting_dir = g_strdup (filedir); g_free (filedir); g_free (filepath); } g_free (file_name); DEBUG("file_name selected is %s", info->file_name); DEBUG("starting directory is %s", info->starting_dir); /* Step to next page if page is complete */ if(gtk_assistant_get_page_complete (assistant, page)) gtk_assistant_set_current_page (assistant, num + 1); }
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); }
/* event handler for check button of page 3 */ static void button_toggled( GtkCheckButton *toggle, GtkAssistant *assistant ) { /* * if the check button is toggled, set the page as complete. * Othewise, stop user from progressing the next page */ gboolean active = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( toggle ) ); gtk_assistant_set_page_complete( assistant, GTK_WIDGET( toggle ), active ); }
static void on_entry_changed (GtkWidget *widget, gpointer data) { GtkAssistant *assistant = GTK_ASSISTANT (data); GtkWidget *current_page; gint page_number; const gchar *text; page_number = gtk_assistant_get_current_page (assistant); current_page = gtk_assistant_get_nth_page (assistant, page_number); text = gtk_entry_get_text (GTK_ENTRY (widget)); if (text && *text) gtk_assistant_set_page_complete (assistant, current_page, TRUE); else gtk_assistant_set_page_complete (assistant, current_page, FALSE); }
/******************************************************* * csv_export_custom_entry_cb * * call back for custom separator *******************************************************/ void csv_export_custom_entry_cb (GtkWidget *widget, gpointer user_data) { CsvExportInfo *info = user_data; const gchar *custom_str; GtkAssistant *assistant = GTK_ASSISTANT(info->window); gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); custom_str = gtk_entry_get_text (GTK_ENTRY(info->custom_entry)); info->separator_str = strdup (custom_str); if (info->use_custom == TRUE && gtk_entry_get_text_length (GTK_ENTRY(info->custom_entry)) == 0) gtk_assistant_set_page_complete (assistant, page, FALSE); else gtk_assistant_set_page_complete (assistant, page, TRUE); }
/************************************************** * csv_file_chooser_confirm_cb * * call back for ok button in file chooser widget **************************************************/ void csv_import_file_chooser_confirm_cb (GtkWidget *button, CsvImportInfo *info) { GtkAssistant *assistant = GTK_ASSISTANT(info->window); gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); gchar *file_name; csv_import_result res; gtk_assistant_set_page_complete (assistant, page, FALSE); file_name = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(info->file_chooser )); if (file_name) { gchar *filepath = gnc_uri_get_path ( file_name ); gchar *filedir = g_path_get_dirname( filepath ); info->starting_dir = g_strdup(filedir); g_free ( filedir ); g_free ( filepath ); info->file_name = g_strdup(file_name); // generate preview gtk_list_store_clear (info->store); res = csv_import_read_file (info->file_name, info->regexp->str, info->store, 1 ); if (res == RESULT_OPEN_FAILED) gnc_error_dialog (info->window, _("The input file can not be opened.")); else if (res == RESULT_OK) gtk_assistant_set_page_complete (assistant, page, TRUE); else if (res == MATCH_FOUND) gtk_assistant_set_page_complete (assistant, page, TRUE); } g_free(file_name); DEBUG("file_name selected is %s", info->file_name); DEBUG("starting directory is %s", info->starting_dir); /* Step to next page if page is complete */ if(gtk_assistant_get_page_complete(assistant, page)) gtk_assistant_set_current_page (assistant, num + 1); }
static void balsa_druid_page_directory_prepare(GtkAssistant * druid, GtkWidget * page, BalsaDruidPageDirectory * dir) { gchar *buf; gint current_page_no = gtk_assistant_get_current_page(druid); if(page != dir->page) { /* This is not the page to be prepared. */ if(dir->need_set) { if(current_page_no > dir->my_num) balsa_druid_page_directory_next(druid, page, dir); else balsa_druid_page_directory_back(druid, page, dir); dir->need_set = FALSE; } return; } dir->my_num = current_page_no; /* We want a change in the local mailroot to be reflected in the * directories here, but we don't want to trash user's custom * settings if needed. Hence the paths_locked variable; it should * work pretty well, because only a movement backwards should * change the mailroot; going forward should not lock the paths: * envision an error occurring; upon return to the Dir page the * entries should be the same. */ if (!dir->paths_locked) { buf = g_build_filename(balsa_app.local_mail_directory, "outbox", NULL); gtk_entry_set_text(GTK_ENTRY(dir->outbox), buf); g_free(buf); buf = g_build_filename(balsa_app.local_mail_directory, "sentbox", NULL); gtk_entry_set_text(GTK_ENTRY(dir->sentbox), buf); g_free(buf); buf = g_build_filename(balsa_app.local_mail_directory, "draftbox", NULL); gtk_entry_set_text(GTK_ENTRY(dir->draftbox), buf); g_free(buf); buf = g_build_filename(balsa_app.local_mail_directory, "trash", NULL); gtk_entry_set_text(GTK_ENTRY(dir->trash), buf); g_free(buf); } /* Don't let them continue unless all entries have something. */ gtk_assistant_set_page_complete(druid, page, ENTRY_MASTER_DONE(dir->emaster)); dir->need_set = TRUE; }
/* event handler for entry text of page 2 */ static void entry_changed( GtkEditable *editable, GtkAssistant *assistant ) { /* * if there is text in the GtkEntry, set the page as complete. Otherwise, * stop the user from pregressing the next page */ const char *text = gtk_entry_get_text( GTK_ENTRY( editable ) ); int current_page = gtk_assistant_get_current_page( assistant ); GtkWidget *this_page = gtk_assistant_get_nth_page( assistant, current_page ); gtk_assistant_set_page_complete( assistant, this_page, (strlen(text) > 0) ); }
/*! * \fn G_MODULE_EXPORT void validAssistantNewCsuTwo(GtkWidget *widget, gpointer data) * Valid name of the second page of the assistant for a new csu file * \param[in] widget the widget which send the signal * \param[in] data the globalData */ G_MODULE_EXPORT void validAssistantNewCsuTwo(GtkWidget *widget, gpointer data) { globalData *user_data = (globalData*) data; gboolean valid = TRUE; gint i; gint j; /* Get the grid */ GtkWidget *scrolled_window = getWidgetFromBuilder(user_data->ptr_builder,"scrolled_window_new_csu_file_assistant_2"); GtkGrid *grid = GTK_GRID(gtk_bin_get_child(GTK_BIN(gtk_bin_get_child(GTK_BIN(scrolled_window))))); /* Save all the name in the csu structure and check if there are non null */ for (i=0 ; i<user_data->ptr_csu_struct_tmp->nb_player ; i++) { strncpy(user_data->ptr_csu_struct_tmp->player_names[i],gtk_entry_get_text(GTK_ENTRY(gtk_grid_get_child_at(grid,1,i))),SIZE_MAX_NAME-1); if (strcmp(user_data->ptr_csu_struct_tmp->player_names[i],"") == 0) { valid = FALSE; setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid),0,i)),0,TRUE,100,0,0,FALSE,0,0,0); } else setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid),0,i)),0,FALSE,100,0,0,FALSE,0,0,0); } /* Check if all the name are different */ for (i=0 ; i<user_data->ptr_csu_struct_tmp->nb_player ; i++) { for (j=i+1 ; j<user_data->ptr_csu_struct_tmp->nb_player ; j++) { if (strcmp(user_data->ptr_csu_struct_tmp->player_names[i],user_data->ptr_csu_struct_tmp->player_names[j]) == 0) { setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid),0,i)),0,TRUE,100,0,0,FALSE,0,0,0); setGtkLabelAttributes(GTK_LABEL(gtk_grid_get_child_at(GTK_GRID(grid),0,j)),0,TRUE,100,0,0,FALSE,0,0,0); } } } /* Check if the page is valid */ if (valid && differentsPlayerName(user_data->ptr_csu_struct_tmp) == true) gtk_assistant_set_page_complete(GTK_ASSISTANT(user_data->ptr_new_csu_file_assistant),GTK_WIDGET(scrolled_window),TRUE); else gtk_assistant_set_page_complete(GTK_ASSISTANT(user_data->ptr_new_csu_file_assistant),GTK_WIDGET(scrolled_window),FALSE); }
/* If there is text in the GtkEntry, set the page as complete. Otherwise, * stop the user from progressing the next page. */ static void entry_changed (GtkEditable *entry, GtkAssistant *assistant) { const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry)); gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); gtk_assistant_set_page_complete (assistant, page, (strlen (text) > 0)); }
/******************************************************* * Assistant page prepare functions *******************************************************/ void csv_import_assistant_start_page_prepare (GtkAssistant *assistant, gpointer user_data) { gint num = gtk_assistant_get_current_page (assistant); GtkWidget *page = gtk_assistant_get_nth_page (assistant, num); /* Enable the Assistant Buttons */ gtk_assistant_set_page_complete (assistant, page, TRUE); }
static void dialog_click(GtkWidget *dialog, guint response_id, GtkWidget *page){ switch(response_id){ case GTK_RESPONSE_YES: gtk_assistant_set_page_complete(GTK_ASSISTANT(audio_assistant),page,TRUE); break; default: break; } gtk_widget_destroy(dialog); }
static void account_assistant_handle_apply_cb (EmpathyAccountWidget *widget_object, gboolean is_valid, EmpathyAccountAssistant *self) { EmpathyAccountAssistantPriv *priv = GET_PRIV (self); gtk_assistant_set_page_complete (GTK_ASSISTANT (self), priv->enter_or_create_page, is_valid); }
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); }