Clipboard: check mime type before pasting image.
[gnumeric.git] / src / gnm-pane.h
blob42e3ab2ee9bda8b2637eb89aaac4603950f504c6
1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 #ifndef _GNM_PANE_H_
3 # define _GNM_PANE_H_
5 #include "gnumeric-fwd.h"
6 #include <goffice/goffice.h>
8 G_BEGIN_DECLS
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,
45 GOColor color);
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,
56 guint64 x, gint64 y,
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,
64 GdkEvent *event);
66 /* A convenience api */
67 SheetObjectView *gnm_pane_object_register (SheetObject *so, GocItem *view,
68 gboolean selectable);
69 void gnm_pane_widget_register (SheetObject *so, GtkWidget *w,
70 GocItem *view);
72 /************************************************************************/
74 typedef enum {
75 GNM_PANE_SLIDE_X = 1,
76 GNM_PANE_SLIDE_Y = 2,
77 GNM_PANE_SLIDE_EXTERIOR_ONLY = 4,
78 GNM_PANE_SLIDE_AT_COLROW_BOUND = 8 /* not implemented */
79 } GnmPaneSlideFlags;
80 typedef struct {
81 int col, row;
82 gpointer user_data;
83 } GnmPaneSlideInfo;
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,
89 GocCanvas *canvas,
90 gint64 x, gint64 y,
91 GnmPaneSlideFlags slide_flags,
92 GnmPaneSlideHandler handler,
93 gpointer user_data);
95 /************************************************************************/
97 void gnm_pane_set_direction (GnmPane *pane, GocDirection direction);
99 G_END_DECLS
101 #endif /* _GNM_PANE_H_ */