X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action-barchart.c;h=adbd8b956bc7775523b905bce65afae2948daeff;hb=c803992a141526ead8fcf857efa951783467f49a;hp=87b8fa1318036904d3afd0853a00dfffb8445aad;hpb=612b51515e356bc4dd625a3fb18d0a4f827a1e2c;p=pspp diff --git a/src/ui/gui/psppire-dialog-action-barchart.c b/src/ui/gui/psppire-dialog-action-barchart.c index 87b8fa1318..adbd8b956b 100644 --- a/src/ui/gui/psppire-dialog-action-barchart.c +++ b/src/ui/gui/psppire-dialog-action-barchart.c @@ -67,7 +67,7 @@ refresh (PsppireDialogAction *rd_) This ensures that the signal handler gets called. */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->button_summary_func), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->button_freq_func[0]), TRUE); - + gtk_widget_set_sensitive (rd->combobox, FALSE); gtk_combo_box_set_active (GTK_COMBO_BOX (rd->combobox), 0); @@ -115,45 +115,48 @@ populate_combo_model (GtkComboBox *cb) static void -psppire_dialog_action_barchart_activate (GtkAction *a) +psppire_dialog_action_barchart_activate (PsppireDialogAction *a) { PsppireDialogActionBarchart *act = PSPPIRE_DIALOG_ACTION_BARCHART (a); PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a); - GtkBuilder *xml = builder_new ("barchart.ui"); - pda->dialog = get_widget_assert (xml, "barchart-dialog"); - pda->source = get_widget_assert (xml, "dict-view"); + GHashTable *thing = psppire_dialog_action_get_hash_table (pda); + GtkBuilder *xml = g_hash_table_lookup (thing, a); + if (!xml) + { + xml = builder_new ("barchart.ui"); + g_hash_table_insert (thing, a, xml); + + pda->dialog = get_widget_assert (xml, "barchart-dialog"); + pda->source = get_widget_assert (xml, "dict-view"); - act->variable_xaxis = get_widget_assert (xml, "entry1"); - act->variable_cluster = get_widget_assert (xml, "entry3"); - act->var = get_widget_assert (xml, "entry2"); - act->button_freq_func[0] = get_widget_assert (xml, "radiobutton-count"); - act->button_freq_func[1] = get_widget_assert (xml, "radiobutton-percent"); - act->button_freq_func[2] = get_widget_assert (xml, "radiobutton-cum-count"); - act->button_freq_func[3] = get_widget_assert (xml, "radiobutton-cum-percent"); - - act->button_summary_func = get_widget_assert (xml, "radiobutton3"); - act->summary_variables = get_widget_assert (xml, "hbox1"); - act->combobox = get_widget_assert (xml, "combobox1"); + act->variable_xaxis = get_widget_assert (xml, "entry1"); + act->variable_cluster = get_widget_assert (xml, "entry3"); + act->var = get_widget_assert (xml, "entry2"); + act->button_freq_func[0] = get_widget_assert (xml, "radiobutton-count"); + act->button_freq_func[1] = get_widget_assert (xml, "radiobutton-percent"); + act->button_freq_func[2] = get_widget_assert (xml, "radiobutton-cum-count"); + act->button_freq_func[3] = get_widget_assert (xml, "radiobutton-cum-percent"); - populate_combo_model (GTK_COMBO_BOX(act->combobox)); - - g_object_unref (xml); + act->button_summary_func = get_widget_assert (xml, "radiobutton3"); + act->summary_variables = get_widget_assert (xml, "hbox1"); + act->combobox = get_widget_assert (xml, "combobox1"); - g_signal_connect_swapped (act->button_summary_func, "toggled", - G_CALLBACK (on_summary_toggle), act); + populate_combo_model (GTK_COMBO_BOX(act->combobox)); - psppire_dialog_action_set_refresh (pda, refresh); + g_signal_connect_swapped (act->button_summary_func, "toggled", + G_CALLBACK (on_summary_toggle), act); - psppire_dialog_action_set_valid_predicate (pda, - dialog_state_valid); + psppire_dialog_action_set_refresh (pda, refresh); + + psppire_dialog_action_set_valid_predicate (pda, + dialog_state_valid); + } - if (PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_barchart_parent_class)->activate) - PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_barchart_parent_class)->activate (pda); } static char * -generate_syntax (PsppireDialogAction *a) +generate_syntax (const PsppireDialogAction *a) { PsppireDialogActionBarchart *rd = PSPPIRE_DIALOG_ACTION_BARCHART (a); gchar *text; @@ -213,7 +216,7 @@ generate_syntax (PsppireDialogAction *a) g_string_append (string, " BY "); g_string_append (string, var_name_cluster); } - + g_string_append (string, ".\n"); text = string->str;