]> git.lyx.org Git - lyx.git/blob - src/lfuns.h
22aa481774b4ba013a13281434f84c20fba20d2a
[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 immediately before LFUN_LASTACTION
11  * - add an appropriate line and documentation 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 enum kb_action {
33         LFUN_UNKNOWN_ACTION = -1,
34         // 0
35         LFUN_NOACTION = 0,
36         LFUN_COMMAND_PREFIX,
37         LFUN_SCREEN_RECENTER,
38         LFUN_BUFFER_NEW,
39         LFUN_BUFFER_WRITE,
40         // 5
41         LFUN_BUFFER_WRITE_AS,
42         LFUN_BUILD_PROGRAM,
43         LFUN_BUFFER_VIEW,
44         LFUN_BUFFER_CLOSE,
45         LFUN_LYX_QUIT,
46         // 10
47         LFUN_BUFFER_AUTO_SAVE,
48         LFUN_UNDO,
49         LFUN_REDO,
50         LFUN_PASTE,
51         LFUN_PRIMARY_SELECTION_PASTE,
52         // 15
53         LFUN_CUT,
54         LFUN_COPY,
55         LFUN_ERROR_NEXT,
56         LFUN_NOTE_NEXT,
57         LFUN_INSET_TOGGLE,
58         // 20
59         LFUN_HFILL_INSERT,
60         LFUN_FONT_FREE_APPLY,
61         LFUN_FONT_FREE_UPDATE,
62         LFUN_FONT_EMPH,
63         LFUN_FONT_BOLD,
64         // 25
65         LFUN_FONT_ROMAN,
66         LFUN_FONT_NOUN,
67         LFUN_FONT_ITAL,
68         LFUN_FONT_FRAK,
69         LFUN_CHAR_FORWARD,
70         // 30
71         LFUN_CHAR_BACKWARD,
72         LFUN_UP,
73         LFUN_DOWN,
74         LFUN_SCREEN_UP,
75         LFUN_SCREEN_DOWN,
76         // 35
77         LFUN_LINE_BEGIN,
78         LFUN_LINE_END,
79         LFUN_CELL_FORWARD,
80         LFUN_CELL_BACKWARD,
81         LFUN_WORD_FORWARD,
82         // 40
83         LFUN_WORD_BACKWARD,
84         LFUN_BUFFER_BEGIN,
85         LFUN_BUFFER_END,
86         LFUN_CHAR_FORWARD_SELECT,
87         LFUN_CHAR_BACKWARD_SELECT,
88         // 45
89         LFUN_UP_SELECT,
90         LFUN_DOWN_SELECT,
91         LFUN_SCREEN_UP_SELECT,
92         LFUN_SCREEN_DOWN_SELECT,
93         LFUN_LINE_BEGIN_SELECT,
94         // 50
95         LFUN_LINE_END_SELECT,
96         LFUN_WORD_FORWARD_SELECT,
97         LFUN_WORD_BACKWARD_SELECT,
98         LFUN_WORD_SELECT,
99         LFUN_BUFFER_BEGIN_SELECT,
100         // 55
101         LFUN_BUFFER_END_SELECT,
102         LFUN_SPACE_INSERT,              // JSpitzm 20030520
103         LFUN_SPECIALCHAR_INSERT,        // JSpitzm, 20071206
104         LFUN_MARK_TOGGLE,
105         LFUN_CHAR_DELETE_FORWARD,
106         // 60
107         LFUN_CHAR_DELETE_BACKWARD,
108         LFUN_NEW_LINE,
109         LFUN_LINE_BREAK,                // uwestoehr 20071125
110         LFUN_BREAK_PARAGRAPH,
111         LFUN_QUOTE_INSERT,
112         // 65
113         LFUN_ACCENT_CIRCUMFLEX,
114         LFUN_MATH_SUBSCRIPT,
115         LFUN_MATH_SUPERSCRIPT,
116         LFUN_ACCENT_GRAVE,
117         LFUN_ACCENT_ACUTE,
118         // 70
119         LFUN_ACCENT_TILDE,
120         LFUN_ACCENT_CEDILLA,
121         LFUN_ACCENT_MACRON,
122         LFUN_ACCENT_UNDERBAR,
123         LFUN_ACCENT_UNDERDOT,
124         // 75
125         LFUN_ACCENT_CIRCLE,
126         LFUN_ACCENT_TIE,
127         LFUN_ACCENT_BREVE,
128         LFUN_ACCENT_CARON,
129         LFUN_ACCENT_SPECIAL_CARON,
130         // 80
131         LFUN_ACCENT_HUNGARIAN_UMLAUT,
132         LFUN_ACCENT_UMLAUT,
133         LFUN_ACCENT_DOT,
134         LFUN_ACCENT_OGONEK,
135         LFUN_SELF_INSERT,
136         // 85
137         LFUN_GETBUFNAME,
138         LFUN_SERVER_GET_XY,
139         LFUN_SERVER_SET_XY,
140         LFUN_SERVER_CHAR_AFTER,
141         LFUN_LINEATCURSOR,
142         // 90
143         LFUN_SERVER_GET_LAYOUT,
144         LFUN_SERVER_GET_FONT,
145         LFUN_SERVER_GET_NAME,
146         LFUN_SERVER_NOTIFY,
147         LFUN_SERVER_GOTO_FILE_ROW,
148         // 95
149         LFUN_NOTE_INSERT,
150         LFUN_ENVIRONMENT_INSERT,        // unused as of 20060905
151         LFUN_KEYMAP_OFF,
152         LFUN_KEYMAP_PRIMARY,
153         LFUN_KEYMAP_SECONDARY,
154         // 100
155         LFUN_KEYMAP_TOGGLE,
156         LFUN_MATH_INSERT,
157         LFUN_MATH_MATRIX,
158         LFUN_MATH_LIMITS,
159         LFUN_MATH_DELIM,                // Alejandro 180696
160         // 105
161         LFUN_MATH_DISPLAY,              // Alejandro 180696
162         LFUN_MATH_MODE,                 // Alejandro 040696
163         LFUN_MATH_NUMBER_TOGGLE,
164         LFUN_MATH_NUMBER_LINE_TOGGLE,
165         LFUN_MATH_SIZE,                 // Alejandro 150896
166         // 110
167         LFUN_MATH_MACRO,                // ale970510
168         LFUN_MATH_EXTERN,               // Andre' 20010424
169         LFUN_MATH_MUTATE,               // Andre' 20010523
170         LFUN_MATH_IMPORT_SELECTION,     // Andre' 20010704
171         LFUN_MATH_SPACE,                // Andre' 20010725
172         // 115
173         LFUN_WORD_DELETE_FORWARD,
174         LFUN_WORD_DELETE_BACKWARD,
175         LFUN_LINE_DELETE,
176         LFUN_MARK_OFF,
177         LFUN_MARK_ON,
178         // 120
179         LFUN_LAYOUT,
180         LFUN_LAYOUT_PARAGRAPH,
181         LFUN_DROP_LAYOUTS_CHOICE,       // used in bindings as of 20071228
182         LFUN_FONT_TYPEWRITER,           // changed from FONT_CODE 20070920
183         LFUN_FONT_SANS,
184         // 125
185         LFUN_FONT_DEFAULT,
186         LFUN_FONT_UNDERLINE,
187         LFUN_FONT_SIZE,
188         LFUN_FONT_STATE,
189         LFUN_WORD_UPCASE,
190         // 130
191         LFUN_WORD_LOWCASE,
192         LFUN_WORD_CAPITALIZE,
193         LFUN_LABEL_INSERT,
194         LFUN_DEPTH_DECREMENT,
195         LFUN_DEPTH_INCREMENT,
196         // 135
197         LFUN_MENU_OPEN,                 // used in bindings as of 20060905
198         LFUN_CANCEL,
199         LFUN_META_PREFIX,
200         LFUN_COMMAND_EXECUTE,
201         LFUN_FILE_INSERT,
202         // 140
203         LFUN_FILE_INSERT_PLAINTEXT,     // CFO-G 1997-11-19
204         LFUN_FILE_INSERT_PLAINTEXT_PARA,// Levon 2001-02-14
205         LFUN_FILE_OPEN,
206         LFUN_PARAGRAPH_UP,              // Asger 1996-10-01
207         LFUN_PARAGRAPH_UP_SELECT,       // Asger 1996-10-01
208         // 145
209         LFUN_PARAGRAPH_DOWN,            // Asger 1996-10-01
210         LFUN_PARAGRAPH_DOWN_SELECT,     // Asger 1996-10-01
211         LFUN_BREAK_PARAGRAPH_SKIP,
212         LFUN_DELETE_BACKWARD_SKIP,
213         LFUN_DELETE_FORWARD_SKIP,
214         // 150
215         LFUN_BUFFER_NEW_TEMPLATE,       // Asger 1997-02-02
216         LFUN_BUFFER_RELOAD,             // Asger 1997-02-02
217         LFUN_RECONFIGURE,
218         LFUN_INDEX_PRINT,               // Lgb 97-02-27
219         LFUN_CELL_SPLIT,
220         // 155
221         LFUN_BUFFER_CHILD_OPEN,         // Ale 970528
222         LFUN_TOC_INSERT,                // Lgb 97-05-27
223         LFUN_FLOAT_LIST,                // Lgb 20010503
224         LFUN_BUFFER_TOGGLE_READ_ONLY,   // Lgb 97-05-27
225         LFUN_VC_REGISTER,               // Lgb 97-07-01
226         // 160
227         LFUN_VC_CHECK_IN,               // Lgb 97-07-01
228         LFUN_VC_CHECK_OUT,              // Lgb 97-07-01
229         LFUN_VC_REVERT,                 // Lgb 97-07-01
230         LFUN_VC_UNDO_LAST,              // Lgb 97-07-01
231         LFUN_BUFFER_EXPORT,             // Lgb 97-07-29
232         // 165
233         LFUN_LABEL_GOTO,                // Ale 970806
234         LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
235         LFUN_BUFFER_CHKTEX,             // Asger 971030
236         LFUN_HYPERLINK_INSERT,          // CFO-G 971121
237         LFUN_WORD_FIND_FORWARD,         // Etienne 980216
238         // 170
239         LFUN_WORD_FIND_BACKWARD,        // Etienne 980220
240         LFUN_APPENDIX,                  // ettrich 980505
241         LFUN_BUFFER_IMPORT,             // Asger 980724
242         LFUN_COMMAND_SEQUENCE,          // Andre' 991111
243         LFUN_PREFERENCES_SAVE,
244         // 175
245         LFUN_HELP_OPEN,                 // Jug 990627
246         LFUN_DATE_INSERT,               // jdblair 20000131
247         LFUN_LANGUAGE,                  // Dekel 20000203
248         LFUN_ERT_INSERT,                // Jug 20000218
249         LFUN_FOOTNOTE_INSERT,           // Jug 20000307
250         // 180
251         LFUN_PARAGRAPH_SPACING,         // Lgb 20000411
252         LFUN_TABULAR_INSERT,            // Jug 20000412
253         LFUN_LOFVIEW,                   // Dekel 20000519
254         LFUN_LOTVIEW,                   // Dekel 20000519
255         LFUN_LOAVIEW,                   // Dekel 20000519
256         // 185
257         LFUN_SET_COLOR,                 // SLior 20000611
258         LFUN_MARGINALNOTE_INSERT,       // Lgb 20000626
259         LFUN_FLOAT_INSERT,              // Lgb 20000627
260         LFUN_FLOAT_WIDE_INSERT,         // Lgb 20010531
261         LFUN_CAPTION_INSERT,            // Lgb 20000718; inactive as of 20060905
262         // 190
263         LFUN_BUFFER_SWITCH,
264         LFUN_TABULAR_FEATURE,           // Jug 20000728
265         LFUN_LAYOUT_TABULAR,            // Jug 20000731
266         LFUN_BUFFER_UPDATE,             // Dekel 20000805
267         LFUN_INDEX_INSERT,              // Angus 20000803
268         // 195
269         LFUN_SCREEN_FONT_UPDATE,        // ARRae 20000813
270         LFUN_PARAGRAPH_GOTO,            // Dekel 20000826
271         LFUN_REFERENCE_NEXT,            // Dekel 20010114
272         LFUN_BOOKMARK_SAVE,
273         LFUN_BOOKMARK_GOTO,
274         // 200
275         LFUN_SELECT_FILE_SYNC,          // Levon 20010214
276         LFUN_MESSAGE,                   // Lgb 20010408; for scripting purposes, output in minibuffer
277         LFUN_CHARS_TRANSPOSE,           // Lgb 20010425
278         LFUN_ESCAPE,                    // Lgb 20010517
279         LFUN_THESAURUS_ENTRY,           // Levon 20010720
280         // 205
281         LFUN_OPTIONAL_INSERT,           // Martin 12 Aug 2002
282         LFUN_MOUSE_PRESS,               // André 9 Aug 2002
283         LFUN_MOUSE_MOTION,              // André 9 Aug 2002
284         LFUN_MOUSE_RELEASE,             // André 9 Aug 2002
285         LFUN_MOUSE_DOUBLE,              // André 9 Aug 2002
286         // 210
287         LFUN_MOUSE_TRIPLE,              // André 9 Aug 2002
288         LFUN_WRAP_INSERT,               // Dekel 7 Apr 2002
289         LFUN_CHANGES_TRACK,             // Levon 20021001 (cool date !)
290         LFUN_CHANGES_MERGE,             // Levon 20021016
291         LFUN_CHANGE_ACCEPT,             // Levon 20021016
292         // 215
293         LFUN_CHANGE_REJECT,             // Levon 20021016
294         LFUN_ALL_CHANGES_ACCEPT,        // Levon 20021016
295         LFUN_ALL_CHANGES_REJECT,        // Levon 20021016
296         LFUN_BIBITEM_INSERT,            // André 14 Feb 2003
297         LFUN_DIALOG_SHOW,
298         // 220
299         LFUN_DIALOG_SHOW_NEW_INSET,
300         LFUN_DIALOG_UPDATE,
301         LFUN_DIALOG_HIDE,
302         LFUN_DIALOG_TOGGLE,             // JSpitzm 20070430
303         LFUN_DIALOG_DISCONNECT_INSET,
304         // 225
305         LFUN_INSET_APPLY,
306         LFUN_INSET_INSERT,
307         LFUN_INSET_MODIFY,
308         LFUN_INSET_DIALOG_UPDATE,
309         LFUN_INSET_SETTINGS,
310         // 230
311         LFUN_PARAGRAPH_PARAMS_APPLY,
312         LFUN_PARAGRAPH_UPDATE,
313         LFUN_EXTERNAL_EDIT,
314         LFUN_BRANCH_INSERT,
315         LFUN_BOX_INSERT,
316         // 235
317         LFUN_LINE_INSERT,
318         LFUN_NEWPAGE_INSERT,            // uwestoehr 20071124
319         LFUN_PAGEBREAK_INSERT,
320         LFUN_REPEAT,
321         LFUN_FINISHED_LEFT,
322         // 240
323         LFUN_FINISHED_RIGHT,
324         LFUN_FLEX_INSERT,
325         LFUN_WORD_FIND,
326         LFUN_WORD_REPLACE,
327         LFUN_BUFFER_EXPORT_CUSTOM,
328         // 245
329         LFUN_BUFFER_PRINT,
330         LFUN_NEXT_INSET_TOGGLE,
331         LFUN_ALL_INSETS_TOGGLE,
332         LFUN_BUFFER_LANGUAGE,
333         LFUN_TEXTCLASS_APPLY,
334         // 250
335         LFUN_TEXTCLASS_LOAD,
336         LFUN_BUFFER_SAVE_AS_DEFAULT,
337         LFUN_BUFFER_PARAMS_APPLY,
338         LFUN_LYXRC_APPLY,
339         LFUN_GRAPHICS_EDIT,
340         // 255
341         LFUN_BUFFER_NEXT,
342         LFUN_BUFFER_PREVIOUS,
343         LFUN_STATISTICS,
344         LFUN_CHANGES_OUTPUT,             // jspitzm 20050121
345         LFUN_BIBTEX_DATABASE_ADD,
346         // 260
347         LFUN_BIBTEX_DATABASE_DEL,
348         LFUN_CITATION_INSERT,
349         LFUN_OUTLINE_UP,
350         LFUN_OUTLINE_DOWN,
351         LFUN_OUTLINE_IN,
352         // 265
353         LFUN_OUTLINE_OUT,
354         LFUN_PARAGRAPH_MOVE_DOWN,
355         LFUN_PARAGRAPH_MOVE_UP,
356         LFUN_BUFFER_TOGGLE_COMPRESSION,  // bpeng 20060427
357         LFUN_MATH_BIGDELIM,
358         // 270
359         LFUN_CLIPBOARD_PASTE,
360         LFUN_INSET_DISSOLVE,             // jspitzm 20060807
361         LFUN_CHANGE_NEXT,
362         LFUN_WINDOW_NEW,                 // Abdel 20061021
363         LFUN_WINDOW_CLOSE,               // Abdel 20061023
364         // 275
365         LFUN_UNICODE_INSERT,             // Lgb 20061022
366         LFUN_BOOKMARK_CLEAR,             // bpeng 20061031
367         LFUN_NOMENCL_INSERT,             // Ugras
368         LFUN_NOMENCL_PRINT,              // Ugras
369         LFUN_CLEARPAGE_INSERT,           // Ugras 20061125
370         // 280
371         LFUN_CLEARDOUBLEPAGE_INSERT,     // Ugras 20061125
372         LFUN_LISTING_INSERT,             // Herbert 20011110, bpeng 20070502
373         LFUN_TOOLBAR_TOGGLE,             // Edwin 20070521
374         LFUN_BUFFER_WRITE_ALL,           // rgh, gpothier 200707XX
375         LFUN_PARAGRAPH_PARAMS,
376         // 285
377         LFUN_LAYOUT_MODULES_CLEAR,
378         LFUN_LAYOUT_MODULE_ADD,
379         LFUN_LAYOUT_RELOAD,
380         LFUN_MASTER_BUFFER_VIEW,         // Tommaso, 20070920
381         LFUN_MASTER_BUFFER_UPDATE,       // Tommaso, 20070920
382         // 290
383         LFUN_INFO_INSERT,                // bpeng, 20071007
384         LFUN_CALL,                       // broider, 20071002
385         LFUN_BUFFER_TOGGLE_EMBEDDING,    // bpeng, 20071021
386         LFUN_CHAR_LEFT,                  // dov, 20071022
387         LFUN_CHAR_LEFT_SELECT,           // dov, 20071022
388         // 295
389         LFUN_CHAR_RIGHT,                 // dov, 20071022
390         LFUN_CHAR_RIGHT_SELECT,          // dov, 20071022
391         LFUN_FINISHED_BACKWARD,          // dov, 20071022
392         LFUN_FINISHED_FORWARD,           // dov, 20071022
393         LFUN_WORD_LEFT,                  // dov, 20071028
394         // 300
395         LFUN_WORD_LEFT_SELECT,           // dov, 20071028
396         LFUN_WORD_RIGHT,                 // dov, 20071028
397         LFUN_WORD_RIGHT_SELECT,          // dov, 20071028
398         LFUN_MATH_MACRO_FOLD,
399         LFUN_MATH_MACRO_UNFOLD,
400         // 305
401         LFUN_MATH_MACRO_ADD_PARAM,
402         LFUN_MATH_MACRO_REMOVE_PARAM,
403         LFUN_MATH_MACRO_APPEND_GREEDY_PARAM,
404         LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM,
405         LFUN_MATH_MACRO_MAKE_OPTIONAL,
406         // 310
407         LFUN_MATH_MACRO_MAKE_NONOPTIONAL,
408         LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM,
409         LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM,
410         LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM,
411         LFUN_IN_MATHMACROTEMPLATE,
412         // 315
413         LFUN_SCROLL,
414         LFUN_UI_TOGGLE,
415         LFUN_SPLIT_VIEW,
416         LFUN_CLOSE_TAB_GROUP,
417         LFUN_COMPLETION_POPUP,
418         // 320
419         LFUN_COMPLETION_INLINE,
420         LFUN_COMPLETION_COMPLETE,
421         LFUN_LASTACTION                  // end of the table
422 };
423
424
425 } // namespace lyx
426
427 #endif // LFUNS_H