1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 #ifndef _GNM_COMMANDS_H_
3 #define _GNM_COMMANDS_H_
6 #include "tools/tools.h"
10 void command_undo (WorkbookControl
*wbc
);
11 void command_redo (WorkbookControl
*wbc
);
12 void command_repeat (WorkbookControl
*wbc
);
13 void command_setup_combos (WorkbookControl
*wbc
);
14 void command_list_release (GSList
*cmds
);
16 /* utility functions */
18 GString
*gnm_cmd_trunc_descriptor (GString
*src
, gboolean
*truncated
);
19 gboolean
cmd_cell_range_is_locked_effective (Sheet
*sheet
, GnmRange
*range
,
21 char const *cmd_name
);
22 gboolean
cmd_selection_is_locked_effective (Sheet
*sheet
, GSList
*selection
,
24 char const *cmd_name
);
26 /* Commands: note that any extensions should ideally use cmd_generic* */
28 gboolean
cmd_generic (WorkbookControl
*wbc
, const char *text
,
29 GOUndo
*undo
, GOUndo
*redo
);
30 gboolean
cmd_generic_with_size (WorkbookControl
*wbc
, const char *text
,
32 GOUndo
*undo
, GOUndo
*redo
);
34 gboolean
cmd_set_text (WorkbookControl
*wbc
, Sheet
*sheet
,
35 GnmCellPos
const *pos
, char const *new_text
,
36 PangoAttrList
*markup
, gboolean autocorrect
);
38 gboolean
cmd_area_set_text (WorkbookControl
*wbc
, SheetView
*sv
,
39 char const *text
, PangoAttrList
*markup
);
41 gboolean
cmd_area_set_array_expr (WorkbookControl
*wbc
, SheetView
*sv
,
42 GnmExprTop
const *new_texpr
);
44 gboolean
cmd_create_data_table (WorkbookControl
*wbc
,
45 Sheet
*sheet
, GnmRange
const *r
,
46 char const *col_input
, char const *row_input
);
48 gboolean
cmd_insert_cols (WorkbookControl
*wbc
, Sheet
*sheet
,
49 int start_col
, int count
);
50 gboolean
cmd_insert_rows (WorkbookControl
*wbc
, Sheet
*sheet
,
51 int start_row
, int count
);
52 gboolean
cmd_delete_cols (WorkbookControl
*wbc
, Sheet
*sheet
,
53 int start_col
, int count
);
54 gboolean
cmd_delete_rows (WorkbookControl
*wbc
, Sheet
*sheet
,
55 int start_row
, int count
);
57 gboolean
cmd_resize_colrow (WorkbookControl
*wbc
, Sheet
*sheet
,
58 gboolean is_col
, ColRowIndexList
*selection
,
60 gboolean
cmd_autofit_selection (WorkbookControl
*wbc
, SheetView
*sv
, Sheet
*sheet
,
62 ColRowIndexList
*selectionlist
);
64 gboolean
cmd_paste_cut (WorkbookControl
*wbc
,
65 GnmExprRelocateInfo
const *info
,
66 gboolean move_selection
,
67 char *cmd_descriptor
);
68 gboolean
cmd_paste_copy (WorkbookControl
*wbc
,
69 GnmPasteTarget
const *pt
, GnmCellRegion
*content
);
71 gboolean
cmd_sort (WorkbookControl
*wbc
, GnmSortData
*data
);
73 gboolean
cmd_autofill (WorkbookControl
*wbc
, Sheet
*sheet
,
74 gboolean default_increment
,
75 int base_col
, int base_row
,
76 int w
, int h
, int end_col
, int end_row
,
77 gboolean inverse_autofill
);
79 gboolean
cmd_copyrel (WorkbookControl
*wbc
,
83 /* currently these operate on the current sheet, and it calling control's
84 * selection. In the future we should pass in a virtualized selection.
86 gboolean
cmd_selection_format (WorkbookControl
*wbc
,
87 GnmStyle
*style
, GnmBorder
**borders
,
88 char const *opt_translated_name
);
89 gboolean
cmd_selection_format_toggle_font_style (WorkbookControl
*wbc
,
90 GnmStyle
*style
, GnmStyleElement t
);
91 gboolean
cmd_selection_clear (WorkbookControl
*wbc
, int clear_flags
);
92 gboolean
cmd_selection_colrow_hide (WorkbookControl
*wbc
,
93 gboolean is_cols
, gboolean visible
);
94 gboolean
cmd_selection_outline_change (WorkbookControl
*wbc
,
95 gboolean is_cols
, int index
, int depth
);
96 gboolean
cmd_selection_group (WorkbookControl
*wbc
,
97 gboolean is_cols
, gboolean group
);
98 gboolean
cmd_selection_autoformat (WorkbookControl
*wbc
, GnmFT
*ft
);
99 gboolean
cmd_selection_hyperlink (WorkbookControl
*wbc
,
101 char const *opt_translated_name
,
104 /******************************************************************************************/
106 gboolean
cmd_global_outline_change (WorkbookControl
*wbc
, gboolean is_cols
, int depth
);
108 gboolean
cmd_merge_cells (WorkbookControl
*wbc
, Sheet
*sheet
,
109 GSList
const *selection
, gboolean center
);
110 gboolean
cmd_unmerge_cells (WorkbookControl
*wbc
, Sheet
*sheet
,
111 GSList
const *selection
);
113 gboolean
cmd_search_replace (WorkbookControl
*wbc
, GnmSearchReplace
*sr
);
115 gboolean
cmd_colrow_std_size (WorkbookControl
*wbc
, Sheet
*sheet
,
116 gboolean is_cols
, double new_default
);
118 gboolean
cmd_zoom (WorkbookControl
*wbc
, GSList
*sheets
, double factor
);
120 gboolean
cmd_rename_sheet (WorkbookControl
*wbc
, Sheet
*sheet
,
121 char const *new_name
);
123 gboolean
cmd_set_comment (WorkbookControl
*wbc
, Sheet
*sheet
,
124 GnmCellPos
const *pos
, char const *new_text
,
125 PangoAttrList
*attr
, char const *new_author
);
127 gboolean
cmd_analysis_tool (WorkbookControl
*wbc
, Sheet
*sheet
,
128 data_analysis_output_t
*dao
, gpointer specs
,
129 analysis_tool_engine engine
,
130 gboolean always_take_ownership
);
132 gboolean
cmd_merge_data (WorkbookControl
*wbc
, Sheet
*sheet
,
133 GnmValue
*merge_zone
, GSList
*merge_fields
, GSList
*merge_data
);
135 gboolean
cmd_change_meta_data (WorkbookControl
*wbc
, GSList
*changes
, GSList
*removed
);
136 gboolean
cmd_print_setup (WorkbookControl
*wbc
, Sheet
*sheet
, GnmPrintInformation
const *pi
);
137 gboolean
cmd_define_name (WorkbookControl
*wbc
, char const *name
,
138 GnmParsePos
const *pp
,
139 GnmExprTop
const *texpr
,
140 char const *descriptor
);
141 gboolean
cmd_remove_name (WorkbookControl
*wbc
, GnmNamedExpr
*nexpr
);
142 gboolean
cmd_rescope_name (WorkbookControl
*wbc
, GnmNamedExpr
*nexpr
,
145 gboolean
cmd_scenario_add (WorkbookControl
*wbc
, GnmScenario
*s
, Sheet
*sheet
);
146 gboolean
cmd_scenario_mngr (WorkbookControl
*wbc
, GnmScenario
*sc
,
149 /* FIXME: figure out how to resolve this better. */
150 struct _data_shuffling_t
;
151 gboolean
cmd_data_shuffle (WorkbookControl
*wbc
, struct _data_shuffling_t
*sc
, Sheet
*sheet
);
154 gboolean
cmd_text_to_columns (WorkbookControl
*wbc
,
155 GnmRange
const *src
, Sheet
*src_sheet
,
156 GnmRange
const *target
, Sheet
*target_sheet
,
157 GnmCellRegion
*content
);
159 gboolean
cmd_goal_seek (WorkbookControl
*wbc
,
160 GnmCell
*cell
, GnmValue
*ov
, GnmValue
*nv
);
162 gboolean
cmd_tabulate (WorkbookControl
*wbc
, gpointer data
);
164 gboolean
cmd_toggle_rtl (WorkbookControl
*wbc
, Sheet
*sheet
);
166 gboolean
cmd_autofilter_add_remove (WorkbookControl
*wbc
);
167 gboolean
cmd_autofilter_set_condition (WorkbookControl
*wbc
,
168 GnmFilter
*filter
, unsigned i
,
169 GnmFilterCondition
*cond
);
171 /************************** Sheet Objects **************************************/
173 gboolean
cmd_objects_delete (WorkbookControl
*wbc
, GSList
*objects
,
175 gboolean
cmd_objects_move (WorkbookControl
*wbc
,
176 GSList
*objects
, GSList
*anchors
,
177 gboolean objects_created
, char const *name
);
179 gboolean
cmd_so_graph_config (WorkbookControl
*wbc
, SheetObject
*sog
,
180 GObject
*n_graph
, GObject
*o_graph
);
181 gboolean
cmd_so_component_config (WorkbookControl
*wbc
, SheetObject
*so
,
182 GObject
*n_obj
, GObject
*o_obj
);
185 cmd_object_pull_to_front
,
186 cmd_object_pull_forward
,
187 cmd_object_push_backward
,
188 cmd_object_push_to_back
189 } CmdObjectRaiseSelector
;
190 gboolean
cmd_object_raise (WorkbookControl
*wbc
, SheetObject
*so
, CmdObjectRaiseSelector dir
);
192 gboolean
cmd_so_set_value (WorkbookControl
*wbc
,
194 const GnmCellRef
*pref
,
198 gboolean
cmd_so_set_links (WorkbookControl
*wbc
, SheetObject
*so
,
199 GnmExprTop
const *output
, GnmExprTop
const *content
,
202 gboolean
cmd_so_set_frame_label (WorkbookControl
*wbc
, SheetObject
*so
,
203 char *old_label
, char *new_label
);
205 gboolean
cmd_so_set_button (WorkbookControl
*wbc
, SheetObject
*so
,
206 GnmExprTop
const *lnk
,
207 char *old_label
, char *new_label
);
209 gboolean
cmd_so_set_radio_button (WorkbookControl
*wbc
, SheetObject
*so
,
210 GnmExprTop
const *lnk
,
211 char *old_label
, char *new_label
,
212 GnmValue
*old_value
, GnmValue
*new_value
);
214 gboolean
cmd_so_set_checkbox (WorkbookControl
*wbc
, SheetObject
*so
,
215 GnmExprTop
const *lnk
,
216 char *old_label
, char *new_label
);
218 gboolean
cmd_so_set_adjustment (WorkbookControl
*wbc
, SheetObject
*so
,
219 GnmExprTop
const *lnk
,
221 int lower
, int upper
,
223 char const *undo_label
);
225 gboolean
cmd_page_breaks_clear (WorkbookControl
*wbc
, Sheet
*sheet
);
226 gboolean
cmd_page_break_toggle (WorkbookControl
*wbc
, Sheet
*sheet
, gboolean is_vert
);
228 /********************************************************************************/
230 gboolean
cmd_reorganize_sheets (WorkbookControl
*wbc
,
231 WorkbookSheetState
*old_state
,
234 gboolean
cmd_resize_sheets (WorkbookControl
*wbc
,
241 /********************************************************************************/
245 #endif /* _GNM_COMMANDS_H_ */