1 #ifndef _GNM_SHEET_CONTROL_GUI_PRIV_H_
2 # define _GNM_SHEET_CONTROL_GUI_PRIV_H_
4 #include <sheet-control-gui.h>
5 #include <sheet-control-priv.h>
6 #include <sheet-object.h>
10 #define SCG_NUM_PANES 4
11 struct _SheetControlGUI
{
12 SheetControl sheet_control
;
14 /* Cached SheetControl attribute to reduce casting. */
18 GtkWidget
*select_all_btn
;
22 GtkWidget
*button_box
;
23 } col_group
, row_group
;
25 GnmPane
*pane
[SCG_NUM_PANES
];
28 int grab_stack
; /* utility to keep track of grabs in the various canvases */
30 /* Scrolling information */
31 GtkPaned
*vpane
, *hpane
; /* drag panes for freezing */
32 GtkWidget
*vs
, *hs
; /* Scrollbars */
33 GtkAdjustment
*va
, *ha
; /* Adjustments */
34 int vpos
, hpos
; /* Handle positions */
35 guint pane_drag_handler
;
36 int screen_width
, screen_height
;
37 guint scroll_bar_timer
;
39 /* SheetObject support */
40 GHashTable
*selected_objects
;
42 /* Keep track of a rangeselector state */
45 GnmCellPos base_corner
; /* Corner remains static when rubber banding */
46 GnmCellPos move_corner
; /* Corner to move when extending */
47 GnmRange displayed
; /* The range to display */
53 GtkWidget
*item
; /* TODO : make this a canvas item with an arrow */
65 int timer
, counter
, n
;
67 SCGUIMoveFunc handler
;
72 SheetControlClass parent_class
;
73 } SheetControlGUIClass
;
75 /* SCG virtual methods called directly from the GUI layer*/
76 void scg_adjust_preferences (SheetControlGUI
*scg
);
77 void scg_mode_edit (SheetControlGUI
*scg
);
79 #define SCG_FOREACH_PANE(scg, pane, code) \
82 for (i = scg->active_panes; i-- > 0 ; ) { \
83 GnmPane *pane = scg->pane[i]; \
92 #endif /* _GNM_SHEET_CONTROL_GUI_PRIV_H_ */