1 #ifndef _GNM_SHEET_CONTROL_GUI_H_
2 # define _GNM_SHEET_CONTROL_GUI_H_
4 #include <gnumeric-fwd.h>
5 #include <sheet-control.h>
9 #define GNM_SCG_TYPE (sheet_control_gui_get_type ())
10 #define GNM_SCG(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNM_SCG_TYPE, SheetControlGUI))
11 #define GNM_IS_SCG(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SCG_TYPE))
13 GType
sheet_control_gui_get_type (void);
14 SheetControlGUI
*sheet_control_gui_new (SheetView
*sv
, WBCGtk
*wbcg
);
16 void scg_take_focus (SheetControlGUI
*scg
);
18 void scg_context_menu (SheetControlGUI
*scg
, GdkEvent
*event
,
19 gboolean is_col
, gboolean is_row
);
21 void scg_object_anchor_to_coords (SheetControlGUI
const *scg
,
22 SheetObjectAnchor
const *anchor
, double *coords
);
23 void scg_object_coords_to_anchor (SheetControlGUI
const *scg
,
24 double const *coords
, SheetObjectAnchor
*in_out
);
26 void scg_objects_drag (SheetControlGUI
*scg
, GnmPane
*gcanvas
,
28 gdouble
*dx
, gdouble
*dy
,
29 int drag_type
, gboolean symmetric
, gboolean snap_to_grid
,
30 gboolean is_mouse_move
);
31 void scg_objects_drag_commit (SheetControlGUI
*scg
, int drag_type
,
32 gboolean created_objects
,
33 GOUndo
**pundo
, GOUndo
**predo
,
35 void scg_objects_nudge (SheetControlGUI
*scg
, GnmPane
*gcanvas
,
36 int drag_type
, double dx
, double dy
,
38 gboolean snap_to_grid
);
40 void scg_object_select (SheetControlGUI
*scg
, SheetObject
*so
);
41 void scg_object_unselect (SheetControlGUI
*scg
, SheetObject
*so
);
42 void scg_object_select_next (SheetControlGUI
*scg
, gboolean reverse
);
44 void scg_comment_select (SheetControlGUI
*scg
, GnmComment
*cc
,
46 void scg_comment_display (SheetControlGUI
*scg
, GnmComment
*cc
,
48 void scg_comment_unselect (SheetControlGUI
*scg
, GnmComment
*cc
);
50 void scg_select_all (SheetControlGUI
*scg
);
51 gboolean
scg_colrow_select (SheetControlGUI
*scg
,
52 gboolean is_cols
, int index
, int modifiers
);
53 void scg_colrow_size_set (SheetControlGUI
*scg
,
54 gboolean is_cols
, int index
, int new_size_pixels
);
55 gint64
scg_colrow_distance_get (SheetControlGUI
const *scg
,
56 gboolean is_cols
, int from
, int to
);
58 void scg_edit_start (SheetControlGUI
*scg
);
59 void scg_edit_stop (SheetControlGUI
*scg
);
61 void scg_rangesel_start (SheetControlGUI
*scg
,
62 int base_col
, int base_row
,
63 int move_col
, int move_row
);
64 void scg_rangesel_bound (SheetControlGUI
*scg
,
65 int base_col
, int base_row
,
66 int move_col
, int move_row
);
67 void scg_rangesel_stop (SheetControlGUI
*scg
, gboolean clear_str
);
68 void scg_rangesel_extend_to (SheetControlGUI
*scg
, int col
, int row
);
69 void scg_rangesel_move (SheetControlGUI
*scg
, int dir
,
70 gboolean jump_to_bound
, gboolean horiz
);
71 void scg_rangesel_extend (SheetControlGUI
*scg
, int n
,
72 gboolean jump_to_bound
, gboolean horiz
);
73 void scg_make_cell_visible (SheetControlGUI
*scg
, int col
, int row
,
74 gboolean force_scroll
, gboolean couple_panes
);
76 void scg_set_display_cursor (SheetControlGUI
*scg
);
77 void scg_cursor_visible (SheetControlGUI
*scg
, gboolean is_visible
);
78 void scg_cursor_move (SheetControlGUI
*scg
, int dir
,
79 gboolean jump_to_bound
, gboolean horiz
);
80 void scg_cursor_extend (SheetControlGUI
*scg
, int n
,
81 gboolean jump_to_bound
, gboolean horiz
);
83 void scg_special_cursor_start (SheetControlGUI
*scg
, int style
, int button
);
84 void scg_special_cursor_stop (SheetControlGUI
*scg
);
85 gboolean
scg_special_cursor_bound_set (SheetControlGUI
*scg
, GnmRange
const *r
);
87 void scg_set_left_col (SheetControlGUI
*scg
, int new_first_col
);
88 void scg_set_top_row (SheetControlGUI
*scg
, int new_first_row
);
90 void scg_size_guide_start (SheetControlGUI
*scg
, gboolean vert
,
91 int colrow
, gboolean is_colrow_resize
);
92 void scg_size_guide_motion (SheetControlGUI
*scg
, gboolean vert
,
94 void scg_size_guide_stop (SheetControlGUI
*scg
);
96 typedef void (*SCGUIMoveFunc
) (SheetControlGUI
*scg
, int n
,
97 gboolean jump
, gboolean horiz
);
98 void scg_queue_movement (SheetControlGUI
*scg
,
99 SCGUIMoveFunc handler
,
100 int n
, gboolean jump
, gboolean horiz
);
101 void scg_paste_image (SheetControlGUI
*scg
, GnmRange
*where
,
102 guint8
const *data
, unsigned len
);
103 void scg_drag_data_received (SheetControlGUI
*scg
, GtkWidget
*source_widget
,
105 GtkSelectionData
*selection_data
);
106 void scg_drag_data_get (SheetControlGUI
*scg
,
107 GtkSelectionData
*selection_data
);
109 void scg_delete_sheet_if_possible (SheetControlGUI
*scg
);
111 void scg_reload_item_edits (SheetControlGUI
*scg
);
113 /* Convenience wrappers. */
114 SheetView
*scg_view (SheetControlGUI
const *scg
);
115 Sheet
*scg_sheet (SheetControlGUI
const *scg
);
116 WorkbookControl
*scg_wbc (SheetControlGUI
const *scg
);
118 /* DO NOT USE THIS WITHOUT ALOT OF THOUGHT */
119 GnmPane
*scg_pane (SheetControlGUI
*scg
, int pane
);
121 WBCGtk
*scg_wbcg (SheetControlGUI
const *scg
);
125 #endif /* _GNM_SHEET_CONTROL_GUI_H_ */