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.
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[] = {
105 { LFUN_ACCENT_ACUTE, "accent-acute", Noop, Edit },
106 { LFUN_ACCENT_BREVE, "accent-breve", Noop, Edit },
107 { LFUN_ACCENT_CARON, "accent-caron", Noop, Edit },
108 { LFUN_ACCENT_CEDILLA, "accent-cedilla", Noop, Edit },
109 { LFUN_ACCENT_CIRCLE, "accent-circle", Noop, Edit },
110 { LFUN_ACCENT_CIRCUMFLEX, "accent-circumflex", Noop, Edit },
111 { LFUN_ACCENT_DOT, "accent-dot", Noop, Edit },
112 { LFUN_ACCENT_GRAVE, "accent-grave", Noop, Edit },
113 { LFUN_ACCENT_HUNGARIAN_UMLAUT, "accent-hungarian-umlaut", Noop, Edit },
114 { LFUN_ACCENT_MACRON, "accent-macron", Noop, Edit },
115 { LFUN_ACCENT_OGONEK, "accent-ogonek", Noop, Edit },
116 { LFUN_ACCENT_SPECIAL_CARON, "accent-special-caron", Noop, Edit },
117 { LFUN_ACCENT_TIE, "accent-tie", Noop, Edit },
118 { LFUN_ACCENT_TILDE, "accent-tilde", Noop, Edit },
119 { LFUN_ACCENT_UMLAUT, "accent-umlaut", Noop, Edit },
120 { LFUN_ACCENT_UNDERBAR, "accent-underbar", Noop, Edit },
121 { LFUN_ACCENT_UNDERDOT, "accent-underdot", Noop, Edit },
123 { LFUN_BREAK_PARAGRAPH, "break-paragraph", Noop, Edit },
124 { LFUN_BREAK_PARAGRAPH_SKIP, "break-paragraph-skip", Noop, Edit },
126 { LFUN_CAPTION_INSERT, "caption-insert", Noop, Edit },
127 { LFUN_DATE_INSERT, "date-insert", Noop, Edit },
128 { LFUN_FOOTNOTE_INSERT, "footnote-insert", Noop, Edit },
129 { LFUN_ERT_INSERT, "ert-insert", Noop, Edit },
130 { LFUN_FLOAT_INSERT, "float-insert", Noop, Edit },
131 { LFUN_FLOAT_WIDE_INSERT, "float-wide-insert", Noop, Edit },
132 { LFUN_WRAP_INSERT, "wrap-insert", Noop, Edit },
133 { LFUN_HFILL_INSERT, "hfill-insert", Noop, Edit },
134 { LFUN_OPTIONAL_INSERT, "optional-insert", Noop, Edit },
135 { LFUN_LINE_INSERT, "line-insert", Noop, Edit },
136 { LFUN_NEWPAGE_INSERT, "newpage-insert", Noop, Edit },
137 { LFUN_PAGEBREAK_INSERT, "pagebreak-insert", Noop, Edit },
138 { LFUN_MARGINALNOTE_INSERT, "marginalnote-insert", Noop, Edit },
139 { LFUN_UNICODE_INSERT, "unicode-insert", Noop, Edit },
140 { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
141 { LFUN_QUOTE_INSERT, "quote-insert", Noop, Edit },
142 { LFUN_INFO_INSERT, "info-insert", Noop, Edit },
143 { LFUN_BRANCH_INSERT, "branch-insert", Noop, Edit },
144 { LFUN_BOX_INSERT, "box-insert", Noop, Edit },
145 { LFUN_FLEX_INSERT, "flex-insert", Noop, Edit },
146 { LFUN_SELF_INSERT, "self-insert", SingleParUpdate, Hidden },
147 { LFUN_SPACE_INSERT, "space-insert", Noop, Edit },
148 { LFUN_HYPERLINK_INSERT, "href-insert", Noop, Edit },
149 { LFUN_SPECIALCHAR_INSERT, "specialchar-insert", Noop, Edit },
150 { LFUN_CLEARPAGE_INSERT, "clearpage-insert", Noop, Edit },
151 { LFUN_CLEARDOUBLEPAGE_INSERT, "cleardoublepage-insert", Noop, Edit },
152 { LFUN_TOC_INSERT, "toc-insert", Noop, Edit },
153 { LFUN_APPENDIX, "appendix", Noop, Edit },
156 { LFUN_LIST_INSERT, "list-insert", Noop, Edit },
157 { LFUN_THEOREM_INSERT, "theorem-insert", Noop, Edit },
160 { LFUN_DELETE_BACKWARD_SKIP, "delete-backward-skip", Noop, Edit },
161 { LFUN_DELETE_FORWARD_SKIP, "delete-forward-skip", Noop, Edit },
162 { LFUN_DOWN, "down", ReadOnly | NoUpdate, Edit },
163 { LFUN_DOWN_SELECT, "down-select", ReadOnly | SingleParUpdate, Edit },
164 { LFUN_UP, "up", ReadOnly | NoUpdate, Edit },
165 { LFUN_UP_SELECT, "up-select", ReadOnly | SingleParUpdate, Edit },
166 { LFUN_SCREEN_DOWN, "screen-down", ReadOnly, Edit },
167 { LFUN_SCREEN_DOWN_SELECT, "screen-down-select", ReadOnly, Edit },
169 * \var lyx::kb_action lyx::LFUN_SCROLL
170 * \li Action: scroll the buffer view
171 * \li Notion: Only scrolls the screen up or down; does not move the cursor.
172 * \li Syntax: scroll <TYPE> <QUANTITY>
173 * \li Params: <TYPE>: line|page\n
174 <QUANTITY>: up|down|<number>\n
175 * \li Origin: Abdelrazak Younes, Dec 27 2007
177 { LFUN_SCROLL, "scroll", ReadOnly, Edit },
179 * \var lyx::kb_action lyx::LFUN_SCREEN_RECENTER
180 * \li Action: Recenters the screen on the current cursor position
181 * \li Syntax: screen-recenter
183 { LFUN_SCREEN_RECENTER, "screen-recenter", ReadOnly, Edit },
184 { LFUN_SCREEN_UP, "screen-up", ReadOnly, Edit },
185 { LFUN_SCREEN_UP_SELECT, "screen-up-select", ReadOnly, Edit },
187 { LFUN_ERROR_NEXT, "error-next", ReadOnly, Edit },
188 { LFUN_CHAR_BACKWARD, "char-backward", ReadOnly | NoUpdate, Edit },
189 { LFUN_CHAR_BACKWARD_SELECT, "char-backward-select", ReadOnly | SingleParUpdate, Edit },
190 { LFUN_CHAR_DELETE_BACKWARD, "delete-backward", SingleParUpdate, Edit },
191 { LFUN_CHAR_DELETE_FORWARD, "delete-forward", SingleParUpdate, Edit },
192 { LFUN_CHAR_FORWARD, "char-forward", ReadOnly | NoUpdate, Edit },
193 { LFUN_CHAR_FORWARD_SELECT, "char-forward-select", ReadOnly | SingleParUpdate, Edit },
194 { LFUN_CHAR_LEFT, "char-left", ReadOnly | NoUpdate, Edit },
195 { LFUN_CHAR_LEFT_SELECT, "char-left-select", ReadOnly | SingleParUpdate, Edit },
196 { LFUN_CHAR_RIGHT, "char-right", ReadOnly | NoUpdate, Edit },
197 { LFUN_CHAR_RIGHT_SELECT, "char-right-select", ReadOnly | SingleParUpdate, Edit },
199 { LFUN_WORD_BACKWARD, "word-backward", ReadOnly | NoUpdate, Edit },
200 { LFUN_WORD_BACKWARD_SELECT, "word-backward-select", ReadOnly | SingleParUpdate, Edit },
201 { LFUN_WORD_CAPITALIZE, "word-capitalize", Noop, Edit },
202 { LFUN_WORD_DELETE_BACKWARD, "word-delete-backward", Noop, Edit },
203 { LFUN_WORD_DELETE_FORWARD, "word-delete-forward", Noop, Edit },
204 { LFUN_WORD_FIND_BACKWARD, "word-find-backward", ReadOnly, Edit },
205 { LFUN_WORD_FIND_FORWARD, "word-find-forward", ReadOnly, Edit },
206 { LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
207 { LFUN_WORD_FORWARD_SELECT, "word-forward-select", ReadOnly | SingleParUpdate, Edit },
208 { LFUN_WORD_LEFT, "word-left", ReadOnly | NoUpdate, Edit },
209 { LFUN_WORD_LEFT_SELECT, "word-left-select", ReadOnly | SingleParUpdate, Edit },
210 { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
211 { LFUN_WORD_RIGHT, "word-right", ReadOnly | NoUpdate, Edit },
212 { LFUN_WORD_RIGHT_SELECT, "word-right-select", ReadOnly | SingleParUpdate, Edit },
213 { LFUN_WORD_SELECT, "word-select", ReadOnly, Edit },
214 { LFUN_WORD_UPCASE, "word-upcase", Noop, Edit },
215 { LFUN_WORD_FIND, "word-find", ReadOnly, Edit },
216 { LFUN_WORD_REPLACE, "word-replace", Noop, Edit },
217 { LFUN_BUFFER_BEGIN, "buffer-begin", ReadOnly, Edit },
218 { LFUN_BUFFER_BEGIN_SELECT, "buffer-begin-select", ReadOnly, Edit },
219 { LFUN_BUFFER_END, "buffer-end", ReadOnly, Edit },
220 { LFUN_BUFFER_END_SELECT, "buffer-end-select", ReadOnly, Edit },
222 { LFUN_LINE_BEGIN, "line-begin", ReadOnly | NoUpdate, Edit },
223 { LFUN_LINE_BEGIN_SELECT, "line-begin-select", ReadOnly | SingleParUpdate, Edit },
224 { LFUN_LINE_BREAK, "line-break", Noop, Edit },
225 { LFUN_LINE_DELETE, "line-delete-forward", Noop, Edit }, // there is no line-delete-backward
226 { LFUN_LINE_END, "line-end", ReadOnly | NoUpdate, Edit },
227 { LFUN_LINE_END_SELECT, "line-end-select", ReadOnly | SingleParUpdate, Edit },
228 { LFUN_NEW_LINE, "new-line", Noop, Edit },
231 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_MOVE_DOWN
232 * \li Action: Moves the current paragraph downwards in the document.
233 * \li Syntax: paragraph-move-down
234 * \li Origin: Edwin, 8 Apr 2006
236 { LFUN_PARAGRAPH_MOVE_DOWN, "paragraph-move-down", Noop, Edit },
238 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_MOVE_UP
239 * \li Action: Moves the current paragraph upwards in the document.
240 * \li Syntax: paragraph-move-up
241 * \li Origin: Edwin, 8 Apr 2006
243 { LFUN_PARAGRAPH_MOVE_UP, "paragraph-move-up", Noop, Edit },
245 * \var lyx::kb_action lyx::LFUN_COPY
246 * \li Action: Copies to the clipboard the last edit
249 { LFUN_COPY, "copy", ReadOnly, Edit },
251 * \var lyx::kb_action lyx::LFUN_CUT
252 * \li Action: Cuts to the clipboard
255 { LFUN_CUT, "cut", Noop, Edit },
257 * \var lyx::kb_action lyx::LFUN_PASTE
258 * \li Action: Pastes from the active clipboard
261 { LFUN_PASTE, "paste", Noop, Edit },
262 { LFUN_CLIPBOARD_PASTE, "clipboard-paste", Noop, Edit },
264 * \var lyx::kb_action lyx::LFUN_PRIMARY_SELECTION_PASTE
265 * \li Action: Pastes the material currently selected
266 * \li Syntax: primary-selection-paste
268 { LFUN_PRIMARY_SELECTION_PASTE, "primary-selection-paste", Noop, Edit },
270 * \var lyx::kb_action lyx::LFUN_UNDO
271 * \li Action: Undoes the last edit
274 { LFUN_UNDO, "undo", Noop, Edit },
276 * \var lyx::kb_action lyx::LFUN_REDO
277 * \li Action: Redoes the last thing undone
280 { LFUN_REDO, "redo", Noop, Edit },
281 { LFUN_REPEAT, "repeat", NoBuffer, Edit },
282 { LFUN_CHARS_TRANSPOSE, "chars-transpose", Noop, Edit },
284 { LFUN_DEPTH_DECREMENT, "depth-decrement", Noop, Edit },
285 { LFUN_DEPTH_INCREMENT, "depth-increment", Noop, Edit },
286 { LFUN_ENVIRONMENT_INSERT, "environment-insert", Noop, Edit },
288 { LFUN_FONT_BOLD, "font-bold", Noop, Layout },
289 { LFUN_FONT_TYPEWRITER, "font-typewriter", Noop, Layout },
290 { LFUN_FONT_DEFAULT, "font-default", Noop, Layout },
291 { LFUN_FONT_EMPH, "font-emph", Noop, Layout },
292 { LFUN_FONT_FREE_APPLY, "font-free-apply", Noop, Layout },
293 { LFUN_FONT_FREE_UPDATE, "font-free-update", Noop, Layout },
294 { LFUN_FONT_NOUN, "font-noun", Noop, Layout },
295 { LFUN_FONT_ROMAN, "font-roman", Noop, Layout },
296 { LFUN_FONT_SANS, "font-sans", Noop, Layout },
297 { LFUN_FONT_FRAK, "font-frak", Noop, Layout },
298 { LFUN_FONT_ITAL, "font-ital", Noop, Layout },
299 { LFUN_FONT_SIZE, "font-size", Noop, Layout },
300 { LFUN_FONT_STATE, "font-state", ReadOnly, Layout },
301 { LFUN_FONT_UNDERLINE, "font-underline", Noop, Layout },
302 { LFUN_SCREEN_FONT_UPDATE, "screen-font-update", NoBuffer, Layout },
304 { LFUN_INDEX_INSERT, "index-insert", Noop, Edit },
305 { LFUN_INDEX_PRINT, "index-print", Noop, Edit },
307 { LFUN_NOMENCL_INSERT, "nomencl-insert", Noop, Edit },
308 { LFUN_NOMENCL_PRINT, "nomencl-print", Noop, Edit },
310 { LFUN_NOTE_INSERT, "note-insert", Noop, Edit },
311 { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
313 { LFUN_BIBITEM_INSERT, "bibitem-insert", Noop, Edit },
314 { LFUN_CITATION_INSERT, "citation-insert", Noop, Edit },
315 { LFUN_BIBTEX_DATABASE_ADD, "bibtex-database-add", Noop, Edit },
316 { LFUN_BIBTEX_DATABASE_DEL, "bibtex-database-del", Noop, Edit },
319 * \var lyx::kb_action lyx::LFUN_LAYOUT
320 * \li Action: Sets the layout (that is, environment) for the current paragraph
321 * \li Syntax: layout <LAYOUT>
322 * \li Params: <LAYOUT>: the layout to use
324 { LFUN_LAYOUT, "layout", Noop, Layout },
326 * \var lyx::kb_action lyx::LFUN_LAYOUT_PARAGRAPH
327 * \li Action: Launches the paragraph settings dialog
328 * \li Syntax: layout-paragraph
330 { LFUN_LAYOUT_PARAGRAPH, "layout-paragraph", ReadOnly, Layout },
331 { LFUN_LAYOUT_TABULAR, "layout-tabular", Noop, Layout },
333 * \var lyx::kb_action lyx::LFUN_DROP_LAYOUTS_CHOICE
334 * \li Action: Displays list of layout choices
335 * \li Notion: In the current (as of 2007) Qt4 frontend, this LFUN opens the
336 dropbox allowing for choice of layout
337 * \li Syntax: drop-layouts-choice
339 { LFUN_DROP_LAYOUTS_CHOICE, "drop-layouts-choice", ReadOnly, Layout },
341 * \var lyx::kb_action lyx::LFUN_LAYOUT_MODULES_CLEAR
342 * \li Action: Clears the module list
343 * \li Notion: Clears the list of included modules for the current buffer.
344 * \li Syntax: layout-modules-clear
345 * \li Origin: rgh, 25 August 2007
347 { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout },
349 * \var lyx::kb_action lyx::LFUN_LAYOUT_MODULE_ADD
350 * \li Action: Adds a module
351 * \li Notion: Adds a module to the list of included modules for the current buffer.
352 * \li Syntax: layout-module-add <MODULE>
353 * \li Params: <MODULE>: the module to be added
354 * \li Origin: rgh, 25 August 2007
356 { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout },
358 * \var lyx::kb_action lyx::LFUN_LAYOUT_RELOAD
359 * \li Action: Reloads layout information
360 * \li Notion: Reloads all layout information for the current buffer from disk, thus
361 recognizing any changes that have been made to layout files on the fly.
362 This is intended to be used only by layout developers and should not be
363 used when one is trying to do actual work.
364 * \li Syntax: layout-reload
365 * \li Origin: rgh, 3 September 2007
367 { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout },
369 * \var lyx::kb_action lyx::LFUN_TEXTCLASS_APPLY
370 * \li Action: Sets the text class for the current buffer
371 * \li Syntax: textclass-apply <TEXTCLASS>
372 * \li Params: <TEXTCLASS>: the textclass to set. Note that this must be
373 the filename, minus the ".layout" extension.
375 { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout },
377 * \var lyx::kb_action lyx::LFUN_TEXTCLASS_LOAD
378 * \li Action: Loads information for a textclass from disk
379 * \li Syntax: textclass-load <TEXTCLASS>
380 * \li Params: <TEXTCLASS>: the textclass to load. Note that this must be
381 the filename, minus the ".layout" extension.
383 { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout },
386 * \var lyx::kb_action lyx::LFUN_MARK_OFF
387 * \li Action: Disable selecting of text-region.
388 * \li Syntax: mark-off
390 { LFUN_MARK_OFF, "mark-off", ReadOnly, Edit },
392 * \var lyx::kb_action lyx::LFUN_MARK_ON
393 * \li Action: Enable selecting of text-region.
394 * \li Notion: After enabling you can simply move arrow keys to get selected region.
395 * \li Syntax: mark-on
397 { LFUN_MARK_ON, "mark-on", ReadOnly, Edit },
399 * \var lyx::kb_action lyx::LFUN_MARK_TOGGLE
400 * \li Action: Toggle between MARK_ON and MARK_OFF
401 * \li Syntax: mark-toggle
402 * \li Origin: poenitz, May 5 2006
404 { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
406 { LFUN_MATH_DELIM, "math-delim", Noop, Math },
407 { LFUN_MATH_BIGDELIM, "math-bigdelim", Noop, Math },
408 { LFUN_MATH_DISPLAY, "math-display", Noop, Math },
409 { LFUN_MATH_INSERT, "math-insert", Noop, Math },
410 { LFUN_MATH_SUBSCRIPT, "math-subscript", Noop, Math },
411 { LFUN_MATH_SUPERSCRIPT, "math-superscript", Noop, Math },
412 { LFUN_MATH_LIMITS, "math-limits", Noop, Math },
413 { LFUN_MATH_MACRO, "math-macro", Noop, Math },
414 { LFUN_MATH_MUTATE, "math-mutate", Noop, Math },
415 { LFUN_MATH_SPACE, "math-space", Noop, Math },
416 { LFUN_MATH_IMPORT_SELECTION, "math-import-selection", Noop, Math },
417 { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
418 { LFUN_MATH_MODE, "math-mode", Noop, Math },
420 * \var lyx::kb_action lyx::LFUN_MATH_NUMBER_LINE_TOGGLE
421 * \li Action: Toggles numbering of the current formula line.
422 * \li Notion: Must be in display formula mode.
423 * \li Syntax: math-number-line-toggle
424 * \li Origin: Alejandro 18 Jun 1996
426 { LFUN_MATH_NUMBER_LINE_TOGGLE, "math-number-line-toggle", Noop, Math },
428 * \var lyx::kb_action lyx::LFUN_MATH_NUMBER_TOGGLE
429 * \li Action: Toggles numbering of the current formula.
430 * \li Notion: Must be in display formula mode.
431 * \li Syntax: math-number-toggle
432 * \li Origin: Alejandro 4 Jun 1996
434 { LFUN_MATH_NUMBER_TOGGLE, "math-number-toggle", Noop, Math },
435 { LFUN_MATH_EXTERN, "math-extern", Noop, Math },
436 { LFUN_MATH_SIZE, "math-size", Noop, Math },
438 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_UNFOLD
439 * \li Action: Unfold a Math Macro
440 * \li Notion: Unfold the Math Macro the cursor is in, i.e.
442 * \li Syntax: math-macro-unfold
443 * \li Origin: sts, 06 January 2008
445 { LFUN_MATH_MACRO_UNFOLD, "math-macro-unfold", ReadOnly | SingleParUpdate, Math },
447 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_FOLD
448 * \li Action: Fold a Math Macro
449 * \li Notion: Fold the Math Macro the cursor is in if it was
450 unfolded, i.e. displayed as \foo before.
451 * \li Syntax: math-macro-fold
452 * \li Origin: sts, 06 January 2008
454 { LFUN_MATH_MACRO_FOLD, "math-macro-fold", ReadOnly | SingleParUpdate, Math },
456 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_PARAM
457 * \li Action: Add a parameter
458 * \li Notion: Add a parameter to a Math Macro
459 * \li Params: <NUM>: The number of the parameter behind which the new one
460 will be added (1 for the first, i.e. use 0 for add a
461 parameter at the left), defaults to the last one.
462 * \li Syntax: math-macro-add-param <NUM>
463 * \li Origin: sts, 06 January 2008
465 { LFUN_MATH_MACRO_ADD_PARAM, "math-macro-add-param", Noop, Math },
467 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_PARAM
468 * \li Action: Remove the last parameter
469 * \li Notion: Remove the last parameter of a Math Macro and
470 remove its value in all instances of the macro
472 * \li Params: <NUM>: The number of the parameter to be deleted (1 for
473 the first), defaults to the last one.
474 * \li Syntax: math-macro-remove-param <NUM>
475 * \li Origin: sts, 06 January 2008
477 { LFUN_MATH_MACRO_REMOVE_PARAM, "math-macro-remove-param", Noop, Math },
479 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_APPEND_GREEDY_PARAM
480 * \li Action: Append a greedy parameter
481 * \li Notion: Append a greedy parameter to a Math Macro which
482 eats the following mathed cell in every instance of
483 the macro in the buffer.
484 * \li Syntax: math-macro-append-greedy-param
485 * \li Origin: sts, 06 January 2008
487 { LFUN_MATH_MACRO_APPEND_GREEDY_PARAM, "math-macro-append-greedy-param", Noop, Math },
489 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM
490 * \li Action: Remove a greedy parameter
491 * \li Notion: Remove a greedy parameter of a Math Macro and spit
492 out the values of it in every instance of the macro
493 in the buffer. If it is an optional parameter the [valud]
495 * \li Syntax: math-macro-remove-greedy-param
496 * \li Origin: sts, 06 January 2008
498 { LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM, "math-macro-remove-greedy-param", Noop, Math },
500 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_MAKE_OPTIONAL
501 * \li Action: Make a parameter optional
502 * \li Notion: Turn the first non-optional parameter of a Math Macro
503 into an optional parameter with a default value.
504 * \li Syntax: math-macro-make-optional
505 * \li Origin: sts, 06 January 2008
507 { LFUN_MATH_MACRO_MAKE_OPTIONAL, "math-macro-make-optional", Noop, Math },
509 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_MAKE_NONOPTIONAL
510 * \li Action: Make a parameter non-optional
511 * \li Notion: Turn the last optional parameter of a Math Macro
512 into a non-optional parameter. The default value is
513 remembered to be reused later if the user changes his mind.
514 * \li Syntax: math-macro-make-nonoptional
515 * \li Origin: sts, 06 January 2008
517 { LFUN_MATH_MACRO_MAKE_NONOPTIONAL, "math-macro-make-nonoptional", Noop, Math },
519 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM
520 * \li Action: Add an optional parameter
521 * \li Notion: Insert an optional parameter just behind the
522 already existing optional parameters.
523 * \li Syntax: math-macro-add-optional-param
524 * \li Origin: sts, 06 January 2008
526 { LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM, "math-macro-add-optional-param", Noop, Math },
528 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM
529 * \li Action: Remove the last optional parameter
530 * \li Notion: Remove the last optional parameter of a Math Macro and
531 remove it in all the instances of the macro in the buffer.
532 * \li Syntax: math-macro-remove-optional-param
533 * \li Origin: sts, 06 January 2008
535 { LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM, "math-macro-remove-optional-param", Noop, Math },
537 * \var lyx::kb_action lyx::LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM
538 * \li Action: Add a greedy optional parameter
539 * \li Notion: Add a greedy optional parameter which eats the value
540 from the following cells in mathed which are in the [value]
542 * \li Syntax: math-macro-add-greedy-optional-param
543 * \li Origin: sts, 06 January 2008
545 { LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM, "math-macro-add-greedy-optional-param", Noop, Math },
547 * \var lyx::kb_action lyx::LFUN_IN_MATHMACROTEMPLATE
548 * \li Action: Only active in Math Macro definition
549 * \li Notion: Dummy function which is only active in a Math Macro definition.
550 It's used to toggle the Math Macro toolbar if the cursor moves
551 into a Math Macro definition.
552 * \li Syntax: in-mathmacrotemplate
553 * \li Origin: sts, 06 January 2008
555 { LFUN_IN_MATHMACROTEMPLATE, "in-mathmacrotemplate", Noop, Math },
557 { LFUN_PARAGRAPH_DOWN, "paragraph-down", ReadOnly | NoUpdate, Edit },
558 { LFUN_PARAGRAPH_DOWN_SELECT, "paragraph-down-select", ReadOnly, Edit },
559 { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit },
561 * \var lyx::kb_action lyx::LFUN_OUTLINE_UP
562 * \li Action: Move the current group in the upward direction in the
563 structure of the document.
564 * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
565 the whole substructure of the group.
566 * \li Syntax: outline-up
567 * \li Origin: Vermeer, 23 Mar 2006
569 { LFUN_OUTLINE_UP, "outline-up", Noop, Edit },
571 * \var lyx::kb_action lyx::LFUN_OUTLINE_DOWN
572 * \li Action: Move the current group in the downward direction in the
573 structure of the document.
574 * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
575 the whole substructure of the group.
576 * \li Syntax: outline-down
577 * \li Origin: Vermeer, 23 Mar 2006
579 { LFUN_OUTLINE_DOWN, "outline-down", Noop, Edit },
581 * \var lyx::kb_action lyx::LFUN_OUTLINE_IN
582 * \li Action: Moves the current group in the downward direction in the
583 hierarchy of the document structure.
584 * \li Notion: Part -> Chapter -> Section -> etc.
585 * \li Syntax: outline-in
586 * \li Origin: Vermeer, 23 Mar 2006
588 { LFUN_OUTLINE_IN, "outline-in", Noop, Edit },
590 * \var lyx::kb_action lyx::LFUN_OUTLINE_OUT
591 * \li Action: Moves the current group in the upward direction in the
592 hierarchy of the document structure.
593 * \li Notion: Part <- Chapter <- Section <- etc.
594 * \li Syntax: outline-out
595 * \li Origin: Vermeer, 23 Mar 2006
597 { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
599 { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit },
600 { LFUN_PARAGRAPH_UP, "paragraph-up", ReadOnly | NoUpdate, Edit },
601 { LFUN_PARAGRAPH_UP_SELECT, "paragraph-up-select", ReadOnly, Edit },
603 { LFUN_EXTERNAL_EDIT, "external-edit", Noop, Edit },
604 { LFUN_GRAPHICS_EDIT, "graphics-edit", Noop, Edit },
606 { LFUN_CELL_BACKWARD, "cell-backward", Noop, Edit },
607 { LFUN_CELL_FORWARD, "cell-forward", Noop, Edit },
608 { LFUN_CELL_SPLIT, "cell-split", Noop, Edit },
609 { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
610 { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
612 { LFUN_VC_CHECK_IN, "vc-check-in", ReadOnly, System },
613 { LFUN_VC_CHECK_OUT, "vc-check-out", ReadOnly, System },
614 { LFUN_VC_REGISTER, "vc-register", ReadOnly, System },
615 { LFUN_VC_REVERT, "vc-revert", ReadOnly, System },
616 { LFUN_VC_UNDO_LAST, "vc-undo-last", ReadOnly, System },
618 { LFUN_CHANGES_TRACK, "changes-track", Noop, Edit },
619 { LFUN_CHANGES_OUTPUT, "changes-output", Noop, Edit },
620 { LFUN_CHANGE_NEXT, "change-next", ReadOnly, Edit },
621 { LFUN_CHANGES_MERGE, "changes-merge", Noop, Edit },
622 { LFUN_CHANGE_ACCEPT, "change-accept", Noop, Edit },
623 { LFUN_CHANGE_REJECT, "change-reject", Noop, Edit },
624 { LFUN_ALL_CHANGES_ACCEPT, "all-changes-accept", Noop, Edit },
625 { LFUN_ALL_CHANGES_REJECT, "all-changes-reject", Noop, Edit },
627 { LFUN_INSET_APPLY, "inset-apply", Noop, Edit },
628 { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit },
629 { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
630 { LFUN_INSET_MODIFY, "", Noop, Hidden },
631 { LFUN_INSET_DIALOG_UPDATE, "", Noop, Hidden },
632 { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly, Edit },
633 { LFUN_INSET_REFRESH, "", Noop, Hidden },
634 { LFUN_NEXT_INSET_TOGGLE, "next-inset-toggle", ReadOnly, Edit },
635 { LFUN_INSET_TOGGLE, "", ReadOnly, Hidden },
636 { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
639 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_PARAMS
640 * \li Action: Change paragraph settings
641 * \li Notion: Modifies the current paragraph, or currently selected paragraphs.
642 This function only modifies, and does not override, existing settings.
643 Note that the "leftindent" indent setting is deprecated.
644 * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
645 * \li Params: <INDENT>: \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
646 <SPACING>: \\paragraph_spacing default|single|onehalf|double|other\n
647 <ALIGN>: \\align block|left|right|center|default\n
648 <OTHERS>: \\labelwidthstring WIDTH|\\start_of_appendix\n
649 * \li Origin: rgh, Aug 15 2007
651 { LFUN_PARAGRAPH_PARAMS, "paragraph-params", Noop, Edit },
653 * \var lyx::kb_action lyx::LFUN_PARAGRAPH_PARAMS_APPLY
654 * \li Action: Change paragraph settings.
655 * \li Notion: Overwrite all nonspecified settings to the default ones.
656 Use paragraph-params lfun if you don't want to overwrite others settings.
657 * \li Syntax: paragraph-params-apply <INDENT> <SPACING> <ALIGN> <OTHERS>
658 * \li Params: For parameters see LFUN_PARAGRAPH_PARAMS
659 * \li Origin: leeming, 30 Mar 2004
661 { LFUN_PARAGRAPH_PARAMS_APPLY, "paragraph-params-apply", Noop, Edit },
662 { LFUN_PARAGRAPH_UPDATE, "", Noop, Hidden },
664 { LFUN_FINISHED_FORWARD, "", ReadOnly, Hidden },
665 { LFUN_FINISHED_BACKWARD, "", ReadOnly, Hidden },
666 { LFUN_FINISHED_RIGHT, "", ReadOnly, Hidden },
667 { LFUN_FINISHED_LEFT, "", ReadOnly, Hidden },
669 { LFUN_LANGUAGE, "language", Noop, Edit },
671 { LFUN_LABEL_GOTO, "label-goto", ReadOnly, Edit },
672 { LFUN_LABEL_INSERT, "label-insert", Noop, Edit },
673 { LFUN_REFERENCE_NEXT, "reference-next", ReadOnly, Edit },
676 * \var lyx::kb_action lyx::LFUN_BOOKMARK_GOTO
677 * \li Action: Goto a bookmark
678 * \li Notion: Moves the cursor to the numbered bookmark, opening the file
679 if necessary. Note that bookmarsk are saved per-session, not
681 * \li Syntax: bookmark-goto <NUMBER>
682 * \li Params: <NUMBER>: the number of the bookmark to restore.
683 * \li Origin: Dekel, 27 January 2001
685 { LFUN_BOOKMARK_GOTO, "bookmark-goto", NoBuffer, Edit },
687 * \var lyx::kb_action lyx::LFUN_BOOKMARK_SAVE
688 * \li Action: Save a bookmark
689 * \li Notion: Saves a numbered bookmark to the sessions file. The number
690 must be between 1 and 9, inclusive. Note that bookmarks are
691 saved per-session, not per file.
692 * \li Syntax: bookmark-save <NUMBER>
693 * \li Params: <NUMBER>: the number of the bookmark to save.
694 * \li Origin: Dekel, 27 January 2001
696 { LFUN_BOOKMARK_SAVE, "bookmark-save", ReadOnly, Edit },
698 * \var lyx::kb_action lyx::LFUN_BOOKMARK_CLEAR
699 * \li Action: Clears the list of saved bookmarks
700 * \li Syntax: bookmark-clear
701 * \li Origin: bpeng, 31 October 2006
703 { LFUN_BOOKMARK_CLEAR, "bookmark-clear", NoBuffer, Edit },
705 { LFUN_HELP_OPEN, "help-open", NoBuffer | Argument, Buffer },
707 * \var lyx::kb_action lyx::LFUN_LYX_QUIT
708 * \li Action: Terminates the current LyX instance
709 * \li Notion: Terminates the current LyX instance, asking whether to save
710 modified documents, etc.
711 * \li Syntax: lyx-quit
713 { LFUN_LYX_QUIT, "lyx-quit", NoBuffer, Buffer },
714 { LFUN_TOOLBAR_TOGGLE, "toolbar-toggle", NoBuffer, Buffer },
715 { LFUN_MENU_OPEN, "menu-open", NoBuffer, Buffer },
717 { LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
718 { LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
720 { LFUN_DIALOG_SHOW, "dialog-show", NoBuffer, Edit },
721 { LFUN_DIALOG_SHOW_NEW_INSET, "dialog-show-new-inset", Noop, Edit },
722 { LFUN_DIALOG_UPDATE, "dialog-update", NoBuffer, Edit },
723 { LFUN_DIALOG_HIDE, "dialog-hide", NoBuffer, Edit },
724 { LFUN_DIALOG_TOGGLE, "dialog-toggle", NoBuffer, Edit },
725 { LFUN_DIALOG_DISCONNECT_INSET, "dialog-disconnect-inset", Noop, Edit },
727 { LFUN_MOUSE_PRESS, "", ReadOnly, Hidden },
728 { LFUN_MOUSE_MOTION, "", ReadOnly | SingleParUpdate, Hidden },
729 { LFUN_MOUSE_RELEASE, "", ReadOnly, Hidden },
730 { LFUN_MOUSE_DOUBLE, "", ReadOnly, Hidden },
731 { LFUN_MOUSE_TRIPLE, "", ReadOnly, Hidden },
733 { LFUN_KEYMAP_OFF, "keymap-off", ReadOnly, Edit },
734 { LFUN_KEYMAP_PRIMARY, "keymap-primary", ReadOnly, Edit },
735 { LFUN_KEYMAP_SECONDARY, "keymap-secondary", ReadOnly, Edit },
736 { LFUN_KEYMAP_TOGGLE, "keymap-toggle", ReadOnly, Edit },
738 { LFUN_MESSAGE, "message", NoBuffer, System },
739 { LFUN_FLOAT_LIST, "float-list", Noop, Edit },
740 { LFUN_ESCAPE, "escape", ReadOnly, Edit },
742 { LFUN_SERVER_CHAR_AFTER, "server-char-after", ReadOnly, System },
743 { LFUN_SERVER_GET_FONT, "server-get-font", ReadOnly, System },
744 { LFUN_SERVER_GET_LAYOUT, "server-get-layout", ReadOnly, System },
745 { LFUN_SERVER_GET_NAME, "server-get-name", ReadOnly, System },
746 { LFUN_SERVER_GET_XY, "server-get-xy", ReadOnly, System },
747 { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
748 { LFUN_SERVER_NOTIFY, "server-notify", ReadOnly, System },
749 { LFUN_SERVER_SET_XY, "server-set-xy", ReadOnly, System },
751 { LFUN_BUILD_PROGRAM, "build-program", ReadOnly, Buffer },
754 * \var lyx::kb_action lyx::LFUN_BUFFER_AUTO_SAVE
755 * \li Action: Saves the current buffer to a temporary file
756 * \li Notion: Saves the current buffer to a file named "#filename#". This LFUN
757 is called automatically by LyX, to "autosave" the current buffer.
758 * \li Syntax: buffer-auto-save
760 { LFUN_BUFFER_AUTO_SAVE, "buffer-auto-save", Noop, Buffer },
761 { LFUN_BUFFER_CHILD_OPEN, "buffer-child-open", ReadOnly, Buffer },
762 { LFUN_BUFFER_CHKTEX, "buffer-chktex", ReadOnly, Buffer },
763 { LFUN_BUFFER_TOGGLE_COMPRESSION, "buffer-toggle-compression", Noop, Buffer },
764 { LFUN_BUFFER_TOGGLE_EMBEDDING, "buffer-toggle-embedding", Noop, Buffer },
766 * \var lyx::kb_action lyx::LFUN_BUFFER_CLOSE
767 * \li Action: Closes the current buffer
768 * \li Notion: Closes the current buffer, asking whether to save it, etc,
769 if the buffer has been modified.
770 * \li Syntax: buffer-close
772 { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
773 { LFUN_BUFFER_EXPORT, "buffer-export", ReadOnly, Buffer },
774 { LFUN_BUFFER_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly, Buffer },
775 { LFUN_BUFFER_PRINT, "buffer-print", ReadOnly, Buffer },
776 { LFUN_BUFFER_IMPORT, "buffer-import", NoBuffer, Buffer },
778 * \var lyx::kb_action lyx::LFUN_BUFFER_NEW
779 * \li Action: Creates a new buffer (that is, document)
780 * \li Syntax: buffer-new
782 { LFUN_BUFFER_NEW, "buffer-new", NoBuffer, Buffer },
783 { LFUN_BUFFER_NEW_TEMPLATE,"buffer-new-template", NoBuffer, Buffer },
784 { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
785 { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
786 { LFUN_BUFFER_TOGGLE_READ_ONLY, "buffer-toggle-read-only", ReadOnly, Buffer },
787 { LFUN_BUFFER_UPDATE, "buffer-update", ReadOnly, Buffer },
789 * \var lyx::kb_action lyx::LFUN_BUFFER_VIEW
790 * \li Action: Displays current buffer in chosen format
791 * \li Notion: Displays the contents of the current buffer in the chosen
792 format, for example, PDF or DVI. This runs the necessary
793 converter, calls the defined viewer, and so forth.
794 * \li Syntax: buffer-view <FORMAT>
795 * \li Params: <FORMAT>: The format to display, where this is one of the
796 formats defined (in the current GUI) in the
797 Tools>Preferences>File Formats dialog.
799 { LFUN_BUFFER_VIEW, "buffer-view", ReadOnly, Buffer },
801 * \var lyx::kb_action lyx::LFUN_BUFFER_WRITE
802 * \li Action: Saves the current buffer
803 * \li Notion: Saves the current buffer to disk, using the filename that
804 is already associated with the buffer, asking for one if
805 none is yet assigned.
806 * \li Syntax: buffer-write
808 { LFUN_BUFFER_WRITE, "buffer-write", ReadOnly, Buffer },
810 * \var lyx::kb_action lyx::LFUN_BUFFER_WRITE_AS
811 * \li Action: Rename and save current buffer.
812 * \li Syntax: buffer-write-as <FILENAME>
813 * \li Params: <FILENAME>: New name of the buffer/file. A relative path
814 * is with respect to the original location of the buffer/file.
816 { LFUN_BUFFER_WRITE_AS, "buffer-write-as", ReadOnly, Buffer },
817 { LFUN_BUFFER_WRITE_ALL, "buffer-write-all", ReadOnly, Buffer },
818 { LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
819 { LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
820 { LFUN_MASTER_BUFFER_UPDATE, "master-buffer-update", ReadOnly, Buffer },
821 { LFUN_MASTER_BUFFER_VIEW, "master-buffer-view", ReadOnly, Buffer },
822 { LFUN_BUFFER_LANGUAGE, "buffer-language", Noop, Buffer },
823 { LFUN_BUFFER_SAVE_AS_DEFAULT, "buffer-save-as-default", Noop, Buffer },
824 { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer },
826 { LFUN_FILE_INSERT, "file-insert", Noop, Edit },
827 { LFUN_FILE_INSERT_PLAINTEXT, "file-insert-plaintext", Noop, Edit },
828 { LFUN_FILE_INSERT_PLAINTEXT_PARA, "file-insert-plaintext-para", Noop, Edit },
829 { LFUN_FILE_NEW, "file-new", NoBuffer, Buffer },
830 { LFUN_FILE_OPEN, "file-open", NoBuffer, Buffer },
832 { LFUN_META_PREFIX, "meta-prefix", NoBuffer, System },
834 { LFUN_CALL, "call", NoBuffer, System },
835 { LFUN_CANCEL, "cancel", NoBuffer, System },
837 { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
838 { LFUN_COMMAND_PREFIX, "command-prefix", NoBuffer, Hidden },
839 { LFUN_COMMAND_SEQUENCE, "command-sequence", NoBuffer, System },
842 * \var lyx::kb_action lyx::LFUN_PREFERENCES_SAVE
843 * \li Action: Save user preferences.
844 * \li Syntax: preferences-save
845 * \li Origin: Lgb, 27 Nov 1999
847 { LFUN_PREFERENCES_SAVE, "preferences-save", NoBuffer, System },
849 * \var lyx::kb_action lyx::LFUN_RECONFIGURE
850 * \li Action: Reconfigure the automatic settings.
851 * \li Syntax: reconfigure
852 * \li Origin: Asger, 14 Feb 1997
854 { LFUN_RECONFIGURE, "reconfigure", NoBuffer, System },
855 { LFUN_LYXRC_APPLY, "lyxrc-apply", NoBuffer, System },
856 { LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, "toggle-cursor-follows-scrollbar", ReadOnly, System },
858 { LFUN_SET_COLOR, "set-color", ReadOnly | NoBuffer, Edit },
859 { LFUN_THESAURUS_ENTRY, "thesaurus-entry", ReadOnly, Edit },
861 * \var lyx::kb_action lyx::LFUN_STATISTICS
862 * \li Action: Count the statistics (number of words and characters)
863 in the document or in the given selection.
864 * \li Notion: Note that this function gives the number of words/chars written,
865 not the number of characters which will be typeset.
866 * \li Syntax: statistics
867 * \li Origin: lasgouttes, Jan 27 2004; ps, Jan 8 2008
869 { LFUN_STATISTICS, "statistics", ReadOnly, System },
871 { LFUN_NOACTION, "", Noop, Hidden }
872 #ifndef DOXYGEN_SHOULD_SKIP_THIS
875 for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
876 newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
883 LyXAction::LyXAction()
889 // Returns an action tag from a string.
890 FuncRequest LyXAction::lookupFunc(string const & func) const
892 string const func2 = trim(func);
895 return FuncRequest(LFUN_NOACTION);
899 string const arg = split(func2, cmd, ' ');
901 func_map::const_iterator fit = lyx_func_map.find(cmd);
903 return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
907 string const LyXAction::getActionName(kb_action action) const
909 info_map::const_iterator const it = lyx_info_map.find(action);
910 return it != lyx_info_map.end() ? it->second.name : string();
914 LyXAction::func_type const LyXAction::getActionType(kb_action action) const
916 info_map::const_iterator const it = lyx_info_map.find(action);
917 return it != lyx_info_map.end() ? it->second.type : Hidden;
921 bool LyXAction::funcHasFlag(kb_action action,
922 LyXAction::func_attrib flag) const
924 info_map::const_iterator ici = lyx_info_map.find(action);
926 if (ici == lyx_info_map.end()) {
927 LYXERR0("action: " << action << " is not known.");
931 return ici->second.attrib & flag;
935 LyXAction::const_func_iterator LyXAction::func_begin() const
937 return lyx_func_map.begin();
941 LyXAction::const_func_iterator LyXAction::func_end() const
943 return lyx_func_map.end();