1 #ifndef _GNM_WORKBOOK_CONTROL_H_
2 # define _GNM_WORKBOOK_CONTROL_H_
5 #include <validation.h>
6 #include <glib-object.h>
10 #define GNM_WBC_TYPE (workbook_control_get_type ())
11 #define GNM_WBC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNM_WBC_TYPE, WorkbookControl))
12 #define GNM_IS_WBC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNM_WBC_TYPE))
14 GType
workbook_control_get_type (void);
15 void wb_control_set_view (WorkbookControl
*wbc
,
16 WorkbookView
*optional_view
,
17 Workbook
*optional_wb
);
18 void wb_control_init_state (WorkbookControl
*wbc
);
20 /* Create a new control of the same form */
21 WorkbookControl
*workbook_control_new_wrapper (WorkbookControl
*wbc
,
22 WorkbookView
*wbv
, Workbook
*wb
,
25 void wb_control_style_feedback (WorkbookControl
*wbc
, GnmStyle
const *changes
);
26 void wb_control_edit_line_set (WorkbookControl
*wbc
, char const *text
);
27 void wb_control_selection_descr_set (WorkbookControl
*wbc
, char const *text
);
29 void wb_control_sheet_add (WorkbookControl
*wbc
, SheetView
*sv
);
30 void wb_control_sheet_remove (WorkbookControl
*wbc
, Sheet
*sheet
);
31 void wb_control_sheet_focus (WorkbookControl
*wbc
, Sheet
*sheet
);
32 void wb_control_sheet_remove_all (WorkbookControl
*wbc
);
34 void wb_control_undo_redo_truncate (WorkbookControl
*wbc
, int n
, gboolean is_undo
);
35 void wb_control_undo_redo_pop (WorkbookControl
*wbc
, gboolean is_undo
);
36 void wb_control_undo_redo_push (WorkbookControl
*wbc
, gboolean is_undo
,
37 char const *text
, gpointer key
);
38 void wb_control_undo_redo_labels (WorkbookControl
*wbc
,
39 char const *undo
, char const *redo
);
40 int wb_control_validation_msg (WorkbookControl
*wbc
, ValidationStyle v
,
41 char const *title
, char const *msg
);
43 /* Menu state update flags, use them to specify which menu items to update */
45 MS_INSERT_COLS
= 1 << 0,
46 MS_INSERT_ROWS
= 1 << 1,
47 MS_INSERT_CELLS
= 1 << 2,
48 MS_SHOWHIDE_DETAIL
= 1 << 3,
49 MS_PASTE_SPECIAL
= 1 << 4,
50 MS_PRINT_SETUP
= 1 << 5,
51 MS_SEARCH_REPLACE
= 1 << 6,
52 MS_DEFINE_NAME
= 1 << 7,
53 MS_CONSOLIDATE
= 1 << 8,
54 MS_FREEZE_VS_THAW
= 1 << 9,
55 MS_ADD_VS_REMOVE_FILTER
= 1 << 10,
56 MS_SHOW_PRINTAREA
= 1 << 11,
57 MS_PAGE_BREAKS
= 1 << 12,
58 MS_SELECT_OBJECT
= 1 << 13,
59 MS_FILTER_STATE_CHANGED
= 1 << 14,
60 MS_COMMENT_LINKS_RANGE
= 1 << 15,
61 MS_COMMENT_LINKS
= 1 << 16,
62 MS_FILE_EXPORT_IMPORT
= 1 << 17
66 (MS_INSERT_COLS | MS_INSERT_ROWS | MS_INSERT_CELLS | \
67 MS_SHOWHIDE_DETAIL | MS_PASTE_SPECIAL | \
68 MS_PRINT_SETUP | MS_SEARCH_REPLACE | MS_DEFINE_NAME | MS_CONSOLIDATE | \
69 MS_FREEZE_VS_THAW | MS_ADD_VS_REMOVE_FILTER | MS_SHOW_PRINTAREA | \
70 MS_PAGE_BREAKS | MS_SELECT_OBJECT | MS_FILTER_STATE_CHANGED | MS_FILE_EXPORT_IMPORT)
71 #define MS_GURU_MENU_ITEMS \
72 (MS_PRINT_SETUP | MS_SEARCH_REPLACE | MS_DEFINE_NAME | MS_CONSOLIDATE)
74 void wb_control_menu_state_update (WorkbookControl
*wbc
, int flags
);
75 void wb_control_update_action_sensitivity (WorkbookControl
*wbc
);
77 void wb_control_paste_from_selection (WorkbookControl
*wbc
,
78 GnmPasteTarget
const *pt
);
79 gboolean
wb_control_claim_selection (WorkbookControl
*wbc
);
81 WorkbookView
*wb_control_view (WorkbookControl
const *wbc
);
82 Workbook
*wb_control_get_workbook (WorkbookControl
const *wbc
);
83 GODoc
*wb_control_get_doc (WorkbookControl
const *wbc
);
84 Sheet
*wb_control_cur_sheet (WorkbookControl
const *wbc
);
85 SheetView
*wb_control_cur_sheet_view (WorkbookControl
const *wbc
);
87 gboolean
wb_control_parse_and_jump (WorkbookControl
*wbc
, char const *text
);
88 gboolean
wb_control_jump (WorkbookControl
*wbc
, Sheet
*sheet
, const GnmRangeRef
*r
);
95 } wb_control_navigator_t
;
97 void wb_control_navigate_to_cell (WorkbookControl
*wbc
, wb_control_navigator_t to
);
102 #endif /* _GNM_WORKBOOK_CONTROL_H_ */