+ G_CALLBACK (on_edit_cut), de);
+
+
+ register_data_editor_actions (de);
+
+ de->toggle_value_labels =
+ gtk_toggle_action_new ("toggle-value-labels",
+ _("Labels"),
+ _("Show/hide value labels"),
+ "pspp-value-labels");
+
+ g_signal_connect (de->toggle_value_labels, "activate",
+ G_CALLBACK (toggle_value_labels), de);
+
+
+ gtk_action_connect_proxy (GTK_ACTION (de->toggle_value_labels),
+ get_widget_assert (de->xml,
+ "togglebutton-value-labels"));
+
+
+ gtk_action_connect_proxy (GTK_ACTION (de->toggle_value_labels),
+ get_widget_assert (de->xml,
+ "view_value-labels"));
+
+ de->delete_cases =
+ gtk_action_new ("clear-cases",
+ _("Clear"),
+ _("Delete the cases at the selected position(s)"),
+ "pspp-clear-cases");
+
+ g_signal_connect (de->delete_cases, "activate",
+ G_CALLBACK (delete_cases), de);
+
+ gtk_action_connect_proxy (de->delete_cases,
+ get_widget_assert (de->xml, "edit_clear-cases"));
+
+ g_signal_connect (get_widget_assert (de->xml, "edit_paste"), "activate",
+ G_CALLBACK (on_edit_paste), de);
+
+ gtk_action_set_visible (de->delete_cases, FALSE);
+
+ de->delete_variables =
+ gtk_action_new ("clear-variables",
+ _("Clear"),
+ _("Delete the variables at the selected position(s)"),
+ "pspp-clear-variables");
+
+ g_signal_connect (de->delete_variables, "activate",
+ G_CALLBACK (delete_variables), de);
+
+ gtk_action_connect_proxy (de->delete_variables,
+ get_widget_assert (de->xml, "edit_clear-variables")
+ );
+
+ gtk_action_set_visible (de->delete_variables, FALSE);
+
+ de->insert_variable =
+ gtk_action_new ("insert-variable",
+ _("Insert Variable"),
+ _("Create a new variable at the current position"),
+ "pspp-insert-variable");
+
+ g_signal_connect (de->insert_variable, "activate",
+ G_CALLBACK (insert_variable), de);
+
+
+ gtk_action_connect_proxy (de->insert_variable,
+ get_widget_assert (de->xml, "button-insert-variable")
+ );
+
+ gtk_action_connect_proxy (de->insert_variable,
+ get_widget_assert (de->xml, "edit_insert-variable")
+ );
+
+
+ de->insert_case =
+ gtk_action_new ("insert-case",
+ _("Insert Case"),
+ _("Create a new case at the current position"),
+ "pspp-insert-case");
+
+ g_signal_connect (de->insert_case, "activate",
+ G_CALLBACK (insert_case), de);
+
+
+ gtk_action_connect_proxy (de->insert_case,
+ get_widget_assert (de->xml, "button-insert-case")
+ );
+
+
+ gtk_action_connect_proxy (de->insert_case,
+ get_widget_assert (de->xml, "edit_insert-case")
+ );
+
+
+
+ de->invoke_goto_dialog =
+ gtk_action_new ("goto-case-dialog",
+ _("Goto Case"),
+ _("Jump to a Case in the Data Sheet"),
+ "gtk-jump-to");
+
+
+ gtk_action_connect_proxy (de->invoke_goto_dialog,
+ get_widget_assert (de->xml, "button-goto-case")
+ );
+
+ gtk_action_connect_proxy (de->invoke_goto_dialog,
+ get_widget_assert (de->xml, "edit_goto-case")
+ );
+
+
+ g_signal_connect (de->invoke_goto_dialog, "activate",
+ G_CALLBACK (goto_case_dialog), de);
+
+
+ de->invoke_weight_cases_dialog =
+ gtk_action_new ("weight-cases-dialog",
+ _("Weights"),
+ _("Weight cases by variable"),
+ "pspp-weight-cases");
+
+ g_signal_connect (de->invoke_weight_cases_dialog, "activate",
+ G_CALLBACK (weight_cases_dialog), de);
+
+
+ de->invoke_transpose_dialog =
+ gtk_action_new ("transpose-dialog",
+ _("Transpose"),
+ _("Transpose the cases with the variables"),
+ NULL);
+
+
+ g_signal_connect (de->invoke_transpose_dialog, "activate",
+ G_CALLBACK (transpose_dialog), de);
+
+
+
+ de->invoke_split_file_dialog =
+ gtk_action_new ("split-file-dialog",
+ _("Split"),
+ _("Split the active file"),
+ "pspp-split-file");
+
+ g_signal_connect (de->invoke_split_file_dialog, "activate",
+ G_CALLBACK (split_file_dialog), de);
+
+
+
+ de->invoke_sort_cases_dialog =
+ gtk_action_new ("sort-cases-dialog",
+ _("Sort"),
+ _("Sort cases in the active file"),
+ "pspp-sort-cases");
+
+ g_signal_connect (de->invoke_sort_cases_dialog, "activate",
+ G_CALLBACK (sort_cases_dialog), de);
+
+ de->invoke_select_cases_dialog =
+ gtk_action_new ("select-cases-dialog",
+ _("Select Cases"),
+ _("Select cases from the active file"),
+ "pspp-select-cases");
+
+ g_signal_connect (de->invoke_select_cases_dialog, "activate",
+ G_CALLBACK (select_cases_dialog), de);
+
+
+ de->invoke_compute_dialog =
+ gtk_action_new ("compute-dialog",
+ _("Compute"),
+ _("Compute new values for a variable"),
+ "pspp-compute");
+
+ g_signal_connect (de->invoke_compute_dialog, "activate",
+ G_CALLBACK (compute_dialog), de);
+
+ de->invoke_comments_dialog =
+ gtk_action_new ("commments-dialog",
+ _("Data File Comments"),
+ _("Commentary text for the data file"),
+ NULL);
+
+ g_signal_connect (de->invoke_comments_dialog, "activate",
+ G_CALLBACK (comments_dialog), de);
+
+ de->invoke_variable_info_dialog =
+ gtk_action_new ("variable-info-dialog",
+ _("Variables"),
+ _("Jump to Variable"),
+ "pspp-goto-variable");
+
+ g_signal_connect (de->invoke_variable_info_dialog, "activate",
+ G_CALLBACK (variable_info_dialog), de);
+
+ e->window = GTK_WINDOW (get_widget_assert (de->xml, "data_editor"));
+
+ g_signal_connect_swapped (get_widget_assert (de->xml,"file_new_data"),
+ "activate",
+ G_CALLBACK (gtk_action_activate),
+ de->action_data_new);
+
+ g_signal_connect_swapped (get_widget_assert (de->xml,"file_open_data"),
+ "activate",
+ G_CALLBACK (gtk_action_activate),
+ de->action_data_open);
+
+
+#if RECENT_LISTS_AVAILABLE
+ {
+ GtkRecentManager *rm = gtk_recent_manager_get_default ();
+ GtkWidget *recent_data = get_widget_assert (de->xml, "file_recent-data");
+ GtkWidget *recent_files = get_widget_assert (de->xml, "file_recent-files");
+ GtkWidget *recent_separator = get_widget_assert (de->xml, "file_separator1");
+
+ GtkWidget *menu = gtk_recent_chooser_menu_new_for_manager (rm);
+
+ GtkRecentFilter *filter = gtk_recent_filter_new ();
+
+ gtk_widget_show (recent_data);
+ gtk_widget_show (recent_files);
+ gtk_widget_show (recent_separator);
+
+ gtk_recent_filter_add_pattern (filter, "*.sav");
+ gtk_recent_filter_add_pattern (filter, "*.SAV");
+
+ gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (menu), filter);
+
+ gtk_widget_set_sensitive (recent_data, TRUE);
+ g_signal_connect (menu, "selection-done",
+ G_CALLBACK (on_recent_data_select), de);
+
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (recent_data), menu);
+
+
+ filter = gtk_recent_filter_new ();
+ menu = gtk_recent_chooser_menu_new_for_manager (rm);
+
+ gtk_recent_filter_add_pattern (filter, "*.sps");
+ gtk_recent_filter_add_pattern (filter, "*.SPS");
+
+ gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (menu), filter);
+
+ gtk_widget_set_sensitive (recent_files, TRUE);
+ g_signal_connect (menu, "selection-done",
+ G_CALLBACK (on_recent_files_select), de);
+
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (recent_files), menu);
+ }
+#endif