GUI: Dead kittens.
[gnumeric.git] / src / gnm-pane-impl.h
blobc3046815c6dba7c0a60334990f240248f99d2e93
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>
8 #include <gtk/gtk.h>
10 G_BEGIN_DECLS
12 #define GNM_PANE_MAX_X 1600000
13 #define GNM_PANE_MAX_Y 1536000000
15 struct _GnmPane {
16 GnmSimpleCanvas simple;
18 GnmCellPos first, last_full, last_visible;
19 struct {
20 gint64 x, y;
21 } first_offset;
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 */
28 /* Sliding scroll */
29 GnmPaneSlideHandler slide_handler;
30 gpointer slide_data;
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;
36 /* IM */
37 guint im_preedit_started :1;
38 guint preedit_length;
39 GtkIMContext *im_context;
40 PangoAttrList *preedit_attrs;
42 gboolean insert_decimal;
44 int index;
45 struct {
46 GocCanvas *canvas;
47 GnmItemBar *item;
48 } col, row;
50 /* Lines across the grid. Used for col/row resize and the creation of
51 * frozen panes */
52 struct {
53 GocItem *guide, *start;
54 GocPoint *points;
55 } size_guide;
57 GnmItemGrid *grid;
58 GnmItemEdit *editor;
60 struct {
61 GnmItemCursor *std, *rangesel, *special;
62 GSList *animated;
64 GSList *expr_range; /* highlight refs while editing */
65 } cursor;
67 struct {
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;
73 } drag;
75 GdkCursor *mouse_cursor;
76 GtkWidget *size_tip;
77 SheetObject *cur_object;
80 G_END_DECLS
82 #endif /* _GNM_PANE_IMPL_H_ */