1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
5 #include "gnumeric-fwd.h"
6 #include <goffice/goffice.h>
10 #define GNM_PANE_TYPE (gnm_pane_get_type ())
11 #define GNM_PANE(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GNM_PANE_TYPE, GnmPane))
12 #define GNM_IS_PANE(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_PANE_TYPE))
14 GType
gnm_pane_get_type (void);
15 GnmPane
*gnm_pane_new (SheetControlGUI
*scg
,
16 gboolean col_headers
, gboolean row_headers
, int index
);
18 int gnm_pane_find_col (GnmPane
const *pane
, gint64 x
, gint64
*col_origin
);
19 int gnm_pane_find_row (GnmPane
const *pane
, gint64 y
, gint64
*row_origin
);
20 void gnm_pane_redraw_range (GnmPane
*pane
, GnmRange
const *r
);
21 void gnm_pane_compute_visible_region (GnmPane
*pane
, gboolean full_recompute
);
22 void gnm_pane_bound_set (GnmPane
*pane
,
23 int start_col
, int start_row
,
24 int end_col
, int end_row
);
28 void gnm_pane_edit_start (GnmPane
*p
);
29 void gnm_pane_edit_stop (GnmPane
*p
);
31 void gnm_pane_size_guide_start (GnmPane
*p
, gboolean vert
, int colrow
, gboolean is_colrow_resize
);
32 void gnm_pane_size_guide_motion (GnmPane
*p
, gboolean vert
, gint64 guide_pos
);
33 void gnm_pane_size_guide_stop (GnmPane
*p
);
35 void gnm_pane_reposition_cursors (GnmPane
*pane
);
36 gboolean
gnm_pane_cursor_bound_set (GnmPane
*pane
, GnmRange
const *r
);
37 gboolean
gnm_pane_rangesel_bound_set (GnmPane
*pane
, GnmRange
const *r
);
38 void gnm_pane_rangesel_start (GnmPane
*pane
, GnmRange
const *r
);
39 void gnm_pane_rangesel_stop (GnmPane
*pane
);
40 gboolean
gnm_pane_special_cursor_bound_set (GnmPane
*pane
, GnmRange
const *r
);
41 void gnm_pane_special_cursor_start (GnmPane
*pane
, int style
, int button
);
42 void gnm_pane_special_cursor_stop (GnmPane
*pane
);
43 void gnm_pane_mouse_cursor_set (GnmPane
*pane
, GdkCursor
*c
);
44 void gnm_pane_expr_cursor_bound_set (GnmPane
*pane
, GnmRange
const *r
,
46 void gnm_pane_expr_cursor_stop (GnmPane
*pane
);
48 /************************************************************************/
50 void gnm_pane_objects_drag (GnmPane
*pane
, SheetObject
*so
,
51 gdouble new_x
, gdouble new_y
,int drag_type
,
52 gboolean symmetric
,gboolean snap_to_grid
);
53 void gnm_pane_object_unselect (GnmPane
*pane
, SheetObject
*so
);
54 void gnm_pane_object_update_bbox (GnmPane
*pane
, SheetObject
*so
);
55 void gnm_pane_object_start_resize (GnmPane
*pane
, int button
,
57 SheetObject
*so
, int drag_type
,
58 gboolean is_creation
);
59 void gnm_pane_object_autoscroll (GnmPane
*pane
, GdkDragContext
*context
,
60 gint x
, gint y
, guint time
);
62 GocGroup
*gnm_pane_object_group (GnmPane
*pane
);
63 void gnm_pane_display_object_menu (GnmPane
*pane
, SheetObject
*so
,
66 /* A convenience api */
67 SheetObjectView
*gnm_pane_object_register (SheetObject
*so
, GocItem
*view
,
69 void gnm_pane_widget_register (SheetObject
*so
, GtkWidget
*w
,
72 /************************************************************************/
77 GNM_PANE_SLIDE_EXTERIOR_ONLY
= 4,
78 GNM_PANE_SLIDE_AT_COLROW_BOUND
= 8 /* not implemented */
84 typedef gboolean (*GnmPaneSlideHandler
) (GnmPane
*pane
, GnmPaneSlideInfo
const *info
);
86 void gnm_pane_slide_stop (GnmPane
*pane
);
87 void gnm_pane_slide_init (GnmPane
*pane
);
88 gboolean
gnm_pane_handle_motion (GnmPane
*pane
,
91 GnmPaneSlideFlags slide_flags
,
92 GnmPaneSlideHandler handler
,
95 /************************************************************************/
97 void gnm_pane_set_direction (GnmPane
*pane
, GocDirection direction
);
101 #endif /* _GNM_PANE_H_ */