/* 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
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
};
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));
}
}
(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);
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");
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");
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");
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;
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;
{
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");
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);
static void
psppire_dialog_action_frequencies_class_init (PsppireDialogActionFrequenciesClass *class)
{
- GtkActionClass *action_class = GTK_ACTION_CLASS (class);
-
- action_class->activate = 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)
{
}