X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action-frequencies.c;h=714745ca26f7cb7c0182155aaf2ca3ef2e2c1af0;hb=refs%2Fheads%2Fctables7;hp=d0ae660a256c7551bc2a84953baae7600e2f8f32;hpb=2a71889bf86463fb752bcbab248da47b25b4fd9a;p=pspp diff --git a/src/ui/gui/psppire-dialog-action-frequencies.c b/src/ui/gui/psppire-dialog-action-frequencies.c index d0ae660a25..714745ca26 100644 --- a/src/ui/gui/psppire-dialog-action-frequencies.c +++ b/src/ui/gui/psppire-dialog-action-frequencies.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2012 Free Software Foundation + Copyright (C) 2012, 2015 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 @@ -55,25 +55,25 @@ enum -{ + { #define FS(NAME, LABEL) FS_##NAME, - FREQUENCY_STATS + FREQUENCY_STATS #undef FS - N_FREQUENCY_STATS -}; + N_FREQUENCY_STATS + }; enum -{ + { #define FS(NAME, LABEL) B_FS_##NAME = 1u << FS_##NAME, - FREQUENCY_STATS + FREQUENCY_STATS #undef FS B_FS_ALL = (1u << N_FREQUENCY_STATS) - 1, - B_FS_DEFAULT = B_FS_MEAN | B_FS_STDDEV | B_FS_MINIMUM | B_FS_MAXIMUM -}; + B_FS_DEFAULT = B_FS_MEAN | B_FS_STDDEV | B_FS_MINIMUM | B_FS_MAXIMUM + }; static const struct checkbox_entry_item stats[] = { -#define FS(NAME, LABEL) {#NAME, LABEL}, +#define FS(NAME, LABEL) {#NAME, LABEL, NULL}, FREQUENCY_STATS #undef FS }; @@ -184,27 +184,27 @@ on_charts_clicked (PsppireDialogActionFrequencies *fd) ret = psppire_dialog_run (PSPPIRE_DIALOG (fd->charts_dialog)); - if ( ret == PSPPIRE_RESPONSE_CONTINUE ) + if (ret == PSPPIRE_RESPONSE_CONTINUE) { - fd->charts_opts_use_min = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->min)); - fd->charts_opts_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (fd->min_spin)); + fd->charts_opts_use_min = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->min)); + fd->charts_opts_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (fd->min_spin)); - fd->charts_opts_use_max = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->max)); - fd->charts_opts_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (fd->max_spin)); + fd->charts_opts_use_max = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->max)); + fd->charts_opts_max = gtk_spin_button_get_value (GTK_SPIN_BUTTON (fd->max_spin)); - fd->charts_opts_draw_hist = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->hist)); - fd->charts_opts_draw_normal = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->normal)); - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->freqs))) - fd->charts_opts_scale = FRQ_FREQ; - else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->percents))) - fd->charts_opts_scale = FRQ_PERCENT; + fd->charts_opts_draw_hist = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->hist)); + fd->charts_opts_draw_normal = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->normal)); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->freqs))) + fd->charts_opts_scale = FRQ_FREQ; + else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->percents))) + fd->charts_opts_scale = FRQ_PERCENT; - fd->charts_opts_draw_pie = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->pie)); - fd->charts_opts_pie_include_missing - = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->pie_include_missing)); + fd->charts_opts_draw_pie = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->pie)); + fd->charts_opts_pie_include_missing + = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->pie_include_missing)); - fd->charts_opts_draw_bar = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->bar)); + fd->charts_opts_draw_bar = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (fd->bar)); } } @@ -251,10 +251,8 @@ refresh (PsppireDialogAction * fdx) (B_FS_DEFAULT & (1u << i)) ? true : false, -1); } - - -static void -psppire_dialog_action_frequencies_activate (GtkAction * a) +static GtkBuilder * +psppire_dialog_action_frequencies_activate (PsppireDialogAction *a, GVariant *param) { PsppireDialogActionFrequencies *act = PSPPIRE_DIALOG_ACTION_FREQUENCIES (a); PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a); @@ -262,6 +260,12 @@ psppire_dialog_action_frequencies_activate (GtkAction * a) GtkBuilder *xml = builder_new ("frequencies.ui"); GtkWidget *stats_treeview = get_widget_assert (xml, "stats-treeview"); + + psppire_checkbox_treeview_populate (PSPPIRE_CHECKBOX_TREEVIEW (stats_treeview), + B_FS_DEFAULT, N_FREQUENCY_STATS, stats); + + act->stats = gtk_tree_view_get_model (GTK_TREE_VIEW (stats_treeview)); + GtkWidget *tables_button = get_widget_assert (xml, "tables-button"); GtkWidget *charts_button = get_widget_assert (xml, "charts-button"); @@ -270,14 +274,7 @@ psppire_dialog_action_frequencies_activate (GtkAction * a) act->stat_vars = get_widget_assert (xml, "var-treeview"); - psppire_checkbox_treeview_populate (PSPPIRE_CHECKBOX_TREEVIEW (stats_treeview), - B_FS_DEFAULT, N_FREQUENCY_STATS, stats); - - act->stats = gtk_tree_view_get_model (GTK_TREE_VIEW (stats_treeview)); - act->include_missing = get_widget_assert (xml, "include_missing"); - - act->tables_dialog = get_widget_assert (xml, "tables-dialog"); act->charts_dialog = get_widget_assert (xml, "charts-dialog"); act->always = get_widget_assert (xml, "always"); @@ -286,8 +283,8 @@ psppire_dialog_action_frequencies_activate (GtkAction * a) act->limit_spinbutton = get_widget_assert (xml, "limit-spin"); g_signal_connect (act->limit, "toggled", - G_CALLBACK (set_sensitivity_from_toggle), - act->limit_spinbutton); + G_CALLBACK (set_sensitivity_from_toggle), + act->limit_spinbutton); act->avalue = get_widget_assert (xml, "avalue"); act->dvalue = get_widget_assert (xml, "dvalue"); @@ -327,10 +324,6 @@ psppire_dialog_action_frequencies_activate (GtkAction * a) act->bar = (get_widget_assert (xml, "bar")); - - g_object_unref (xml); - - act->tables_opts_order = FRQ_AVALUE; act->tables_opts_table = FRQ_TABLE; act->tables_opts_limit = 50; @@ -345,14 +338,11 @@ psppire_dialog_action_frequencies_activate (GtkAction * a) psppire_dialog_action_set_valid_predicate (pda, dialog_state_valid); - if (PSPPIRE_DIALOG_ACTION_CLASS - (psppire_dialog_action_frequencies_parent_class)->activate) - PSPPIRE_DIALOG_ACTION_CLASS - (psppire_dialog_action_frequencies_parent_class)->activate (pda); + return xml; } static char * -generate_syntax (PsppireDialogAction * a) +generate_syntax (const PsppireDialogAction * a) { PsppireDialogActionFrequencies *fd = PSPPIRE_DIALOG_ACTION_FREQUENCIES (a); gchar *text = NULL; @@ -447,7 +437,7 @@ generate_syntax (PsppireDialogAction * a) { ds_put_cstr (&str, "\n\t/HISTOGRAM="); ds_put_cstr (&str, - fd->charts_opts_draw_normal ? "NORMAL" : "NONORMAL"); + fd->charts_opts_draw_normal ? "NORMAL" : "NONORMAL"); if (fd->charts_opts_scale == FRQ_PERCENT) ds_put_cstr (&str, " PERCENT"); @@ -464,6 +454,8 @@ generate_syntax (PsppireDialogAction * a) if (fd->charts_opts_pie_include_missing) ds_put_cstr (&str, " MISSING"); + else + ds_put_cstr (&str, " NOMISSING"); if (fd->charts_opts_use_min) ds_put_c_format (&str, " MIN(%.15g)", fd->charts_opts_min); @@ -498,12 +490,12 @@ generate_syntax (PsppireDialogAction * a) static void psppire_dialog_action_frequencies_class_init (PsppireDialogActionFrequenciesClass *class) { - psppire_dialog_action_set_activation (class, psppire_dialog_action_frequencies_activate); + PSPPIRE_DIALOG_ACTION_CLASS (class)->initial_activate = psppire_dialog_action_frequencies_activate; PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax; } static void -psppire_dialog_action_frequencies_init (PsppireDialogActionFrequencies * act) +psppire_dialog_action_frequencies_init (PsppireDialogActionFrequencies *act) { }