]> git.lyx.org Git - lyx.git/blob - src/lfuns.h
c286ed6e960f47a90d0e0245f7589a10e2026470
[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.C
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 /** These are all the lyx functions, the main mechanism
22  * through which the frontends communicate with the core.
23  *
24  * They are managed in LyXAction.C and handled in various
25  * ::dispatch() functions, starting with LyXFunc.C:dispatch(),
26  * BufferView_pimpl::dispatch(), LCursor::dispatch() and
27  * Inset*::doDispatch();
28  */
29 enum kb_action {
30         LFUN_UNKNOWN_ACTION = -1,
31         // 0
32         LFUN_NOACTION = 0,
33         LFUN_COMMAND_PREFIX,
34         LFUN_SCREEN_RECENTER,
35         LFUN_BUFFER_NEW,
36         LFUN_BUFFER_WRITE,
37         // 5
38         LFUN_BUFFER_WRITE_AS,
39         LFUN_BUILD_PROGRAM,
40         LFUN_TOC_VIEW,
41         LFUN_BUFFER_VIEW,
42         LFUN_BUFFER_CLOSE,
43         // 10
44         LFUN_LYX_QUIT,
45         LFUN_BUFFER_AUTO_SAVE,
46         LFUN_UNDO,
47         LFUN_REDO,
48         LFUN_PASTE,
49         // 15
50         LFUN_PRIMARY_SELECTION_PASTE,
51         LFUN_CUT,
52         LFUN_COPY,
53         LFUN_ERROR_NEXT,
54         LFUN_NOTE_NEXT,
55         // 20
56         LFUN_INSET_TOGGLE,
57         LFUN_HYPHENATION_POINT_INSERT,
58         LFUN_LIGATURE_BREAK_INSERT,
59         LFUN_HFILL_INSERT,
60         LFUN_FONT_FREE_APPLY,
61         // 25
62         LFUN_FONT_FREE_UPDATE,
63         LFUN_FONT_EMPH,
64         LFUN_FONT_BOLD,
65         LFUN_FONT_ROMAN,
66         LFUN_FONT_NOUN,
67         // 30
68         LFUN_FONT_ITAL,
69         LFUN_FONT_FRAK,
70         LFUN_CHAR_FORWARD,
71         LFUN_CHAR_BACKWARD,
72         LFUN_UP,
73         // 35
74         LFUN_DOWN,
75         LFUN_SCREEN_UP,
76         LFUN_SCREEN_DOWN,
77         LFUN_LINE_BEGIN,
78         LFUN_LINE_END,
79         // 40
80         LFUN_CELL_FORWARD,
81         LFUN_CELL_BACKWARD,
82         LFUN_WORD_FORWARD,
83         LFUN_WORD_BACKWARD,
84         LFUN_BUFFER_BEGIN,
85         // 45
86         LFUN_BUFFER_END,
87         LFUN_CHAR_FORWARD_SELECT,
88         LFUN_CHAR_BACKWARD_SELECT,
89         LFUN_UP_SELECT,
90         LFUN_DOWN_SELECT,
91         // 50
92         LFUN_SCREEN_UP_SELECT,
93         LFUN_SCREEN_DOWN_SELECT,
94         LFUN_LINE_BEGIN_SELECT,
95         LFUN_LINE_END_SELECT,
96         LFUN_WORD_FORWARD_SELECT,
97         // 55
98         LFUN_WORD_BACKWARD_SELECT,
99         LFUN_WORD_SELECT,
100         LFUN_BUFFER_BEGIN_SELECT,
101         LFUN_BUFFER_END_SELECT,
102         LFUN_SPACE_INSERT,  // JSpitzm 20030520
103         // 60
104         LFUN_MARK_TOGGLE,
105         LFUN_CHAR_DELETE_FORWARD,
106         LFUN_CHAR_DELETE_BACKWARD,
107         LFUN_BREAK_LINE,
108         LFUN_BREAK_PARAGRAPH,
109         // 65
110         LFUN_BREAK_PARAGRAPH_KEEP_LAYOUT,
111         LFUN_QUOTE_INSERT,
112         LFUN_ACCENT_CIRCUMFLEX,
113         LFUN_MATH_SUBSCRIPT,
114         LFUN_MATH_SUPERSCRIPT,
115         // 70
116         LFUN_ACCENT_GRAVE,
117         LFUN_ACCENT_ACUTE,
118         LFUN_ACCENT_TILDE,
119         LFUN_ACCENT_CEDILLA,
120         LFUN_ACCENT_MACRON,
121         // 75
122         LFUN_ACCENT_UNDERBAR,
123         LFUN_ACCENT_UNDERDOT,
124         LFUN_ACCENT_CIRCLE,
125         LFUN_ACCENT_TIE,
126         LFUN_ACCENT_BREVE,
127         // 80
128         LFUN_ACCENT_CARON,
129         LFUN_ACCENT_SPECIAL_CARON,
130         LFUN_ACCENT_HUNGARIAN_UMLAUT,
131         LFUN_ACCENT_UMLAUT,
132         LFUN_ACCENT_DOT,
133         // 85
134         LFUN_ACCENT_OGONEK,
135         LFUN_SELF_INSERT,
136         LFUN_GETBUFNAME,
137         LFUN_SERVER_GET_XY,
138         LFUN_SERVER_SET_XY,
139         // 90
140         LFUN_SERVER_CHAR_AFTER,
141         LFUN_LINEATCURSOR,
142         LFUN_SERVER_GET_LAYOUT,
143         LFUN_SERVER_GET_FONT,
144         LFUN_SERVER_GET_NAME,
145         // 95
146         LFUN_SERVER_NOTIFY,
147         LFUN_SERVER_GOTO_FILE_ROW,
148         LFUN_NOTE_INSERT,
149         LFUN_ENVIRONMENT_INSERT,
150         LFUN_KEYMAP_OFF,
151         // 100
152         LFUN_KEYMAP_PRIMARY,
153         LFUN_KEYMAP_SECONDARY,
154         LFUN_KEYMAP_TOGGLE,
155         LFUN_MATH_INSERT,
156         LFUN_MATH_MATRIX,
157         // 105
158         LFUN_MATH_LIMITS,
159         LFUN_MATH_DELIM,                // Alejandro 180696
160         LFUN_MATH_DISPLAY,              // Alejandro 180696
161         LFUN_MATH_MODE,                 // Alejandro 040696
162         LFUN_MATH_NUMBER,               // Alejandro 040696
163         // 110
164         LFUN_MATH_NONUMBER,             // Alejandro 180696
165         LFUN_MATH_SIZE,                 // Alejandro 150896
166         LFUN_MATH_MACRO,                // ale970510
167         LFUN_MATH_EXTERN,               // Andre' 20010424
168         LFUN_MATH_MUTATE,               // Andre' 20010523
169         // 115
170         LFUN_MATH_IMPORT_SELECTION,     // Andre' 20010704
171         LFUN_MATH_SPACE,                // Andre' 20010725
172         LFUN_WORD_DELETE_FORWARD,
173         LFUN_WORD_DELETE_BACKWARD,
174         LFUN_LINE_DELETE,
175         // 120
176         LFUN_MARK_OFF,
177         LFUN_MARK_ON,
178         LFUN_LAYOUT,
179         LFUN_LAYOUT_PARAGRAPH,
180         LFUN_DROP_LAYOUTS_CHOICE,
181         // 125
182         LFUN_FONT_CODE,
183         LFUN_FONT_SANS,
184         LFUN_FONT_DEFAULT,
185         LFUN_FONT_UNDERLINE,
186         LFUN_FONT_SIZE,
187         // 130
188         LFUN_FONT_STATE,
189         LFUN_WORD_UPCASE,
190         LFUN_WORD_LOWCASE,
191         LFUN_WORD_CAPITALIZE,
192         LFUN_LABEL_INSERT,
193         // 135
194         LFUN_DEPTH_DECREMENT,
195         LFUN_DEPTH_INCREMENT,
196         LFUN_MENU_OPEN,
197         LFUN_CANCEL,
198         LFUN_META_PREFIX,
199         // 140
200         LFUN_COMMAND_EXECUTE,
201         LFUN_FILE_INSERT,
202         LFUN_FILE_INSERT_ASCII,         // CFO-G 1997-11-19
203         LFUN_FILE_INSERT_ASCII_PARA,    // Levon 2001-02-14
204         LFUN_FILE_NEW,
205         // 145
206         LFUN_FILE_OPEN,
207         LFUN_PARAGRAPH_UP,              // Asger 1996-10-01
208         LFUN_PARAGRAPH_UP_SELECT,       // Asger 1996-10-01
209         LFUN_PARAGRAPH_DOWN,            // Asger 1996-10-01
210         LFUN_PARAGRAPH_DOWN_SELECT,     // Asger 1996-10-01
211         // 150
212         LFUN_BREAK_PARAGRAPH_SKIP,
213         LFUN_DELETE_BACKWARD_SKIP,
214         LFUN_DELETE_FORWARD_SKIP,
215         LFUN_BUFFER_NEW_TEMPLATE,       // Asger 1997-02-02
216         LFUN_BUFFER_RELOAD,             // Asger 1997-02-02
217         // 155
218         LFUN_RECONFIGURE,               // Asger 1997-02-14
219         LFUN_INDEX_PRINT,               // Lgb 97-02-27
220         LFUN_CELL_SPLIT,
221         LFUN_BUFFER_CHILD_OPEN,         // Ale 970528
222         LFUN_TOC_INSERT,                // Lgb 97-05-27
223         // 160
224         LFUN_FLOAT_LIST,                // Lgb 20010503
225         LFUN_BUFFER_TOGGLE_READ_ONLY,          // Lgb 97-05-27
226         LFUN_VC_REGISTER,               // Lgb 97-07-01
227         LFUN_VC_CHECK_IN,               // Lgb 97-07-01
228         LFUN_VC_CHECK_OUT,              // Lgb 97-07-01
229         // 165
230         LFUN_VC_REVERT,                 // Lgb 97-07-01
231         LFUN_VC_UNDO_LAST,              // Lgb 97-07-01
232         LFUN_BUFFER_EXPORT,             // Lgb 97-07-29
233         LFUN_LABEL_GOTO,                // Ale 970806
234         LFUN_DOTS_INSERT,               // Asger 970929
235         // 170
236         LFUN_END_OF_SENTENCE_PERIOD_INSERT,           // Asger 970929
237         LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR,        // ARRae 971202
238         LFUN_BUFFER_CHKTEX,                 // Asger 971030
239         LFUN_HTML_INSERT,                   // CFO-G 971121
240         LFUN_URL_INSERT,                       // CFO-G 971121
241         // 175
242         LFUN_WORD_FIND_FORWARD,           // Etienne 980216
243         LFUN_WORD_FIND_BACKWARD,          // Etienne 980220
244         LFUN_APPENDIX,                  // ettrich 980505
245         LFUN_BUFFER_IMPORT,                    // Asger 980724
246         LFUN_MENU_SEPARATOR_INSERT,            // Asger 990220
247         // 180
248         LFUN_COMMAND_SEQUENCE,                  // Andre' 991111
249         LFUN_PREFERENCES_SAVE,           // Lgb 991127
250         LFUN_HELP_OPEN,                 // Jug 990627
251         LFUN_DATE_INSERT,               // jdblair 20000131
252         LFUN_LANGUAGE,                  // Dekel 20000203
253         // 185
254         LFUN_ERT_INSERT,                        // Jug 20000218
255         LFUN_FOOTNOTE_INSERT,            // Jug 20000307
256         LFUN_PARAGRAPH_SPACING,         // Lgb 20000411
257         LFUN_TABULAR_INSERT,            // Jug 20000412
258         LFUN_LOFVIEW,                   // Dekel 20000519
259         // 190
260         LFUN_LOTVIEW,                   // Dekel 20000519
261         LFUN_LOAVIEW,                   // Dekel 20000519
262         LFUN_SET_COLOR,                 // SLior 20000611
263         LFUN_MARGINALNOTE_INSERT,            // Lgb 20000626
264         LFUN_FLOAT_INSERT,               // Lgb 20000627
265         // 195
266         LFUN_FLOAT_WIDE_INSERT,          // Lgb 20010531
267         LFUN_CAPTION_INSERT,             // Lgb 20000718
268         LFUN_BUFFER_SWITCH,
269         LFUN_TABULAR_FEATURE,           // Jug 20000728
270         LFUN_LAYOUT_TABULAR,            // Jug 20000731
271         // 200
272         LFUN_INSET_SCROLL,              // Jug 20000801
273         LFUN_BUFFER_UPDATE,                    // Dekel 20000805
274         LFUN_INDEX_INSERT,              // Angus 20000803
275         LFUN_SCREEN_FONT_UPDATE,        // ARRae 20000813
276         LFUN_PARAGRAPH_GOTO,            // Dekel 20000826
277         // 205
278         LFUN_REFERENCE_NEXT,            // Dekel 20010114
279         LFUN_BOOKMARK_SAVE,             // Dekel 20010127
280         LFUN_BOOKMARK_GOTO,             // Dekel 20010127
281         LFUN_SELECT_FILE_SYNC,          // Levon 20010214
282         LFUN_MESSAGE,                   // Lgb 20010408
283         // 210
284         LFUN_CHARS_TRANSPOSE,           // Lgb 20010425
285         LFUN_ESCAPE,                    // Lgb 20010517
286         LFUN_THESAURUS_ENTRY,           // Levon 20010720
287         LFUN_TOOLTIPS_TOGGLE,           // Angus 8 Mar 2002
288         LFUN_OPTIONAL_INSERT,              // Martin 12 Aug 2002
289         // 215
290         LFUN_MOUSE_PRESS,               // André 9 Aug 2002
291         LFUN_MOUSE_MOTION,              // André 9 Aug 2002
292         LFUN_MOUSE_RELEASE,             // André 9 Aug 2002
293         LFUN_MOUSE_DOUBLE,              // André 9 Aug 2002
294         LFUN_MOUSE_TRIPLE,              // André 9 Aug 2002
295         // 220
296         LFUN_WRAP_INSERT,                // Dekel 7 Apr 2002
297         LFUN_CHANGES_TRACK,             // Levon 20021001 (cool date !)
298         LFUN_CHANGES_MERGE,             // Levon 20021016
299         LFUN_CHANGE_ACCEPT,             // Levon 20021016
300         LFUN_CHANGE_REJECT,             // Levon 20021016
301         // 225
302         LFUN_ALL_CHANGES_ACCEPT,        // Levon 20021016
303         LFUN_ALL_CHANGES_REJECT,        // Levon 20021016
304         LFUN_BIBITEM_INSERT,            // André 14 Feb 2003
305         LFUN_DIALOG_SHOW,
306         LFUN_DIALOG_SHOW_NEW_INSET,
307         // 230
308         LFUN_DIALOG_SHOW_NEXT_INSET,
309         LFUN_DIALOG_UPDATE,
310         LFUN_DIALOG_HIDE,
311         LFUN_DIALOG_DISCONNECT_INSET,
312         LFUN_INSET_APPLY,
313         // 235
314         LFUN_INSET_INSERT,
315         LFUN_INSET_MODIFY,
316         LFUN_INSET_DIALOG_UPDATE,
317         LFUN_INSET_SETTINGS,
318         LFUN_PARAGRAPH_PARAMS_APPLY,
319         // 240
320         LFUN_PARAGRAPH_UPDATE,
321         LFUN_EXTERNAL_EDIT,
322         LFUN_BRANCH_INSERT,
323         LFUN_BOX_INSERT,
324         LFUN_LINE_INSERT,
325         // 245
326         LFUN_PAGEBREAK_INSERT,
327         LFUN_REPEAT,
328         LFUN_FINISHED_LEFT,
329         LFUN_FINISHED_RIGHT,
330         LFUN_FINISHED_UP,
331         // 250
332         LFUN_FINISHED_DOWN,
333         LFUN_CHARSTYLE_INSERT,
334         LFUN_WORD_FIND,
335         LFUN_WORD_REPLACE,
336         LFUN_BUFFER_EXPORT_CUSTOM,
337         // 255
338         LFUN_BUFFER_PRINT,
339         LFUN_NEXT_INSET_TOGGLE,
340         LFUN_ALL_INSETS_TOGGLE,
341         LFUN_BUFFER_LANGUAGE,
342         LFUN_TEXTCLASS_APPLY,
343         // 260
344         LFUN_TEXTCLASS_LOAD,
345         LFUN_BUFFER_SAVE_AS_DEFAULT,
346         LFUN_BUFFER_PARAMS_APPLY,
347         LFUN_LYXRC_APPLY,
348         LFUN_GRAPHICS_EDIT,
349         // 265
350         LFUN_INSET_REFRESH,
351         LFUN_BUFFER_NEXT,
352         LFUN_BUFFER_PREVIOUS,
353         LFUN_WORDS_COUNT,
354         LFUN_CHANGES_OUTPUT,             // jspitzm 20050121
355         // 270
356         LFUN_BIBTEX_DATABASE_ADD,
357         LFUN_BIBTEX_DATABASE_DEL,
358         LFUN_CITATION_INSERT,
359         LFUN_OUTLINE_UP,                 // Vermeer 20060323
360         LFUN_OUTLINE_DOWN,
361         // 275
362         LFUN_OUTLINE_IN,
363         LFUN_OUTLINE_OUT,
364         LFUN_PARAGRAPH_MOVE_DOWN,                // Edwin 20060408
365         LFUN_PARAGRAPH_MOVE_UP,                  // Edwin 20060408
366         LFUN_BUFFER_TOGGLE_COMPRESSION,                 // bpeng 20060427
367         // 280
368         LFUN_MATH_BIGDELIM,
369         LFUN_CLIPBOARD_PASTE,
370
371         LFUN_LASTACTION                  // end of the table
372 };
373
374 std::ostream & operator<<(std::ostream &, kb_action);
375
376 #endif // LFUNS_H