Replace checkbox-treeview functions with a object PsppireCheckboxTreeview
[pspp] / src / ui / gui / pspp-sheet-private.h
index 4658955b0007d287f3761e431d943ac4789ba05b..49d224752ca0630b032b70eae24f6b3770ba0c43 100644 (file)
@@ -1,5 +1,5 @@
  /* PSPPIRE - a graphical user interface for PSPP.
-    Copyright (C) 2011 Free Software Foundation, Inc.
+    Copyright (C) 2011, 2012, 2013 Free Software Foundation, Inc.
 
     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
@@ -53,13 +53,6 @@ typedef enum
   PSPP_SHEET_VIEW_IN_COLUMN_DRAG = 1 << 7
 } PsppSheetViewFlags;
 
-typedef enum
-{
-  GTK_TREE_SELECT_MODE_TOGGLE = 1 << 0,
-  GTK_TREE_SELECT_MODE_EXTEND = 1 << 1
-}
-GtkTreeSelectMode;
-
 enum
 {
   DRAG_COLUMN_WINDOW_STATE_UNSET = 0,
@@ -144,6 +137,7 @@ struct _PsppSheetViewPrivate
   gint pressed_button;
   gint press_start_x;
   gint press_start_y;
+  gint press_start_node;
 
   gint event_last_x;
   gint event_last_y;
@@ -156,6 +150,7 @@ struct _PsppSheetViewPrivate
 
   /* Cell Editing */
   PsppSheetViewColumn *edited_column;
+  gint edited_row;
 
   /* Selection information */
   PsppSheetSelection *selection;
@@ -164,6 +159,7 @@ struct _PsppSheetViewPrivate
   gint n_columns;
   GList *columns;
   gint header_height;
+  gint n_selected_columns;
 
   PsppSheetViewColumnDropFunc column_drop_func;
   gpointer column_drop_func_data;
@@ -184,10 +180,6 @@ struct _PsppSheetViewPrivate
   /* Non-interactive Header Resizing, expand flag support */
   gint prev_width;
 
-  gint last_extra_space;
-  gint last_extra_space_per_column;
-  gint last_number_of_expand_columns;
-
   /* ATK Hack */
   PsppSheetDestroyCountFunc destroy_count_func;
   gpointer destroy_count_data;
@@ -212,8 +204,12 @@ struct _PsppSheetViewPrivate
 
   int rubber_band_end_node;
 
+  /* Rectangular selection. */
+  PsppSheetViewColumn *anchor_column; /* XXX needs to be a weak pointer? */
+
   /* fixed height */
   gint fixed_height;
+  gboolean fixed_height_set;
 
   /* Scroll-to functionality when unrealized */
   GtkTreeRowReference *scroll_to_path;
@@ -237,11 +233,17 @@ struct _PsppSheetViewPrivate
 
   /* Grid and tree lines */
   PsppSheetViewGridLines grid_lines;
-  GdkGC *grid_line_gc;
+  GdkGC *grid_line_gc[5];
+
+  /* Special cells. */
+  PsppSheetViewSpecialCells special_cells;
 
   /* Tooltip support */
   gint tooltip_column;
 
+  /* Cached style for button facades in columns. */
+  GtkStyle *button_style;
+
   /* Here comes the bitfield */
   guint scroll_to_use_align : 1;
 
@@ -254,9 +256,6 @@ struct _PsppSheetViewPrivate
   /* for DnD */
   guint empty_view_drop : 1;
 
-  guint ctrl_pressed : 1;
-  guint shift_pressed : 1;
-
   guint init_hadjust_value : 1;
 
   guint in_top_row_to_dy : 1;
@@ -353,7 +352,7 @@ struct _PsppSheetViewPrivate
 void         _pspp_sheet_selection_internal_select_node (PsppSheetSelection  *selection,
                                                       int                node,
                                                       GtkTreePath       *path,
-                                                       GtkTreeSelectMode  mode,
+                                                       PsppSheetSelectMode  mode,
                                                       gboolean           override_browse_mode);
 void         _pspp_sheet_selection_emit_changed         (PsppSheetSelection  *selection);
 void         _pspp_sheet_view_find_node                 (PsppSheetView       *tree_view,