4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * Full author contact details are available in file CREDITS.
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
19 #include "support/strfwd.h"
24 /** These are all the lyx functions, the main mechanism
25 * through which the frontends communicate with the core.
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();
33 /* LFUN documentation (a start at least, Chr 2007-08-12)
35 * The documentation below is primarily notes about restrictions and
36 * oddities relating to the different LFUNs.
38 * Doxygen template below.
51 LFUN_UNKNOWN_ACTION = -1,
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.
72 LFUN_BUFFER_AUTO_SAVE,
76 LFUN_PRIMARY_SELECTION_PASTE,
86 LFUN_FONT_FREE_UPDATE,
111 LFUN_CHAR_FORWARD_SELECT,
112 LFUN_CHAR_BACKWARD_SELECT,
116 LFUN_SCREEN_UP_SELECT,
117 LFUN_SCREEN_DOWN_SELECT,
118 LFUN_LINE_BEGIN_SELECT,
120 LFUN_LINE_END_SELECT,
121 LFUN_WORD_FORWARD_SELECT,
122 LFUN_WORD_BACKWARD_SELECT,
124 LFUN_BUFFER_BEGIN_SELECT,
126 LFUN_BUFFER_END_SELECT,
127 LFUN_SPACE_INSERT, // JSpitzm 20030520
128 LFUN_SPECIALCHAR_INSERT, // JSpitzm, 20071206
131 * \li Action: Toggle between MARK_ON and MARK_OFF
132 * \li Syntax: mark-toggle
133 * \li Origin: poenitz, May 5 2006
136 LFUN_CHAR_DELETE_FORWARD,
138 LFUN_CHAR_DELETE_BACKWARD,
140 LFUN_LINE_BREAK, // uwestoehr 20071125
141 LFUN_BREAK_PARAGRAPH,
144 LFUN_ACCENT_CIRCUMFLEX,
146 LFUN_MATH_SUPERSCRIPT,
153 LFUN_ACCENT_UNDERBAR,
154 LFUN_ACCENT_UNDERDOT,
160 LFUN_ACCENT_SPECIAL_CARON,
162 LFUN_ACCENT_HUNGARIAN_UMLAUT,
171 LFUN_SERVER_CHAR_AFTER,
174 LFUN_SERVER_GET_LAYOUT,
175 LFUN_SERVER_GET_FONT,
176 LFUN_SERVER_GET_NAME,
178 LFUN_SERVER_GOTO_FILE_ROW,
181 LFUN_ENVIRONMENT_INSERT, // unused as of 20060905
184 LFUN_KEYMAP_SECONDARY,
190 LFUN_MATH_DELIM, // Alejandro 180696
192 LFUN_MATH_DISPLAY, // Alejandro 180696
193 LFUN_MATH_MODE, // Alejandro 040696
194 LFUN_MATH_NUMBER, // Alejandro 040696
195 LFUN_MATH_NONUMBER, // Alejandro 180696
196 LFUN_MATH_SIZE, // Alejandro 150896
198 LFUN_MATH_MACRO, // ale970510
199 LFUN_MATH_EXTERN, // Andre' 20010424
200 LFUN_MATH_MUTATE, // Andre' 20010523
201 LFUN_MATH_IMPORT_SELECTION, // Andre' 20010704
202 LFUN_MATH_SPACE, // Andre' 20010725
204 LFUN_WORD_DELETE_FORWARD,
205 LFUN_WORD_DELETE_BACKWARD,
209 * \li Action: Disable selecting of text-region.
210 * \li Syntax: mark-off
215 * \li Action: Enable selecting of text-region.
216 * \li Notion: After enabling you can simply move arrow keys to get selected region.
217 * \li Syntax: mark-on
222 LFUN_LAYOUT_PARAGRAPH,
223 LFUN_DROP_LAYOUTS_CHOICE, // used in bindings as of 20060905
224 LFUN_FONT_TYPEWRITER, // changed from FONT_CODE 20070920
234 LFUN_WORD_CAPITALIZE,
236 LFUN_DEPTH_DECREMENT,
237 LFUN_DEPTH_INCREMENT,
239 LFUN_MENU_OPEN, // used in bindings as of 20060905
242 LFUN_COMMAND_EXECUTE,
245 LFUN_FILE_INSERT_PLAINTEXT, // CFO-G 1997-11-19
246 LFUN_FILE_INSERT_PLAINTEXT_PARA,// Levon 2001-02-14
247 LFUN_FILE_NEW, // for scripting purposes
249 LFUN_PARAGRAPH_UP, // Asger 1996-10-01
251 LFUN_PARAGRAPH_UP_SELECT, // Asger 1996-10-01
252 LFUN_PARAGRAPH_DOWN, // Asger 1996-10-01
253 LFUN_PARAGRAPH_DOWN_SELECT, // Asger 1996-10-01
254 LFUN_BREAK_PARAGRAPH_SKIP,
255 LFUN_DELETE_BACKWARD_SKIP,
257 LFUN_DELETE_FORWARD_SKIP,
258 LFUN_BUFFER_NEW_TEMPLATE, // Asger 1997-02-02
259 LFUN_BUFFER_RELOAD, // Asger 1997-02-02
260 LFUN_RECONFIGURE, // Asger 1997-02-14
261 LFUN_INDEX_PRINT, // Lgb 97-02-27
264 LFUN_BUFFER_CHILD_OPEN, // Ale 970528
265 LFUN_TOC_INSERT, // Lgb 97-05-27
266 LFUN_FLOAT_LIST, // Lgb 20010503
267 LFUN_BUFFER_TOGGLE_READ_ONLY, // Lgb 97-05-27
269 LFUN_VC_REGISTER, // Lgb 97-07-01
270 LFUN_VC_CHECK_IN, // Lgb 97-07-01
271 LFUN_VC_CHECK_OUT, // Lgb 97-07-01
272 LFUN_VC_REVERT, // Lgb 97-07-01
273 LFUN_VC_UNDO_LAST, // Lgb 97-07-01
275 LFUN_BUFFER_EXPORT, // Lgb 97-07-29
276 LFUN_LABEL_GOTO, // Ale 970806
277 LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
278 LFUN_BUFFER_CHKTEX, // Asger 971030
279 LFUN_HYPERLINK_INSERT, // CFO-G 971121
281 LFUN_WORD_FIND_FORWARD, // Etienne 980216
282 LFUN_WORD_FIND_BACKWARD, // Etienne 980220
283 LFUN_APPENDIX, // ettrich 980505
284 LFUN_BUFFER_IMPORT, // Asger 980724
285 LFUN_COMMAND_SEQUENCE, // Andre' 991111
287 LFUN_PREFERENCES_SAVE, // Lgb 991127
288 LFUN_HELP_OPEN, // Jug 990627
289 LFUN_DATE_INSERT, // jdblair 20000131
290 LFUN_LANGUAGE, // Dekel 20000203
291 LFUN_ERT_INSERT, // Jug 20000218
293 LFUN_FOOTNOTE_INSERT, // Jug 20000307
294 LFUN_PARAGRAPH_SPACING, // Lgb 20000411
295 LFUN_TABULAR_INSERT, // Jug 20000412
296 LFUN_LOFVIEW, // Dekel 20000519
297 LFUN_LOTVIEW, // Dekel 20000519
299 LFUN_LOAVIEW, // Dekel 20000519
300 LFUN_SET_COLOR, // SLior 20000611
301 LFUN_MARGINALNOTE_INSERT, // Lgb 20000626
302 LFUN_FLOAT_INSERT, // Lgb 20000627
303 LFUN_FLOAT_WIDE_INSERT, // Lgb 20010531
305 LFUN_CAPTION_INSERT, // Lgb 20000718; inactive as of 20060905
307 LFUN_TABULAR_FEATURE, // Jug 20000728
308 LFUN_LAYOUT_TABULAR, // Jug 20000731
309 LFUN_BUFFER_UPDATE, // Dekel 20000805
311 LFUN_INDEX_INSERT, // Angus 20000803
312 LFUN_SCREEN_FONT_UPDATE, // ARRae 20000813
313 LFUN_PARAGRAPH_GOTO, // Dekel 20000826
314 LFUN_REFERENCE_NEXT, // Dekel 20010114
315 LFUN_BOOKMARK_SAVE, // Dekel 20010127
317 LFUN_BOOKMARK_GOTO, // Dekel 20010127
318 LFUN_SELECT_FILE_SYNC, // Levon 20010214
319 LFUN_MESSAGE, // Lgb 20010408; for scripting purposes, output in minibuffer
320 LFUN_CHARS_TRANSPOSE, // Lgb 20010425
321 LFUN_ESCAPE, // Lgb 20010517
323 LFUN_THESAURUS_ENTRY, // Levon 20010720
324 LFUN_OPTIONAL_INSERT, // Martin 12 Aug 2002
325 LFUN_MOUSE_PRESS, // André 9 Aug 2002
326 LFUN_MOUSE_MOTION, // André 9 Aug 2002
327 LFUN_MOUSE_RELEASE, // André 9 Aug 2002
329 LFUN_MOUSE_DOUBLE, // André 9 Aug 2002
330 LFUN_MOUSE_TRIPLE, // André 9 Aug 2002
331 LFUN_WRAP_INSERT, // Dekel 7 Apr 2002
332 LFUN_CHANGES_TRACK, // Levon 20021001 (cool date !)
333 LFUN_CHANGES_MERGE, // Levon 20021016
335 LFUN_CHANGE_ACCEPT, // Levon 20021016
336 LFUN_CHANGE_REJECT, // Levon 20021016
337 LFUN_ALL_CHANGES_ACCEPT, // Levon 20021016
338 LFUN_ALL_CHANGES_REJECT, // Levon 20021016
339 LFUN_BIBITEM_INSERT, // André 14 Feb 2003
342 LFUN_DIALOG_SHOW_NEW_INSET,
345 LFUN_DIALOG_TOGGLE, // JSpitzm 20070430
347 LFUN_DIALOG_DISCONNECT_INSET,
351 LFUN_INSET_DIALOG_UPDATE,
354 LFUN_PARAGRAPH_PARAMS_APPLY,
356 * LFUN_PARAGRAPH_PARAMS_APPLY
357 * \li Action: Change paragraph settings.
358 * \li Notion: Overwrite all nonspecified settings to the default ones.
359 Use paragraph-params lfun if you don't want to overwrite others settings.
360 * \li Syntax: lfun-paragraph-params-apply [INDENT] [SPACING] [ALIGN] [OTHERS]
361 * \li Params: For parameters see lfun-paragraph-params lfun.
362 * \li Origin: leeming, 30 Mar 2004
364 LFUN_PARAGRAPH_UPDATE,
370 LFUN_NEWPAGE_INSERT, // uwestoehr 20071124
371 LFUN_PAGEBREAK_INSERT,
380 LFUN_BUFFER_EXPORT_CUSTOM,
382 LFUN_NEXT_INSET_TOGGLE,
383 LFUN_ALL_INSETS_TOGGLE,
384 LFUN_BUFFER_LANGUAGE,
386 LFUN_TEXTCLASS_APPLY,
388 LFUN_BUFFER_SAVE_AS_DEFAULT,
389 LFUN_BUFFER_PARAMS_APPLY,
395 LFUN_BUFFER_PREVIOUS,
398 LFUN_CHANGES_OUTPUT, // jspitzm 20050121
399 LFUN_BIBTEX_DATABASE_ADD,
400 LFUN_BIBTEX_DATABASE_DEL,
401 LFUN_CITATION_INSERT,
402 LFUN_OUTLINE_UP, // Vermeer 20060323
407 LFUN_PARAGRAPH_MOVE_DOWN, // Edwin 20060408
408 LFUN_PARAGRAPH_MOVE_UP, // Edwin 20060408
410 LFUN_BUFFER_TOGGLE_COMPRESSION, // bpeng 20060427
412 LFUN_CLIPBOARD_PASTE,
413 LFUN_INSET_DISSOLVE, // jspitzm 20060807
416 LFUN_WINDOW_NEW, // Abdel 20061021
417 LFUN_WINDOW_CLOSE, // Abdel 20061023
418 LFUN_UNICODE_INSERT, // Lgb 20061022
419 LFUN_BOOKMARK_CLEAR, // bpeng 20061031
420 LFUN_NOMENCL_INSERT, // Ugras
422 LFUN_NOMENCL_PRINT, // Ugras
423 LFUN_CLEARPAGE_INSERT, // Ugras 20061125
424 LFUN_CLEARDOUBLEPAGE_INSERT, // Ugras 20061125
425 LFUN_LISTING_INSERT, // Herbert 20011110, bpeng 20070502
426 LFUN_TOOLBAR_TOGGLE, // Edwin 20070521
428 LFUN_BUFFER_WRITE_ALL, // rgh, gpothier 200707XX
429 LFUN_PARAGRAPH_PARAMS,
431 * LFUN_PARAGRAPH_PARAMS
432 * \li Action: Change paragraph settings
433 * \li Notion: Modifies the current paragraph, or currently selected paragraphs.
434 This function only modifies, and does not override, existing settings.
435 * \li Syntax: lfun_paragraph-params [INDENT] [SPACING] [ALIGN] [OTHERS]
436 * \li Params: INDENT: \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
437 SPACING: \\paragraph_spacing default|single|onehalf|double|other\n
438 ALIGN: \\align block|left|right|center|default\n
439 OTHERS: \\labelwidthstring WIDTH|\\start_of_appendix\n
440 * \li Origin: rgh, Aug 15 2007
442 LFUN_LAYOUT_MODULES_CLEAR, // rgh, 20070825
443 LFUN_LAYOUT_MODULE_ADD, // rgh, 20070825
444 LFUN_LAYOUT_RELOAD, // rgh, 20070903
446 LFUN_MASTER_BUFFER_VIEW, // Tommaso, 20070920
447 LFUN_MASTER_BUFFER_UPDATE, // Tommaso, 20070920
448 LFUN_INFO_INSERT, // bpeng, 20071007
449 LFUN_CALL, // broider, 20071002
450 LFUN_BUFFER_TOGGLE_EMBEDDING, // bpeng, 20071021
452 LFUN_CHAR_LEFT, // dov, 20071022
453 LFUN_CHAR_LEFT_SELECT, // dov, 20071022
454 LFUN_CHAR_RIGHT, // dov, 20071022
455 LFUN_CHAR_RIGHT_SELECT, // dov, 20071022
456 LFUN_FINISHED_BACKWARD, // dov, 20071022
458 LFUN_FINISHED_FORWARD, // dov, 20071022
459 LFUN_WORD_LEFT, // dov, 20071028
460 LFUN_WORD_LEFT_SELECT, // dov, 20071028
461 LFUN_WORD_RIGHT, // dov, 20071028
462 LFUN_WORD_RIGHT_SELECT, // dov, 20071028
464 LFUN_MATH_MACRO_FOLD,
465 LFUN_MATH_MACRO_UNFOLD,
466 LFUN_MATH_MACRO_ADD_PARAM,
467 LFUN_MATH_MACRO_REMOVE_PARAM,
468 LFUN_MATH_MACRO_APPEND_GREEDY_PARAM,
470 LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM,
471 LFUN_MATH_MACRO_MAKE_OPTIONAL,
472 LFUN_MATH_MACRO_MAKE_NONOPTIONAL,
473 LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM,
474 LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM,
477 LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM,
478 LFUN_IN_MATHMACROTEMPLATE,
479 LFUN_LASTACTION // end of the table