static void run_old_and_new_dialog (struct recode_dialog *rd) { gint response; GtkListStore *local_store = clone_list_store (rd->value_map); psppire_acr_set_model (rd->acr, local_store); psppire_acr_set_get_value_func (rd->acr, set_value, rd); gtk_window_set_title (GTK_WINDOW (rd->old_and_new_dialog), rd->different ? _("Recode into Different Variables: Old and New Values ") : _("Recode into Same Variables: Old and New Values") ); { /* Find the type of the first variable (it's invariant that all variables are of the same type) */ const struct variable *v; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview)); gboolean not_empty = gtk_tree_model_get_iter_first (model, &iter); g_return_if_fail (not_empty); gtk_tree_model_get (model, &iter, 0, &v, -1); rd->input_var_is_string = var_is_alpha (v); g_object_set (rd->old_value_chooser, "is-string", rd->input_var_is_string, NULL); gtk_widget_set_sensitive (rd->toggle [BUTTON_NEW_SYSMIS], var_is_numeric (v)); gtk_widget_set_sensitive (rd->convert_button, var_is_alpha (v)); } response = psppire_dialog_run (rd->old_and_new_dialog); psppire_acr_set_model (rd->acr, NULL); if ( response == PSPPIRE_RESPONSE_CONTINUE ) { g_object_unref (rd->value_map); rd->value_map = clone_list_store (local_store); } else g_object_unref (local_store); psppire_dialog_notify_change (PSPPIRE_DIALOG (rd->dialog)); }
static void run_define_groups (PsppireDialogActionIndepSamps *act) { gint response; PsppireDialogAction *da = PSPPIRE_DIALOG_ACTION (act); if ( act->dg_table2->parent) gtk_container_remove (GTK_CONTAINER (act->dg_table2->parent), act->dg_table2); if ( act->dg_table1->parent) gtk_container_remove (GTK_CONTAINER (act->dg_table1->parent), act->dg_table1); if ( var_is_numeric (act->grp_var)) { gtk_table_attach_defaults (GTK_TABLE (act->dg_table1), act->dg_table2, 1, 2, 1, 2); gtk_container_add (GTK_CONTAINER (act->dg_box), act->dg_table1); } else { gtk_container_add (GTK_CONTAINER (act->dg_box), act->dg_table2); act->group_defn = GROUPS_VALUES; } psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (act->dg_dialog), define_groups_state_valid, act); psppire_value_entry_set_variable (PSPPIRE_VALUE_ENTRY (act->dg_grp_entry[0]), act->grp_var); psppire_value_entry_set_variable (PSPPIRE_VALUE_ENTRY (act->dg_grp_entry[1]), act->grp_var); psppire_value_entry_set_variable (PSPPIRE_VALUE_ENTRY (act->dg_cut_point_entry), act->grp_var); if ( act->group_defn != GROUPS_CUT_POINT ) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->dg_cut_point_toggle_button), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->dg_values_toggle_button), TRUE); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->dg_values_toggle_button), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->dg_cut_point_toggle_button), TRUE); } g_signal_emit_by_name (act->dg_grp_entry[0], "changed"); g_signal_emit_by_name (act->dg_grp_entry[1], "changed"); g_signal_emit_by_name (act->dg_cut_point_entry, "changed"); response = psppire_dialog_run (PSPPIRE_DIALOG (act->def_grps_dialog)); if (response == PSPPIRE_RESPONSE_CONTINUE) { const int width = var_get_width (act->grp_var); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (act->dg_values_toggle_button))) { act->group_defn = GROUPS_VALUES; psppire_value_entry_get_value (PSPPIRE_VALUE_ENTRY (act->dg_grp_entry[0]), &act->grp_val[0], width); psppire_value_entry_get_value (PSPPIRE_VALUE_ENTRY (act->dg_grp_entry[1]), &act->grp_val[1], width); } else { act->group_defn = GROUPS_CUT_POINT; psppire_value_entry_get_value (PSPPIRE_VALUE_ENTRY (act->dg_cut_point_entry), &act->cut_point, width); } psppire_dialog_notify_change (PSPPIRE_DIALOG (da->dialog)); } }
static void run_define_groups (struct tt_indep_samples_dialog *ttd) { struct tt_groups_dialog *grps = ttd->grps; gint response; GtkWidget *box = get_widget_assert (ttd->xml, "dialog-hbox2"); const gchar *text = gtk_entry_get_text (GTK_ENTRY (ttd->groups_entry)); const struct variable *v = psppire_dict_lookup_var (ttd->dict, text); if ( grps->table2->parent) gtk_container_remove (GTK_CONTAINER (grps->table2->parent), grps->table2); if ( grps->table1->parent) gtk_container_remove (GTK_CONTAINER (grps->table1->parent), grps->table1); if ( var_is_numeric (v)) { gtk_table_attach_defaults (GTK_TABLE (grps->table1), grps->table2, 1, 2, 1, 2); gtk_container_add (GTK_CONTAINER (box), grps->table1); } else { gtk_container_add (GTK_CONTAINER (box), grps->table2); grps->group_defn = GROUPS_VALUES; } psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (grps->dialog), define_groups_state_valid, grps); if ( grps->group_defn != GROUPS_CUT_POINT ) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (grps->cut_point_toggle_button), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (grps->values_toggle_button), TRUE); gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[0]), grps->val[0]); gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[1]), grps->val[1]); gtk_entry_set_text (GTK_ENTRY (grps->cut_point_entry), ""); } else { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (grps->values_toggle_button), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (grps->cut_point_toggle_button), TRUE); gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[0]), ""); gtk_entry_set_text (GTK_ENTRY (grps->grp_entry[1]), ""); gtk_entry_set_text (GTK_ENTRY (grps->cut_point_entry), grps->val[0]); } g_signal_emit_by_name (grps->grp_entry[0], "changed"); g_signal_emit_by_name (grps->grp_entry[1], "changed"); g_signal_emit_by_name (grps->cut_point_entry, "changed"); response = psppire_dialog_run (PSPPIRE_DIALOG (grps->dialog)); if (response == PSPPIRE_RESPONSE_CONTINUE) { g_free (grps->val[0]); g_free (grps->val[1]); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (grps->values_toggle_button))) { grps->group_defn = GROUPS_VALUES; grps->val[0] = xstrdup (gtk_entry_get_text (GTK_ENTRY (grps->grp_entry[0]))); grps->val[1] = xstrdup (gtk_entry_get_text (GTK_ENTRY (grps->grp_entry[1]))); } else { grps->group_defn = GROUPS_CUT_POINT; grps->val[1] = NULL; grps->val[0] = xstrdup (gtk_entry_get_text (GTK_ENTRY (grps->cut_point_entry))); } psppire_dialog_notify_change (PSPPIRE_DIALOG (ttd->dialog)); } }