X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fdata-editor.c;h=9681a09f1be8813e1e14d7696839afd8f39cf743;hb=4ea6e37d180c9412cbcd39afa48a516522e6dd71;hp=94094dff93ba17ed58c9b42428b06b4bcbeb3b5c;hpb=bcbfd7478b6d81f44cf9b046a27e38be8dc62696;p=pspp-builds.git diff --git a/src/ui/gui/data-editor.c b/src/ui/gui/data-editor.c index 94094dff..9681a09f 100644 --- a/src/ui/gui/data-editor.c +++ b/src/ui/gui/data-editor.c @@ -26,6 +26,7 @@ #include "helper.h" #include "about.h" +#include #include "psppire-dialog.h" #include "psppire-selector.h" #include "weight-cases-dialog.h" @@ -119,6 +120,37 @@ enable_delete_variables (GtkWidget *w, gint var, gpointer data) } + +/* Run the EXECUTE command. */ +static void +execute (GtkMenuItem *mi, gpointer data) +{ + struct getl_interface *sss = create_syntax_string_source ("EXECUTE."); + + execute_syntax (sss); +} + +static void +transformation_change_callback (bool transformations_pending, + gpointer data) +{ + struct data_editor *de = data; + GtkWidget *menuitem = + get_widget_assert (de->xml, "transform_run-pending"); + GtkWidget *status_label = + get_widget_assert (de->xml, "case-counter-area"); + + gtk_widget_set_sensitive (menuitem, transformations_pending); + + + if ( transformations_pending) + gtk_label_set_text (GTK_LABEL (status_label), + _("Transformations Pending")); + else + gtk_label_set_text (GTK_LABEL (status_label), ""); +} + + static void open_data_file (const gchar *, struct data_editor *); @@ -184,6 +216,8 @@ datum_entry_activate (GtkEntry *entry, gpointer data) psppire_data_store_set_string (store, text, row, column); } +extern struct dataset *the_dataset; + /* Create a new data editor. */ @@ -203,6 +237,11 @@ new_data_editor (void) de->xml = XML_NEW ("data-editor.glade"); + + dataset_add_transform_change_callback (the_dataset, + transformation_change_callback, + de); + var_sheet = GTK_SHEET (get_widget_assert (de->xml, "variable_sheet")); data_sheet = GTK_SHEET (get_widget_assert (de->xml, "data_sheet")); @@ -614,6 +653,10 @@ new_data_editor (void) "activate", G_CALLBACK (file_quit), de); + g_signal_connect (get_widget_assert (de->xml, "transform_run-pending"), + "activate", + G_CALLBACK (execute), de); + g_signal_connect (get_widget_assert (de->xml, "windows_minimise_all"), "activate",