From: John Darrington Date: Sat, 13 Oct 2007 07:22:55 +0000 (+0000) Subject: Implemented the Rank Cases dialog X-Git-Tag: v0.6.0~217 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c2001f2a436355d68bb513e15d9a44e2fd6ac27;p=pspp-builds.git Implemented the Rank Cases dialog --- diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index 02a53524..4d923548 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -51,6 +51,7 @@ dist_src_ui_gui_psppire_DATA = \ $(top_srcdir)/src/ui/gui/descriptives-dialog.glade \ $(top_srcdir)/src/ui/gui/output-viewer.glade \ $(top_srcdir)/src/ui/gui/psppire.glade \ + $(top_srcdir)/src/ui/gui/rank.glade \ $(top_srcdir)/src/ui/gui/syntax-editor.glade \ $(top_srcdir)/src/ui/gui/t-test.glade \ $(top_srcdir)/src/ui/gui/psppicon.png \ @@ -127,6 +128,8 @@ src_ui_gui_psppire_SOURCES = \ src/ui/gui/psppire-selector.h \ src/ui/gui/psppire-var-store.c \ src/ui/gui/psppire-var-store.h \ + src/ui/gui/rank-dialog.c \ + src/ui/gui/rank-dialog.h \ src/ui/gui/select-cases-dialog.c \ src/ui/gui/select-cases-dialog.h \ src/ui/gui/sort-cases-dialog.c \ diff --git a/src/ui/gui/data-editor.c b/src/ui/gui/data-editor.c index bfb05b5f..dc7ca285 100644 --- a/src/ui/gui/data-editor.c +++ b/src/ui/gui/data-editor.c @@ -37,6 +37,7 @@ #include "compute-dialog.h" #include "goto-case-dialog.h" #include "find-dialog.h" +#include "rank-dialog.h" #include "comments-dialog.h" #include "variable-info-dialog.h" #include "descriptives-dialog.h" @@ -620,6 +621,16 @@ new_data_editor (void) G_CALLBACK (find_dialog), de); + de->invoke_rank_dialog = + gtk_action_new ("rank-dialog", + _("Ran_k Cases"), + _("Rank Cases"), + "pspp-rank-cases"); + + g_signal_connect (de->invoke_rank_dialog, "activate", + G_CALLBACK (rank_dialog), de); + + de->invoke_variable_info_dialog = gtk_action_new ("variable-info-dialog", _("Variables"), @@ -722,6 +733,10 @@ new_data_editor (void) get_widget_assert (de->xml, "button-find") ); + gtk_action_connect_proxy (de->invoke_rank_dialog, + get_widget_assert (de->xml, "transform_rank") + ); + gtk_action_connect_proxy (de->invoke_weight_cases_dialog, get_widget_assert (de->xml, "data_weight-cases") ); diff --git a/src/ui/gui/data-editor.glade b/src/ui/gui/data-editor.glade index bc6e65da..7779a060 100644 --- a/src/ui/gui/data-editor.glade +++ b/src/ui/gui/data-editor.glade @@ -379,7 +379,7 @@ - False + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK Ran_k Cases True diff --git a/src/ui/gui/data-editor.h b/src/ui/gui/data-editor.h index a97930af..471541c8 100644 --- a/src/ui/gui/data-editor.h +++ b/src/ui/gui/data-editor.h @@ -42,6 +42,8 @@ struct data_editor GtkAction *invoke_goto_dialog; GtkAction *invoke_variable_info_dialog; GtkAction *invoke_find_dialog; + GtkAction *invoke_rank_dialog; + GtkAction *invoke_descriptives_dialog; GtkAction *invoke_t_test_independent_samples_dialog; diff --git a/src/ui/gui/rank-dialog.c b/src/ui/gui/rank-dialog.c new file mode 100644 index 00000000..3e072aec --- /dev/null +++ b/src/ui/gui/rank-dialog.c @@ -0,0 +1,429 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2007 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#include + +#include "rank-dialog.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gettext.h" +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + + +enum RANK_FUNC + { + RANK, + NORMAL, + PERCENT, + RFRACTION, + PROPORTION, + N, + NTILES, + SAVAGE, + n_RANK_FUNCS + }; + + + + +struct rank_dialog +{ + PsppireDict *dict; + GtkWidget *rank_vars; + GtkWidget *group_vars; + GtkWidget *dialog; + + GtkToggleButton *ascending_togglebutton; + GtkToggleButton *summary_togglebutton; + + + /* Types subdialog widgets */ + + GtkWidget *types_dialog; + GtkWidget *ntiles_entry; + + GtkToggleButton *func_button[n_RANK_FUNCS]; + GtkWidget *formula_box; + + GtkToggleButton *blom; + GtkToggleButton *tukey; + GtkToggleButton *rankit; + GtkToggleButton *vw; + + /* Ties subdialog widgets */ + + PsppireDialog *ties_dialog; + GtkToggleButton *mean; + GtkToggleButton *low; + GtkToggleButton *high; + GtkToggleButton *condense; +}; + +static void +refresh (PsppireDialog *dialog, struct rank_dialog *rd) +{ + GtkTreeModel *liststore; + + liststore = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->rank_vars)); + gtk_list_store_clear (GTK_LIST_STORE (liststore)); + + liststore = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->group_vars)); + gtk_list_store_clear (GTK_LIST_STORE (liststore)); + + gtk_toggle_button_set_active (rd->ascending_togglebutton, TRUE); + gtk_toggle_button_set_active (rd->summary_togglebutton, FALSE); +} + +static char * +generate_syntax (const struct rank_dialog *rd) +{ + gchar *text; + + GtkTreeModel *gs = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->group_vars)); + + GtkTreeIter notused; + + GString *str = g_string_new ("RANK VARIABLES="); + + append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->rank_vars)); + + g_string_append_printf (str, " (%c)", + gtk_toggle_button_get_active (rd->ascending_togglebutton) + ?'A':'D'); + + if ( gtk_tree_model_get_iter_first (gs, ¬used) ) + { + g_string_append (str, "\n\tBY "); + + append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->group_vars)); + } + + g_string_append (str, "\n\t/PRINT = "); + if (gtk_toggle_button_get_active (rd->summary_togglebutton)) + g_string_append (str, "YES"); + else + g_string_append (str, "NO"); + + + if (gtk_toggle_button_get_active (rd->func_button [RANK])) + g_string_append (str, "\n\t/RANK"); + if (gtk_toggle_button_get_active (rd->func_button [NORMAL])) + g_string_append (str, "\n\t/NORMAL"); + if (gtk_toggle_button_get_active (rd->func_button [PROPORTION])) + g_string_append (str, "\n\t/PROPORTION"); + if (gtk_toggle_button_get_active (rd->func_button [PERCENT])) + g_string_append (str, "\n\t/PERCENT"); + if (gtk_toggle_button_get_active (rd->func_button [RFRACTION])) + g_string_append (str, "\n\t/RFRACTION"); + if (gtk_toggle_button_get_active (rd->func_button [N])) + g_string_append (str, "\n\t/N"); + if (gtk_toggle_button_get_active (rd->func_button [SAVAGE])) + g_string_append (str, "\n\t/SAVAGE"); + if (gtk_toggle_button_get_active (rd->func_button [NTILES])) + { + gint n = gtk_spin_button_get_value (GTK_SPIN_BUTTON (rd->ntiles_entry)); + g_string_append_printf (str, "\n\t/NTILES(%d)", n); + } + + + if (gtk_toggle_button_get_active (rd->func_button [NORMAL]) + || + gtk_toggle_button_get_active (rd->func_button [PROPORTION])) + { + g_string_append (str, "\n\t/FRACTION="); + + if ( gtk_toggle_button_get_active (rd->blom)) + g_string_append (str, "BLOM"); + else if ( gtk_toggle_button_get_active (rd->tukey)) + g_string_append (str, "TUKEY"); + else if ( gtk_toggle_button_get_active (rd->rankit)) + g_string_append (str, "RANKIT"); + else if ( gtk_toggle_button_get_active (rd->vw)) + g_string_append (str, "VW"); + } + + g_string_append (str, "\n\t/TIES="); + if ( gtk_toggle_button_get_active (rd->mean)) + g_string_append (str, "MEAN"); + else if ( gtk_toggle_button_get_active (rd->low)) + g_string_append (str, "LOW"); + else if ( gtk_toggle_button_get_active (rd->high)) + g_string_append (str, "HIGH"); + else if ( gtk_toggle_button_get_active (rd->condense)) + g_string_append (str, "CONDENSE"); + + + g_string_append (str, "."); + + text = str->str; + + g_string_free (str, FALSE); + + return text; +} + +/* Dialog is valid iff at least one variable has been selected */ +static gboolean +dialog_state_valid (gpointer data) +{ + struct rank_dialog *rd = data; + + GtkTreeModel *vars = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->rank_vars)); + + GtkTreeIter notused; + + return gtk_tree_model_get_iter_first (vars, ¬used); +} + +static void on_ntiles_toggle (GtkToggleButton *, gpointer); +static void run_types_dialog (GtkButton *, gpointer); +static void run_ties_dialog (GtkButton *, gpointer ); + +static void +set_sensitivity (struct rank_dialog *rd) +{ + gboolean sens = gtk_toggle_button_get_active + (GTK_TOGGLE_BUTTON (rd->func_button[PROPORTION])) + || + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->func_button[NORMAL])); + + gtk_widget_set_sensitive (rd->formula_box, sens); +} + +/* Pops up the Rank dialog box */ +void +rank_dialog (GObject *o, gpointer data) +{ + gint response; + struct data_editor *de = data; + + struct rank_dialog rd; + + GladeXML *xml = XML_NEW ("rank.glade"); + + GtkWidget *vars = get_widget_assert (xml, "dict-treeview"); + GtkWidget *selector1 = get_widget_assert (xml, "psppire-selector1"); + GtkWidget *selector2 = get_widget_assert (xml, "psppire-selector2"); + + + GtkWidget *types_button = get_widget_assert (xml, "button1"); + GtkWidget *ties_button = get_widget_assert (xml, "button2"); + + GtkSheet *var_sheet = + GTK_SHEET (get_widget_assert (de->xml, "variable_sheet")); + + PsppireVarStore *vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet)); + + + rd.dict = vs->dict; + rd.rank_vars = get_widget_assert (xml, "variables-treeview"); + rd.group_vars = get_widget_assert (xml, "group-vars-treeview"); + rd.dialog = get_widget_assert (xml, "rank-dialog"); + rd.ascending_togglebutton = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "radiobutton1")); + + rd.summary_togglebutton = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "summary-checkbutton")); + + rd.types_dialog = get_widget_assert (xml, "rank-types-dialog"); + + + rd.ntiles_entry = get_widget_assert (xml, "ntiles-entry"); + + rd.func_button[RANK] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "rank-checkbutton")); + + rd.func_button[SAVAGE] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "savage-checkbutton")); + + rd.func_button[RFRACTION] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "rfrac-checkbutton")); + + rd.func_button[PERCENT] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "percent-checkbutton")); + + rd.func_button[N] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "sum-checkbutton")); + + rd.func_button[NTILES] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "ntiles-checkbutton")); + + rd.func_button[PROPORTION] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "prop-checkbutton")); + + rd.func_button[NORMAL] = + GTK_TOGGLE_BUTTON (get_widget_assert (xml, "normal-checkbutton")); + + rd.formula_box = get_widget_assert (xml, "formula-frame"); + + rd.blom = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "blom-button")); + rd.tukey = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "tukey-button")); + rd.rankit = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "rankit-button")); + rd.vw = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "vw-button")); + + /* Ties dialog */ + rd.ties_dialog = PSPPIRE_DIALOG (get_widget_assert (xml, "ties-dialog")); + + rd.mean = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "mean-button")); + rd.low = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "low-button")); + rd.high = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "high-button")); + rd.condense = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "condense-button")); + + g_signal_connect_swapped (rd.func_button[PROPORTION], "toggled", + G_CALLBACK (set_sensitivity), + &rd); + + g_signal_connect_swapped (rd.func_button[NORMAL], "toggled", + G_CALLBACK (set_sensitivity), + &rd); + + g_signal_connect (rd.func_button[NTILES], "toggled", + G_CALLBACK (on_ntiles_toggle), + rd.ntiles_entry); + + gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), de->parent.window); + + attach_dictionary_to_treeview (GTK_TREE_VIEW (vars), + vs->dict, + GTK_SELECTION_MULTIPLE, NULL); + + + set_dest_model (GTK_TREE_VIEW (rd.rank_vars), vs->dict); + + psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector1), + vars, + rd.rank_vars, + insert_source_row_into_tree_view, + NULL); + + set_dest_model (GTK_TREE_VIEW (rd.group_vars), vs->dict); + + psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector2), + vars, + rd.group_vars, + insert_source_row_into_tree_view, + NULL); + + + g_signal_connect (types_button, "clicked", + G_CALLBACK (run_types_dialog), &rd); + + g_signal_connect (ties_button, "clicked", + G_CALLBACK (run_ties_dialog), &rd); + + g_signal_connect (rd.dialog, "refresh", G_CALLBACK (refresh), &rd); + + psppire_dialog_set_valid_predicate (PSPPIRE_DIALOG (rd.dialog), + dialog_state_valid, &rd); + + response = psppire_dialog_run (PSPPIRE_DIALOG (rd.dialog)); + + + switch (response) + { + case GTK_RESPONSE_OK: + { + gchar *syntax = generate_syntax (&rd); + struct getl_interface *sss = create_syntax_string_source (syntax); + execute_syntax (sss); + + g_free (syntax); + } + break; + case PSPPIRE_RESPONSE_PASTE: + { + gchar *syntax = generate_syntax (&rd); + + struct syntax_editor *se = + (struct syntax_editor *) window_create (WINDOW_SYNTAX, NULL); + + gtk_text_buffer_insert_at_cursor (se->buffer, syntax, -1); + + g_free (syntax); + } + break; + default: + break; + } + + g_object_unref (xml); +} + + +static void +types_dialog_reset (struct rank_dialog *rd) +{ + gint i; + + for (i = 0 ; i < n_RANK_FUNCS ; ++i ) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->func_button [i]), + FALSE); + + gtk_widget_set_sensitive (rd->ntiles_entry, FALSE); + + gtk_widget_set_sensitive (rd->formula_box, FALSE); +} + + + +static void +run_types_dialog (GtkButton *b, gpointer data) +{ + struct rank_dialog *rd = data; + gint response; + + gtk_window_set_transient_for (GTK_WINDOW (rd->types_dialog), + GTK_WINDOW (rd->dialog)); + + types_dialog_reset (rd); + + response = psppire_dialog_run (PSPPIRE_DIALOG (rd->types_dialog)); +} + +static void +run_ties_dialog (GtkButton *b, gpointer data) +{ + struct rank_dialog *rd = data; + gint response; + + gtk_window_set_transient_for (GTK_WINDOW (rd->ties_dialog), + GTK_WINDOW (rd->dialog)); + + + response = psppire_dialog_run (PSPPIRE_DIALOG (rd->ties_dialog)); +} + + +static void +on_ntiles_toggle (GtkToggleButton *toggle_button, gpointer data) +{ + GtkWidget *w = data; + gboolean active = gtk_toggle_button_get_active (toggle_button); + gtk_widget_set_sensitive (w, active); +} diff --git a/src/ui/gui/rank-dialog.h b/src/ui/gui/rank-dialog.h new file mode 100644 index 00000000..a2ddace6 --- /dev/null +++ b/src/ui/gui/rank-dialog.h @@ -0,0 +1,27 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2007 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef __RANK_DIALOG_H +#define __RANK_DIALOG_H + + +#include +#include + + +void rank_dialog (GObject *o, gpointer data); + +#endif diff --git a/src/ui/gui/rank.glade b/src/ui/gui/rank.glade new file mode 100644 index 00000000..a97121d0 --- /dev/null +++ b/src/ui/gui/rank.glade @@ -0,0 +1,711 @@ + + + + + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank Cases + True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + 3 + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + 1 + 2 + + + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + 1 + 2 + 1 + 2 + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Variable(s): + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + GTK_SHADOW_ETCHED_IN + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + True + + + + + 1 + + + + + 2 + 3 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + By: + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + GTK_SHADOW_ETCHED_IN + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + True + + + + + 1 + + + + + 2 + 3 + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + GTK_SHADOW_ETCHED_IN + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + True + + + + + 2 + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Smallest Value + True + 0 + True + True + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Largest Value + True + 0 + True + True + radiobutton1 + + + 1 + + + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Assign rank 1 to: + True + + + label_item + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Display summary tables + True + 0 + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank T_ypes + True + 0 + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Ties... + True + 0 + + + 1 + + + + + 1 + + + + + 1 + + + + + 1 + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + False + False + GTK_PACK_END + 1 + + + + + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank Cases: Types + True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 2 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Ntiles + 0 + True + + + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 0 100 1 10 10 + + + False + 1 + + + + + 1 + 2 + 2 + 3 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank + 0 + True + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Savage score + 0 + True + + + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Fractional rank + 0 + True + + + 2 + 3 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Fractional rank as % + 0 + True + + + 1 + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Sum of case weights + 0 + True + + + 1 + 2 + 1 + 2 + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Proportion Estimates + 0 + True + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Normal Scores + 0 + True + + + 1 + + + + + False + False + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Blom + 0 + True + True + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Tukey + 0 + True + blom-button + + + 1 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rankit + 0 + True + blom-button + + + 2 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Van der Wärden + 0 + True + blom-button + + + 3 + + + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Proportion Estimation Formula + True + GTK_JUSTIFY_FILL + + + label_item + + + + + 2 + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + PSPPIRE_BUTTON_CONTINUE_MASK | PSPPIRE_BUTTON_CANCEL_MASK | PSPPIRE_BUTTON_HELP_MASK + + + False + False + GTK_PACK_END + 1 + + + + + + + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank Cases: Ties + True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Mean + True + 0 + True + True + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Low + True + 0 + True + True + mean-button + + + 1 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _High + True + 0 + True + True + mean-button + + + 2 + + + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Sequential ranks to unique values + True + 0 + True + True + mean-button + + + False + 1 + + + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Rank Assigned to Ties + True + + + label_item + + + + + 5 + + + + + True + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + PSPPIRE_BUTTON_CONTINUE_MASK | PSPPIRE_BUTTON_CANCEL_MASK | PSPPIRE_BUTTON_HELP_MASK + + + False + False + GTK_PACK_END + 1 + + + + + +