1 #ifndef _GNM_COMMANDS_H_
2 #define _GNM_COMMANDS_H_
5 #include <tools/tools.h>
9 void command_undo (WorkbookControl
*wbc
);
10 void command_redo (WorkbookControl
*wbc
);
11 void command_repeat (WorkbookControl
*wbc
);
12 void command_setup_combos (WorkbookControl
*wbc
);
13 void command_list_release (GSList
*cmds
);
15 /* utility functions */
17 GString
*gnm_cmd_trunc_descriptor (GString
*src
, gboolean
*truncated
);
18 gboolean
cmd_cell_range_is_locked_effective (Sheet
*sheet
, GnmRange
*range
,
20 char const *cmd_name
);
21 gboolean
cmd_selection_is_locked_effective (Sheet
*sheet
, GSList
*selection
,
23 char const *cmd_name
);
25 /* Commands: note that any extensions should ideally use cmd_generic* */
27 gboolean
cmd_generic (WorkbookControl
*wbc
, const char *text
,
28 GOUndo
*undo
, GOUndo
*redo
);
29 gboolean
cmd_generic_with_size (WorkbookControl
*wbc
, const char *text
,
31 GOUndo
*undo
, GOUndo
*redo
);
33 gboolean
cmd_set_text (WorkbookControl
*wbc
, Sheet
*sheet
,
34 GnmCellPos
const *pos
, char const *new_text
,
35 PangoAttrList
*markup
, gboolean autocorrect
);
37 gboolean
cmd_area_set_text (WorkbookControl
*wbc
, SheetView
*sv
,
38 char const *text
, PangoAttrList
*markup
);
40 gboolean
cmd_area_set_array_expr (WorkbookControl
*wbc
, SheetView
*sv
,
41 GnmExprTop
const *new_texpr
);
43 gboolean
cmd_create_data_table (WorkbookControl
*wbc
,
44 Sheet
*sheet
, GnmRange
const *r
,
45 char const *col_input
, char const *row_input
);
47 gboolean
cmd_insert_cols (WorkbookControl
*wbc
, Sheet
*sheet
,
48 int start_col
, int count
);
49 gboolean
cmd_insert_rows (WorkbookControl
*wbc
, Sheet
*sheet
,
50 int start_row
, int count
);
51 gboolean
cmd_delete_cols (WorkbookControl
*wbc
, Sheet
*sheet
,
52 int start_col
, int count
);
53 gboolean
cmd_delete_rows (WorkbookControl
*wbc
, Sheet
*sheet
,
54 int start_row
, int count
);
56 gboolean
cmd_resize_colrow (WorkbookControl
*wbc
, Sheet
*sheet
,
57 gboolean is_col
, ColRowIndexList
*selection
,
59 gboolean
cmd_autofit_selection (WorkbookControl
*wbc
, SheetView
*sv
, Sheet
*sheet
,
61 ColRowIndexList
*selectionlist
);
63 gboolean
cmd_paste_cut (WorkbookControl
*wbc
,
64 GnmExprRelocateInfo
const *info
,
65 gboolean move_selection
,
66 char *cmd_descriptor
);
67 gboolean
cmd_paste_copy (WorkbookControl
*wbc
,
68 GnmPasteTarget
const *pt
, GnmCellRegion
*content
);
70 gboolean
cmd_sort (WorkbookControl
*wbc
, GnmSortData
*data
);
72 gboolean
cmd_autofill (WorkbookControl
*wbc
, Sheet
*sheet
,
73 gboolean default_increment
,
74 int base_col
, int base_row
,
75 int w
, int h
, int end_col
, int end_row
,
76 gboolean inverse_autofill
);
78 gboolean
cmd_copyrel (WorkbookControl
*wbc
,
82 /* currently these operate on the current sheet, and it calling control's
83 * selection. In the future we should pass in a virtualized selection.
85 gboolean
cmd_selection_format (WorkbookControl
*wbc
,
86 GnmStyle
*style
, GnmBorder
**borders
,
87 char const *opt_translated_name
);
88 gboolean
cmd_selection_format_toggle_font_style (WorkbookControl
*wbc
,
89 GnmStyle
*style
, GnmStyleElement t
);
90 gboolean
cmd_selection_clear (WorkbookControl
*wbc
, int clear_flags
);
91 gboolean
cmd_selection_colrow_hide (WorkbookControl
*wbc
,
92 gboolean is_cols
, gboolean visible
);
93 gboolean
cmd_selection_outline_change (WorkbookControl
*wbc
,
94 gboolean is_cols
, int index
, int depth
);
95 gboolean
cmd_selection_group (WorkbookControl
*wbc
,
96 gboolean is_cols
, gboolean group
);
97 gboolean
cmd_selection_autoformat (WorkbookControl
*wbc
, GnmFT
*ft
);
98 gboolean
cmd_selection_hyperlink (WorkbookControl
*wbc
,
100 char const *opt_translated_name
,
103 /******************************************************************************************/
105 gboolean
cmd_global_outline_change (WorkbookControl
*wbc
, gboolean is_cols
, int depth
);
107 gboolean
cmd_merge_cells (WorkbookControl
*wbc
, Sheet
*sheet
,
108 GSList
const *selection
, gboolean center
);
109 gboolean
cmd_unmerge_cells (WorkbookControl
*wbc
, Sheet
*sheet
,
110 GSList
const *selection
);
112 gboolean
cmd_search_replace (WorkbookControl
*wbc
, GnmSearchReplace
*sr
);
114 gboolean
cmd_colrow_std_size (WorkbookControl
*wbc
, Sheet
*sheet
,
115 gboolean is_cols
, double new_default
);
117 gboolean
cmd_zoom (WorkbookControl
*wbc
, GSList
*sheets
, double factor
);
119 gboolean
cmd_rename_sheet (WorkbookControl
*wbc
, Sheet
*sheet
,
120 char const *new_name
);
122 gboolean
cmd_set_comment (WorkbookControl
*wbc
, Sheet
*sheet
,
123 GnmCellPos
const *pos
, char const *new_text
,
124 PangoAttrList
*attr
, char const *new_author
);
126 gboolean
cmd_analysis_tool (WorkbookControl
*wbc
, Sheet
*sheet
,
127 data_analysis_output_t
*dao
, gpointer specs
,
128 analysis_tool_engine engine
,
129 gboolean always_take_ownership
);
131 gboolean
cmd_merge_data (WorkbookControl
*wbc
, Sheet
*sheet
,
132 GnmValue
*merge_zone
, GSList
*merge_fields
, GSList
*merge_data
);
134 gboolean
cmd_change_meta_data (WorkbookControl
*wbc
, GSList
*changes
, GSList
*removed
);
135 gboolean
cmd_print_setup (WorkbookControl
*wbc
, Sheet
*sheet
, GnmPrintInformation
const *pi
);
136 gboolean
cmd_define_name (WorkbookControl
*wbc
, char const *name
,
137 GnmParsePos
const *pp
,
138 GnmExprTop
const *texpr
,
139 char const *descriptor
);
140 gboolean
cmd_remove_name (WorkbookControl
*wbc
, GnmNamedExpr
*nexpr
);
141 gboolean
cmd_rescope_name (WorkbookControl
*wbc
, GnmNamedExpr
*nexpr
,
144 gboolean
cmd_scenario_add (WorkbookControl
*wbc
, GnmScenario
*s
, Sheet
*sheet
);
145 gboolean
cmd_scenario_mngr (WorkbookControl
*wbc
, GnmScenario
*sc
,
148 /* FIXME: figure out how to resolve this better. */
149 struct _data_shuffling_t
;
150 gboolean
cmd_data_shuffle (WorkbookControl
*wbc
, struct _data_shuffling_t
*sc
, Sheet
*sheet
);
153 gboolean
cmd_text_to_columns (WorkbookControl
*wbc
,
154 GnmRange
const *src
, Sheet
*src_sheet
,
155 GnmRange
const *target
, Sheet
*target_sheet
,
156 GnmCellRegion
*content
);
158 gboolean
cmd_goal_seek (WorkbookControl
*wbc
,
159 GnmCell
*cell
, GnmValue
*ov
, GnmValue
*nv
);
161 gboolean
cmd_tabulate (WorkbookControl
*wbc
, gpointer data
);
163 gboolean
cmd_toggle_rtl (WorkbookControl
*wbc
, Sheet
*sheet
);
165 gboolean
cmd_autofilter_add_remove (WorkbookControl
*wbc
);
166 gboolean
cmd_autofilter_set_condition (WorkbookControl
*wbc
,
167 GnmFilter
*filter
, unsigned i
,
168 GnmFilterCondition
*cond
);
170 /************************** Sheet Objects **************************************/
172 gboolean
cmd_objects_delete (WorkbookControl
*wbc
, GSList
*objects
,
174 gboolean
cmd_objects_move (WorkbookControl
*wbc
,
175 GSList
*objects
, GSList
*anchors
,
176 gboolean objects_created
, char const *name
);
178 gboolean
cmd_so_graph_config (WorkbookControl
*wbc
, SheetObject
*sog
,
179 GObject
*n_graph
, GObject
*o_graph
);
180 gboolean
cmd_so_component_config (WorkbookControl
*wbc
, SheetObject
*so
,
181 GObject
*n_obj
, GObject
*o_obj
);
184 cmd_object_pull_to_front
,
185 cmd_object_pull_forward
,
186 cmd_object_push_backward
,
187 cmd_object_push_to_back
188 } CmdObjectRaiseSelector
;
189 gboolean
cmd_object_raise (WorkbookControl
*wbc
, SheetObject
*so
, CmdObjectRaiseSelector dir
);
191 gboolean
cmd_so_set_value (WorkbookControl
*wbc
,
193 const GnmCellRef
*pref
,
197 gboolean
cmd_so_set_links (WorkbookControl
*wbc
, SheetObject
*so
,
198 GnmExprTop
const *output
, GnmExprTop
const *content
,
201 gboolean
cmd_so_set_frame_label (WorkbookControl
*wbc
, SheetObject
*so
,
202 char *old_label
, char *new_label
);
204 gboolean
cmd_so_set_button (WorkbookControl
*wbc
, SheetObject
*so
,
205 GnmExprTop
const *lnk
,
206 char *old_label
, char *new_label
);
208 gboolean
cmd_so_set_radio_button (WorkbookControl
*wbc
, SheetObject
*so
,
209 GnmExprTop
const *lnk
,
210 char *old_label
, char *new_label
,
211 GnmValue
*old_value
, GnmValue
*new_value
);
213 gboolean
cmd_so_set_checkbox (WorkbookControl
*wbc
, SheetObject
*so
,
214 GnmExprTop
const *lnk
,
215 char *old_label
, char *new_label
);
217 gboolean
cmd_so_set_adjustment (WorkbookControl
*wbc
, SheetObject
*so
,
218 GnmExprTop
const *lnk
,
220 int lower
, int upper
,
222 char const *undo_label
);
224 gboolean
cmd_page_breaks_clear (WorkbookControl
*wbc
, Sheet
*sheet
);
225 gboolean
cmd_page_break_toggle (WorkbookControl
*wbc
, Sheet
*sheet
, gboolean is_vert
);
227 /********************************************************************************/
229 gboolean
cmd_reorganize_sheets (WorkbookControl
*wbc
,
230 WorkbookSheetState
*old_state
,
233 gboolean
cmd_resize_sheets (WorkbookControl
*wbc
,
240 /********************************************************************************/
244 #endif /* _GNM_COMMANDS_H_ */