X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fchi-square-dialog.c;h=4032b61ca6d44ced2217e281fe460d2032bab2f6;hb=1d05dd7fce36ca16a644705b0b05fd144f52463e;hp=ccfa48ec33138dc42aed6bb29fc7e4150c653c11;hpb=0c5217288cb57d0994d4c99997f5341e2c3a6871;p=pspp diff --git a/src/ui/gui/chi-square-dialog.c b/src/ui/gui/chi-square-dialog.c index ccfa48ec33..4032b61ca6 100644 --- a/src/ui/gui/chi-square-dialog.c +++ b/src/ui/gui/chi-square-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2010 Free Software Foundation + Copyright (C) 2010, 2011, 2012 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,9 +23,9 @@ #include "psppire-acr.h" #include "dialog-common.h" -#include "helper.h" +#include "builder-wrapper.h" #include "executor.h" - +#include "helper.h" #include @@ -46,14 +46,6 @@ struct chisquare_dialog GtkListStore *expected_list; }; -static void -set_sensitivity (GtkToggleButton *button, GtkWidget *w) -{ - gboolean state = gtk_toggle_button_get_active (button); - gtk_widget_set_sensitive (w, state); -} - - static gboolean dialog_state_valid (gpointer data) { @@ -90,40 +82,35 @@ static char * generate_syntax (const struct chisquare_dialog *scd) { gchar *text; - GString *string; + struct string dss; + ds_init_cstr (&dss, "NPAR TEST\n\t/CHISQUARE="); - string = g_string_new ("NPAR TEST\n\t/CHISQUARE="); - - psppire_var_view_append_names (PSPPIRE_VAR_VIEW (scd->var_view), 0, string); - + psppire_var_view_append_names_str (PSPPIRE_VAR_VIEW (scd->var_view), 0, &dss); if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->range_button))) { - g_string_append (string, "("); + ds_put_cstr (&dss, "("); - g_string_append (string, + ds_put_cstr (&dss, gtk_entry_get_text (GTK_ENTRY (scd->value_lower))); - g_string_append (string, ", "); + ds_put_cstr (&dss, ", "); - g_string_append (string, + ds_put_cstr (&dss, gtk_entry_get_text (GTK_ENTRY (scd->value_upper))); - g_string_append (string, ")"); + ds_put_cstr (&dss, ")"); } - - - if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->values_button))) { GtkListStore *ls = scd->expected_list; GtkTreeIter iter; gboolean ok; - g_string_append (string, "\n\t"); - g_string_append (string, "/EXPECTED = "); + ds_put_cstr (&dss, "\n\t"); + ds_put_cstr (&dss, "/EXPECTED = "); for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL(ls), @@ -135,18 +122,15 @@ generate_syntax (const struct chisquare_dialog *scd) gtk_tree_model_get (GTK_TREE_MODEL (ls), &iter, 0, &v, -1); - g_string_append_printf (string, " %g", v); + ds_put_c_format (&dss, " %g", v); } - - - } - g_string_append (string, ".\n"); + ds_put_cstr (&dss, ".\n"); - text = string->str; + text = ds_steal_cstr (&dss); - g_string_free (string, FALSE); + ds_destroy (&dss); return text; } @@ -201,14 +185,14 @@ chisquare_dialog (PsppireDataWindow *dw) NULL); - g_signal_connect (csd.range_button, "toggled", G_CALLBACK (set_sensitivity), + g_signal_connect (csd.range_button, "toggled", G_CALLBACK (set_sensitivity_from_toggle), range_table); - g_signal_connect (csd.values_button, "toggled", G_CALLBACK (set_sensitivity), + g_signal_connect (csd.values_button, "toggled", G_CALLBACK (set_sensitivity_from_toggle), values_acr); - g_signal_connect (csd.values_button, "toggled", G_CALLBACK (set_sensitivity), + g_signal_connect (csd.values_button, "toggled", G_CALLBACK (set_sensitivity_from_toggle), expected_value_entry); @@ -228,7 +212,7 @@ chisquare_dialog (PsppireDataWindow *dw) switch (response) { case GTK_RESPONSE_OK: - g_free (execute_syntax_string (generate_syntax (&csd))); + g_free (execute_syntax_string (dw, generate_syntax (&csd))); break; case PSPPIRE_RESPONSE_PASTE: g_free (paste_syntax_to_window (generate_syntax (&csd))); @@ -237,5 +221,6 @@ chisquare_dialog (PsppireDataWindow *dw) break; } + g_object_unref (csd.expected_list); g_object_unref (xml); }