]> git.lyx.org Git - lyx.git/blob - src/lfuns.h
LYX_CXX_GLOBAL_CSTD is not really useful anymore
[lyx.git] / src / lfuns.h
1 // -*- C++ -*-
2 /**
3  * \file lfuns.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * Full author contact details are available in file CREDITS.
8  *
9  * To add a new function:
10  * - add a new enum constant and doc immediately before LFUN_LASTACTION
11  * - add an appropriate line in LyXAction.cpp
12  * - add a branch to a suitable ::doDispatch() method
13  * - add correct test to the corresponding ::getStatus() method
14  */
15
16 #ifndef LFUNS_H
17 #define LFUNS_H
18
19 #include "support/strfwd.h"
20
21
22 namespace lyx {
23
24 /** These are all the lyx functions, the main mechanism
25  * through which the frontends communicate with the core.
26  *
27  * They are managed in LyXAction.cpp and handled in various
28  * ::dispatch() functions, starting with LyXFunc.C:dispatch(),
29  * BufferView::dispatch(), Cursor::dispatch() and
30  * Inset*::doDispatch();
31  */
32
33 /* LFUN documentation (a start at least, Chr 2007-08-12)
34  *
35  * The documentation below is primarily notes about restrictions and
36  * oddities relating to the different LFUNs.
37  *
38  * Doxygen template below.
39  */
40
41 /**
42  * 
43  * \li Action: 
44  * \li Notion: 
45  * \li Syntax: 
46  * \li Params: 
47  * \li Origin: 
48  */
49
50 enum kb_action {
51         LFUN_UNKNOWN_ACTION = -1,
52         // 0
53         LFUN_NOACTION = 0,
54         LFUN_COMMAND_PREFIX,
55         LFUN_SCREEN_RECENTER,
56         LFUN_BUFFER_NEW,
57         LFUN_BUFFER_WRITE,
58         // 5
59 /**
60  * LFUN_BUFFER_WRITE_AS
61  * \li Action: Rename and save current buffer.
62  * \li Syntax: buffer-write-as <filename>
63  * \li Params: <filename> = New name of the buffer/file. A relative path
64  *             is with respect to the original location of the buffer/file.
65  */
66         LFUN_BUFFER_WRITE_AS,
67         LFUN_BUILD_PROGRAM,
68         LFUN_BUFFER_VIEW,
69         LFUN_BUFFER_CLOSE,
70         LFUN_LYX_QUIT,
71         // 10
72         LFUN_BUFFER_AUTO_SAVE,
73         LFUN_UNDO,
74         LFUN_REDO,
75         LFUN_PASTE,
76         LFUN_PRIMARY_SELECTION_PASTE,
77         // 15
78         LFUN_CUT,
79         LFUN_COPY,
80         LFUN_ERROR_NEXT,
81         LFUN_NOTE_NEXT,
82         LFUN_INSET_TOGGLE,
83         // 20
84         LFUN_HFILL_INSERT,
85         LFUN_FONT_FREE_APPLY,
86         LFUN_FONT_FREE_UPDATE,
87         LFUN_FONT_EMPH,
88         LFUN_FONT_BOLD,
89         // 25
90         LFUN_FONT_ROMAN,
91         LFUN_FONT_NOUN,
92         LFUN_FONT_ITAL,
93         LFUN_FONT_FRAK,
94         LFUN_CHAR_FORWARD,
95         // 30
96         LFUN_CHAR_BACKWARD,
97         LFUN_UP,
98         LFUN_DOWN,
99         LFUN_SCREEN_UP,
100         LFUN_SCREEN_DOWN,
101         // 35
102         LFUN_LINE_BEGIN,
103         LFUN_LINE_END,
104         LFUN_CELL_FORWARD,
105         LFUN_CELL_BACKWARD,
106         LFUN_WORD_FORWARD,
107         // 40
108         LFUN_WORD_BACKWARD,
109         LFUN_BUFFER_BEGIN,
110         LFUN_BUFFER_END,
111         LFUN_CHAR_FORWARD_SELECT,
112         LFUN_CHAR_BACKWARD_SELECT,
113         // 45
114         LFUN_UP_SELECT,
115         LFUN_DOWN_SELECT,
116         LFUN_SCREEN_UP_SELECT,
117         LFUN_SCREEN_DOWN_SELECT,
118         LFUN_LINE_BEGIN_SELECT,
119         // 50
120         LFUN_LINE_END_SELECT,
121         LFUN_WORD_FORWARD_SELECT,
122         LFUN_WORD_BACKWARD_SELECT,
123         LFUN_WORD_SELECT,
124         LFUN_BUFFER_BEGIN_SELECT,
125         // 55
126         LFUN_BUFFER_END_SELECT,
127         LFUN_SPACE_INSERT,              // JSpitzm 20030520
128         LFUN_SPECIALCHAR_INSERT,        // JSpitzm, 20071206
129         LFUN_MARK_TOGGLE,
130         LFUN_CHAR_DELETE_FORWARD,
131         // 60
132         LFUN_CHAR_DELETE_BACKWARD,
133         LFUN_NEW_LINE,
134         LFUN_LINE_BREAK,                // uwestoehr 20071125
135         LFUN_BREAK_PARAGRAPH,
136         LFUN_QUOTE_INSERT,
137         // 65
138         LFUN_ACCENT_CIRCUMFLEX,
139         LFUN_MATH_SUBSCRIPT,
140         LFUN_MATH_SUPERSCRIPT,
141         LFUN_ACCENT_GRAVE,
142         LFUN_ACCENT_ACUTE,
143         // 70
144         LFUN_ACCENT_TILDE,
145         LFUN_ACCENT_CEDILLA,
146         LFUN_ACCENT_MACRON,
147         LFUN_ACCENT_UNDERBAR,
148         LFUN_ACCENT_UNDERDOT,
149         // 75
150         LFUN_ACCENT_CIRCLE,
151         LFUN_ACCENT_TIE,
152         LFUN_ACCENT_BREVE,
153         LFUN_ACCENT_CARON,
154         LFUN_ACCENT_SPECIAL_CARON,
155         // 80
156         LFUN_ACCENT_HUNGARIAN_UMLAUT,
157         LFUN_ACCENT_UMLAUT,
158         LFUN_ACCENT_DOT,
159         LFUN_ACCENT_OGONEK,
160         LFUN_SELF_INSERT,
161         // 85
162         LFUN_GETBUFNAME,
163         LFUN_SERVER_GET_XY,
164         LFUN_SERVER_SET_XY,
165         LFUN_SERVER_CHAR_AFTER,
166         LFUN_LINEATCURSOR,
167         // 90
168         LFUN_SERVER_GET_LAYOUT,
169         LFUN_SERVER_GET_FONT,
170         LFUN_SERVER_GET_NAME,
171         LFUN_SERVER_NOTIFY,
172         LFUN_SERVER_GOTO_FILE_ROW,
173         // 95
174         LFUN_NOTE_INSERT,
175         LFUN_ENVIRONMENT_INSERT,        // unused as of 20060905
176         LFUN_KEYMAP_OFF,
177         LFUN_KEYMAP_PRIMARY,
178         LFUN_KEYMAP_SECONDARY,
179         // 100
180         LFUN_KEYMAP_TOGGLE,
181         LFUN_MATH_INSERT,
182         LFUN_MATH_MATRIX,
183         LFUN_MATH_LIMITS,
184         LFUN_MATH_DELIM,                // Alejandro 180696
185         // 105
186         LFUN_MATH_DISPLAY,              // Alejandro 180696
187         LFUN_MATH_MODE,                 // Alejandro 040696
188         LFUN_MATH_NUMBER,               // Alejandro 040696
189         LFUN_MATH_NONUMBER,             // Alejandro 180696
190         LFUN_MATH_SIZE,                 // Alejandro 150896
191         // 110
192         LFUN_MATH_MACRO,                // ale970510
193         LFUN_MATH_EXTERN,               // Andre' 20010424
194         LFUN_MATH_MUTATE,               // Andre' 20010523
195         LFUN_MATH_IMPORT_SELECTION,     // Andre' 20010704
196         LFUN_MATH_SPACE,                // Andre' 20010725
197         // 115
198         LFUN_WORD_DELETE_FORWARD,
199         LFUN_WORD_DELETE_BACKWARD,
200         LFUN_LINE_DELETE,
201         LFUN_MARK_OFF,
202         LFUN_MARK_ON,
203         // 120
204         LFUN_LAYOUT,
205         LFUN_LAYOUT_PARAGRAPH,
206         LFUN_DROP_LAYOUTS_CHOICE,       // used in bindings as of 20060905
207         LFUN_FONT_TYPEWRITER,           // changed from FONT_CODE 20070920
208         LFUN_FONT_SANS,
209         // 125
210         LFUN_FONT_DEFAULT,
211         LFUN_FONT_UNDERLINE,
212         LFUN_FONT_SIZE,
213         LFUN_FONT_STATE,
214         LFUN_WORD_UPCASE,
215         // 130
216         LFUN_WORD_LOWCASE,
217         LFUN_WORD_CAPITALIZE,
218         LFUN_LABEL_INSERT,
219         LFUN_DEPTH_DECREMENT,
220         LFUN_DEPTH_INCREMENT,
221         // 135
222         LFUN_MENU_OPEN,                 // used in bindings as of 20060905
223         LFUN_CANCEL,
224         LFUN_META_PREFIX,
225         LFUN_COMMAND_EXECUTE,
226         LFUN_FILE_INSERT,
227         // 140
228         LFUN_FILE_INSERT_PLAINTEXT,     // CFO-G 1997-11-19
229         LFUN_FILE_INSERT_PLAINTEXT_PARA,// Levon 2001-02-14
230         LFUN_FILE_NEW,                  // for scripting purposes
231         LFUN_FILE_OPEN,
232         LFUN_PARAGRAPH_UP,              // Asger 1996-10-01
233         // 145
234         LFUN_PARAGRAPH_UP_SELECT,       // Asger 1996-10-01
235         LFUN_PARAGRAPH_DOWN,            // Asger 1996-10-01
236         LFUN_PARAGRAPH_DOWN_SELECT,     // Asger 1996-10-01
237         LFUN_BREAK_PARAGRAPH_SKIP,
238         LFUN_DELETE_BACKWARD_SKIP,
239         // 150
240         LFUN_DELETE_FORWARD_SKIP,
241         LFUN_BUFFER_NEW_TEMPLATE,       // Asger 1997-02-02
242         LFUN_BUFFER_RELOAD,             // Asger 1997-02-02
243         LFUN_RECONFIGURE,               // Asger 1997-02-14
244         LFUN_INDEX_PRINT,               // Lgb 97-02-27
245         // 155
246         LFUN_CELL_SPLIT,
247         LFUN_BUFFER_CHILD_OPEN,         // Ale 970528
248         LFUN_TOC_INSERT,                // Lgb 97-05-27
249         LFUN_FLOAT_LIST,                // Lgb 20010503
250         LFUN_BUFFER_TOGGLE_READ_ONLY,   // Lgb 97-05-27
251         // 160
252         LFUN_VC_REGISTER,               // Lgb 97-07-01
253         LFUN_VC_CHECK_IN,               // Lgb 97-07-01
254         LFUN_VC_CHECK_OUT,              // Lgb 97-07-01
255         LFUN_VC_REVERT,                 // Lgb 97-07-01
256         LFUN_VC_UNDO_LAST,              // Lgb 97-07-01
257         // 165
258         LFUN_BUFFER_EXPORT,             // Lgb 97-07-29
259         LFUN_LABEL_GOTO,                // Ale 970806
260         LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
261         LFUN_BUFFER_CHKTEX,             // Asger 971030
262         LFUN_HYPERLINK_INSERT,          // CFO-G 971121
263         // 170
264         LFUN_WORD_FIND_FORWARD,         // Etienne 980216
265         LFUN_WORD_FIND_BACKWARD,        // Etienne 980220
266         LFUN_APPENDIX,                  // ettrich 980505
267         LFUN_BUFFER_IMPORT,             // Asger 980724
268         LFUN_COMMAND_SEQUENCE,          // Andre' 991111
269         // 175
270         LFUN_PREFERENCES_SAVE,          // Lgb 991127
271         LFUN_HELP_OPEN,                 // Jug 990627
272         LFUN_DATE_INSERT,               // jdblair 20000131
273         LFUN_LANGUAGE,                  // Dekel 20000203
274         LFUN_ERT_INSERT,                // Jug 20000218
275         // 180
276         LFUN_FOOTNOTE_INSERT,           // Jug 20000307
277         LFUN_PARAGRAPH_SPACING,         // Lgb 20000411
278         LFUN_TABULAR_INSERT,            // Jug 20000412
279         LFUN_LOFVIEW,                   // Dekel 20000519
280         LFUN_LOTVIEW,                   // Dekel 20000519
281         // 185
282         LFUN_LOAVIEW,                   // Dekel 20000519
283         LFUN_SET_COLOR,                 // SLior 20000611
284         LFUN_MARGINALNOTE_INSERT,       // Lgb 20000626
285         LFUN_FLOAT_INSERT,              // Lgb 20000627
286         LFUN_FLOAT_WIDE_INSERT,         // Lgb 20010531
287         // 190
288         LFUN_CAPTION_INSERT,            // Lgb 20000718; inactive as of 20060905
289         LFUN_BUFFER_SWITCH,
290         LFUN_TABULAR_FEATURE,           // Jug 20000728
291         LFUN_LAYOUT_TABULAR,            // Jug 20000731
292         LFUN_BUFFER_UPDATE,             // Dekel 20000805
293         // 195
294         LFUN_INDEX_INSERT,              // Angus 20000803
295         LFUN_SCREEN_FONT_UPDATE,        // ARRae 20000813
296         LFUN_PARAGRAPH_GOTO,            // Dekel 20000826
297         LFUN_REFERENCE_NEXT,            // Dekel 20010114
298         LFUN_BOOKMARK_SAVE,             // Dekel 20010127
299         // 200
300         LFUN_BOOKMARK_GOTO,             // Dekel 20010127
301         LFUN_SELECT_FILE_SYNC,          // Levon 20010214
302         LFUN_MESSAGE,                   // Lgb 20010408; for scripting purposes, output in minibuffer
303         LFUN_CHARS_TRANSPOSE,           // Lgb 20010425
304         LFUN_ESCAPE,                    // Lgb 20010517
305         // 205
306         LFUN_THESAURUS_ENTRY,           // Levon 20010720
307         LFUN_OPTIONAL_INSERT,           // Martin 12 Aug 2002
308         LFUN_MOUSE_PRESS,               // André 9 Aug 2002
309         LFUN_MOUSE_MOTION,              // André 9 Aug 2002
310         LFUN_MOUSE_RELEASE,             // André 9 Aug 2002
311         // 210
312         LFUN_MOUSE_DOUBLE,              // André 9 Aug 2002
313         LFUN_MOUSE_TRIPLE,              // André 9 Aug 2002
314         LFUN_WRAP_INSERT,               // Dekel 7 Apr 2002
315         LFUN_CHANGES_TRACK,             // Levon 20021001 (cool date !)
316         LFUN_CHANGES_MERGE,             // Levon 20021016
317         // 215
318         LFUN_CHANGE_ACCEPT,             // Levon 20021016
319         LFUN_CHANGE_REJECT,             // Levon 20021016
320         LFUN_ALL_CHANGES_ACCEPT,        // Levon 20021016
321         LFUN_ALL_CHANGES_REJECT,        // Levon 20021016
322         LFUN_BIBITEM_INSERT,            // André 14 Feb 2003
323         // 220
324         LFUN_DIALOG_SHOW,
325         LFUN_DIALOG_SHOW_NEW_INSET,
326         LFUN_DIALOG_UPDATE,
327         LFUN_DIALOG_HIDE,
328         LFUN_DIALOG_TOGGLE,             // JSpitzm 20070430
329         // 225
330         LFUN_DIALOG_DISCONNECT_INSET,
331         LFUN_INSET_APPLY,
332         LFUN_INSET_INSERT,
333         LFUN_INSET_MODIFY,
334         LFUN_INSET_DIALOG_UPDATE,
335         // 230
336         LFUN_INSET_SETTINGS,
337         LFUN_PARAGRAPH_PARAMS_APPLY,
338 /**
339  * LFUN_PARAGRAPH_PARAMS_APPLY
340  * \li Action: Change paragraph settings.
341  * \li Notion: Overwrite all nonspecified settings to the default ones. 
342                Use paragraph-params lfun if you don't want to overwrite others settings.
343  * \li Syntax: lfun-paragraph-params-apply [INDENT] [SPACING] [ALIGN] [OTHERS]
344  * \li Params: For parameters see lfun-paragraph-params lfun.
345  * \li Origin: leeming, 30 Mar 2004
346  */
347         LFUN_PARAGRAPH_UPDATE,
348         LFUN_EXTERNAL_EDIT,
349         LFUN_BRANCH_INSERT,
350         // 235
351         LFUN_BOX_INSERT,
352         LFUN_LINE_INSERT,
353         LFUN_NEWPAGE_INSERT,            // uwestoehr 20071124
354         LFUN_PAGEBREAK_INSERT,
355         LFUN_REPEAT,
356         // 240
357         LFUN_FINISHED_LEFT,
358         LFUN_FINISHED_RIGHT,
359         LFUN_FLEX_INSERT,
360         LFUN_WORD_FIND,
361         LFUN_WORD_REPLACE,
362         // 245
363         LFUN_BUFFER_EXPORT_CUSTOM,
364         LFUN_BUFFER_PRINT,
365         LFUN_NEXT_INSET_TOGGLE,
366         LFUN_ALL_INSETS_TOGGLE,
367         LFUN_BUFFER_LANGUAGE,
368         // 250
369         LFUN_TEXTCLASS_APPLY,
370         LFUN_TEXTCLASS_LOAD,
371         LFUN_BUFFER_SAVE_AS_DEFAULT,
372         LFUN_BUFFER_PARAMS_APPLY,
373         LFUN_LYXRC_APPLY,
374         // 255
375         LFUN_GRAPHICS_EDIT,
376         LFUN_INSET_REFRESH,
377         LFUN_BUFFER_NEXT,
378         LFUN_BUFFER_PREVIOUS,
379         LFUN_WORDS_COUNT,
380         // 260
381         LFUN_CHANGES_OUTPUT,             // jspitzm 20050121
382         LFUN_BIBTEX_DATABASE_ADD,
383         LFUN_BIBTEX_DATABASE_DEL,
384         LFUN_CITATION_INSERT,
385         LFUN_OUTLINE_UP,                 // Vermeer 20060323
386         // 265
387         LFUN_OUTLINE_DOWN,
388         LFUN_OUTLINE_IN,
389         LFUN_OUTLINE_OUT,
390         LFUN_PARAGRAPH_MOVE_DOWN,        // Edwin 20060408
391         LFUN_PARAGRAPH_MOVE_UP,          // Edwin 20060408
392         // 270
393         LFUN_BUFFER_TOGGLE_COMPRESSION,  // bpeng 20060427
394         LFUN_MATH_BIGDELIM,
395         LFUN_CLIPBOARD_PASTE,
396         LFUN_INSET_DISSOLVE,             // jspitzm 20060807
397         LFUN_CHANGE_NEXT,
398         // 275
399         LFUN_WINDOW_NEW,                 // Abdel 20061021
400         LFUN_WINDOW_CLOSE,               // Abdel 20061023
401         LFUN_UNICODE_INSERT,             // Lgb 20061022
402         LFUN_BOOKMARK_CLEAR,             // bpeng 20061031
403         LFUN_NOMENCL_INSERT,             // Ugras
404         // 280
405         LFUN_NOMENCL_PRINT,              // Ugras
406         LFUN_CLEARPAGE_INSERT,           // Ugras 20061125
407         LFUN_CLEARDOUBLEPAGE_INSERT,     // Ugras 20061125
408         LFUN_LISTING_INSERT,             // Herbert 20011110, bpeng 20070502
409         LFUN_TOOLBAR_TOGGLE,             // Edwin 20070521
410         // 285
411         LFUN_BUFFER_WRITE_ALL,           // rgh, gpothier 200707XX
412         LFUN_PARAGRAPH_PARAMS,
413 /**
414  * LFUN_PARAGRAPH_PARAMS
415  * \li Action: Change paragraph settings
416  * \li Notion: Modifies the current paragraph, or currently selected paragraphs. 
417                This function only modifies, and does not override, existing settings.
418  * \li Syntax: lfun_paragraph-params [INDENT] [SPACING] [ALIGN] [OTHERS]
419  * \li Params: INDENT:  \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
420                SPACING: \\paragraph_spacing default|single|onehalf|double|other\n
421                ALIGN:   \\align block|left|right|center|default\n
422                OTHERS:  \\labelwidthstring WIDTH|\\start_of_appendix\n
423  * \li Origin: rgh, Aug 15 2007
424  */
425         LFUN_LAYOUT_MODULES_CLEAR,       // rgh, 20070825
426         LFUN_LAYOUT_MODULE_ADD,          // rgh, 20070825
427         LFUN_LAYOUT_RELOAD,              // rgh, 20070903
428         // 290
429         LFUN_MASTER_BUFFER_VIEW,         // Tommaso, 20070920
430         LFUN_MASTER_BUFFER_UPDATE,       // Tommaso, 20070920
431         LFUN_INFO_INSERT,                // bpeng, 20071007
432         LFUN_CALL,                       // broider, 20071002
433         LFUN_BUFFER_TOGGLE_EMBEDDING,    // bpeng, 20071021
434         // 295
435         LFUN_CHAR_LEFT,                  // dov, 20071022
436         LFUN_CHAR_LEFT_SELECT,           // dov, 20071022
437         LFUN_CHAR_RIGHT,                 // dov, 20071022
438         LFUN_CHAR_RIGHT_SELECT,          // dov, 20071022
439         LFUN_FINISHED_BACKWARD,          // dov, 20071022
440         // 300
441         LFUN_FINISHED_FORWARD,           // dov, 20071022
442         LFUN_WORD_LEFT,                  // dov, 20071028
443         LFUN_WORD_LEFT_SELECT,           // dov, 20071028
444         LFUN_WORD_RIGHT,                 // dov, 20071028
445         LFUN_WORD_RIGHT_SELECT,          // dov, 20071028
446         // 305
447         LFUN_MATH_MACRO_FOLD,
448         LFUN_MATH_MACRO_UNFOLD,
449         LFUN_MATH_MACRO_ADD_PARAM,
450         LFUN_MATH_MACRO_REMOVE_PARAM,
451         LFUN_MATH_MACRO_APPEND_GREEDY_PARAM,
452         // 310
453         LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM,
454         LFUN_MATH_MACRO_MAKE_OPTIONAL,
455         LFUN_MATH_MACRO_MAKE_NONOPTIONAL,
456         LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM,
457         LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM,
458
459         // 315
460         LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM,
461         LFUN_LASTACTION                  // end of the table
462 };
463
464
465 } // namespace lyx
466
467 #endif // LFUNS_H