1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 #ifndef _GNM_PANE_IMPL_H_
3 # define _GNM_PANE_IMPL_H_
5 #include <src/gnm-pane.h>
6 #include <src/gnumeric-simple-canvas.h>
7 #include <goffice/canvas/goc-structs.h>
12 #define GNM_PANE_MAX_X 1600000
13 #define GNM_PANE_MAX_Y 1536000000
16 GnmSimpleCanvas simple
;
18 GnmCellPos first
, last_full
, last_visible
;
23 /* In stacking order from lowest to highest */
24 GocGroup
*grid_items
; /* grid & cursors */
25 GocGroup
*object_views
; /* object views */
26 GocGroup
*action_items
; /* drag cursors, and object ctrl pts */
29 GnmPaneSlideHandler slide_handler
;
31 guint sliding_timer
; /* a gtk_timeout tag, 0 means not set */
32 int sliding_x
, sliding_y
;
33 int sliding_dx
, sliding_dy
;
34 gboolean sliding_adjacent_h
, sliding_adjacent_v
;
37 guint im_preedit_started
:1;
39 GtkIMContext
*im_context
;
40 PangoAttrList
*preedit_attrs
;
42 gboolean insert_decimal
;
50 /* Lines across the grid. Used for col/row resize and the creation of
53 GocItem
*guide
, *start
;
61 GnmItemCursor
*std
, *rangesel
, *special
;
64 GSList
*expr_range
; /* highlight refs while editing */
68 int button
; /* the button that intiated the object drag */
69 gboolean created_objects
;
70 gboolean had_motion
; /* while dragging did we actually move */
71 GHashTable
*ctrl_pts
; /* arrays of GocItems hashed by sheet object */
72 double last_x
, last_y
, origin_x
, origin_y
;
75 GdkCursor
*mouse_cursor
;
77 SheetObject
*cur_object
;
82 #endif /* _GNM_PANE_IMPL_H_ */