1 #ifndef _GNM_SHEET_CONTROL_H_
2 # define _GNM_SHEET_CONTROL_H_
3 
4 #include <gnumeric.h>
5 #include <glib-object.h>
6 
7 G_BEGIN_DECLS
8 
9 #define GNM_SHEET_CONTROL_TYPE	(sheet_control_get_type ())
10 #define GNM_SHEET_CONTROL(obj)	(G_TYPE_CHECK_INSTANCE_CAST ((obj), GNM_SHEET_CONTROL_TYPE, SheetControl))
11 #define GNM_IS_SHEET_CONTROL(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GNM_SHEET_CONTROL_TYPE))
12 
13 /* Lifecycle */
14 GType sheet_control_get_type	(void);
15 SheetView	*sc_view	(SheetControl const *sc);
16 Sheet		*sc_sheet	(SheetControl const *sc);
17 WorkbookControl *sc_wbc		(SheetControl const *sc);
18 
19 /**
20  * NOTE:
21  * The GUI layer accesses the SheetControlGUI methods directly without
22  * calling the virtual. Change this if the base class becomes something
23  * more than a passthrough.
24  */
25 void sc_resize			(SheetControl *sc, gboolean force_scroll);
26 void sc_redraw_all		(SheetControl *sc, gboolean headers);
27 void sc_redraw_range		(SheetControl *sc, GnmRange const *r);
28 void sc_redraw_headers		(SheetControl *sc,
29 				 gboolean const col, gboolean const row,
30 				 GnmRange const * r /* optional == NULL */);
31 void sc_ant			(SheetControl *sc);
32 void sc_unant			(SheetControl *sc);
33 
34 void sc_scrollbar_config	(SheetControl *sc);
35 
36 void sc_mode_edit		(SheetControl *sc);
37 
38 void sc_set_top_left		(SheetControl *sc, int col, int row);
39 void sc_recompute_visible_region(SheetControl *sc, gboolean full_recompute);
40 void sc_make_cell_visible	(SheetControl *sc, int col, int row,
41 				 gboolean couple_panes);
42 
43 void sc_cursor_bound		(SheetControl *sc, GnmRange const *r);
44 void sc_set_panes		(SheetControl *sc);
45 void sc_object_create_view	(SheetControl *sc, SheetObject *so);
46 void sc_scale_changed		(SheetControl *sc);
47 
48 void sc_show_im_tooltip         (SheetControl *sc,
49 				 GnmInputMsg *im, GnmCellPos *pos);
50 
51 void sc_freeze_object_view      (SheetControl *sc, gboolean freeze);
52 
53 G_END_DECLS
54 
55 #endif /* _GNM_SHEET_CONTROL_H_ */
56