#include "comments-dialog.h"
#include "variable-info-dialog.h"
#include "descriptives-dialog.h"
+#include "crosstabs-dialog.h"
#include "frequencies-dialog.h"
+#include "examine-dialog.h"
#include "dict-display.h"
#include "clipboard.h"
-
#include "oneway-anova-dialog.h"
#include "t-test-independent-samples-dialog.h"
+#include "t-test-one-sample.h"
+#include "t-test-paired-samples.h"
#define _(msgid) gettext (msgid)
#define N_(msgid) msgid
G_CALLBACK (t_test_independent_samples_dialog), de);
+ de->invoke_t_test_paired_samples_dialog =
+ gtk_action_new ("t-test-paired-samples",
+ _("_Paired Samples T Test"),
+ _("Calculate T Test for paired samples"),
+ NULL);
+
+ g_signal_connect (de->invoke_t_test_paired_samples_dialog, "activate",
+ G_CALLBACK (t_test_paired_samples_dialog), de);
+
+
+ de->invoke_t_test_one_sample_dialog =
+ gtk_action_new ("t-test-one-sample",
+ _("One _Sample T Test"),
+ _("Calculate T Test for sample from a single distribution"),
+ NULL);
+
+ g_signal_connect (de->invoke_t_test_one_sample_dialog, "activate",
+ G_CALLBACK (t_test_one_sample_dialog), de);
+
+
de->invoke_comments_dialog =
gtk_action_new ("commments-dialog",
_("Data File Comments"),
g_signal_connect (de->invoke_frequencies_dialog, "activate",
G_CALLBACK (frequencies_dialog), de);
+ de->invoke_crosstabs_dialog =
+ gtk_action_new ("crosstabs-dialog",
+ _("_Crosstabs"),
+ _("Generate crosstabulations"),
+ "pspp-crosstabs");
+
+ g_signal_connect (de->invoke_crosstabs_dialog, "activate",
+ G_CALLBACK (crosstabs_dialog), de);
+
+
+ de->invoke_examine_dialog =
+ gtk_action_new ("examine-dialog",
+ _("_Explore"),
+ _("Examine Data by Factors"),
+ "pspp-examine");
+
+ g_signal_connect (de->invoke_examine_dialog, "activate",
+ G_CALLBACK (examine_dialog), de);
+
+
e->window = GTK_WINDOW (get_widget_assert (de->xml, "data_editor"));
G_CALLBACK (gtk_action_activate),
de->action_data_open);
-
#if RECENT_LISTS_AVAILABLE
{
GtkRecentManager *rm = gtk_recent_manager_get_default ();
);
+ gtk_action_connect_proxy (de->invoke_t_test_paired_samples_dialog,
+ get_widget_assert (de->xml,
+ "paired-t-test")
+ );
+
+
+ gtk_action_connect_proxy (de->invoke_t_test_one_sample_dialog,
+ get_widget_assert (de->xml,
+ "one-sample-t-test")
+ );
+
+
gtk_action_connect_proxy (de->invoke_oneway_anova_dialog,
get_widget_assert (de->xml,
"oneway-anova")
get_widget_assert (de->xml, "analyze_descriptives")
);
+ gtk_action_connect_proxy (de->invoke_crosstabs_dialog,
+ get_widget_assert (de->xml, "crosstabs")
+ );
+
gtk_action_connect_proxy (de->invoke_frequencies_dialog,
get_widget_assert (de->xml, "analyze_frequencies")
);
+
+ gtk_action_connect_proxy (de->invoke_examine_dialog,
+ get_widget_assert (de->xml, "analyze_explore")
+ );
+
+
g_signal_connect (get_widget_assert (de->xml,"help_about"),
"activate",
G_CALLBACK (about_new),
gtk_toggle_action_get_active (ta));
}
+extern PsppireDataStore *the_data_store ;
static void
file_quit (GtkCheckMenuItem *menuitem, gpointer data)
/* FIXME: Need to be more intelligent here.
Give the user the opportunity to save any unsaved data.
*/
+ g_object_unref (the_data_store);
gtk_main_quit ();
}
static gint
update_data_ref_entry (const GtkSheet *sheet, gint row, gint col, gpointer data)
{
+ GtkEntry *datum_entry;
GladeXML *data_editor_xml = data;
PsppireDataStore *data_store =
g_return_val_if_fail (data_editor_xml, FALSE);
+
+ datum_entry =
+ GTK_ENTRY (get_widget_assert (data_editor_xml,
+ "datum_entry"));
+
if (data_store)
{
const struct variable *var =
GtkEntry *cell_ref_entry =
GTK_ENTRY (get_widget_assert (data_editor_xml,
"cell_ref_entry"));
- GtkEntry *datum_entry =
- GTK_ENTRY (get_widget_assert (data_editor_xml,
- "datum_entry"));
-
if ( var )
{
gchar *text = g_strdup_printf ("%d: %s", row + FIRST_CASE_NUMBER,
g_free (s);
}
else
- gtk_entry_set_text (cell_ref_entry, "");
-
+ goto blank_entry;
if ( var )
{
gchar *text =
psppire_data_store_get_string (data_store, row,
var_get_dict_index(var));
+
+ if ( ! text )
+ goto blank_entry;
+
g_strchug (text);
gtk_entry_set_text (datum_entry, text);
free (text);
}
else
- gtk_entry_set_text (datum_entry, "");
+ goto blank_entry;
+
}
return FALSE;
+
+ blank_entry:
+ gtk_entry_set_text (datum_entry, "");
+
+ return FALSE;
}