3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Lars Gullik Bjønnes
7 * \author Jean-Marc Lasgouttes
11 * Full author contact details are available in file CREDITS.
16 #include "LyXAction.h"
18 #include "support/debug.h"
19 #include "FuncRequest.h"
21 #include "support/lstrings.h"
23 #include <boost/assert.hpp>
26 using namespace lyx::support;
31 NAMING RULES FOR USER-COMMANDS
32 Here's the set of rules to apply when a new command name is introduced:
34 1) Use the object.event order. That is, use `word-forward'
35 instead of `forward-word'.
36 2) Don't introduce an alias for an already named object. Same for events.
37 3) Forward movement or focus is called `forward' (not `right').
38 4) Backward movement or focus is called `backward' (not `left').
39 5) Upward movement of focus is called `up'.
40 6) Downward movement is called `down'.
41 7) The begin of an object is called `begin' (not `start').
42 8) The end of an object is called `end'.
44 (May 19 1996, 12:04, RvdK)
47 /* LFUN documentation (a start at least, Chr 2007-08-12)
49 * The documentation below is primarily notes about restrictions and
50 * oddities relating to the different LFUNs.
52 * Try to find an appropriate (thematical) place when adding the new LFUN.
54 * Doxygen template below. Some notes: Parameters should be set in uppercase
55 * and put in <BRACKETS>, as so.
59 * \var lyx::kb_action lyx::LFUN_
70 void LyXAction::newFunc(kb_action action, string const & name,
71 unsigned int attrib, LyXAction::func_type type)
73 lyx_func_map[name] = action;
76 tmpinfo.attrib = attrib;
78 lyx_info_map[action] = tmpinfo;
82 // Needed for LFUNs documentation to be accepted, since doxygen won't take
83 // \var inside functions.
84 #ifndef DOXYGEN_SHOULD_SKIP_THIS
85 void LyXAction::init()
87 // This function was changed to use the array below in initalization
88 // instead of calling newFunc numerous times because of compilation
89 // times. Since the array is not static we get back the memory it
90 // occupies after the init is completed. It compiles several
103 ev_item const items[] = {
106 * \var lyx::kb_action lyx::LFUN_ACCENT_ACUTE
107 * \li Action: adds an acute accent (á) to the next character typed
108 * \li Syntax: accent-acute
110 { LFUN_ACCENT_ACUTE, "accent-acute", Noop, Edit },
112 * \var lyx::kb_action lyx::LFUN_ACCENT_BREVE
113 * \li Action: adds a breve accent to the next character typed
114 * \li Syntax: accent-breve
116 { LFUN_ACCENT_BREVE, "accent-breve", Noop, Edit },
118 * \var lyx::kb_action lyx::LFUN_ACCENT_CARON
119 * \li Action: adds a caron to the next character typed
120 * \li Syntax: accent-caron
122 { LFUN_ACCENT_CARON, "accent-caron", Noop, Edit },
124 * \var lyx::kb_action lyx::LFUN_ACCENT_CEDILLA
125 * \li Action: adds a cedilla (ç) to the next character typed
126 * \li Syntax: accent-cedilla
128 { LFUN_ACCENT_CEDILLA, "accent-cedilla", Noop, Edit },
130 * \var lyx::kb_action lyx::LFUN_ACCENT_CIRCLE
131 * \li Action: adds a circle accent (Å) to the next character typed
132 * \li Syntax: accent-circle
134 { LFUN_ACCENT_CIRCLE, "accent-circle", Noop, Edit },
136 * \var lyx::kb_action lyx::LFUN_ACCENT_CIRCUMFLEX
137 * \li Action: adds a circumflex (â) to the next character typed
138 * \li Syntax: accent-circumflex
140 { LFUN_ACCENT_CIRCUMFLEX, "accent-circumflex", Noop, Edit },
142 * \var lyx::kb_action lyx::LFUN_ACCENT_DOT
143 * \li Action: adds a dot accent to the next character typed
144 * \li Syntax: accent-dot
146 { LFUN_ACCENT_DOT, "accent-dot", Noop, Edit },
148 * \var lyx::kb_action lyx::LFUN_ACCENT_GRAVE
149 * \li Action: adds a grave accent (à) to the next character typed
150 * \li Syntax: accent-grave
152 { LFUN_ACCENT_GRAVE, "accent-grave", Noop, Edit },
154 * \var lyx::kb_action lyx::LFUN_ACCENT_HUNGARIAN_UMLAUT
155 * \li Action: adds a Hungarian umlaut to the next character typed
156 * \li Syntax: accent-grave
158 { LFUN_ACCENT_HUNGARIAN_UMLAUT, "accent-hungarian-umlaut", Noop, Edit },
160 * \var lyx::kb_action lyx::LFUN_ACCENT_MACRON
161 * \li Action: adds a macron to the next character typed
162 * \li Syntax: accent-macron
164 { LFUN_ACCENT_MACRON, "accent-macron", Noop, Edit },
166 * \var lyx::kb_action lyx::LFUN_ACCENT_OGONEK
167 * \li Action: adds an ogonek accent to the next character typed
168 * \li Syntax: accent-ogonek
170 { LFUN_ACCENT_OGONEK, "accent-ogonek", Noop, Edit },
171 { LFUN_ACCENT_SPECIAL_CARON, "accent-special-caron", Noop, Edit },
173 * \var lyx::kb_action lyx::LFUN_ACCENT_TIE
174 * \li Action: adds a tie over the next two character typed
175 * \li Syntax: accent-tie
177 { LFUN_ACCENT_TIE, "accent-tie", Noop, Edit },
179 * \var lyx::kb_action lyx::LFUN_ACCENT_TILDE
180 * \li Action: adds a tilde (ñ) over the next character typed
181 * \li Syntax: accent-tilde
183 { LFUN_ACCENT_TILDE, "accent-tilde", Noop, Edit },
185 * \var lyx::kb_action lyx::LFUN_ACCENT_UMLAUT
186 * \li Action: adds an umlaut (ö) over the next character typed
187 * \li Syntax: accent-umlaut
189 { LFUN_ACCENT_UMLAUT, "accent-umlaut", Noop, Edit },
191 * \var lyx::kb_action lyx::LFUN_ACCENT_UNDERBAR
192 * \li Action: adds a bar under the next character typed
193 * \li Syntax: accent-underbar
195 { LFUN_ACCENT_UNDERBAR, "accent-underbar", Noop, Edit },
197 * \var lyx::kb_action lyx::LFUN_ACCENT_UNDERDOT
198 * \li Action: adds a dot under the next character typed
199 * \li Syntax: accent-underdot
201 { LFUN_ACCENT_UNDERDOT, "accent-underdot", Noop, Edit },
204 * \var lyx::kb_action lyx::LFUN_BREAK_PARAGRAPH
205 * \li Action: Breaks the current paragraph at the current location
206 * \li Syntax: break-paragraph
208 { LFUN_BREAK_PARAGRAPH, "break-paragraph", Noop, Edit },
210 * \var lyx::kb_action lyx::LFUN_BREAK_PARAGRAPH_SKIP
211 * \li Action: Breaks the current paragraph at the current location,
212 unless used at the beginning of a line, where it sets
213 the label width string to empty.
214 * \li Syntax: break-paragraph-skip
216 { LFUN_BREAK_PARAGRAPH_SKIP, "break-paragraph-skip", Noop, Edit },
218 * \var lyx::kb_action lyx::LFUN_CAPTION_INSERT
219 * \li Action: Inserts a caption inset.
220 * \li Syntax: caption-insert
222 { LFUN_CAPTION_INSERT, "caption-insert", Noop, Edit },
224 * \var lyx::kb_action lyx::LFUN_DATE_INSERT
225 * \li Action: Inserts the current date
226 * \li Syntax: date-insert <ARG>
227 * \li Param: <ARG>: Strangely, this is inserted verbatim, no matter
230 { LFUN_DATE_INSERT, "date-insert", Noop, Edit },
232 * \var lyx::kb_action lyx::LFUN_FOOTNOTE_INSERT
233 * \li Action: Inserts a footnote inset.
234 * \li Syntax: footnote-insert
236 { LFUN_FOOTNOTE_INSERT, "footnote-insert", Noop, Edit },
238 * \var lyx::kb_action lyx::LFUN_ERT_INSERT
239 * \li Action: Inserts an ERT inset.
240 * \li Syntax: ert-insert
242 { LFUN_ERT_INSERT, "ert-insert", Noop, Edit },
243 { LFUN_FLOAT_INSERT, "float-insert", Noop, Edit },
244 { LFUN_FLOAT_WIDE_INSERT, "float-wide-insert", Noop, Edit },
245 { LFUN_WRAP_INSERT, "wrap-insert", Noop, Edit },
247 * \var lyx::kb_action lyx::LFUN_HFILL_INSERT
248 * \li Action: Inserts an hfill inset.
249 * \li Syntax: hfill-insert
251 { LFUN_HFILL_INSERT, "hfill-insert", Noop, Edit },
253 * \var lyx::kb_action lyx::LFUN_OPTIONAL_INSERT
254 * \li Action: Inserts an optional-argument (short title) inset.
255 * \li Syntax: optional-insert
257 { LFUN_OPTIONAL_INSERT, "optional-insert", Noop, Edit },
259 * \var lyx::kb_action lyx::LFUN_LINE_INSERT
260 * \li Action: Inserts a horizontal line.
261 * \li Syntax: line-insert
263 { LFUN_LINE_INSERT, "line-insert", Noop, Edit },
265 * \var lyx::kb_action lyx::LFUN_NEWPAGE_INSERT
266 * \li Action: Inserts a new page.
267 * \li Syntax: newpage-insert
269 { LFUN_NEWPAGE_INSERT, "newpage-insert", Noop, Edit },
271 * \var lyx::kb_action lyx::LFUN_PAGEBREAK_INSERT
272 * \li Action: Inserts a pagebreak.
273 * \li Syntax: pagebreak-insert
275 { LFUN_PAGEBREAK_INSERT, "pagebreak-insert", Noop, Edit },
277 * \var lyx::kb_action lyx::LFUN_MARGINALNOTE_INSERT
278 * \li Action: Inserts a marginal note.
279 * \li Syntax: marginalnote-insert
281 { LFUN_MARGINALNOTE_INSERT, "marginalnote-insert", Noop, Edit },
283 * \var lyx::kb_action lyx::LFUN_UNICODE_INSERT
284 * \li Action: Inserts a single unicode character.
285 * \li Syntax: unicode-insert <CHAR>
286 * \li Params: <CHAR>: The character to insert, given as its code
287 point, in hexadecimal, e.g.: unicode-insert 0x0100.
289 { LFUN_UNICODE_INSERT, "unicode-insert", Noop, Edit },
291 * \var lyx::kb_action lyx::LFUN_LISTING_INSERT
292 * \li Action: Inserts a new listings inset.
293 * \li Syntax: listing-insert
295 { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
296 { LFUN_QUOTE_INSERT, "quote-insert", Noop, Edit },
297 { LFUN_INFO_INSERT, "info-insert", Noop, Edit },
298 { LFUN_BRANCH_INSERT, "branch-insert", Noop, Edit },
299 { LFUN_BOX_INSERT, "box-insert", Noop, Edit },
300 { LFUN_FLEX_INSERT, "flex-insert", Noop, Edit },
301 { LFUN_SELF_INSERT, "self-insert", SingleParUpdate, Hidden },
302 { LFUN_SPACE_INSERT, "space-insert", Noop, Edit },
303 { LFUN_HYPERLINK_INSERT, "href-insert", Noop, Edit },
304 { LFUN_SPECIALCHAR_INSERT, "specialchar-insert", Noop, Edit },
305 { LFUN_CLEARPAGE_INSERT, "clearpage-insert", Noop, Edit },
306 { LFUN_CLEARDOUBLEPAGE_INSERT, "cleardoublepage-insert", Noop, Edit },
307 { LFUN_TOC_INSERT, "toc-insert", Noop, Edit },
308 { LFUN_APPENDIX, "appendix", Noop, Edit },
311 { LFUN_LIST_INSERT, "list-insert", Noop, Edit },
312 { LFUN_THEOREM_INSERT, "theorem-insert", Noop, Edit },
315 { LFUN_DELETE_BACKWARD_SKIP, "delete-backward-skip", Noop, Edit },
316 { LFUN_DELETE_FORWARD_SKIP, "delete-forward-skip", Noop, Edit },
317 { LFUN_DOWN, "down", ReadOnly | NoUpdate, Edit },
318 { LFUN_DOWN_SELECT, "down-select", ReadOnly | SingleParUpdate, Edit },
319 { LFUN_UP, "up", ReadOnly | NoUpdate, Edit },
320 { LFUN_UP_SELECT, "up-select", ReadOnly | SingleParUpdate, Edit },
321 { LFUN_SCREEN_DOWN, "screen-down", ReadOnly, Edit },
322 { LFUN_SCREEN_DOWN_SELECT, "screen-down-select", ReadOnly, Edit },
324 * \var lyx::kb_action lyx::LFUN_SCROLL
325 * \li Action: scroll the buffer view
326 * \li Notion: Only scrolls the screen up or down; does not move the cursor.
327 * \li Syntax: scroll <TYPE> <QUANTITY>
328 * \li Params: <TYPE>: line|page\n
329 <QUANTITY>: up|down|<number>\n
330 * \li Origin: Abdelrazak Younes, Dec 27 2007
332 { LFUN_SCROLL, "scroll", ReadOnly, Edit },
334 * \var lyx::kb_action lyx::LFUN_SCREEN_RECENTER
335 * \li Action: Recenters the screen on the current cursor position
336 * \li Syntax: screen-recenter
338 { LFUN_SCREEN_RECENTER, "screen-recenter", ReadOnly, Edit },
339 { LFUN_SCREEN_UP, "screen-up", ReadOnly, Edit },
340 { LFUN_SCREEN_UP_SELECT, "screen-up-select", ReadOnly, Edit },
342 { LFUN_ERROR_NEXT, "error-next", ReadOnly, Edit },
343 { LFUN_CHAR_BACKWARD, "char-backward", ReadOnly | NoUpdate, Edit },
344 { LFUN_CHAR_BACKWARD_SELECT, "char-backward-select", ReadOnly | SingleParUpdate, Edit },
345 { LFUN_CHAR_DELETE_BACKWARD, "delete-backward", SingleParUpdate, Edit },
346 { LFUN_CHAR_DELETE_FORWARD, "delete-forward", SingleParUpdate, Edit },
347 { LFUN_CHAR_FORWARD, "char-forward", ReadOnly | NoUpdate, Edit },
348 { LFUN_CHAR_FORWARD_SELECT, "char-forward-select", ReadOnly | SingleParUpdate, Edit },
349 { LFUN_CHAR_LEFT, "char-left", ReadOnly | NoUpdate, Edit },
350 { LFUN_CHAR_LEFT_SELECT, "char-left-select", ReadOnly | SingleParUpdate, Edit },
351 { LFUN_CHAR_RIGHT, "char-right", ReadOnly | NoUpdate, Edit },
352 { LFUN_CHAR_RIGHT_SELECT, "char-right-select", ReadOnly | SingleParUpdate, Edit },
354 { LFUN_WORD_BACKWARD, "word-backward", ReadOnly | NoUpdate, Edit },
355 { LFUN_WORD_BACKWARD_SELECT, "word-backward-select", ReadOnly | SingleParUpdate, Edit },
356 { LFUN_WORD_CAPITALIZE, "word-capitalize", Noop, Edit },
357 { LFUN_WORD_DELETE_BACKWARD, "word-delete-backward", Noop, Edit },
358 { LFUN_WORD_DELETE_FORWARD, "word-delete-forward", Noop, Edit },
359 { LFUN_WORD_FIND_BACKWARD, "word-find-backward", ReadOnly, Edit },
360 { LFUN_WORD_FIND_FORWARD, "word-find-forward", ReadOnly, Edit },
361 { LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
362 { LFUN_WORD_FORWARD_SELECT, "word-forward-select", ReadOnly | SingleParUpdate, Edit },
363 { LFUN_WORD_LEFT, "word-left", ReadOnly | NoUpdate, Edit },
364 { LFUN_WORD_LEFT_SELECT, "word-left-select", ReadOnly | SingleParUpdate, Edit },
365 { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
366 { LFUN_WORD_RIGHT, "word-right", ReadOnly | NoUpdate, Edit },
367 { LFUN_WORD_RIGHT_SELECT, "word-right-select", ReadOnly | SingleParUpdate, Edit },
368 { LFUN_WORD_SELECT, "word-select", ReadOnly, Edit },
369 { LFUN_WORD_UPCASE, "word-upcase", Noop, Edit },
370 { LFUN_WORD_FIND, "word-find", ReadOnly, Edit },
371 { LFUN_WORD_REPLACE, "word-replace", Noop, Edit },
373 * \var lyx::kb_action lyx::LFUN_THESAURUS_ENTRY
374 * \li Action: Look up thesaurus entries with respect to the word under the cursor.
375 * \li Syntax: thesaurus-entry
376 * \li Origin: Levon, 20 Jul 2001
378 { LFUN_THESAURUS_ENTRY, "thesaurus-entry", ReadOnly, Edit },
379 { LFUN_BUFFER_BEGIN, "buffer-begin", ReadOnly, Edit },
380 { LFUN_BUFFER_BEGIN_SELECT, "buffer-begin-select", ReadOnly, Edit },
381 { LFUN_BUFFER_END, "buffer-end", ReadOnly, Edit },
382 { LFUN_BUFFER_END_SELECT, "buffer-end-select", ReadOnly, Edit },
384 { LFUN_LINE_BEGIN, "line-begin", ReadOnly | NoUpdate, Edit },
385 { LFUN_LINE_BEGIN_SELECT, "line-begin-select", ReadOnly | SingleParUpdate, Edit },
386 { LFUN_LINE_BREAK, "line-break", Noop, Edit },
387 { LFUN_LINE_DELETE, "line-delete-forward", Noop, Edit }, // there is no line-delete-backward
388 { LFUN_LINE_END, "line-end", ReadOnly | NoUpdate, Edit },
389 { LFUN_LINE_END_SELECT, "line-end-select", ReadOnly | SingleParUpdate, Edit },
390 { LFUN_NEW_LINE, "new-line", Noop, Edit },
393 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_MOVE_DOWN
394 * \li Action: Moves the current paragraph downwards in the document.
395 * \li Syntax: paragraph-move-down
396 * \li Origin: Edwin, 8 Apr 2006
398 { LFUN_PARAGRAPH_MOVE_DOWN, "paragraph-move-down", Noop, Edit },
400 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_MOVE_UP
401 * \li Action: Moves the current paragraph upwards in the document.
402 * \li Syntax: paragraph-move-up
403 * \li Origin: Edwin, 8 Apr 2006
405 { LFUN_PARAGRAPH_MOVE_UP, "paragraph-move-up", Noop, Edit },
407 * \var lyx::kb_action lyx::LFUN_COPY
408 * \li Action: Copies to the clipboard the last edit
411 { LFUN_COPY, "copy", ReadOnly, Edit },
413 * \var lyx::kb_action lyx::LFUN_CUT
414 * \li Action: Cuts to the clipboard
417 { LFUN_CUT, "cut", Noop, Edit },
419 * \var lyx::kb_action lyx::LFUN_PASTE
420 * \li Action: Pastes from the active clipboard
423 { LFUN_PASTE, "paste", Noop, Edit },
424 { LFUN_CLIPBOARD_PASTE, "clipboard-paste", Noop, Edit },
426 * \var lyx::kb_action lyx::LFUN_PRIMARY_SELECTION_PASTE
427 * \li Action: Pastes the material currently selected
428 * \li Syntax: primary-selection-paste
430 { LFUN_PRIMARY_SELECTION_PASTE, "primary-selection-paste", Noop, Edit },
432 * \var lyx::kb_action lyx::LFUN_UNDO
433 * \li Action: Undoes the last edit
436 { LFUN_UNDO, "undo", Noop, Edit },
438 * \var lyx::kb_action lyx::LFUN_REDO
439 * \li Action: Redoes the last thing undone
442 { LFUN_REDO, "redo", Noop, Edit },
443 { LFUN_REPEAT, "repeat", NoBuffer, Edit },
444 { LFUN_CHARS_TRANSPOSE, "chars-transpose", Noop, Edit },
446 { LFUN_DEPTH_DECREMENT, "depth-decrement", Noop, Edit },
447 { LFUN_DEPTH_INCREMENT, "depth-increment", Noop, Edit },
448 { LFUN_ENVIRONMENT_INSERT, "environment-insert", Noop, Edit },
450 { LFUN_FONT_BOLD, "font-bold", Noop, Layout },
451 { LFUN_FONT_TYPEWRITER, "font-typewriter", Noop, Layout },
452 { LFUN_FONT_DEFAULT, "font-default", Noop, Layout },
453 { LFUN_FONT_EMPH, "font-emph", Noop, Layout },
454 { LFUN_FONT_FREE_APPLY, "font-free-apply", Noop, Layout },
455 { LFUN_FONT_FREE_UPDATE, "font-free-update", Noop, Layout },
456 { LFUN_FONT_NOUN, "font-noun", Noop, Layout },
457 { LFUN_FONT_ROMAN, "font-roman", Noop, Layout },
458 { LFUN_FONT_SANS, "font-sans", Noop, Layout },
459 { LFUN_FONT_FRAK, "font-frak", Noop, Layout },
460 { LFUN_FONT_ITAL, "font-ital", Noop, Layout },
461 { LFUN_FONT_SIZE, "font-size", Noop, Layout },
462 { LFUN_FONT_STATE, "font-state", ReadOnly, Layout },
463 { LFUN_FONT_UNDERLINE, "font-underline", Noop, Layout },
464 { LFUN_SCREEN_FONT_UPDATE, "screen-font-update", NoBuffer, Layout },
466 { LFUN_INDEX_INSERT, "index-insert", Noop, Edit },
467 { LFUN_INDEX_PRINT, "index-print", Noop, Edit },
469 { LFUN_NOMENCL_INSERT, "nomencl-insert", Noop, Edit },
470 { LFUN_NOMENCL_PRINT, "nomencl-print", Noop, Edit },
472 { LFUN_NOTE_INSERT, "note-insert", Noop, Edit },
473 { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
475 { LFUN_BIBITEM_INSERT, "bibitem-insert", Noop, Edit },
476 { LFUN_CITATION_INSERT, "citation-insert", Noop, Edit },
477 { LFUN_BIBTEX_DATABASE_ADD, "bibtex-database-add", Noop, Edit },
478 { LFUN_BIBTEX_DATABASE_DEL, "bibtex-database-del", Noop, Edit },
481 * \var lyx::kb_action lyx::LFUN_LAYOUT
482 * \li Action: Sets the layout (that is, environment) for the current paragraph
483 * \li Syntax: layout <LAYOUT>
484 * \li Params: <LAYOUT>: the layout to use
486 { LFUN_LAYOUT, "layout", Noop, Layout },
488 * \var lyx::kb_action lyx::LFUN_LAYOUT_PARAGRAPH
489 * \li Action: Launches the paragraph settings dialog
490 * \li Syntax: layout-paragraph
492 { LFUN_LAYOUT_PARAGRAPH, "layout-paragraph", ReadOnly, Layout },
493 { LFUN_LAYOUT_TABULAR, "layout-tabular", Noop, Layout },
495 * \var lyx::kb_action lyx::LFUN_DROP_LAYOUTS_CHOICE
496 * \li Action: Displays list of layout choices
497 * \li Notion: In the current (as of 2007) Qt4 frontend, this LFUN opens the
498 dropbox allowing for choice of layout
499 * \li Syntax: drop-layouts-choice
501 { LFUN_DROP_LAYOUTS_CHOICE, "drop-layouts-choice", ReadOnly, Layout },
503 * \var lyx::kb_action lyx::LFUN_LAYOUT_MODULES_CLEAR
504 * \li Action: Clears the module list
505 * \li Notion: Clears the list of included modules for the current buffer.
506 * \li Syntax: layout-modules-clear
507 * \li Origin: rgh, 25 August 2007
509 { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout },
511 * \var lyx::kb_action lyx::LFUN_LAYOUT_MODULE_ADD
512 * \li Action: Adds a module
513 * \li Notion: Adds a module to the list of included modules for the current buffer.
514 * \li Syntax: layout-module-add <MODULE>
515 * \li Params: <MODULE>: the module to be added
516 * \li Origin: rgh, 25 August 2007
518 { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout },
520 * \var lyx::kb_action lyx::LFUN_LAYOUT_RELOAD
521 * \li Action: Reloads layout information
522 * \li Notion: Reloads all layout information for the current buffer from disk, thus
523 recognizing any changes that have been made to layout files on the fly.
524 This is intended to be used only by layout developers and should not be
525 used when one is trying to do actual work.
526 * \li Syntax: layout-reload
527 * \li Origin: rgh, 3 September 2007
529 { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout },
531 * \var lyx::kb_action lyx::LFUN_TEXTCLASS_APPLY
532 * \li Action: Sets the text class for the current buffer
533 * \li Syntax: textclass-apply <TEXTCLASS>
534 * \li Params: <TEXTCLASS>: the textclass to set. Note that this must be
535 the filename, minus the ".layout" extension.
537 { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout },
539 * \var lyx::kb_action lyx::LFUN_TEXTCLASS_LOAD
540 * \li Action: Loads information for a textclass from disk
541 * \li Syntax: textclass-load <TEXTCLASS>
542 * \li Params: <TEXTCLASS>: the textclass to load. Note that this must be
543 the filename, minus the ".layout" extension.
545 { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout },
548 * \var lyx::kb_action lyx::LFUN_MARK_OFF
549 * \li Action: Disable selecting of text-region.
550 * \li Syntax: mark-off
552 { LFUN_MARK_OFF, "mark-off", ReadOnly, Edit },
554 * \var lyx::kb_action lyx::LFUN_MARK_ON
555 * \li Action: Enable selecting of text-region.
556 * \li Notion: After enabling you can simply move arrow keys to get selected region.
557 * \li Syntax: mark-on
559 { LFUN_MARK_ON, "mark-on", ReadOnly, Edit },
561 * \var lyx::kb_action lyx::LFUN_MARK_TOGGLE
562 * \li Action: Toggle between #LFUN_MARK_ON and #LFUN_MARK_OFF .
563 * \li Syntax: mark-toggle
564 * \li Origin: poenitz, May 5 2006
566 { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
568 { LFUN_MATH_DELIM, "math-delim", Noop, Math },
569 { LFUN_MATH_BIGDELIM, "math-bigdelim", Noop, Math },
570 { LFUN_MATH_DISPLAY, "math-display", Noop, Math },
571 { LFUN_MATH_INSERT, "math-insert", Noop, Math },
572 { LFUN_MATH_SUBSCRIPT, "math-subscript", Noop, Math },
573 { LFUN_MATH_SUPERSCRIPT, "math-superscript", Noop, Math },
574 { LFUN_MATH_LIMITS, "math-limits", Noop, Math },
575 { LFUN_MATH_MACRO, "math-macro", Noop, Math },
576 { LFUN_MATH_MUTATE, "math-mutate", Noop, Math },
577 { LFUN_MATH_SPACE, "math-space", Noop, Math },
578 { LFUN_MATH_IMPORT_SELECTION, "math-import-selection", Noop, Math },
579 { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
580 { LFUN_MATH_MODE, "math-mode", Noop, Math },
582 * \var lyx::kb_action lyx::LFUN_MATH_NUMBER_LINE_TOGGLE
583 * \li Action: Toggles numbering of the current formula line.
584 * \li Notion: Must be in display formula mode.
585 * \li Syntax: math-number-line-toggle
586 * \li Origin: Alejandro 18 Jun 1996
588 { LFUN_MATH_NUMBER_LINE_TOGGLE, "math-number-line-toggle", Noop, Math },
590 * \var lyx::kb_action lyx::LFUN_MATH_NUMBER_TOGGLE
591 * \li Action: Toggles numbering of the current formula.
592 * \li Notion: Must be in display formula mode.
593 * \li Syntax: math-number-toggle
594 * \li Origin: Alejandro 4 Jun 1996
596 { LFUN_MATH_NUMBER_TOGGLE, "math-number-toggle", Noop, Math },
597 { LFUN_MATH_EXTERN, "math-extern", Noop, Math },
598 { LFUN_MATH_SIZE, "math-size", Noop, Math },
600 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_UNFOLD
601 * \li Action: Unfold a Math Macro
602 * \li Notion: Unfold the Math Macro the cursor is in, i.e.
604 * \li Syntax: math-macro-unfold
605 * \li Origin: sts, 06 January 2008
607 { LFUN_MATH_MACRO_UNFOLD, "math-macro-unfold", ReadOnly | SingleParUpdate, Math },
609 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_FOLD
610 * \li Action: Fold a Math Macro
611 * \li Notion: Fold the Math Macro the cursor is in if it was
612 unfolded, i.e. displayed as \foo before.
613 * \li Syntax: math-macro-fold
614 * \li Origin: sts, 06 January 2008
616 { LFUN_MATH_MACRO_FOLD, "math-macro-fold", ReadOnly | SingleParUpdate, Math },
618 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_PARAM
619 * \li Action: Add a parameter
620 * \li Notion: Add a parameter to a Math Macro
621 * \li Params: <NUM>: The number of the parameter behind which the new one
622 will be added (1 for the first, i.e. use 0 for add a
623 parameter at the left), defaults to the last one.
624 * \li Syntax: math-macro-add-param <NUM>
625 * \li Origin: sts, 06 January 2008
627 { LFUN_MATH_MACRO_ADD_PARAM, "math-macro-add-param", Noop, Math },
629 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_PARAM
630 * \li Action: Remove the last parameter
631 * \li Notion: Remove the last parameter of a Math Macro and
632 remove its value in all instances of the macro
634 * \li Params: <NUM>: The number of the parameter to be deleted (1 for
635 the first), defaults to the last one.
636 * \li Syntax: math-macro-remove-param <NUM>
637 * \li Origin: sts, 06 January 2008
639 { LFUN_MATH_MACRO_REMOVE_PARAM, "math-macro-remove-param", Noop, Math },
641 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_APPEND_GREEDY_PARAM
642 * \li Action: Append a greedy parameter
643 * \li Notion: Append a greedy parameter to a Math Macro which
644 eats the following mathed cell in every instance of
645 the macro in the buffer.
646 * \li Syntax: math-macro-append-greedy-param
647 * \li Origin: sts, 06 January 2008
649 { LFUN_MATH_MACRO_APPEND_GREEDY_PARAM, "math-macro-append-greedy-param", Noop, Math },
651 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM
652 * \li Action: Remove a greedy parameter
653 * \li Notion: Remove a greedy parameter of a Math Macro and spit
654 out the values of it in every instance of the macro
655 in the buffer. If it is an optional parameter the [valud]
657 * \li Syntax: math-macro-remove-greedy-param
658 * \li Origin: sts, 06 January 2008
660 { LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM, "math-macro-remove-greedy-param", Noop, Math },
662 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_MAKE_OPTIONAL
663 * \li Action: Make a parameter optional
664 * \li Notion: Turn the first non-optional parameter of a Math Macro
665 into an optional parameter with a default value.
666 * \li Syntax: math-macro-make-optional
667 * \li Origin: sts, 06 January 2008
669 { LFUN_MATH_MACRO_MAKE_OPTIONAL, "math-macro-make-optional", Noop, Math },
671 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_MAKE_NONOPTIONAL
672 * \li Action: Make a parameter non-optional
673 * \li Notion: Turn the last optional parameter of a Math Macro
674 into a non-optional parameter. The default value is
675 remembered to be reused later if the user changes his mind.
676 * \li Syntax: math-macro-make-nonoptional
677 * \li Origin: sts, 06 January 2008
679 { LFUN_MATH_MACRO_MAKE_NONOPTIONAL, "math-macro-make-nonoptional", Noop, Math },
681 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM
682 * \li Action: Add an optional parameter
683 * \li Notion: Insert an optional parameter just behind the
684 already existing optional parameters.
685 * \li Syntax: math-macro-add-optional-param
686 * \li Origin: sts, 06 January 2008
688 { LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM, "math-macro-add-optional-param", Noop, Math },
690 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM
691 * \li Action: Remove the last optional parameter
692 * \li Notion: Remove the last optional parameter of a Math Macro and
693 remove it in all the instances of the macro in the buffer.
694 * \li Syntax: math-macro-remove-optional-param
695 * \li Origin: sts, 06 January 2008
697 { LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM, "math-macro-remove-optional-param", Noop, Math },
699 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM
700 * \li Action: Add a greedy optional parameter
701 * \li Notion: Add a greedy optional parameter which eats the value
702 from the following cells in mathed which are in the [value]
704 * \li Syntax: math-macro-add-greedy-optional-param
705 * \li Origin: sts, 06 January 2008
707 { LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM, "math-macro-add-greedy-optional-param", Noop, Math },
709 * \var lyx::kb_action lyx::LFUN_IN_MATHMACROTEMPLATE
710 * \li Action: Only active in Math Macro definition
711 * \li Notion: Dummy function which is only active in a Math Macro definition.
712 It's used to toggle the Math Macro toolbar if the cursor moves
713 into a Math Macro definition.
714 * \li Syntax: in-mathmacrotemplate
715 * \li Origin: sts, 06 January 2008
717 { LFUN_IN_MATHMACROTEMPLATE, "in-mathmacrotemplate", Noop, Math },
719 { LFUN_PARAGRAPH_DOWN, "paragraph-down", ReadOnly | NoUpdate, Edit },
720 { LFUN_PARAGRAPH_DOWN_SELECT, "paragraph-down-select", ReadOnly, Edit },
721 { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit },
723 * \var lyx::kb_action lyx::LFUN_OUTLINE_UP
724 * \li Action: Move the current group in the upward direction in the
725 structure of the document.
726 * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
727 the whole substructure of the group.
728 * \li Syntax: outline-up
729 * \li Origin: Vermeer, 23 Mar 2006
731 { LFUN_OUTLINE_UP, "outline-up", Noop, Edit },
733 * \var lyx::kb_action lyx::LFUN_OUTLINE_DOWN
734 * \li Action: Move the current group in the downward direction in the
735 structure of the document.
736 * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
737 the whole substructure of the group.
738 * \li Syntax: outline-down
739 * \li Origin: Vermeer, 23 Mar 2006
741 { LFUN_OUTLINE_DOWN, "outline-down", Noop, Edit },
743 * \var lyx::kb_action lyx::LFUN_OUTLINE_IN
744 * \li Action: Moves the current group in the downward direction in the
745 hierarchy of the document structure.
746 * \li Notion: Part -> Chapter -> Section -> etc.
747 * \li Syntax: outline-in
748 * \li Origin: Vermeer, 23 Mar 2006
750 { LFUN_OUTLINE_IN, "outline-in", Noop, Edit },
752 * \var lyx::kb_action lyx::LFUN_OUTLINE_OUT
753 * \li Action: Moves the current group in the upward direction in the
754 hierarchy of the document structure.
755 * \li Notion: Part <- Chapter <- Section <- etc.
756 * \li Syntax: outline-out
757 * \li Origin: Vermeer, 23 Mar 2006
759 { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
761 { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit },
762 { LFUN_PARAGRAPH_UP, "paragraph-up", ReadOnly | NoUpdate, Edit },
763 { LFUN_PARAGRAPH_UP_SELECT, "paragraph-up-select", ReadOnly, Edit },
765 { LFUN_EXTERNAL_EDIT, "external-edit", Noop, Edit },
766 { LFUN_GRAPHICS_EDIT, "graphics-edit", Noop, Edit },
768 { LFUN_CELL_BACKWARD, "cell-backward", Noop, Edit },
769 { LFUN_CELL_FORWARD, "cell-forward", Noop, Edit },
770 { LFUN_CELL_SPLIT, "cell-split", Noop, Edit },
771 { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
772 { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
774 { LFUN_VC_CHECK_IN, "vc-check-in", ReadOnly, System },
775 { LFUN_VC_CHECK_OUT, "vc-check-out", ReadOnly, System },
776 { LFUN_VC_REGISTER, "vc-register", ReadOnly, System },
777 { LFUN_VC_REVERT, "vc-revert", ReadOnly, System },
778 { LFUN_VC_UNDO_LAST, "vc-undo-last", ReadOnly, System },
780 { LFUN_CHANGES_TRACK, "changes-track", Noop, Edit },
781 { LFUN_CHANGES_OUTPUT, "changes-output", Noop, Edit },
782 { LFUN_CHANGE_NEXT, "change-next", ReadOnly, Edit },
783 { LFUN_CHANGES_MERGE, "changes-merge", Noop, Edit },
784 { LFUN_CHANGE_ACCEPT, "change-accept", Noop, Edit },
785 { LFUN_CHANGE_REJECT, "change-reject", Noop, Edit },
786 { LFUN_ALL_CHANGES_ACCEPT, "all-changes-accept", Noop, Edit },
787 { LFUN_ALL_CHANGES_REJECT, "all-changes-reject", Noop, Edit },
789 { LFUN_INSET_APPLY, "inset-apply", Noop, Edit },
790 { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit },
791 { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
792 { LFUN_INSET_MODIFY, "", Noop, Hidden },
793 { LFUN_INSET_DIALOG_UPDATE, "", Noop, Hidden },
794 { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly, Edit },
795 { LFUN_INSET_REFRESH, "", Noop, Hidden },
796 { LFUN_NEXT_INSET_TOGGLE, "next-inset-toggle", ReadOnly, Edit },
797 { LFUN_INSET_TOGGLE, "", ReadOnly, Hidden },
798 { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
801 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_PARAMS
802 * \li Action: Change paragraph settings
803 * \li Notion: Modifies the current paragraph, or currently selected paragraphs.
804 This function only modifies, and does not override, existing settings.
805 Note that the "leftindent" indent setting is deprecated.
806 * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
807 * \li Params: <INDENT>: \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
808 <SPACING>: \\paragraph_spacing default|single|onehalf|double|other\n
809 <ALIGN>: \\align block|left|right|center|default\n
810 <OTHERS>: \\labelwidthstring WIDTH|\\start_of_appendix\n
811 * \li Origin: rgh, Aug 15 2007
813 { LFUN_PARAGRAPH_PARAMS, "paragraph-params", Noop, Edit },
815 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_PARAMS_APPLY
816 * \li Action: Change paragraph settings.
817 * \li Notion: Overwrite all nonspecified settings to the default ones.
818 Use paragraph-params lfun if you don't want to overwrite others settings.
819 * \li Syntax: paragraph-params-apply <INDENT> <SPACING> <ALIGN> <OTHERS>
820 * \li Params: For parameters see LFUN_PARAGRAPH_PARAMS
821 * \li Origin: leeming, 30 Mar 2004
823 { LFUN_PARAGRAPH_PARAMS_APPLY, "paragraph-params-apply", Noop, Edit },
824 { LFUN_PARAGRAPH_UPDATE, "", Noop, Hidden },
826 { LFUN_FINISHED_FORWARD, "", ReadOnly, Hidden },
827 { LFUN_FINISHED_BACKWARD, "", ReadOnly, Hidden },
828 { LFUN_FINISHED_RIGHT, "", ReadOnly, Hidden },
829 { LFUN_FINISHED_LEFT, "", ReadOnly, Hidden },
831 { LFUN_LANGUAGE, "language", Noop, Edit },
833 { LFUN_LABEL_GOTO, "label-goto", ReadOnly, Edit },
834 { LFUN_LABEL_INSERT, "label-insert", Noop, Edit },
835 { LFUN_REFERENCE_NEXT, "reference-next", ReadOnly, Edit },
838 * \var lyx::kb_action lyx::LFUN_BOOKMARK_GOTO
839 * \li Action: Goto a bookmark
840 * \li Notion: Moves the cursor to the numbered bookmark, opening the file
841 if necessary. Note that bookmarsk are saved per-session, not
843 * \li Syntax: bookmark-goto <NUMBER>
844 * \li Params: <NUMBER>: the number of the bookmark to restore.
845 * \li Origin: Dekel, 27 January 2001
847 { LFUN_BOOKMARK_GOTO, "bookmark-goto", NoBuffer, Edit },
849 * \var lyx::kb_action lyx::LFUN_BOOKMARK_SAVE
850 * \li Action: Save a bookmark
851 * \li Notion: Saves a numbered bookmark to the sessions file. The number
852 must be between 1 and 9, inclusive. Note that bookmarks are
853 saved per-session, not per file.
854 * \li Syntax: bookmark-save <NUMBER>
855 * \li Params: <NUMBER>: the number of the bookmark to save.
856 * \li Origin: Dekel, 27 January 2001
858 { LFUN_BOOKMARK_SAVE, "bookmark-save", ReadOnly, Edit },
860 * \var lyx::kb_action lyx::LFUN_BOOKMARK_CLEAR
861 * \li Action: Clears the list of saved bookmarks
862 * \li Syntax: bookmark-clear
863 * \li Origin: bpeng, 31 October 2006
865 { LFUN_BOOKMARK_CLEAR, "bookmark-clear", NoBuffer, Edit },
867 { LFUN_HELP_OPEN, "help-open", NoBuffer | Argument, Buffer },
869 * \var lyx::kb_action lyx::LFUN_LYX_QUIT
870 * \li Action: Terminates the current LyX instance
871 * \li Notion: Terminates the current LyX instance, asking whether to save
872 modified documents, etc.
873 * \li Syntax: lyx-quit
875 { LFUN_LYX_QUIT, "lyx-quit", NoBuffer, Buffer },
876 { LFUN_TOOLBAR_TOGGLE, "toolbar-toggle", NoBuffer, Buffer },
877 { LFUN_MENU_OPEN, "menu-open", NoBuffer, Buffer },
879 { LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
880 { LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
882 { LFUN_DIALOG_SHOW, "dialog-show", NoBuffer, Edit },
883 { LFUN_DIALOG_SHOW_NEW_INSET, "dialog-show-new-inset", Noop, Edit },
884 { LFUN_DIALOG_UPDATE, "dialog-update", NoBuffer, Edit },
885 { LFUN_DIALOG_HIDE, "dialog-hide", NoBuffer, Edit },
886 { LFUN_DIALOG_TOGGLE, "dialog-toggle", NoBuffer, Edit },
887 { LFUN_DIALOG_DISCONNECT_INSET, "dialog-disconnect-inset", Noop, Edit },
889 { LFUN_MOUSE_PRESS, "", ReadOnly, Hidden },
890 { LFUN_MOUSE_MOTION, "", ReadOnly | SingleParUpdate, Hidden },
891 { LFUN_MOUSE_RELEASE, "", ReadOnly, Hidden },
892 { LFUN_MOUSE_DOUBLE, "", ReadOnly, Hidden },
893 { LFUN_MOUSE_TRIPLE, "", ReadOnly, Hidden },
895 { LFUN_KEYMAP_OFF, "keymap-off", ReadOnly, Edit },
896 { LFUN_KEYMAP_PRIMARY, "keymap-primary", ReadOnly, Edit },
897 { LFUN_KEYMAP_SECONDARY, "keymap-secondary", ReadOnly, Edit },
898 { LFUN_KEYMAP_TOGGLE, "keymap-toggle", ReadOnly, Edit },
900 { LFUN_MESSAGE, "message", NoBuffer, System },
901 { LFUN_FLOAT_LIST, "float-list", Noop, Edit },
902 { LFUN_ESCAPE, "escape", ReadOnly, Edit },
904 { LFUN_SERVER_CHAR_AFTER, "server-char-after", ReadOnly, System },
905 { LFUN_SERVER_GET_FONT, "server-get-font", ReadOnly, System },
906 { LFUN_SERVER_GET_LAYOUT, "server-get-layout", ReadOnly, System },
907 { LFUN_SERVER_GET_NAME, "server-get-name", ReadOnly, System },
908 { LFUN_SERVER_GET_XY, "server-get-xy", ReadOnly, System },
909 { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
910 { LFUN_SERVER_NOTIFY, "server-notify", ReadOnly, System },
911 { LFUN_SERVER_SET_XY, "server-set-xy", ReadOnly, System },
913 { LFUN_BUILD_PROGRAM, "build-program", ReadOnly, Buffer },
916 * \var lyx::kb_action lyx::LFUN_BUFFER_AUTO_SAVE
917 * \li Action: Saves the current buffer to a temporary file
918 * \li Notion: Saves the current buffer to a file named "#filename#". This LFUN
919 is called automatically by LyX, to "autosave" the current buffer.
920 * \li Syntax: buffer-auto-save
922 { LFUN_BUFFER_AUTO_SAVE, "buffer-auto-save", Noop, Buffer },
923 { LFUN_BUFFER_CHILD_OPEN, "buffer-child-open", ReadOnly, Buffer },
924 { LFUN_BUFFER_CHKTEX, "buffer-chktex", ReadOnly, Buffer },
925 { LFUN_BUFFER_TOGGLE_COMPRESSION, "buffer-toggle-compression", Noop, Buffer },
926 { LFUN_BUFFER_TOGGLE_EMBEDDING, "buffer-toggle-embedding", Noop, Buffer },
928 * \var lyx::kb_action lyx::LFUN_BUFFER_CLOSE
929 * \li Action: Closes the current buffer
930 * \li Notion: Closes the current buffer, asking whether to save it, etc,
931 if the buffer has been modified.
932 * \li Syntax: buffer-close
934 { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
935 { LFUN_BUFFER_EXPORT, "buffer-export", ReadOnly, Buffer },
936 { LFUN_BUFFER_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly, Buffer },
937 { LFUN_BUFFER_PRINT, "buffer-print", ReadOnly, Buffer },
938 { LFUN_BUFFER_IMPORT, "buffer-import", NoBuffer, Buffer },
940 * \var lyx::kb_action lyx::LFUN_BUFFER_NEW
941 * \li Action: Creates a new buffer (that is, document)
942 * \li Syntax: buffer-new
944 { LFUN_BUFFER_NEW, "buffer-new", NoBuffer, Buffer },
945 { LFUN_BUFFER_NEW_TEMPLATE,"buffer-new-template", NoBuffer, Buffer },
946 { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
947 { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
948 { LFUN_BUFFER_TOGGLE_READ_ONLY, "buffer-toggle-read-only", ReadOnly, Buffer },
949 { LFUN_BUFFER_UPDATE, "buffer-update", ReadOnly, Buffer },
951 * \var lyx::kb_action lyx::LFUN_BUFFER_VIEW
952 * \li Action: Displays current buffer in chosen format
953 * \li Notion: Displays the contents of the current buffer in the chosen
954 format, for example, PDF or DVI. This runs the necessary
955 converter, calls the defined viewer, and so forth.
956 * \li Syntax: buffer-view <FORMAT>
957 * \li Params: <FORMAT>: The format to display, where this is one of the
958 formats defined (in the current GUI) in the
959 Tools>Preferences>File Formats dialog.
961 { LFUN_BUFFER_VIEW, "buffer-view", ReadOnly, Buffer },
963 * \var lyx::kb_action lyx::LFUN_BUFFER_WRITE
964 * \li Action: Saves the current buffer
965 * \li Notion: Saves the current buffer to disk, using the filename that
966 is already associated with the buffer, asking for one if
967 none is yet assigned.
968 * \li Syntax: buffer-write
970 { LFUN_BUFFER_WRITE, "buffer-write", ReadOnly, Buffer },
972 * \var lyx::kb_action lyx::LFUN_BUFFER_WRITE_AS
973 * \li Action: Rename and save current buffer.
974 * \li Syntax: buffer-write-as <FILENAME>
975 * \li Params: <FILENAME>: New name of the buffer/file. A relative path
976 * is with respect to the original location of the buffer/file.
978 { LFUN_BUFFER_WRITE_AS, "buffer-write-as", ReadOnly, Buffer },
979 { LFUN_BUFFER_WRITE_ALL, "buffer-write-all", ReadOnly, Buffer },
980 { LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
981 { LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
982 { LFUN_MASTER_BUFFER_UPDATE, "master-buffer-update", ReadOnly, Buffer },
983 { LFUN_MASTER_BUFFER_VIEW, "master-buffer-view", ReadOnly, Buffer },
984 { LFUN_BUFFER_LANGUAGE, "buffer-language", Noop, Buffer },
985 { LFUN_BUFFER_SAVE_AS_DEFAULT, "buffer-save-as-default", Noop, Buffer },
986 { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer },
988 { LFUN_FILE_INSERT, "file-insert", Noop, Edit },
989 { LFUN_FILE_INSERT_PLAINTEXT, "file-insert-plaintext", Noop, Edit },
990 { LFUN_FILE_INSERT_PLAINTEXT_PARA, "file-insert-plaintext-para", Noop, Edit },
991 { LFUN_FILE_NEW, "file-new", NoBuffer, Buffer },
992 { LFUN_FILE_OPEN, "file-open", NoBuffer, Buffer },
994 { LFUN_META_PREFIX, "meta-prefix", NoBuffer, System },
997 * \var lyx::kb_action lyx::LFUN_CALL
998 * \li Action: Executes a command defined in a .def file.
999 * \li Notion: The definitions are by default read from lib/commands/default.def .
1000 A .def file allows to define a command with \\define "<NAME>" "<LFUN>"
1001 where <NAME> is the name of the new command and <LFUN> is the lfun code
1002 to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
1003 \\def_file "FileName" allows to include another .def file. \n
1004 This is particularly useful in connection with toolbar buttons:
1005 Since the name of the button image for this lfun is
1006 lib/images/commands/<NAME>.png this is the way to assign an image
1007 to a complex command-sequence.
1008 * \li Syntax: call <NAME>
1009 * \li Params: <NAME>: Name of the command that must be called.
1010 * \li Origin: broider, 2 Oct 2007
1012 { LFUN_CALL, "call", NoBuffer, System },
1013 { LFUN_CANCEL, "cancel", NoBuffer, System },
1015 { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
1016 { LFUN_COMMAND_PREFIX, "command-prefix", NoBuffer, Hidden },
1017 { LFUN_COMMAND_SEQUENCE, "command-sequence", NoBuffer, System },
1020 * \var lyx::kb_action lyx::LFUN_PREFERENCES_SAVE
1021 * \li Action: Save user preferences.
1022 * \li Syntax: preferences-save
1023 * \li Origin: Lgb, 27 Nov 1999
1025 { LFUN_PREFERENCES_SAVE, "preferences-save", NoBuffer, System },
1027 * \var lyx::kb_action lyx::LFUN_RECONFIGURE
1028 * \li Action: Reconfigure the automatic settings.
1029 * \li Syntax: reconfigure
1030 * \li Origin: Asger, 14 Feb 1997
1032 { LFUN_RECONFIGURE, "reconfigure", NoBuffer, System },
1033 { LFUN_LYXRC_APPLY, "lyxrc-apply", NoBuffer, System },
1035 * \var lyx::kb_action lyx::LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR
1036 * \li Action: Determine whether keep cursor inside the editing window regardless
1037 the scrollbar movement.
1038 * \li Syntax: toggle-cursor-follows-scrollbar
1039 * \li Origin: ARRae, 2 Dec 1997
1041 { LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, "toggle-cursor-follows-scrollbar", ReadOnly, System },
1043 * \var lyx::kb_action lyx::LFUN_SET_COLOR
1044 * \li Action: Set the given LyX color to the color defined by the X11 name given.
1045 * \li Notion: A new color entry is created if the color is unknown.
1046 Color names can be stored as a part of user settings.
1047 * \li Syntax: set-color <LYX_NAME> <X11_NAME>
1048 * \li Origin: SLior, 11 Jun 2000
1050 { LFUN_SET_COLOR, "set-color", ReadOnly | NoBuffer, System },
1052 * \var lyx::kb_action lyx::LFUN_STATISTICS
1053 * \li Action: Count the statistics (number of words and characters)
1054 in the document or in the given selection.
1055 * \li Notion: Note that this function gives the number of words/chars written,
1056 not the number of characters which will be typeset.
1057 * \li Syntax: statistics
1058 * \li Origin: lasgouttes, Jan 27 2004; ps, Jan 8 2008
1060 { LFUN_STATISTICS, "statistics", ReadOnly, System },
1062 { LFUN_NOACTION, "", Noop, Hidden }
1063 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1066 for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
1067 newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
1074 LyXAction::LyXAction()
1080 // Returns an action tag from a string.
1081 FuncRequest LyXAction::lookupFunc(string const & func) const
1083 string const func2 = trim(func);
1085 if (func2.empty()) {
1086 return FuncRequest(LFUN_NOACTION);
1090 string const arg = split(func2, cmd, ' ');
1092 func_map::const_iterator fit = lyx_func_map.find(cmd);
1094 return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
1098 string const LyXAction::getActionName(kb_action action) const
1100 info_map::const_iterator const it = lyx_info_map.find(action);
1101 return it != lyx_info_map.end() ? it->second.name : string();
1105 LyXAction::func_type const LyXAction::getActionType(kb_action action) const
1107 info_map::const_iterator const it = lyx_info_map.find(action);
1108 return it != lyx_info_map.end() ? it->second.type : Hidden;
1112 bool LyXAction::funcHasFlag(kb_action action,
1113 LyXAction::func_attrib flag) const
1115 info_map::const_iterator ici = lyx_info_map.find(action);
1117 if (ici == lyx_info_map.end()) {
1118 LYXERR0("action: " << action << " is not known.");
1119 BOOST_ASSERT(false);
1122 return ici->second.attrib & flag;
1126 LyXAction::const_func_iterator LyXAction::func_begin() const
1128 return lyx_func_map.begin();
1132 LyXAction::const_func_iterator LyXAction::func_end() const
1134 return lyx_func_map.end();