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