-
-static GtkWidget *
-create_var_row_header_popup_menu (PsppireDataEditor *de)
-{
- GtkWidget *menu = gtk_menu_new ();
-
- GtkWidget *item =
- gtk_menu_item_new_with_mnemonic (_("_Insert Variable"));
- g_signal_connect_swapped (item, "activate", G_CALLBACK (insert_new_variable_var),
- de);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- item = gtk_separator_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- de->var_clear_variables_menu_item =
- gtk_menu_item_new_with_mnemonic (_("Cl_ear Variables"));
- g_signal_connect_swapped (de->var_clear_variables_menu_item, "activate",
- G_CALLBACK (var_delete_variables), de);
- gtk_widget_set_sensitive (de->var_clear_variables_menu_item, FALSE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), de->var_clear_variables_menu_item);
-
- gtk_widget_show_all (menu);
- return menu;
-}
-
-static GtkWidget *
-create_data_row_header_popup_menu (PsppireDataEditor *de)
-{
- GtkWidget *menu = gtk_menu_new ();
-
- GtkWidget *item =
- gtk_menu_item_new_with_mnemonic (_("_Insert Case"));
-
- g_signal_connect_swapped (item, "activate", G_CALLBACK (insert_new_case), de);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- item = gtk_separator_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- de->data_clear_cases_menu_item = gtk_menu_item_new_with_mnemonic (_("Cl_ear Cases"));
- gtk_widget_set_sensitive (de->data_clear_cases_menu_item, FALSE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), de->data_clear_cases_menu_item);
- g_signal_connect_swapped (de->data_clear_cases_menu_item, "activate",
- G_CALLBACK (delete_cases), de);
-
- gtk_widget_show_all (menu);
- return menu;
-}
-
-static GtkWidget *
-create_data_column_header_popup_menu (PsppireDataEditor *de)
-{
- GtkWidget *menu = gtk_menu_new ();
-
- GtkWidget *item =
- gtk_menu_item_new_with_mnemonic (_("_Insert Variable"));
- g_signal_connect_swapped (item, "activate", G_CALLBACK (insert_new_variable_data),
- de);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- item = gtk_separator_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- de->data_clear_variables_menu_item =
- gtk_menu_item_new_with_mnemonic (_("Cl_ear Variables"));
- g_signal_connect_swapped (de->data_clear_variables_menu_item, "activate",
- G_CALLBACK (data_delete_variables), de);
- gtk_widget_set_sensitive (de->data_clear_variables_menu_item, FALSE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), de->data_clear_variables_menu_item);
-
- item = gtk_separator_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-
- de->data_sort_ascending_menu_item =
- gtk_menu_item_new_with_mnemonic (_("Sort _Ascending"));
- g_signal_connect_swapped (de->data_sort_ascending_menu_item, "activate",
- G_CALLBACK (sort_ascending), de);
- gtk_widget_set_sensitive (de->data_sort_ascending_menu_item, FALSE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), de->data_sort_ascending_menu_item);
-
- de->data_sort_descending_menu_item =
- gtk_menu_item_new_with_mnemonic (_("Sort _Descending"));
- g_signal_connect_swapped (de->data_sort_descending_menu_item, "activate",
- G_CALLBACK (sort_descending), de);
- gtk_widget_set_sensitive (de->data_sort_descending_menu_item, FALSE);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), de->data_sort_descending_menu_item);
-
- gtk_widget_show_all (menu);
- return menu;
-}
-
-static void
-set_var_popup_sensitivity (JmdSheet *sheet, gpointer selection, gpointer p)
-{
-
- JmdRange *range = selection;
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (p);
- gint width = gtk_tree_model_get_n_columns (sheet->data_model);
-
- gboolean whole_row_selected = (range->start_x == 0 &&
- range->end_x == width - 1 - 1);
- /* PsppireDict has an "extra" column: TVM_COL_VAR ^^^ */
- gtk_widget_set_sensitive (de->var_clear_variables_menu_item, whole_row_selected);
-}
-
-static void
-set_menu_items_sensitivity (JmdSheet *sheet, gpointer selection, gpointer p)
-{
- JmdRange *range = selection;
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (p);
- gint width = gtk_tree_model_get_n_columns (sheet->data_model);
- gint length = psppire_data_store_get_case_count (de->data_store);
-
-
- gboolean whole_row_selected = (range->start_x == 0 && range->end_x == width - 1);
- gtk_widget_set_sensitive (de->data_clear_cases_menu_item, whole_row_selected);
-
-
- gboolean whole_column_selected =
- (range->start_y == 0 && range->end_y == length - 1);
- gtk_widget_set_sensitive (de->data_clear_variables_menu_item,
- whole_column_selected);
- gtk_widget_set_sensitive (de->data_sort_ascending_menu_item,
- whole_column_selected);
- gtk_widget_set_sensitive (de->data_sort_descending_menu_item,
- whole_column_selected);
-}
-
-static void
-show_variables_row_popup (JmdSheet *sheet, int row, uint button,
- uint state, gpointer p)
-{
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (p);
- GListModel *vmodel = NULL;
- g_object_get (sheet, "vmodel", &vmodel, NULL);
- if (vmodel == NULL)
- return;
-
- guint n_items = g_list_model_get_n_items (vmodel);
-
- if (row >= n_items)
- return;
-
- if (button != 3)
- return;
-
- g_object_set_data (G_OBJECT (de->var_sheet_row_popup), "item",
- GINT_TO_POINTER (row));
-
- gtk_menu_popup_at_pointer (GTK_MENU (de->var_sheet_row_popup), NULL);
-}
-
-static void
-show_cases_row_popup (JmdSheet *sheet, int row, uint button, uint state, gpointer p)
-{
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (p);
- GListModel *vmodel = NULL;
- g_object_get (sheet, "vmodel", &vmodel, NULL);
- if (vmodel == NULL)
- return;
-
- guint n_items = g_list_model_get_n_items (vmodel);
-
- if (row >= n_items)
- return;
-
- if (button != 3)
- return;
-
- g_object_set_data (G_OBJECT (de->data_sheet_cases_row_popup), "item",
- GINT_TO_POINTER (row));
-
- gtk_menu_popup_at_pointer (GTK_MENU (de->data_sheet_cases_row_popup), NULL);
-}
-
-static void
-show_cases_column_popup (JmdSheet *sheet, int column, uint button, uint state,
- gpointer p)
-{
- PsppireDataEditor *de = PSPPIRE_DATA_EDITOR (p);
- GListModel *hmodel = NULL;
- g_object_get (sheet, "hmodel", &hmodel, NULL);
- if (hmodel == NULL)
- return;
-
- guint n_items = g_list_model_get_n_items (hmodel);
-
- if (column >= n_items)
- return;
-
- if (button != 3)
- return;
-
- g_object_set_data (G_OBJECT (de->data_sheet_cases_column_popup), "item",
- GINT_TO_POINTER (column));
-
- gtk_menu_popup_at_pointer (GTK_MENU (de->data_sheet_cases_column_popup), NULL);
-}
-
-