/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2012 Free Software Foundation
+ Copyright (C) 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
#include "psppire-dialog-action-descriptives.h"
-#include "checkbox-treeview.h"
+#include "psppire-checkbox-treeview.h"
#include "psppire-var-view.h"
#include "psppire-dict.h"
G_DEFINE_TYPE (PsppireDialogActionDescriptives, psppire_dialog_action_descriptives, PSPPIRE_TYPE_DIALOG_ACTION);
-#define DESCRIPTIVE_STATS \
- DS (MEAN, N_("Mean")) \
- DS (STDDEV, N_("Standard deviation")) \
- DS (MINIMUM, N_("Minimum")) \
- DS (MAXIMUM, N_("Maximum")) \
- DS (RANGE, N_("Range")) \
- DS (SUM, N_("Sum")) \
- DS (SEMEAN, N_("Standard error")) \
- DS (VARIANCE, N_("Variance")) \
- DS (KURTOSIS, N_("Kurtosis")) \
- DS (SKEWNESS, N_("Skewness"))
+#define DESCRIPTIVE_STATS \
+ DS (MEAN, N_("Mean"), NULL) \
+ DS (STDDEV, N_("Standard deviation"), NULL) \
+ DS (MINIMUM, N_("Minimum"), N_("Minimum value")) \
+ DS (MAXIMUM, N_("Maximum"), N_("Maximum value")) \
+ DS (RANGE, N_("Range"), NULL) \
+ DS (SUM, N_("Sum"), NULL) \
+ DS (SEMEAN, N_("Standard error"), N_("Standard error of mean")) \
+ DS (VARIANCE, N_("Variance"), NULL) \
+ DS (KURTOSIS, N_("Kurtosis"), N_("Kurtosis and standard error of kurtosis")) \
+ DS (SKEWNESS, N_("Skewness"), N_("Skewness and standard error of skewness"))
enum
{
-#define DS(NAME, LABEL) DS_##NAME,
+#define DS(NAME, LABEL, TOOLTIP) DS_##NAME,
DESCRIPTIVE_STATS
#undef DS
N_DESCRIPTIVE_STATS
enum
{
-#define DS(NAME, LABEL) B_DS_##NAME = 1u << DS_##NAME,
+#define DS(NAME, LABEL, TOOLTIP) B_DS_##NAME = 1u << DS_##NAME,
DESCRIPTIVE_STATS
#undef DS
B_DS_ALL = (1u << N_DESCRIPTIVE_STATS) - 1,
static const struct checkbox_entry_item stats[] =
{
-#define DS(NAME, LABEL) {#NAME, LABEL},
+#define DS(NAME, LABEL, TOOLTIP) {#NAME, LABEL, TOOLTIP},
DESCRIPTIVE_STATS
#undef DS
};
static char *
-generate_syntax (PsppireDialogAction *act)
+generate_syntax (const PsppireDialogAction *act)
{
PsppireDialogActionDescriptives *scd = PSPPIRE_DIALOG_ACTION_DESCRIPTIVES (act);
gchar *text;
gtk_toggle_button_set_active (scd->save_z_scores, false);
}
-static void
-psppire_dialog_action_descriptives_activate (GtkAction *a)
+
+static GtkBuilder *
+psppire_dialog_action_descriptives_activate (PsppireDialogAction *a, GVariant *param)
{
PsppireDialogAction *pda = PSPPIRE_DIALOG_ACTION (a);
PsppireDialogActionDescriptives *act = PSPPIRE_DIALOG_ACTION_DESCRIPTIVES (a);
GtkBuilder *xml = builder_new ("descriptives.ui");
- GtkWidget *stats_treeview = get_widget_assert (xml, "statistics");
+ GtkWidget *stats_treeview = get_widget_assert (xml, "statistics");
+ psppire_checkbox_treeview_populate (PSPPIRE_CHECKBOX_TREEVIEW (stats_treeview),
+ B_DS_DEFAULT,
+ N_DESCRIPTIVE_STATS, stats);
+ act->stats = gtk_tree_view_get_model (GTK_TREE_VIEW (stats_treeview));
pda->dialog = get_widget_assert (xml, "descriptives-dialog");
pda->source = get_widget_assert (xml, "all-variables");
act->variables = get_widget_assert (xml, "stat-variables");
- g_object_set (pda->source, "model", pda->dict,
- "predicate", var_is_numeric, NULL);
-
- put_checkbox_items_in_treeview (GTK_TREE_VIEW (stats_treeview),
- B_DS_DEFAULT,
- N_DESCRIPTIVE_STATS, stats);
+ g_object_set (pda->source,
+ "predicate", var_is_numeric, NULL);
act->stat_vars = GTK_TREE_VIEW (act->variables);
- act->stats = gtk_tree_view_get_model (GTK_TREE_VIEW (stats_treeview));
-
+
act->include_user_missing =
GTK_TOGGLE_BUTTON (get_widget_assert (xml, "include_user_missing"));
act->exclude_missing_listwise =
psppire_dialog_action_set_valid_predicate (pda, dialog_state_valid);
psppire_dialog_action_set_refresh (pda, dialog_refresh);
- PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_descriptives_parent_class)->activate (pda);
-
- g_object_unref (xml);
+ return xml;
}
static void
psppire_dialog_action_descriptives_class_init (PsppireDialogActionDescriptivesClass *class)
{
- GTK_ACTION_CLASS (class)->activate = psppire_dialog_action_descriptives_activate;
+ PSPPIRE_DIALOG_ACTION_CLASS (class)->initial_activate = psppire_dialog_action_descriptives_activate;
PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax;
}