]> git.lyx.org Git - features.git/blob - src/LyXAction.cpp
Fix calls to find_default_layout (guarentee arguments consistency)
[features.git] / src / LyXAction.cpp
1 /*!
2  * \file LyXAction.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Lars Gullik Bjønnes
7  * \author Jean-Marc Lasgouttes
8  * \author John Levon
9  * \author André Pönitz
10  *
11  * Full author contact details are available in file CREDITS.
12  */
13
14 #include <config.h>
15
16 #include "LyXAction.h"
17
18 #include "FuncRequest.h"
19
20 #include "support/debug.h"
21 #include "support/lstrings.h"
22
23 #include "support/assert.h"
24
25 using namespace std;
26 using namespace lyx::support;
27
28 namespace lyx {
29
30 /*
31      NAMING RULES FOR USER-COMMANDS
32      Here's the set of rules to apply when a new command name is introduced:
33
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'.
43
44      (May 19 1996, 12:04, RvdK)
45 */
46
47 /* LFUN documentation (a start at least, Chr 2007-08-12)
48  *
49  * The documentation below is primarily notes about restrictions and
50  * oddities relating to the different LFUNs.
51  *
52  * Try to find an appropriate (thematical) place when adding the new LFUN.
53  *
54  * Doxygen template below. Some notes: Parameters should be set in uppercase
55  * and put in <BRACKETS>, as so.
56  */
57
58 /*!
59  * \var lyx::FuncCode lyx::LFUN_
60  * \li Action: 
61  * \li Notion: 
62  * \li Syntax: 
63  * \li Params: 
64  * \li Sample:
65  * \li Origin: 
66  * \endvar
67  */
68
69 LyXAction lyxaction;
70
71
72 void LyXAction::newFunc(FuncCode action, string const & name,
73                         unsigned int attrib, LyXAction::func_type type)
74 {
75         lyx_func_map[name] = action;
76         FuncInfo tmpinfo;
77         tmpinfo.name = name;
78         tmpinfo.attrib = attrib;
79         tmpinfo.type = type;
80         lyx_info_map[action] = tmpinfo;
81 }
82
83
84 // Needed for LFUNs documentation to be accepted, since doxygen won't take
85 // \var inside functions.
86 #ifndef DOXYGEN_SHOULD_SKIP_THIS
87 void LyXAction::init()
88 {
89         // This function was changed to use the array below in initalization
90         // instead of calling newFunc numerous times because of compilation
91         // times. Since the array is not static we get back the memory it
92         // occupies after the init is completed. It compiles several
93         // magnitudes faster.
94
95         static bool init;
96         if (init) return;
97
98         struct ev_item {
99                 FuncCode action;
100                 char const * name;
101                 unsigned int attrib;
102                 func_type type;
103         };
104
105         ev_item const items[] = {
106 #endif
107 /*!
108  * \var lyx::FuncCode lyx::LFUN_ACCENT_ACUTE
109  * \li Action: Adds an acute accent \htmlonly (&aacute;)\endhtmlonly
110                to the next character typed.
111  * \li Syntax: accent-acute
112  * \endvar
113  */
114                 { LFUN_ACCENT_ACUTE, "accent-acute", Noop, Edit },
115 /*!
116  * \var lyx::FuncCode lyx::LFUN_ACCENT_BREVE
117  * \li Action: Adds a breve accent \htmlonly (&#259;)\endhtmlonly
118                to the next character typed.
119  * \li Syntax: accent-breve
120  * \endvar
121  */
122                 { LFUN_ACCENT_BREVE, "accent-breve", Noop, Edit },
123 /*!
124  * \var lyx::FuncCode lyx::LFUN_ACCENT_CARON
125  * \li Action: Adds a caron \htmlonly (&#462;)\endhtmlonly
126                to the next character typed.
127  * \li Syntax: accent-caron
128  * \endvar
129  */
130                 { LFUN_ACCENT_CARON, "accent-caron", Noop, Edit },
131 /*!
132  * \var lyx::FuncCode lyx::LFUN_ACCENT_CEDILLA
133  * \li Action: Adds a cedilla \htmlonly (&ccedil;)\endhtmlonly
134                to the next character typed.
135  * \li Syntax: accent-cedilla
136  * \endvar
137  */
138                 { LFUN_ACCENT_CEDILLA, "accent-cedilla", Noop, Edit },
139 /*!
140  * \var lyx::FuncCode lyx::LFUN_ACCENT_CIRCLE
141  * \li Action: Adds a circle accent \htmlonly (&aring;)\endhtmlonly
142                to the next character typed.
143  * \li Syntax: accent-circle
144  * \endvar
145  */
146                 { LFUN_ACCENT_CIRCLE, "accent-circle", Noop, Edit },
147 /*!
148  * \var lyx::FuncCode lyx::LFUN_ACCENT_CIRCUMFLEX
149  * \li Action: Adds a circumflex \htmlonly (&ecirc;)\endhtmlonly
150                to the next character typed.
151  * \li Syntax: accent-circumflex
152  * \endvar
153  */
154                 { LFUN_ACCENT_CIRCUMFLEX, "accent-circumflex", Noop, Edit },
155 /*!
156  * \var lyx::FuncCode lyx::LFUN_ACCENT_DOT
157  * \li Action: Adds a dot accent \htmlonly (&#380;)\endhtmlonly
158                to the next character typed.
159  * \li Syntax: accent-dot
160  * \endvar
161  */
162                 { LFUN_ACCENT_DOT, "accent-dot", Noop, Edit },
163 /*!
164  * \var lyx::FuncCode lyx::LFUN_ACCENT_GRAVE
165  * \li Action: Adds a grave accent \htmlonly (&egrave;)\endhtmlonly
166                to the next character typed.
167  * \li Syntax: accent-grave
168  * \endvar
169  */
170                 { LFUN_ACCENT_GRAVE, "accent-grave", Noop, Edit },
171 /*!
172  * \var lyx::FuncCode lyx::LFUN_ACCENT_HUNGARIAN_UMLAUT
173  * \li Action: Adds a Hungarian umlaut \htmlonly (&#337;)\endhtmlonly
174                to the next character typed.
175  * \li Syntax: accent-grave
176  * \endvar
177  */
178                 { LFUN_ACCENT_HUNGARIAN_UMLAUT, "accent-hungarian-umlaut", Noop, Edit },
179 /*!
180  * \var lyx::FuncCode lyx::LFUN_ACCENT_MACRON
181  * \li Action: Adds a macron \htmlonly (&#257;)\endhtmlonly
182                to the next character typed.
183  * \li Syntax: accent-macron
184  * \endvar
185  */
186                 { LFUN_ACCENT_MACRON, "accent-macron", Noop, Edit },
187 /*!
188  * \var lyx::FuncCode lyx::LFUN_ACCENT_OGONEK
189  * \li Action: Adds an ogonek accent \htmlonly (&#261;)\endhtmlonly
190                to the next character typed.
191  * \li Syntax: accent-ogonek
192  * \endvar
193  */
194                 { LFUN_ACCENT_OGONEK, "accent-ogonek", Noop, Edit },
195                 { LFUN_ACCENT_SPECIAL_CARON, "accent-special-caron", Noop, Edit },
196 /*!
197  * \var lyx::FuncCode lyx::LFUN_ACCENT_TIE
198  * \li Action: Adds a tie \htmlonly (a&#865;)\endhtmlonly
199                over the next two character typed.
200  * \li Notion: the following char will finish the tie.
201  * \li Syntax: accent-tie
202  * \endvar
203  */
204                 { LFUN_ACCENT_TIE, "accent-tie", Noop, Edit },
205 /*!
206  * \var lyx::FuncCode lyx::LFUN_ACCENT_TILDE
207  * \li Action: Adds a tilde \htmlonly (&atilde;)\endhtmlonly
208                over the next character typed.
209  * \li Syntax: accent-tilde
210  * \endvar
211  */
212                 { LFUN_ACCENT_TILDE, "accent-tilde", Noop, Edit },
213 /*!
214  * \var lyx::FuncCode lyx::LFUN_ACCENT_UMLAUT
215  * \li Action: Adds an umlaut \htmlonly (&auml;)\endhtmlonly
216                over the next character typed.
217  * \li Syntax: accent-umlaut
218  * \endvar
219  */
220                 { LFUN_ACCENT_UMLAUT, "accent-umlaut", Noop, Edit },
221 /*!
222  * \var lyx::FuncCode lyx::LFUN_ACCENT_UNDERBAR
223  * \li Action: Adds a bar \htmlonly (a&#800;)\endhtmlonly
224                under the next character typed.
225  * \li Syntax: accent-underbar
226  * \endvar
227  */
228                 { LFUN_ACCENT_UNDERBAR, "accent-underbar", Noop, Edit },
229 /*!
230  * \var lyx::FuncCode lyx::LFUN_ACCENT_UNDERDOT
231  * \li Action: Adds a dot \htmlonly (&#7841;)\endhtmlonly
232                under the next character typed.
233  * \li Syntax: accent-underdot
234  * \endvar
235  */
236                 { LFUN_ACCENT_UNDERDOT, "accent-underdot", Noop, Edit },
237
238 /*!
239  * \var lyx::FuncCode lyx::LFUN_CAPTION_INSERT
240  * \li Action: Inserts a caption inset.
241  * \li Syntax: caption-insert
242  * \li Origin: Lgb, 18 Jul 2000
243  * \endvar
244  */
245                 { LFUN_CAPTION_INSERT, "caption-insert", Noop, Edit },
246 /*!
247  * \var lyx::FuncCode lyx::LFUN_DATE_INSERT
248  * \li Action: Inserts the current date.
249  * \li Syntax: date-insert [<ARG>]
250  * \li Params: <ARG>: Format of date. The default value (%x) can be set
251                      in Preferences->Date format. For possible formats
252                      see manual page of strftime function.
253  * \li Origin: jdblair, 31 Jan 2000
254  * \endvar
255  */
256                 { LFUN_DATE_INSERT, "date-insert", Noop, Edit },
257 /*!
258  * \var lyx::FuncCode lyx::LFUN_FOOTNOTE_INSERT
259  * \li Action: Inserts a footnote inset.
260  * \li Syntax: footnote-insert
261  * \li Origin: Jug, 7 Mar 2000
262  * \endvar
263  */
264                 { LFUN_FOOTNOTE_INSERT, "footnote-insert", Noop, Edit },
265 /*!
266  * \var lyx::FuncCode lyx::LFUN_ERT_INSERT
267  * \li Action: Inserts an ERT inset.
268  * \li Syntax: ert-insert
269  * \li Origin: Jug, 18 Feb 2000
270  * \endvar
271  */
272                 { LFUN_ERT_INSERT, "ert-insert", Noop, Edit },
273                 { LFUN_FLOAT_INSERT, "float-insert", Noop, Edit },
274                 { LFUN_FLOAT_WIDE_INSERT, "float-wide-insert", Noop, Edit },
275                 { LFUN_WRAP_INSERT, "wrap-insert", Noop, Edit },
276 /*!
277  * \var lyx::FuncCode lyx::LFUN_OPTIONAL_INSERT
278  * \li Action: Inserts an optional-argument (short title) inset.
279  * \li Syntax: optional-insert
280  * \li Origin: Martin, 12 Aug 2002
281  * \endvar
282  */
283                 { LFUN_OPTIONAL_INSERT, "optional-insert", Noop, Edit },
284 /*!
285  * \var lyx::FuncCode lyx::LFUN_LINE_INSERT
286  * \li Action: Inserts a horizontal line.
287  * \li Syntax: line-insert
288  * \li Origin: poenitz,  Oct 27 2003
289  * \endvar
290  */
291                 { LFUN_LINE_INSERT, "line-insert", Noop, Edit },
292 /*!
293  * \var lyx::FuncCode lyx::LFUN_NEWPAGE_INSERT
294  * \li Action: Inserts a new page.
295  * \li Syntax: newpage-insert<ARG>
296  * \li Params: <ARG>: <newpage|pagebreak|clearpage|cleardoublepage> default: newpage
297  * \li Origin: uwestoehr, 24 Nov 2007
298  * \endvar
299  */
300                 { LFUN_NEWPAGE_INSERT, "newpage-insert", Noop, Edit },
301 /*!
302  * \var lyx::FuncCode lyx::LFUN_MARGINALNOTE_INSERT
303  * \li Action: Inserts a marginal note.
304  * \li Syntax: marginalnote-insert
305  * \li Origin: Lgb, 26 Jun 2000
306  * \endvar
307  */
308                 { LFUN_MARGINALNOTE_INSERT, "marginalnote-insert", Noop, Edit },
309 /*!
310  * \var lyx::FuncCode lyx::LFUN_UNICODE_INSERT
311  * \li Action: Inserts a single unicode character.
312  * \li Syntax: unicode-insert <CHAR>
313  * \li Params: <CHAR>: The character to insert, given as its code
314                        point, in hexadecimal, e.g.: unicode-insert 0x0100.
315  * \li Origin: Lgb, 22 Oct 2006
316  * \endvar
317  */
318                 { LFUN_UNICODE_INSERT, "unicode-insert", Noop, Edit },
319 /*!
320  * \var lyx::FuncCode lyx::LFUN_LISTING_INSERT
321  * \li Action: Inserts a new listings inset.
322  * \li Syntax: listing-insert
323  * \li Origin: Herbert, 10 Nov 2001; bpeng, 2 May 2007
324  * \endvar
325  */
326                 { LFUN_LISTING_INSERT, "listing-insert", Noop, Edit },
327                 { LFUN_QUOTE_INSERT, "quote-insert", Noop, Edit },
328 /*!
329  * \var lyx::FuncCode lyx::LFUN_INFO_INSERT
330  * \li Action: Displays shortcuts, lyxrc, package and textclass availability and menu
331                information in a non-editable boxed InsetText.
332  * \li Notion: Apart from lfun arguments you can use the following method: \n
333                1. input the type and argument of this inset, e.g. "menu paste", in
334                the work area.\n
335                2. select the text and run info-insert lfun.\n
336  * \li Syntax: info-insert <TYPE> <ARG>
337  * \li Params: <TYPE>: shortcut|lyxrc|package|textclass|menu|buffer \n
338                <ARG>: argument for a given type. Look into InsetInfo.h for detailed
339                       description.
340  * \li Origin: bpeng, 7 Oct 2007
341  * \endvar
342  */
343                 { LFUN_INFO_INSERT, "info-insert", Noop, Edit },
344                 { LFUN_BRANCH_INSERT, "branch-insert", Noop, Edit },
345                 { LFUN_BOX_INSERT, "box-insert", Noop, Edit },
346 /*!
347  * \var lyx::FuncCode lyx::LFUN_FLEX_INSERT
348  * \li Action: Inserts CharStyle, Custom inset or XML short element.
349  * \li Notion: Look into the Customization manual for more information about
350                these elements.\n
351                For dissolving the element see #LFUN_INSET_DISSOLVE.
352  * \li Syntax: flex-insert <TYPE:Name>
353  * \li Params: TYPE: CharStyle|Custom|Element|Standard
354                      Identifies whether this is a Character Style, a
355                      Custom Inset or an XML Element, and which dynamical 
356                      sub-menu this flex inset is in on the LyX menu tree. 
357                      If Standard (currently unused): none of these.
358                Name: This name must be defined either in your layout file
359                      or imported by some module. The definition is\n
360                      InsetLayout <TYPE:Name>
361  * \li Sample: flex-insert CharStyle:Code
362  * \endvar
363  */
364                 { LFUN_FLEX_INSERT, "flex-insert", Noop, Edit },
365                 { LFUN_SELF_INSERT, "self-insert", SingleParUpdate, Hidden },
366 /*!
367  * \var lyx::FuncCode lyx::LFUN_SPACE_INSERT
368  * \li Action: Inserts one of horizontal space insets.
369  * \li Syntax: space-insert <NAME> [<LEN>]
370  * \li Params: <NAME>: normal, protected, thin, quad, qquad, enspace, enskip,
371                        negthinspace, hfill, hfill*, dotfill, hrulefill, hspace,
372                        hspace* \n
373                <LEN>: length for custom spaces (hspace, hspace* for protected)
374  * \li Origin: JSpitzm, 20 May 2003, Mar 17 2008
375  * \endvar
376  */
377                 { LFUN_SPACE_INSERT, "space-insert", Noop, Edit },
378                 { LFUN_HYPERLINK_INSERT, "href-insert", Noop, Edit },
379 /*!
380  * \var lyx::FuncCode lyx::LFUN_SPECIALCHAR_INSERT
381  * \li Action: Inserts various characters into the document.
382  * \li Syntax: specialchar-insert <CHAR>
383  * \li Params: <CHAR>: hyphenation, ligature-break, slash, nobreakdash, dots,
384                        end-of-sentence, menu-separator.
385  * \li Origin: JSpitzm, 6 Dec 2007
386  * \endvar
387  */
388                 { LFUN_SPECIALCHAR_INSERT, "specialchar-insert", Noop, Edit },
389                 { LFUN_TOC_INSERT, "toc-insert", Noop, Edit },
390                 { LFUN_APPENDIX, "appendix", Noop, Edit },
391
392 #if 0
393                 { LFUN_LIST_INSERT, "list-insert", Noop, Edit },
394 #endif
395
396                 { LFUN_DELETE_BACKWARD_SKIP, "delete-backward-skip", Noop, Edit },
397                 { LFUN_DELETE_FORWARD_SKIP, "delete-forward-skip", Noop, Edit },
398                 { LFUN_DOWN, "down", ReadOnly | NoUpdate, Edit },
399                 { LFUN_DOWN_SELECT, "down-select", ReadOnly | SingleParUpdate, Edit },
400                 { LFUN_UP, "up", ReadOnly | NoUpdate, Edit },
401                 { LFUN_UP_SELECT, "up-select", ReadOnly | SingleParUpdate, Edit },
402                 { LFUN_SCREEN_DOWN, "screen-down", ReadOnly, Edit },
403                 { LFUN_SCREEN_DOWN_SELECT, "screen-down-select", ReadOnly, Edit },
404 /*!
405  * \var lyx::FuncCode lyx::LFUN_SCROLL
406  * \li Action: Scroll the buffer view.
407  * \li Notion: Only scrolls the screen up or down; does not move the cursor.
408  * \li Syntax: scroll <TYPE> <QUANTITY>
409  * \li Params: <TYPE>:  line|page\n
410                <QUANTITY>: up|down|<number>
411  * \li Origin: Abdelrazak Younes, Dec 27 2007
412  * \endvar
413  */
414                 { LFUN_SCROLL, "scroll", ReadOnly, Edit },
415 /*!
416  * \var lyx::FuncCode lyx::LFUN_SCREEN_RECENTER
417  * \li Action: Recenters the screen on the current cursor position.
418  * \li Syntax: screen-recenter
419  * \endvar
420  */
421                 { LFUN_SCREEN_RECENTER, "screen-recenter", ReadOnly, Edit },
422                 { LFUN_SCREEN_UP, "screen-up", ReadOnly, Edit },
423                 { LFUN_SCREEN_UP_SELECT, "screen-up-select", ReadOnly, Edit },
424
425                 { LFUN_ERROR_NEXT, "error-next", ReadOnly, Edit },
426 /*!
427  * \var lyx::FuncCode lyx::LFUN_CHAR_BACKWARD
428  * \li Action: Moves the cursor one position logically backwards.
429  * \li Notion: This is not the action which should be bound to the arrow keys,
430                because backwards may be left or right, depending on the
431                language. The arrow keys should be bound to #LFUN_CHAR_LEFT or
432                #LFUN_CHAR_RIGHT actions, which in turn may employ this one.
433  * \li Syntax: char-backward
434  * \endvar
435  */
436                 { LFUN_CHAR_BACKWARD, "char-backward", ReadOnly | NoUpdate, Edit },
437 /*!
438  * \var lyx::FuncCode lyx::LFUN_CHAR_BACKWARD_SELECT
439  * \li Action: Moves the cursor one position logically backwards, adding
440                traversed position to the selection.
441  * \li Notion: See also #LFUN_CHAR_BACKWARD.
442  * \li Syntax: char-backward-select
443  * \endvar
444  */
445                 { LFUN_CHAR_BACKWARD_SELECT, "char-backward-select", ReadOnly | SingleParUpdate, Edit },
446                 { LFUN_CHAR_DELETE_BACKWARD, "delete-backward", SingleParUpdate, Edit },
447                 { LFUN_CHAR_DELETE_FORWARD, "delete-forward", SingleParUpdate, Edit },
448 /*!
449  * \var lyx::FuncCode lyx::LFUN_CHAR_FORWARD
450  * \li Action: Moves the cursor one position logically forward.
451  * \li Notion: This is not the action which should be bound to the arrow keys,
452                because forward may be left or right, depending on the language.
453                The arrow keys should be bound to #LFUN_CHAR_LEFT or
454                #LFUN_CHAR_RIGHT actions, which in turn may employ this one.
455  * \li Syntax: char-forward
456  * \endvar
457  */
458                 { LFUN_CHAR_FORWARD, "char-forward", ReadOnly | NoUpdate, Edit },
459 /*!
460  * \var lyx::FuncCode lyx::LFUN_CHAR_FORWARD_SELECT
461  * \li Action: Moves the cursor one position logically forward, adding
462                traversed position to the selection.
463  * \li Notion: See also #LFUN_CHAR_FORWARD.
464  * \li Syntax: char-forward-select
465  * \endvar
466  */
467                 { LFUN_CHAR_FORWARD_SELECT, "char-forward-select", ReadOnly | SingleParUpdate, Edit },
468 /*!
469  * \var lyx::FuncCode lyx::LFUN_CHAR_LEFT
470  * \li Action: Moves the cursor one position "to the left".
471  * \li Notion: This is the action which should be taken when the "left" key
472                is pressed. Generally, it moves the cursor one position to the
473                left. However, in Bidi text this become slightly more
474                complicated, and there are different modes of cursor movement.
475                In "visual mode", this moves left, plain and simple. In "logical
476                mode", movement is logically forward in RTL paragraphs, and
477                logically backwards in LTR paragraphs.
478  * \li Syntax: char-left
479  * \endvar
480  */
481                 { LFUN_CHAR_LEFT, "char-left", ReadOnly | NoUpdate, Edit },
482 /*!
483  * \var lyx::FuncCode lyx::LFUN_CHAR_LEFT_SELECT
484  * \li Action: Moves the cursor one position "to the left", adding 
485                traversed position to the selection.
486  * \li Notion: See also #LFUN_CHAR_LEFT for exact details of the movement.
487  * \li Syntax: char-left-select
488  * \endvar
489  */
490                 { LFUN_CHAR_LEFT_SELECT, "char-left-select", ReadOnly | SingleParUpdate, Edit },
491 /*!
492  * \var lyx::FuncCode lyx::LFUN_CHAR_RIGHT
493  * \li Action: Moves the cursor one position "to the right".
494  * \li Notion: This is the action which should be taken when the "right" key
495                is pressed. Generally, it moves the cursor one position to the
496                right. However, in Bidi text this become slightly more
497                complicated, and there are different modes of cursor movement.
498                In "visual mode", this moves right, plain and simple. In "logical
499                mode", movement is logically forward in LTR paragraphs, and
500                logically backwards in RTL paragraphs.
501  * \li Syntax: char-right
502  * \endvar
503  */
504                 { LFUN_CHAR_RIGHT, "char-right", ReadOnly | NoUpdate, Edit },
505 /*!
506  * \var lyx::FuncCode lyx::LFUN_CHAR_RIGHT_SELECT
507  * \li Action: Moves the cursor one position "to the right", adding
508                traversed position to the selection.
509  * \li Notion: See also #LFUN_CHAR_RIGHT for exact details of the movement.
510  * \li Syntax: char-right-select
511  * \endvar
512  */
513                 { LFUN_CHAR_RIGHT_SELECT, "char-right-select", ReadOnly | SingleParUpdate, Edit },
514
515                 { LFUN_WORD_BACKWARD, "word-backward", ReadOnly | NoUpdate, Edit },
516                 { LFUN_WORD_BACKWARD_SELECT, "word-backward-select", ReadOnly | SingleParUpdate, Edit },
517                 { LFUN_WORD_CAPITALIZE, "word-capitalize", Noop, Edit },
518                 { LFUN_WORD_DELETE_BACKWARD, "word-delete-backward", Noop, Edit },
519                 { LFUN_WORD_DELETE_FORWARD, "word-delete-forward", Noop, Edit },
520 /*!
521  * \var lyx::FuncCode lyx::LFUN_WORD_FIND_FORWARD
522  * \li Action: Search for a given string in forward direction.
523  * \li Notion: Case sensitive, match words. If no argument given, last search repeated.
524  * \li Syntax: word-find-forward [<STRING>]
525  * \li Origin: Etienne, 16 Feb 1998
526  * \endvar
527  */
528                 { LFUN_WORD_FIND_FORWARD, "word-find-forward", ReadOnly, Edit },
529 /*!
530  * \var lyx::FuncCode lyx::LFUN_WORD_FIND_BACKWARD
531  * \li Action: Search for a given string in backward direction.
532  * \li Notion: Case sensitive, match words. If no argument given, last search repeated.
533  * \li Syntax: word-find-backward [<STRING>]
534  * \li Origin: Etienne, 20 Feb 1998
535  * \endvar
536  */
537                 { LFUN_WORD_FIND_BACKWARD, "word-find-backward", ReadOnly, Edit },
538 /*!
539  * \var lyx::FuncCode lyx::LFUN_WORD_FIND
540  * \li Action: Search for next occurence of a string.
541  * \li Syntax: word-find [<DATA>]
542  * \li Params: <DATA>: data encoded from Find dialog (see #lyx::find2string()).
543                        If no parameter is given, search with last find-dialog
544                        data is used for search (i.e. find-next).
545  * \li Origin: poenitz, Jan 7 2004
546  * \endvar
547  */
548                 { LFUN_WORD_FIND, "word-find", ReadOnly, Edit },
549                 { LFUN_WORD_REPLACE, "word-replace", Noop, Edit },
550                 { LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
551                 { LFUN_WORD_FORWARD_SELECT, "word-forward-select", ReadOnly | SingleParUpdate, Edit },
552                 { LFUN_WORD_LEFT, "word-left", ReadOnly | NoUpdate, Edit },
553                 { LFUN_WORD_LEFT_SELECT, "word-left-select", ReadOnly | SingleParUpdate, Edit },
554                 { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
555                 { LFUN_WORD_RIGHT, "word-right", ReadOnly | NoUpdate, Edit },
556                 { LFUN_WORD_RIGHT_SELECT, "word-right-select", ReadOnly | SingleParUpdate, Edit },
557                 { LFUN_WORD_SELECT, "word-select", ReadOnly, Edit },
558                 { LFUN_WORD_UPCASE, "word-upcase", Noop, Edit },
559 /*!
560  * \var lyx::FuncCode lyx::LFUN_THESAURUS_ENTRY
561  * \li Action: Look up thesaurus entries with respect to the word under the cursor.
562  * \li Syntax: thesaurus-entry
563  * \li Origin: Levon, 20 Jul 2001
564  * \endvar
565  */
566                 { LFUN_THESAURUS_ENTRY, "thesaurus-entry", ReadOnly, Edit },
567                 { LFUN_BUFFER_BEGIN, "buffer-begin", ReadOnly, Edit },
568                 { LFUN_BUFFER_BEGIN_SELECT, "buffer-begin-select", ReadOnly, Edit },
569                 { LFUN_BUFFER_END, "buffer-end", ReadOnly, Edit },
570                 { LFUN_BUFFER_END_SELECT, "buffer-end-select", ReadOnly, Edit },
571
572                 { LFUN_LINE_BEGIN, "line-begin", ReadOnly | NoUpdate, Edit },
573                 { LFUN_LINE_BEGIN_SELECT, "line-begin-select", ReadOnly | SingleParUpdate, Edit },
574                 { LFUN_LINE_DELETE, "line-delete-forward", Noop, Edit }, // there is no line-delete-backward
575                 { LFUN_LINE_END, "line-end", ReadOnly | NoUpdate, Edit },
576                 { LFUN_LINE_END_SELECT, "line-end-select", ReadOnly | SingleParUpdate, Edit },
577 /*!
578  * \var lyx::FuncCode lyx::LFUN_NEWLINE_INSERT
579  * \li Action: Inserts a line break or new line.
580  * \li Syntax: newline-insert <ARG>
581  * \li Params: <ARG>: <newline|linebreak> default: newline
582  * \li Origin: JSpitzm, 25 Mar 2008
583  * \endvar
584  */
585                 { LFUN_NEWLINE_INSERT, "newline-insert", Noop, Edit },
586
587 /*!
588  * \var lyx::FuncCode lyx::LFUN_COPY
589  * \li Action: Copies to the clipboard the last edit.
590  * \li Syntax: copy
591  * \endvar
592  */
593                 { LFUN_COPY, "copy", ReadOnly, Edit },
594 /*!
595  * \var lyx::FuncCode lyx::LFUN_CUT
596  * \li Action: Cuts to the clipboard.
597  * \li Syntax: cut
598  * \endvar
599  */
600                 { LFUN_CUT, "cut", Noop, Edit },
601 /*!
602  * \var lyx::FuncCode lyx::LFUN_PASTE
603  * \li Action: Pastes from the active clipboard.
604  * \li Syntax: paste
605  * \endvar
606  */
607                 { LFUN_PASTE, "paste", Noop, Edit },
608                 { LFUN_CLIPBOARD_PASTE, "clipboard-paste", Noop, Edit },
609 /*!
610  * \var lyx::FuncCode lyx::LFUN_PRIMARY_SELECTION_PASTE
611  * \li Action: Pastes the material currently selected.
612  * \li Syntax: primary-selection-paste
613  * \endvar
614  */
615                 { LFUN_PRIMARY_SELECTION_PASTE, "primary-selection-paste", Noop, Edit },
616 /*!
617  * \var lyx::FuncCode lyx::LFUN_UNDO
618  * \li Action: Undoes the last edit.
619  * \li Syntax: undo
620  * \endvar
621  */
622                 { LFUN_UNDO, "undo", Noop, Edit },
623 /*!
624  * \var lyx::FuncCode lyx::LFUN_REDO
625  * \li Action: Redoes the last thing undone.
626  * \li Syntax: redo
627  * \endvar
628  */
629                 { LFUN_REDO, "redo", Noop, Edit },
630                 { LFUN_REPEAT, "repeat", NoBuffer, Edit },
631                 { LFUN_CHARS_TRANSPOSE, "chars-transpose", Noop, Edit },
632
633                 { LFUN_DEPTH_DECREMENT, "depth-decrement", Noop, Edit },
634                 { LFUN_DEPTH_INCREMENT, "depth-increment", Noop, Edit },
635                 { LFUN_ENVIRONMENT_INSERT, "environment-insert", Noop, Edit },
636
637                 { LFUN_FONT_BOLD, "font-bold", Noop, Layout },
638                 { LFUN_FONT_TYPEWRITER, "font-typewriter", Noop, Layout },
639                 { LFUN_FONT_DEFAULT, "font-default", Noop, Layout },
640                 { LFUN_FONT_EMPH, "font-emph", Noop, Layout },
641                 { LFUN_FONT_FREE_APPLY, "font-free-apply", Noop, Layout },
642                 { LFUN_FONT_FREE_UPDATE, "font-free-update", Noop, Layout },
643                 { LFUN_FONT_NOUN, "font-noun", Noop, Layout },
644                 { LFUN_FONT_ROMAN, "font-roman", Noop, Layout },
645                 { LFUN_FONT_SANS, "font-sans", Noop, Layout },
646                 { LFUN_FONT_FRAK, "font-frak", Noop, Layout },
647                 { LFUN_FONT_ITAL, "font-ital", Noop, Layout },
648                 { LFUN_FONT_SIZE, "font-size", Noop, Layout },
649                 { LFUN_FONT_STATE, "font-state", ReadOnly, Layout },
650                 { LFUN_FONT_UNDERLINE, "font-underline", Noop, Layout },
651                 { LFUN_SCREEN_FONT_UPDATE, "screen-font-update", NoBuffer, Layout },
652
653                 { LFUN_INDEX_INSERT, "index-insert", Noop, Edit },
654                 { LFUN_INDEX_PRINT, "index-print", Noop, Edit },
655
656                 { LFUN_NOMENCL_INSERT, "nomencl-insert", Noop, Edit },
657                 { LFUN_NOMENCL_PRINT, "nomencl-print", Noop, Edit },
658
659                 { LFUN_NOTE_INSERT, "note-insert", Noop, Edit },
660                 { LFUN_NOTE_NEXT, "note-next", ReadOnly, Edit },
661
662                 { LFUN_BIBITEM_INSERT, "bibitem-insert", Noop, Edit },
663                 { LFUN_CITATION_INSERT, "citation-insert", Noop, Edit },
664                 { LFUN_BIBTEX_DATABASE_ADD, "bibtex-database-add", Noop, Edit },
665                 { LFUN_BIBTEX_DATABASE_DEL, "bibtex-database-del", Noop, Edit },
666
667 /*!
668  * \var lyx::FuncCode lyx::LFUN_LAYOUT
669  * \li Action: Sets the layout (that is, environment) for the current paragraph.
670  * \li Syntax: layout <LAYOUT>
671  * \li Params: <LAYOUT>: the layout to use
672  * \endvar
673  */
674                 { LFUN_LAYOUT, "layout", Noop, Layout },
675 /*!
676  * \var lyx::FuncCode lyx::LFUN_LAYOUT_PARAGRAPH
677  * \li Action: Launches the paragraph settings dialog.
678  * \li Syntax: layout-paragraph
679  * \endvar
680  */
681                 { LFUN_LAYOUT_PARAGRAPH, "layout-paragraph", ReadOnly, Layout },
682                 { LFUN_LAYOUT_TABULAR, "layout-tabular", Noop, Layout },
683 /*!
684  * \var lyx::FuncCode lyx::LFUN_DROP_LAYOUTS_CHOICE
685  * \li Action: Displays list of layout choices.
686  * \li Notion: In the current (as of 2007) Qt4 frontend, this LFUN opens the
687                dropbox allowing for choice of layout.
688  * \li Syntax: drop-layouts-choice
689  * \endvar
690  */
691                 { LFUN_DROP_LAYOUTS_CHOICE, "drop-layouts-choice", ReadOnly, Layout },
692 /*!
693  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULES_CLEAR
694  * \li Action: Clears the module list.
695  * \li Notion: Clears the list of included modules for the current buffer.
696  * \li Syntax: layout-modules-clear
697  * \li Origin: rgh, 25 August 2007
698  * \endvar
699  */
700                 { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout },
701 /*!
702  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULE_ADD
703  * \li Action: Adds a module.
704  * \li Notion: Adds a module to the list of included modules for the current buffer.
705  * \li Syntax: layout-module-add <MODULE>
706  * \li Params: <MODULE>: the module to be added
707  * \li Origin: rgh, 25 August 2007
708  * \endvar
709  */
710                 { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout },
711 /*!
712  * \var lyx::FuncCode lyx::LFUN_LAYOUT_RELOAD
713  * \li Action: Reloads layout information.
714  * \li Notion: Reloads all layout information for the current buffer from disk, thus
715                recognizing any changes that have been made to layout files on the fly.
716                This is intended to be used only by layout developers and should not be
717                used when one is trying to do actual work.
718  * \li Syntax: layout-reload
719  * \li Origin: rgh, 3 September 2007
720  * \endvar
721  */
722                 { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout },
723 /*!
724  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_APPLY
725  * \li Action: Sets the text class for the current buffer.
726  * \li Syntax: textclass-apply <TEXTCLASS>
727  * \li Params: <TEXTCLASS>: the textclass to set. Note that this must be
728                    the filename, minus the ".layout" extension.
729  * \endvar
730  */
731                 { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout },
732 /*!
733  * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_LOAD
734  * \li Action: Loads information for a textclass from disk.
735  * \li Syntax: textclass-load <TEXTCLASS>
736  * \li Params: <TEXTCLASS>: the textclass to load. Note that this must be
737                    the filename, minus the ".layout" extension.
738  * \endvar
739  */
740                 { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout },
741
742 /*!
743  * \var lyx::FuncCode lyx::LFUN_MARK_OFF
744  * \li Action: Disable selecting of text-region.
745  * \li Syntax: mark-off
746  * \endvar
747  */
748                 { LFUN_MARK_OFF, "mark-off", ReadOnly, Edit },
749 /*!
750  * \var lyx::FuncCode lyx::LFUN_MARK_ON
751  * \li Action: Enable selecting of text-region.
752  * \li Notion: After enabling you can simply move arrow keys to get selected region.
753  * \li Syntax: mark-on
754  * \endvar
755  */
756                 { LFUN_MARK_ON, "mark-on", ReadOnly, Edit },
757 /*!
758  * \var lyx::FuncCode lyx::LFUN_MARK_TOGGLE
759  * \li Action: Toggle between #LFUN_MARK_ON and #LFUN_MARK_OFF .
760  * \li Syntax: mark-toggle
761  * \li Origin: poenitz, May 5 2006
762  * \endvar
763  */
764                 { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
765                 
766                 { LFUN_MATH_DELIM, "math-delim", Noop, Math },
767                 { LFUN_MATH_BIGDELIM, "math-bigdelim", Noop, Math },
768                 { LFUN_MATH_DISPLAY, "math-display", Noop, Math },
769                 { LFUN_MATH_INSERT, "math-insert", Noop, Math },
770                 { LFUN_MATH_SUBSCRIPT, "math-subscript", Noop, Math },
771                 { LFUN_MATH_SUPERSCRIPT, "math-superscript", Noop, Math },
772                 { LFUN_MATH_LIMITS, "math-limits", Noop, Math },
773                 { LFUN_MATH_MACRO, "math-macro", Noop, Math },
774                 { LFUN_MATH_MUTATE, "math-mutate", Noop, Math },
775                 { LFUN_MATH_SPACE, "math-space", Noop, Math },
776                 { LFUN_MATH_IMPORT_SELECTION, "math-import-selection", Noop, Math },
777                 { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
778                 { LFUN_MATH_MODE, "math-mode", Noop, Math },
779 /*!
780  * \var lyx::FuncCode lyx::LFUN_MATH_NUMBER_LINE_TOGGLE
781  * \li Action: Toggles numbering of the current formula line.
782  * \li Notion: Must be in display formula mode.
783  * \li Syntax: math-number-line-toggle
784  * \li Origin: Alejandro 18 Jun 1996
785  * \endvar
786  */
787                 { LFUN_MATH_NUMBER_LINE_TOGGLE, "math-number-line-toggle", Noop, Math },
788 /*!
789  * \var lyx::FuncCode lyx::LFUN_MATH_NUMBER_TOGGLE
790  * \li Action: Toggles numbering/labeling of the current formula.
791  * \li Notion: Must be in display formula mode.
792  * \li Syntax: math-number-toggle
793  * \li Origin: Alejandro 4 Jun 1996
794  * \endvar
795  */
796                 { LFUN_MATH_NUMBER_TOGGLE, "math-number-toggle", Noop, Math },
797                 { LFUN_MATH_EXTERN, "math-extern", Noop, Math },
798                 { LFUN_MATH_SIZE, "math-size", Noop, Math },
799 /*!
800  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_UNFOLD
801  * \li Action: Unfold a Math Macro.
802  * \li Notion: Unfold the Math Macro the cursor is in, i.e.
803                display it as \foo.
804  * \li Syntax: math-macro-unfold
805  * \li Origin: sts, 06 January 2008
806  * \endvar
807  */
808                 { LFUN_MATH_MACRO_UNFOLD, "math-macro-unfold", ReadOnly | SingleParUpdate, Math },
809 /*!
810  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_FOLD
811  * \li Action: Fold a Math Macro.
812  * \li Notion: Fold the Math Macro the cursor is in if it was
813                unfolded, i.e. displayed as \foo before.
814  * \li Syntax: math-macro-fold
815  * \li Origin: sts, 06 January 2008
816  * \endvar
817  */
818                 { LFUN_MATH_MACRO_FOLD, "math-macro-fold", ReadOnly | SingleParUpdate, Math },
819 /*!
820  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_ADD_PARAM
821  * \li Action: Add a parameter.
822  * \li Notion: Add a parameter to a Math Macro.
823  * \li Params: <NUM>: The number of the parameter behind which the new one
824                will be added (1 for the first, i.e. use 0 for add a
825                parameter at the left), defaults to the last one.
826  * \li Syntax: math-macro-add-param <NUM>
827  * \li Origin: sts, 06 January 2008
828  * \endvar
829  */
830                 { LFUN_MATH_MACRO_ADD_PARAM, "math-macro-add-param", Noop, Math },
831 /*!
832  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_REMOVE_PARAM
833  * \li Action: Remove the last parameter.
834  * \li Notion: Remove the last parameter of a Math Macro and
835                remove its value in all instances of the macro
836                in the buffer.
837  * \li Params: <NUM>: The number of the parameter to be deleted (1 for
838                the first), defaults to the last one.
839  * \li Syntax: math-macro-remove-param <NUM>
840  * \li Origin: sts, 06 January 2008
841  * \endvar
842  */
843                 { LFUN_MATH_MACRO_REMOVE_PARAM, "math-macro-remove-param", Noop, Math },
844 /*!
845  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_APPEND_GREEDY_PARAM
846  * \li Action: Append a greedy parameter.
847  * \li Notion: Append a greedy parameter to a Math Macro which
848                eats the following mathed cell in every instance of
849                the macro in the buffer.
850  * \li Syntax: math-macro-append-greedy-param
851  * \li Origin: sts, 06 January 2008
852  * \endvar
853  */
854                 { LFUN_MATH_MACRO_APPEND_GREEDY_PARAM, "math-macro-append-greedy-param", Noop, Math },
855 /*!
856  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM
857  * \li Action: Remove a greedy parameter.
858  * \li Notion: Remove a greedy parameter of a Math Macro and spit
859                out the values of it in every instance of the macro
860                in the buffer. If it is an optional parameter the [valud]
861                format is used.
862  * \li Syntax: math-macro-remove-greedy-param
863  * \li Origin: sts, 06 January 2008
864  * \endvar
865  */
866                 { LFUN_MATH_MACRO_REMOVE_GREEDY_PARAM, "math-macro-remove-greedy-param", Noop, Math },
867 /*!
868  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_MAKE_OPTIONAL
869  * \li Action: Make a parameter optional.
870  * \li Notion: Turn the first non-optional parameter of a Math Macro
871                into an optional parameter with a default value.
872  * \li Syntax: math-macro-make-optional
873  * \li Origin: sts, 06 January 2008
874  * \endvar
875  */
876                 { LFUN_MATH_MACRO_MAKE_OPTIONAL, "math-macro-make-optional", Noop, Math },
877 /*!
878  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_MAKE_NONOPTIONAL
879  * \li Action: Make a parameter non-optional.
880  * \li Notion: Turn the last optional parameter of a Math Macro
881                into a non-optional parameter. The default value is
882                remembered to be reused later if the user changes his mind.
883  * \li Syntax: math-macro-make-nonoptional
884  * \li Origin: sts, 06 January 2008
885  * \endvar
886  */
887                 { LFUN_MATH_MACRO_MAKE_NONOPTIONAL, "math-macro-make-nonoptional", Noop, Math },
888 /*!
889  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM
890  * \li Action: Add an optional parameter.
891  * \li Notion: Insert an optional parameter just behind the
892                already existing optional parameters.
893  * \li Syntax: math-macro-add-optional-param
894  * \li Origin: sts, 06 January 2008
895  * \endvar
896  */
897                 { LFUN_MATH_MACRO_ADD_OPTIONAL_PARAM, "math-macro-add-optional-param", Noop, Math },
898 /*!
899  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM
900  * \li Action: Remove the last optional parameter.
901  * \li Notion: Remove the last optional parameter of a Math Macro and
902                remove it in all the instances of the macro in the buffer.
903  * \li Syntax: math-macro-remove-optional-param
904  * \li Origin: sts, 06 January 2008
905  * \endvar
906  */
907                 { LFUN_MATH_MACRO_REMOVE_OPTIONAL_PARAM, "math-macro-remove-optional-param", Noop, Math },
908 /*!
909  * \var lyx::FuncCode lyx::LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM
910  * \li Action: Add a greedy optional parameter.
911  * \li Notion: Add a greedy optional parameter which eats the value
912                from the following cells in mathed which are in the [value]
913                format.
914  * \li Syntax: math-macro-add-greedy-optional-param
915  * \li Origin: sts, 06 January 2008
916  * \endvar
917  */
918                 { LFUN_MATH_MACRO_ADD_GREEDY_OPTIONAL_PARAM, "math-macro-add-greedy-optional-param", Noop, Math },
919 /*!
920  * \var lyx::FuncCode lyx::LFUN_IN_MATHMACROTEMPLATE
921  * \li Action: Only active in Math Macro definition.
922  * \li Notion: Dummy function which is only active in a Math Macro definition.
923                It's used to toggle the Math Macro toolbar if the cursor moves
924                into a Math Macro definition.
925  * \li Syntax: in-mathmacrotemplate
926  * \li Origin: sts, 06 January 2008
927  * \endvar
928  */
929                 { LFUN_IN_MATHMACROTEMPLATE, "in-mathmacrotemplate", Noop, Math },
930
931 /*!
932  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_MOVE_DOWN
933  * \li Action: Moves the current paragraph downwards in the document.
934  * \li Syntax: paragraph-move-down
935  * \li Origin: Edwin, 8 Apr 2006
936  * \endvar
937  */
938                 { LFUN_PARAGRAPH_MOVE_DOWN, "paragraph-move-down", Noop, Edit },
939 /*!
940  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_MOVE_UP
941  * \li Action: Moves the current paragraph upwards in the document.
942  * \li Syntax: paragraph-move-up
943  * \li Origin: Edwin, 8 Apr 2006
944  * \endvar
945  */
946                 { LFUN_PARAGRAPH_MOVE_UP, "paragraph-move-up", Noop, Edit },
947
948 /*!
949  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP
950  * \li Action: Move the cursor to the next paragraph (or begining of the current one)
951                in upward direction.
952  * \li Syntax: paragraph-up
953  * \li Origin: Asger, 1 Oct 1996
954  * \endvar
955  */
956                 { LFUN_PARAGRAPH_UP, "paragraph-up", ReadOnly | NoUpdate, Edit },
957 /*!
958  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP_SELECT
959  * \li Action: Move the cursor and select the text to the next paragraph (or
960                begining of the current one) in upward direction.
961  * \li Syntax: paragraph-up-select
962  * \li Origin: Asger, 1 Oct 1996
963  * \endvar
964  */
965                 { LFUN_PARAGRAPH_UP_SELECT, "paragraph-up-select", ReadOnly, Edit },
966 /*!
967  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_DOWN
968  * \li Action: Move the cursor to the next paragraph (or begining of the current one)
969                in downward direction.
970  * \li Syntax: paragraph-down
971  * \li Origin: Asger, 1 Oct 1996
972  * \endvar
973  */
974                 { LFUN_PARAGRAPH_DOWN, "paragraph-down", ReadOnly | NoUpdate, Edit },
975 /*!
976  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_DOWN_SELECT
977  * \li Action: Move the cursor and select the text to the next paragraph (or
978                begining of the current one) in downward direction.
979  * \li Syntax: paragraph-down-select
980  * \li Origin: Asger, 1 Oct 1996
981  * \endvar
982  */
983                 { LFUN_PARAGRAPH_DOWN_SELECT, "paragraph-down-select", ReadOnly, Edit },
984 /*!
985  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_GOTO
986  * \li Action: Jump to a paragraph given by its id number.
987  * \li Notion: Note that id number of paragraph is not the sequential number of paragraph
988                seen on the screen. Moreover the id is unique for all opened buffers (documents).
989  * \li Syntax: paragraph-goto <PAR_ID_NUMBER>
990  * \li Origin: Dekel, 26 Aug 2000
991  * \endvar
992  */
993                 { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit },
994 /*!
995  * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH
996  * \li Action: Breaks the current paragraph at the current location.
997  * \li Syntax: break-paragraph
998  * \endvar
999  */
1000                 { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit },
1001                 { LFUN_BREAK_PARAGRAPH, "break-paragraph", Noop, Edit },
1002 /*!
1003  * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH_SKIP
1004  * \li Action: Breaks the current paragraph at the current location,
1005                unless used at the beginning of a line, where it sets
1006                the label width string to empty.
1007  * \li Syntax: break-paragraph-skip
1008  * \endvar
1009  */
1010                 { LFUN_BREAK_PARAGRAPH_SKIP, "break-paragraph-skip", Noop, Edit },
1011 /*!
1012  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_PARAMS
1013  * \li Action: Change paragraph settings.
1014  * \li Notion: Modifies the current paragraph, or currently selected paragraphs.
1015                This function only modifies, and does not override, existing settings.
1016                Note that the "leftindent" indent setting is deprecated.
1017  * \li Syntax: paragraph-params [<INDENT>] [<SPACING>] [<ALIGN>] [<OTHERS>]
1018  * \li Params: <INDENT>:  \\noindent|\\indent|\\indent-toggle|\\leftindent LENGTH\n
1019                <SPACING>: \\paragraph_spacing default|single|onehalf|double|other\n
1020                <ALIGN>:   \\align block|left|right|center|default\n
1021                <OTHERS>:  \\labelwidthstring WIDTH|\\start_of_appendix\n
1022  * \li Origin: rgh, Aug 15 2007
1023  * \endvar
1024  */
1025                 { LFUN_PARAGRAPH_PARAMS, "paragraph-params", Noop, Edit },
1026 /*!
1027  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_PARAMS_APPLY
1028  * \li Action: Change paragraph settings.
1029  * \li Notion: Overwrite all nonspecified settings to the default ones.
1030                Use paragraph-params lfun if you don't want to overwrite others settings.
1031  * \li Syntax: paragraph-params-apply <INDENT> <SPACING> <ALIGN> <OTHERS>
1032  * \li Params: For parameters see #LFUN_PARAGRAPH_PARAMS
1033  * \li Origin: leeming, 30 Mar 2004
1034  * \endvar
1035  */
1036                 { LFUN_PARAGRAPH_PARAMS_APPLY, "paragraph-params-apply", Noop, Edit },
1037                 { LFUN_PARAGRAPH_UPDATE, "", Noop, Hidden },
1038
1039 /*!
1040  * \var lyx::FuncCode lyx::LFUN_OUTLINE_UP
1041  * \li Action: Move the current group in the upward direction in the
1042                structure of the document.
1043  * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
1044                the whole substructure of the group.
1045  * \li Syntax: outline-up
1046  * \li Origin: Vermeer, 23 Mar 2006
1047  * \endvar
1048  */
1049                 { LFUN_OUTLINE_UP, "outline-up", Noop, Edit },
1050 /*!
1051  * \var lyx::FuncCode lyx::LFUN_OUTLINE_DOWN
1052  * \li Action: Move the current group in the downward direction in the
1053                structure of the document.
1054  * \li Notion: The "group" can be Part/Chapter/Section/etc. It moves
1055                the whole substructure of the group.
1056  * \li Syntax: outline-down
1057  * \li Origin: Vermeer, 23 Mar 2006
1058  * \endvar
1059  */
1060                 { LFUN_OUTLINE_DOWN, "outline-down", Noop, Edit },
1061 /*!
1062  * \var lyx::FuncCode lyx::LFUN_OUTLINE_IN
1063  * \li Action: Moves the current group in the downward direction in the
1064                hierarchy of the document structure.
1065  * \li Notion: Part -> Chapter -> Section -> etc.
1066  * \li Syntax: outline-in
1067  * \li Origin: Vermeer, 23 Mar 2006
1068  * \endvar
1069  */
1070                 { LFUN_OUTLINE_IN, "outline-in", Noop, Edit },
1071 /*!
1072  * \var lyx::FuncCode lyx::LFUN_OUTLINE_OUT
1073  * \li Action: Moves the current group in the upward direction in the
1074                hierarchy of the document structure.
1075  * \li Notion: Part <- Chapter <- Section <- etc.
1076  * \li Syntax: outline-out
1077  * \li Origin: Vermeer, 23 Mar 2006
1078  * \endvar
1079  */
1080                 { LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
1081
1082                 { LFUN_EXTERNAL_EDIT, "external-edit", Noop, Edit },
1083                 { LFUN_GRAPHICS_EDIT, "graphics-edit", Noop, Edit },
1084
1085                 { LFUN_CELL_BACKWARD, "cell-backward", Noop, Edit },
1086                 { LFUN_CELL_FORWARD, "cell-forward", Noop, Edit },
1087                 { LFUN_CELL_SPLIT, "cell-split", Noop, Edit },
1088                 { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
1089                 { LFUN_TABULAR_FEATURE, "tabular-feature", Noop, Edit },
1090
1091                 { LFUN_VC_CHECK_IN, "vc-check-in", ReadOnly, System },
1092                 { LFUN_VC_CHECK_OUT, "vc-check-out", ReadOnly, System },
1093                 { LFUN_VC_REGISTER, "vc-register", ReadOnly, System },
1094                 { LFUN_VC_REVERT, "vc-revert", ReadOnly, System },
1095                 { LFUN_VC_UNDO_LAST, "vc-undo-last", ReadOnly, System },
1096
1097                 { LFUN_CHANGES_TRACK, "changes-track", Noop, Edit },
1098                 { LFUN_CHANGES_OUTPUT, "changes-output", Noop, Edit },
1099                 { LFUN_CHANGE_NEXT, "change-next", ReadOnly, Edit },
1100                 { LFUN_CHANGES_MERGE, "changes-merge", Noop, Edit },
1101                 { LFUN_CHANGE_ACCEPT, "change-accept", Noop, Edit },
1102                 { LFUN_CHANGE_REJECT, "change-reject", Noop, Edit },
1103                 { LFUN_ALL_CHANGES_ACCEPT, "all-changes-accept", Noop, Edit },
1104                 { LFUN_ALL_CHANGES_REJECT, "all-changes-reject", Noop, Edit },
1105
1106 /*!
1107  * \var lyx::FuncCode lyx::LFUN_INSET_APPLY
1108  * \li Action: Apply data for an inset.
1109  * \li Notion: LFUN_INSET_APPLY is sent from the dialogs when the data should
1110                be applied. This is either changed to #LFUN_INSET_MODIFY or
1111                #LFUN_INSET_INSERT depending on the context where it is called.
1112  * \li Syntax: inset-apply <ARGS>
1113  * \li Params: See #LFUN_INSET_INSERT .
1114  * \endvar
1115  */
1116                 { LFUN_INSET_APPLY, "inset-apply", Noop, Edit },
1117 /*!
1118  * \var lyx::FuncCode lyx::LFUN_INSET_DISSOLVE
1119  * \li Action: Dissolve the current inset into text.
1120  * \li Syntax: inset-dissolve [<INSET>]
1121  * \li Params: <INSET>: this can be used to make sure the right kind of inset
1122                         is dissolved. For example "dissolve" entry in the charstyles
1123                         sub-menu should only dissolve the charstyle inset, even if the
1124                         cursor is inside several nested insets of different type.\n
1125                         For values see #lyx::InsetLayout::lyxtype_ .
1126  * \li Author: JSpitz, 7 Aug 2006
1127  * \endvar
1128  */
1129                 { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit },
1130 /*!
1131  * \var lyx::FuncCode lyx::LFUN_INSET_INSERT
1132  * \li Action: Insert new inset (type given by the parameters).
1133  * \li Syntax: inset-insert <INSET> <ARGS>
1134  * \li Params: <INSET>: <bibitem|bibtex|cite|ert|listings|external|graphics|
1135                          hyperlink|include|index|label|nomencl|vspace|ref|toc>\n
1136                <ARGS>: depends on the given inset. Use "lyx -dbg action" to
1137                        explore.
1138  * \li Sample: inset-insert ref LatexCommand <Format> reference "<label name>"\end_inset \n
1139                where <label name> is the name of the referenced label and
1140                <Format> is one of the following: \n
1141                ref -- <reference> \n
1142                eqref -- (<reference>) \n
1143                pageref -- <page> \n
1144                vpageref -- on <page> \n
1145                vref -- <reference> on <page> \n
1146                prettyref -- Formatted reference
1147  * \endvar
1148  */
1149                 { LFUN_INSET_INSERT, "inset-insert", Noop, Edit },
1150 /*!
1151  * \var lyx::FuncCode lyx::LFUN_INSET_MODIFY
1152  * \li Action: Modify existing inset.
1153  * \li Notion: Used for label, floats, listings, box, branch, external, wrap
1154                bibtex, ert, command, graphics, note, space, vspace, tabular,
1155                bibitem, inlude, ref insets.
1156  * \li Syntax: inset-modify <INSET> <ARGS>
1157  * \li Params: See #LFUN_INSET_INSERT for further details.
1158  * \endvar
1159  */
1160                 { LFUN_INSET_MODIFY, "", Noop, Hidden },
1161 /*!
1162  * \var lyx::FuncCode lyx::LFUN_NEXT_INSET_MODIFY
1163  * \li Action: Modify the inset at cursor position, if there is one.
1164  * \li Notion: Used for label, floats, listings, box, branch, external, wrap
1165                bibtex, ert, command, graphics, note, space, vspace, tabular,
1166                bibitem, inlude, ref insets.
1167  * \li Syntax: next-inset-modify <INSET> <ARGS> or next-inset-modify changetype <TYPE>
1168  * \li Params: See #LFUN_INSET_INSERT for further details.
1169  * \li Origin: JSpitzm, 23 Mar 2008
1170  * \endvar
1171  */
1172                 { LFUN_NEXT_INSET_MODIFY, "next-inset-modify", ReadOnly, Edit },
1173                 { LFUN_INSET_DIALOG_UPDATE, "", Noop, Hidden },
1174 /*!
1175  * \var lyx::FuncCode lyx::LFUN_INSET_SETTINGS
1176  * \li Action: Open the inset's properties dialog.
1177  * \li Notion: Used for box, branch, ert, float, listings, note, tabular, wrap insets.
1178  * \li Syntax: inset-settings <INSET>
1179  * \li Params: <INSET>: <box|branch|ert|float|listings|note|tabular|wrap>
1180  * \endvar
1181  */
1182                 { LFUN_INSET_SETTINGS, "inset-settings", ReadOnly, Edit },
1183 /*!
1184  * \var lyx::FuncCode lyx::LFUN_NEXT_INSET_TOGGLE
1185  * \li Action: Toggles the inset at cursor position. For collapsables, this means it will
1186                be (un-)collapsed, in case of other insets, the editing widget (dialog) will
1187                be entered. Also cf. #LFUN_INSET_SETTINGS.
1188  * \li Notion: Used for label, floats, listings, box, branch, external, wrap
1189                bibtex, ert, command, graphics, note, space, vspace, tabular,
1190                bibitem, inlude, ref insets.
1191  * \li Syntax: next-inset-toggle <ARG>
1192  * \li Params: <ARG>: these are passed as arguments to #LFUN_INSET_TOGGLE .
1193  * \li Origin: leeming, 30 Mar 2004
1194  * \endvar
1195  */
1196                 { LFUN_NEXT_INSET_TOGGLE, "next-inset-toggle", ReadOnly, Edit },
1197 /*!
1198  * \var lyx::FuncCode lyx::LFUN_INSET_TOGGLE
1199  * \li Action: Toggles the collapsable inset we are currently in.
1200  * \li Syntax: inset-toggle [<ARG>]
1201  * \li Params: <ARG>: <open|close|toggle|assign>. \n
1202                open/close/toggle are for collapsable insets. close can be currently used
1203                by #LFUN_NEXT_INSET_TOGGLE. toggle is used when no argument is given.\n
1204                assign is for branch inset.
1205  * \li Origin: lasgouttes, 19 Jul 2001
1206  * \endvar
1207  */
1208                 { LFUN_INSET_TOGGLE, "inset-toggle", ReadOnly, Hidden },
1209 /*!
1210  * \var lyx::FuncCode lyx::LFUN_ALL_INSETS_TOGGLE
1211  * \li Action: Toggles (open/closes) all collapsable insets (of a given type) in the document.
1212  * \li Notion: Used for box, branch, ert, float, listings, note, tabular, wrap insets.
1213  * \li Syntax: all-insets-toggle <STATE> <INSET>
1214  * \li Params: <STATE>: <toggle|open|close> default: toggle \n
1215                <INSET>: <box|branch|ert|float|listings|note|tabular|wrap> default: all insets \n
1216  * \li Origin: leeming, 30 Mar 2004
1217  * \endvar
1218  */
1219                 { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit },
1220
1221 /*!
1222  * \var lyx::FuncCode lyx::LFUN_FINISHED_FORWARD
1223  * \li Action: Moves the cursor out of the current slice, going forward.
1224  * \li Notion: Cursor movement within an inset may be different than cursor
1225                movement in the surrounding text. This action should be called
1226                automatically by the cursor movement within the inset, when
1227                movement within the inset has ceased (reached the end of the
1228                last paragraph, for example), in order to move correctly
1229                back into the surrounding text.
1230  * \endvar
1231  */
1232                 { LFUN_FINISHED_FORWARD, "", ReadOnly, Hidden },
1233 /*!
1234  * \var lyx::FuncCode lyx::LFUN_FINISHED_BACKWARD
1235  * \li Action: Moves the cursor out of the current slice, going backwards.
1236  * \li Notion: See also #LFUN_FINISHED_FORWARD.
1237  * \endvar
1238  */
1239                 { LFUN_FINISHED_BACKWARD, "", ReadOnly, Hidden },
1240 /*!
1241  * \var lyx::FuncCode lyx::LFUN_FINISHED_RIGHT
1242  * \li Action: Moves the cursor out of the current slice, going right.
1243  * \li Notion: See also #LFUN_FINISHED_FORWARD
1244  * \endvar
1245  */
1246                 { LFUN_FINISHED_RIGHT, "", ReadOnly, Hidden },
1247 /*!
1248  * \var lyx::FuncCode lyx::LFUN_FINISHED_LEFT
1249  * \li Action: Moves the cursor out of the current slice, going left.
1250  * \li Notion: See also #LFUN_FINISHED_FORWARD.
1251  * \endvar
1252  */
1253                 { LFUN_FINISHED_LEFT, "", ReadOnly, Hidden },
1254
1255                 { LFUN_LANGUAGE, "language", Noop, Edit },
1256
1257 /*!
1258  * \var lyx::FuncCode lyx::LFUN_LABEL_GOTO
1259  * \li Action: Goto a label.
1260  * \li Syntax: label-goto [<LABEL>]
1261  * \li Params: <LABEL>: Requested label. If no label is given and refernce
1262                         is on cursor position, Bookmark 0 is saved and
1263                         cursor moves to the position of referenced label.
1264  * \li Origin: Ale, 6 Aug 1997
1265  * \endvar
1266  */
1267                 { LFUN_LABEL_GOTO, "label-goto", ReadOnly, Edit },
1268                 { LFUN_LABEL_INSERT, "label-insert", Noop, Edit },
1269 /*!
1270  * \var lyx::FuncCode lyx::LFUN_REFERENCE_NEXT
1271  * \li Action: Go to the next label or cross-reference.
1272  * \li Syntax: reference-next
1273  * \li Origin: Dekel, 14 Jan 2001
1274  * \endvar
1275  */
1276                 { LFUN_REFERENCE_NEXT, "reference-next", ReadOnly, Edit },
1277
1278 /*!
1279  * \var lyx::FuncCode lyx::LFUN_BOOKMARK_GOTO
1280  * \li Action: Goto a bookmark.
1281  * \li Notion: Moves the cursor to the numbered bookmark, opening the file
1282                if necessary. Note that bookmarsk are saved per-session, not
1283                per file.
1284  * \li Syntax: bookmark-goto <NUMBER>
1285  * \li Params: <NUMBER>: the number of the bookmark to restore.
1286  * \li Origin: Dekel, 27 January 2001
1287  * \endvar
1288  */
1289                 { LFUN_BOOKMARK_GOTO, "bookmark-goto", NoBuffer, Edit },
1290 /*!
1291  * \var lyx::FuncCode lyx::LFUN_BOOKMARK_SAVE
1292  * \li Action: Save a bookmark.
1293  * \li Notion: Saves a numbered bookmark to the sessions file. The number
1294                must be between 1 and 9, inclusive. Note that bookmarks are
1295                saved per-session, not per file.
1296  * \li Syntax: bookmark-save <NUMBER>
1297  * \li Params: <NUMBER>: the number of the bookmark to save.
1298  * \li Origin: Dekel, 27 January 2001
1299  * \endvar
1300  */
1301                 { LFUN_BOOKMARK_SAVE, "bookmark-save", ReadOnly, Edit },
1302 /*!
1303  * \var lyx::FuncCode lyx::LFUN_BOOKMARK_CLEAR
1304  * \li Action: Clears the list of saved bookmarks.
1305  * \li Syntax: bookmark-clear
1306  * \li Origin: bpeng, 31 October 2006
1307  * \endvar
1308  */
1309                 { LFUN_BOOKMARK_CLEAR, "bookmark-clear", NoBuffer, Edit },
1310
1311 /*!
1312  * \var lyx::FuncCode lyx::LFUN_HELP_OPEN
1313  * \li Action: Open the given help file according to the language setting.
1314  * \li Syntax: help-open <FILE>[.lyx]
1315  * \li Params: <FILE>: any document from (/usr/share/)doc directory.
1316  * \li Author: Jug, 27 Jun 1999
1317  * \endvar
1318  */
1319                 { LFUN_HELP_OPEN, "help-open", NoBuffer | Argument, Buffer },
1320 /*!
1321  * \var lyx::FuncCode lyx::LFUN_LYX_QUIT
1322  * \li Action: Terminates the current LyX instance.
1323  * \li Notion: Terminates the current LyX instance, asking whether to save
1324                modified documents, etc.
1325  * \li Syntax: lyx-quit
1326  * \endvar
1327  */
1328                 { LFUN_LYX_QUIT, "lyx-quit", NoBuffer, Buffer },
1329 /*!
1330  * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE
1331  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
1332  * \li Notion: Skiping "auto" when allowauto is false.
1333  * \li Syntax: toolbar-toggle <NAME> [allowauto]
1334  * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|
1335                        minibuffer|review|view/update|math_panels
1336  * \li Origin: Edwin, 21 May 2007
1337  * \endvar
1338  */
1339                 { LFUN_TOOLBAR_TOGGLE, "toolbar-toggle", NoBuffer, Buffer },
1340 /*!
1341  * \var lyx::FuncCode lyx::LFUN_MENU_OPEN
1342  * \li Action: Opens the menu given by its name.
1343  * \li Syntax: menu-open <NAME>
1344  * \li Params: <NAME>: menu name. See various .inc files in lib/ui for candidates.
1345  * \endvar
1346  */
1347                 { LFUN_MENU_OPEN, "menu-open", NoBuffer, Buffer },
1348 /*!
1349  * \var lyx::FuncCode lyx::LFUN_UI_TOGGLE
1350  * \li Action: Various UI visibility-toggling actions.
1351  * \li Syntax: ui-toggle <statusbar|menubar|frame|fullscreen>
1352  * \li Params: statusbar  : Toggle visibility of the statusbar.\n
1353                menubar    : Toggle visibility of the menubar.\n
1354                scrollbar  : Toggle visibility of the scrollbar.\n
1355                frame      : Toggle visibility of the frames around editing window.\n
1356                fullscreen : Toggle fullscreen mode. This also covers calling the
1357                             previous functions. However #LFUN_TOOLBAR_TOGGLE for the
1358                             custom tweaks of the toolbars should be used.
1359  * \li Origin: ps, 9 Feb 2007
1360  * \endvar
1361  */
1362                 { LFUN_UI_TOGGLE, "ui-toggle", NoBuffer, Buffer },
1363
1364 /*!
1365  * \var lyx::FuncCode lyx::WINDOW_NEW
1366  * \li Action: Creates new empty LyX window.
1367  * \li Notion: Already opened documents from the previous window can be found under View menu.
1368  * \li Syntax: window-new [<GEOMETRY>]
1369  * \li Params: <GEOMETRY>: pass the geometry of the window. This parameter is currently 
1370                            accepted only on Windows platform.
1371  * \li Origin: Abdel, 21 Oct 2006
1372  * \endvar
1373  */
1374                 { LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
1375 /*!
1376  * \var lyx::FuncCode lyx::LFUN_WINDOW_CLOSE
1377  * \li Action: Closes the current LyX window.
1378  * \li Syntax: window-close
1379  * \li Origin: Abdel, 23 Oct 2006
1380  * \endvar
1381  */
1382                 { LFUN_WINDOW_CLOSE, "window-close", NoBuffer, Buffer },
1383
1384 /*!
1385  * \var lyx::FuncCode lyx::LFUN_SPLIT_VIEW
1386  * \li Action: Creates another split view of current buffer.
1387  * \li Notion: All split views act in the same way indpendently.
1388  * \li Syntax: split-view <vertical|horizontal>
1389  * \li Params: horizontal : The work areas are laid out side by side.\n
1390                vertical   : The work areas laid out vertically.\n
1391  * \li Origin: abdel, 20 Feb 2008
1392  * \endvar
1393  */
1394                 { LFUN_SPLIT_VIEW, "split-view", ReadOnly, Buffer },
1395
1396 /*!
1397  * \var lyx::FuncCode lyx::LFUN_CLOSE_TAB_GROUP
1398  * \li Action: Close the current tab group.
1399  * \li Notion: This only closes the work areas, not the buffer themselves.
1400                The still opened buffers can be visualized in another tab group.
1401  * \li Syntax: close-tab-group
1402  * \li Origin: abdel, 21 Feb 2008
1403  * \endvar
1404  */
1405                 { LFUN_CLOSE_TAB_GROUP, "close-tab-group", ReadOnly, Buffer },
1406                 { LFUN_DIALOG_SHOW, "dialog-show", NoBuffer, Edit },
1407                 { LFUN_DIALOG_SHOW_NEW_INSET, "dialog-show-new-inset", Noop, Edit },
1408                 { LFUN_DIALOG_UPDATE, "dialog-update", NoBuffer, Edit },
1409                 { LFUN_DIALOG_HIDE, "dialog-hide", NoBuffer, Edit },
1410                 { LFUN_DIALOG_TOGGLE, "dialog-toggle", NoBuffer, Edit },
1411                 { LFUN_DIALOG_DISCONNECT_INSET, "dialog-disconnect-inset", Noop, Edit },
1412
1413                 { LFUN_MOUSE_PRESS, "", ReadOnly, Hidden },
1414                 { LFUN_MOUSE_MOTION, "", ReadOnly | SingleParUpdate, Hidden },
1415                 { LFUN_MOUSE_RELEASE, "", ReadOnly, Hidden },
1416                 { LFUN_MOUSE_DOUBLE, "", ReadOnly, Hidden },
1417                 { LFUN_MOUSE_TRIPLE, "", ReadOnly, Hidden },
1418
1419                 { LFUN_KEYMAP_OFF, "keymap-off", ReadOnly, Edit },
1420                 { LFUN_KEYMAP_PRIMARY, "keymap-primary", ReadOnly, Edit },
1421                 { LFUN_KEYMAP_SECONDARY, "keymap-secondary", ReadOnly, Edit },
1422                 { LFUN_KEYMAP_TOGGLE, "keymap-toggle", ReadOnly, Edit },
1423
1424                 { LFUN_MESSAGE, "message", NoBuffer, System },
1425                 { LFUN_FLOAT_LIST, "float-list", Noop, Edit },
1426                 { LFUN_ESCAPE, "escape", ReadOnly, Edit },
1427
1428                 { LFUN_SERVER_CHAR_AFTER, "server-char-after", ReadOnly, System },
1429                 { LFUN_SERVER_GET_FONT, "server-get-font", ReadOnly, System },
1430                 { LFUN_SERVER_GET_LAYOUT, "server-get-layout", ReadOnly, System },
1431                 { LFUN_SERVER_GET_NAME, "server-get-name", ReadOnly, System },
1432                 { LFUN_SERVER_GET_XY, "server-get-xy", ReadOnly, System },
1433 /*!
1434  * \var lyx::FuncCode lyx::LFUN_SERVER_GOTO_FILE_ROW
1435  * \li Action: Sets the cursor position based on the row number of generated TeX file.
1436  * \li Syntax: server-goto-file-row <LYX_FILE_NAME> <ROW_NUMBER>
1437  * \li Origin: Edmar, 23 Dec 1998
1438  * \endvar
1439  */
1440                 { LFUN_SERVER_GOTO_FILE_ROW, "server-goto-file-row", ReadOnly, System },
1441                 { LFUN_SERVER_NOTIFY, "server-notify", ReadOnly, System },
1442                 { LFUN_SERVER_SET_XY, "server-set-xy", ReadOnly, System },
1443
1444                 { LFUN_BUILD_PROGRAM, "build-program", ReadOnly, Buffer },
1445
1446 /*!
1447  * \var lyx::FuncCode lyx::LFUN_BUFFER_AUTO_SAVE
1448  * \li Action: Saves the current buffer to a temporary file.
1449  * \li Notion: Saves the current buffer to a file named "#filename#". This LFUN
1450                is called automatically by LyX, to "autosave" the current buffer.
1451  * \li Syntax: buffer-auto-save
1452  * \endvar
1453  */
1454                 { LFUN_BUFFER_AUTO_SAVE, "buffer-auto-save", Noop, Buffer },
1455 /*!
1456  * \var lyx::FuncCode lyx::LFUN_BUFFER_CHILD_OPEN
1457  * \li Action: Loads the given child document.
1458  * \li Notion: The current document is treated as a parent.
1459  * \li Syntax: buffer-child-open <FILE>
1460  * \li Params: <FILE>: Filename of the child. The directory of the parent is assumed by default.
1461  * \li Origin: Ale, 28 May 1997
1462  * \endvar
1463  */
1464                 { LFUN_BUFFER_CHILD_OPEN, "buffer-child-open", ReadOnly, Buffer },
1465 /*!
1466  * \var lyx::FuncCode lyx::LFUN_BUFFER_CHKTEX
1467  * \li Action: Runs chktex for the current document.
1468  * \li Syntax: buffer-chktex
1469  * \li Origin: Asger, 30 Oct 1997
1470  * \endvar
1471  */
1472                 { LFUN_BUFFER_CHKTEX, "buffer-chktex", ReadOnly, Buffer },
1473 /*!
1474  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_COMPRESSION
1475  * \li Action: Toggles compression of the current document on/off.
1476  * \li Syntax: buffer-toggle-compression
1477  * \li Origin: bpeng, 27 Apr 2006
1478  * \endvar
1479  */
1480                 { LFUN_BUFFER_TOGGLE_COMPRESSION, "buffer-toggle-compression", Noop, Buffer },
1481 /*!
1482  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_EMBEDDING
1483  * \li Action: Toggles the embeddding feature on/off.
1484  * \li Syntax: buffer-toggle-embedding
1485  * \li Origin: bpeng, 21 Oct 2007
1486  * \endvar
1487  */
1488                 { LFUN_BUFFER_TOGGLE_EMBEDDING, "buffer-toggle-embedding", Noop, Buffer },
1489 /*!
1490  * \var lyx::FuncCode lyx::LFUN_BUFFER_CLOSE
1491  * \li Action: Closes the current buffer.
1492  * \li Notion: Closes the current buffer, asking whether to save it, etc,
1493                if the buffer has been modified.
1494  * \li Syntax: buffer-close
1495  * \endvar
1496  */
1497                 { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer },
1498 /*!
1499  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT
1500  * \li Action: Exports the current buffer (document) to the given format.
1501  * \li Syntax: buffer-export <FORMAT>
1502  * \li Params: <FORMAT> is either "custom" or one of the formats which you
1503                         can find in Tools->Preferences->File formats->Format.
1504                         Usual format you will enter is "pdf2" (pdflatex),
1505                         "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
1506                         In case of "custom" you will be asked for a format you
1507                         want to start from and for the command that you want to
1508                         apply to this format. Internally the control is then passed
1509                         to #LFUN_BUFFER_EXPORT_CUSTOM.
1510  * \li Origin: Lgb, 29 Jul 1997
1511  * \endvar
1512  */
1513                 { LFUN_BUFFER_EXPORT, "buffer-export", ReadOnly, Buffer },
1514 /*!
1515  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT_CUSTOM
1516  * \li Action: Exports the current buffer (document) from the given format using
1517                the given command on it.
1518  * \li Syntax: buffer-export-custom <FORMAT> <COMMAND>
1519  * \li Params: <FORMAT> format to start from (LyX will care to produce such
1520                         intermediate file).\n
1521                <COMMAND> this command will be launched on the file. Note that you can
1522                use "$$FName" string to qualify the intermediate file.
1523  * \li Sample: buffer-export-custom dvi dvips -f $$FName -o myfile.ps
1524  * \li Origin: leeming, 27 Mar 2004
1525  * \endvar
1526  */
1527                 { LFUN_BUFFER_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly, Buffer },
1528 /*!
1529  * \var lyx::FuncCode lyx::LFUN_BUFFER_PRINT
1530  * \li Action: Prints the current document.
1531  * \li Notion: Many settings can be given via the preferences dialog.
1532  * \li Syntax: buffer-print <TARGET> <TARGET-NAME> <COMMAND>
1533  * \li Params: <TARGET> is either "printer" or "file".\n
1534                <TARGER-NAME> is either "default" or file name or printer name.\n
1535                <COMMAND> command ensuring the printing job.
1536  * \li Sample: buffer-print file "/trash/newfile1.ps" "dvips"
1537  * \li Origin: leeming, 28 Mar 2004
1538  * \endvar
1539  */
1540                 { LFUN_BUFFER_PRINT, "buffer-print", ReadOnly, Buffer },
1541 /*!
1542  * \var lyx::FuncCode lyx::LFUN_BUFFER_IMPORT
1543  * \li Action: Import a given file as a lyx document.
1544  * \li Notion: File can be imported iff lyx file format is (transitively) reachable via
1545                defined convertors in preferences. Look into File->Import menu to get
1546                an idea of the currently active import formats.
1547  * \li Syntax: buffer-import <FORMAT> [<FILE>]
1548  * \li Origin: Asger, 24 Jul 1998
1549  * \endvar
1550  */
1551                 { LFUN_BUFFER_IMPORT, "buffer-import", NoBuffer, Buffer },
1552 /*!
1553  * \var lyx::FuncCode lyx::LFUN_BUFFER_NEW
1554  * \li Action: Creates a new buffer (that is, document).
1555  * \li Notion: Implicit path can be set in Preferences dialog.
1556  * \li Syntax: buffer-new [<FILE>]
1557  * \li Params: <FILE>: filename of created file with absolute path.
1558  * \endvar
1559  */
1560                 { LFUN_BUFFER_NEW, "buffer-new", NoBuffer, Buffer },
1561 /*!
1562  * \var lyx::FuncCode lyx::LFUN_BUFFER_NEW_TEMPLATE
1563  * \li Action: Creates a new buffer (that is, document) from a template.
1564  * \li Notion: Path for new files and templates can be set in Preferences dialog.
1565                Template will be asked for via Open-dialog.
1566  * \li Syntax: buffer-new-template [<FILE>]
1567  * \li Params: <FILE>: filename of created file with absolute path.
1568  * \endvar
1569  */
1570                 { LFUN_BUFFER_NEW_TEMPLATE,"buffer-new-template", NoBuffer, Buffer },
1571 /*!
1572  * \var lyx::FuncCode lyx::LFUN_BUFFER_RELOAD
1573  * \li Action: Reverts opened document.
1574  * \li Syntax: buffer-reload
1575  * \li Origin: Asger, 2 Feb 1997
1576  * \endvar
1577  */
1578                 { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
1579 /*!
1580  * \var lyx::FuncCode lyx::LFUN_BUFFER_SWITCH
1581  * \li Action: Switch to the given buffer.
1582  * \li Notion: This is useful also in case you need simultaneously more views of the edited
1583                document in different LyX windows.
1584  * \li Syntax: buffer-new-template <BUFFER>
1585  * \li Params: <BUFFER>: already opened document which is to be shown.
1586  * \endvar
1587  */
1588                 { LFUN_BUFFER_SWITCH, "buffer-switch", NoBuffer | ReadOnly, Buffer },
1589 /*!
1590  * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_READ_ONLY
1591  * \li Action: Toggle editing mode of the current document between read/write and read-only.
1592  * \li Syntax: buffer-toggle-read-only
1593  * \li Origin: Lgb, 27 May 1997
1594  * \endvar
1595  */
1596                 { LFUN_BUFFER_TOGGLE_READ_ONLY, "buffer-toggle-read-only", ReadOnly, Buffer },
1597 /*!
1598  * \var lyx::FuncCode lyx::LFUN_BUFFER_VIEW
1599  * \li Action: Displays current buffer in chosen format.
1600  * \li Notion: Displays the contents of the current buffer in the chosen
1601                format, for example, PDF or DVI. This runs the necessary
1602                converter, calls the defined viewer, and so forth.
1603  * \li Syntax: buffer-view <FORMAT>
1604  * \li Params: <FORMAT>: The format to display, where this is one of the
1605                          formats defined (in the current GUI) in the
1606                          Tools>Preferences>File Formats dialog.
1607  * \endvar
1608  */
1609                 { LFUN_BUFFER_VIEW, "buffer-view", ReadOnly, Buffer },
1610 /*!
1611  * \var lyx::FuncCode lyx::LFUN_BUFFER_UPDATE
1612  * \li Action: Exports the current document and put the result into the
1613                temporary directory.
1614  * \li Notion: In case you are already viewing the exported document (see #LFUN_BUFFER_VIEW)
1615                the output will be rewriten - updated. This is useful in case your viewer
1616                is able to detect such changes (e.g. ghostview for postscript).
1617  * \li Syntax: buffer-update <FORMAT>
1618  * \li Params: <FORMAT>: The format to display, where this is one of the
1619                          formats defined (in the current GUI) in the
1620                          Tools>Preferences>File Formats dialog.
1621  * \li Origin: Dekel, 5 Aug 2000
1622  * \endvar
1623  */
1624                 { LFUN_BUFFER_UPDATE, "buffer-update", ReadOnly, Buffer },
1625
1626 /*!
1627  * \var lyx::FuncCode lyx::LFUN_BUFFER_WRITE
1628  * \li Action: Saves the current buffer.
1629  * \li Notion: Saves the current buffer to disk, using the filename that
1630                is already associated with the buffer, asking for one if
1631                none is yet assigned.
1632  * \li Syntax: buffer-write
1633  * \endvar
1634  */
1635                 { LFUN_BUFFER_WRITE, "buffer-write", ReadOnly, Buffer },
1636 /*!
1637  * \var lyx::FuncCode lyx::LFUN_BUFFER_WRITE_AS
1638  * \li Action: Rename and save current buffer.
1639  * \li Syntax: buffer-write-as <FILENAME>
1640  * \li Params: <FILENAME>: New name of the buffer/file. A relative path
1641                is with respect to the original location of the buffer/file.
1642  * \endvar
1643  */
1644                 { LFUN_BUFFER_WRITE_AS, "buffer-write-as", ReadOnly, Buffer },
1645 /*!
1646  * \var lyx::FuncCode lyx::LFUN_BUFFER_WRITE_ALL
1647  * \li Action: Save all changed documents.
1648  * \li Syntax: buffer-write-all
1649  * \li Origin: rgh, gpothier 6 Aug 2007
1650  * \endvar
1651  */
1652                 { LFUN_BUFFER_WRITE_ALL, "buffer-write-all", ReadOnly, Buffer },
1653 /*!
1654  * \var lyx::FuncCode lyx::LFUN_BUFFER_NEXT
1655  * \li Action: Switch to the next opened document.
1656  * \li Notion: Note that this does not necessarily mean next in tabbar
1657                (for full list see View menu).
1658  * \li Syntax: buffer-next
1659  * \endvar
1660  */
1661                 { LFUN_BUFFER_NEXT, "buffer-next", ReadOnly, Buffer },
1662 /*!
1663  * \var lyx::FuncCode lyx::LFUN_BUFFER_PREVIOUS
1664  * \li Action: Switch to the previous opened document.
1665  * \li Syntax: buffer-previous
1666  * \endvar
1667  */
1668                 { LFUN_BUFFER_PREVIOUS, "buffer-previous", ReadOnly, Buffer },
1669 /*!
1670  * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
1671  * \li Action: When run from a child document, this updates (exports) document built
1672                 from the master buffer. If a master is not found, it updates the
1673                 current buffer.
1674  * \li Syntax: master-buffer-update
1675  * \li Author: Tommaso, 20 Sep 2007
1676  * \endvar
1677  */
1678                 { LFUN_MASTER_BUFFER_UPDATE, "master-buffer-update", ReadOnly, Buffer },
1679 /*!
1680  * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_VIEW
1681  * \li Action: When run from a child document, this command shows a preview built
1682                from the master buffer. If a master is not found, it previews the
1683                current buffer.
1684  * \li Syntax: master-buffer-view
1685  * \li Author: Tommaso, 20 Sep 2007
1686  * \endvar
1687  */
1688                 { LFUN_MASTER_BUFFER_VIEW, "master-buffer-view", ReadOnly, Buffer },
1689 /*!
1690  * \var lyx::FuncCode lyx::LFUN_BUFFER_LANGUAGE
1691  * \li Action: Set language of the current document.
1692  * \li Syntax: buffer-language <LANG>
1693  * \li Params: <LANG>: language name. See lib/languages for list.
1694  * \li Author: leeming, 30 Mar 2004
1695  * \endvar
1696  */
1697                 { LFUN_BUFFER_LANGUAGE, "buffer-language", Noop, Buffer },
1698 /*!
1699  * \var lyx::FuncCode lyx::LFUN_BUFFER_SAVE_AS_DEFAULT
1700  * \li Action: Save the current document settings as default.
1701  * \li Notion: The file will will be saved into ~/.lyx/templates/defaults.lyx .
1702  * \li Syntax: buffer-save-as-default [<ARGS>]
1703  * \li Params: <ARGS>: contains the particular settings to be saved. They obey the syntax
1704                        you can find in document header of usual .lyx file.
1705  * \li Author: leeming, 30 Mar 2004
1706  * \endvar
1707  */
1708                 { LFUN_BUFFER_SAVE_AS_DEFAULT, "buffer-save-as-default", Noop, Buffer },
1709 /*!
1710  * \var lyx::FuncCode lyx::LFUN_BUFFER_PARAMS_APPLY
1711  * \li Action: Apply the given settings to the current document.
1712  * \li Syntax: buffer-params-apply [<ARGS>]
1713  * \li Params: <ARGS>: contains the particular settings to be saved. They obey the syntax
1714                        you can find in document header of usual .lyx file.
1715  * \li Author: leeming, 30 Mar 2004
1716  * \endvar
1717  */
1718                 { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer },
1719
1720 /*!
1721  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT
1722  * \li Action: Inserts another LyX file.
1723  * \li Syntax: file-insert [<FILE>]
1724  * \li Params: <FILE>: Filename to be inserted.
1725  * \endvar
1726  */
1727                 { LFUN_FILE_INSERT, "file-insert", Noop, Edit },
1728 /*!
1729  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT_PLAINTEXT
1730  * \li Action: Inserts plain text file.
1731  * \li Syntax: file-insert-plaintext [<FILE>]
1732  * \li Params: <FILE>: Filename to be inserted.
1733  * \li Origin: CFO-G, 19 Nov 1997
1734  * \endvar
1735  */
1736                 { LFUN_FILE_INSERT_PLAINTEXT, "file-insert-plaintext", Noop, Edit },
1737 /*!
1738  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT_PLAINTEXT_PARA
1739  * \li Action: Inserts plain text file as paragraph (i.e. join lines).
1740  * \li Syntax: file-insert-plaintext-para [<FILE>]
1741  * \li Params: <FILE>: Filename to be inserted.
1742  * \li Origin: Levon, 14 Feb 2001
1743  * \endvar
1744  */
1745                 { LFUN_FILE_INSERT_PLAINTEXT_PARA, "file-insert-plaintext-para", Noop, Edit },
1746 /*!
1747  * \var lyx::FuncCode lyx::LFUN_FILE_OPEN
1748  * \li Action: Open LyX document.
1749  * \li Syntax: file-open [<FILE>]
1750  * \li Params: <FILE>: Filename to be opened.
1751  * \endvar
1752  */
1753                 { LFUN_FILE_OPEN, "file-open", NoBuffer, Buffer },
1754
1755 /*!
1756  * \var lyx::FuncCode lyx::LFUN_CALL
1757  * \li Action: Executes a command defined in a .def file.
1758  * \li Notion: The definitions are by default read from lib/commands/default.def.\n
1759                A .def file allows to define a command with \\define "<NAME>" "<LFUN>"
1760                where <NAME> is the name of the new command and <LFUN> is the lfun code
1761                to be executed (see e.g. #LFUN_COMMAND_SEQUENCE).
1762                \\def_file "FileName" allows to include another .def file. \n
1763                This is particularly useful in connection with toolbar buttons:
1764                Since the name of the button image for this lfun is 
1765                lib/images/commands/<NAME>.png this is the way to assign an image
1766                to a complex command-sequence.
1767  * \li Syntax: call <NAME>
1768  * \li Params: <NAME>: Name of the command that must be called.
1769  * \li Origin: broider, 2 Oct 2007
1770  * \endvar
1771  */
1772                 { LFUN_CALL, "call", NoBuffer, System },
1773 /*!
1774  * \var lyx::FuncCode lyx::LFUN_META_PREFIX
1775  * \li Action: Simulate halting Meta key (Alt key on PCs).
1776  * \li Notion: Used for buffer editation not for GUI control.
1777  * \li Syntax: meta-prefix
1778  * \endvar
1779  */
1780                 { LFUN_META_PREFIX, "meta-prefix", NoBuffer, System },
1781 /*!
1782  * \var lyx::FuncCode lyx::LFUN_CANCEL
1783  * \li Action: Cancels sequence prepared by #LFUN_META_PREFIX .
1784  * \li Syntax: cancel
1785  * \endvar
1786  */
1787                 { LFUN_CANCEL, "cancel", NoBuffer, System },
1788
1789 /*!
1790  * \var lyx::FuncCode lyx::LFUN_COMMAND_EXECUTE
1791  * \li Action: Opens the minibuffer toolbar so that the user can type in there.
1792  * \li Notion: Usually bound to M-x shortcut.
1793  * \li Syntax: command-execute
1794  * \endvar
1795  */
1796                 { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit },
1797                 { LFUN_COMMAND_PREFIX, "command-prefix", NoBuffer, Hidden },
1798 /*!
1799  * \var lyx::FuncCode lyx::LFUN_COMMAND_SEQUENCE
1800  * \li Action: Run more commands (LFUN and its parameters) in a sequence.
1801  * \li Syntax: command-sequence <CMDS>
1802  * \li Params: <CMDS>: Sequence of commands separated by semicolons.
1803  * \li Sample: command-sequence cut; ert-insert; self-insert \; paste; self-insert {}; inset-toggle;
1804  * \li Origin: Andre', 11 Nov 1999
1805  * \endvar
1806  */
1807                 { LFUN_COMMAND_SEQUENCE, "command-sequence", NoBuffer, System },
1808
1809 /*!
1810  * \var lyx::FuncCode lyx::LFUN_PREFERENCES_SAVE
1811  * \li Action: Save user preferences.
1812  * \li Syntax: preferences-save
1813  * \li Origin: Lgb, 27 Nov 1999
1814  * \endvar
1815  */
1816                 { LFUN_PREFERENCES_SAVE, "preferences-save", NoBuffer, System },
1817 /*!
1818  * \var lyx::FuncCode lyx::LFUN_RECONFIGURE
1819  * \li Action: Reconfigure the automatic settings.
1820  * \li Syntax: reconfigure
1821  * \li Origin: Asger, 14 Feb 1997
1822  * \endvar
1823  */
1824                 { LFUN_RECONFIGURE, "reconfigure", NoBuffer, System },
1825 /*!
1826  * \var lyx::FuncCode lyx::LFUN_LYXRC_APPLY
1827  * \li Action: Apply the given settings to user preferences.
1828  * \li Syntax: lyxrc-apply <SETTINGS>
1829  * \li Params: <SETTINGS>: settings which are to be set. Take a look into ~/.lyx/preferences
1830                            to get an idea which commands to use and their syntax.
1831                            #lyx::LyXRC::LyXRCTags has the list of possible commands.
1832  * \endvar
1833  */
1834                 { LFUN_LYXRC_APPLY, "lyxrc-apply", NoBuffer, System },
1835 /*!
1836  * \var lyx::FuncCode lyx::LFUN_CURSOR_FOLLOWS_SCROLLBAR_TOGGLE
1837  * \li Action: Determine whether keep cursor inside the editing window regardless
1838                the scrollbar movement.
1839  * \li Syntax: toggle-cursor-follows-scrollbar
1840  * \li Origin: ARRae, 2 Dec 1997
1841  * \endvar
1842  */
1843                 { LFUN_CURSOR_FOLLOWS_SCROLLBAR_TOGGLE, "cursor-follows-scrollbar-toggle", ReadOnly, System },
1844 /*!
1845  * \var lyx::FuncCode lyx::LFUN_SET_COLOR
1846  * \li Action: Set the given LyX color to the color defined by the X11 name given.
1847  * \li Notion: A new color entry is created if the color is unknown.
1848                Color names can be stored as a part of user settings.
1849  * \li Syntax: set-color <LYX_NAME> <X11_NAME>
1850  * \li Origin: SLior, 11 Jun 2000
1851  * \endvar
1852  */
1853                 { LFUN_SET_COLOR, "set-color", ReadOnly | NoBuffer, System },
1854 /*!
1855  * \var lyx::FuncCode lyx::LFUN_STATISTICS
1856  * \li Action: Count the statistics (number of words and characters)
1857                in the document or in the given selection.
1858  * \li Notion: Note that this function gives the number of words/chars written,
1859                not the number of characters which will be typeset.
1860  * \li Syntax: statistics
1861  * \li Origin: lasgouttes, Jan 27 2004; ps, Jan 8 2008
1862  * \endvar
1863  */
1864                 { LFUN_STATISTICS, "statistics", ReadOnly, System },
1865 /*!
1866  * \var lyx::FuncCode lyx::LFUN_COMPLETION_INLINE
1867  * \li Action: Show the inline completion at the cursor position.
1868  * \li Syntax: completion-inline
1869  * \li Origin: sts, Feb 19 2008
1870  * \endvar
1871  */
1872                 { LFUN_COMPLETION_INLINE, "completion-inline", ReadOnly | NoUpdate, Edit },
1873 /*!
1874  * \var lyx::FuncCode lyx::LFUN_COMPLETION_POPUP
1875  * \li Action: Show the completion popup at the cursor position.
1876  * \li Syntax: completion-popup
1877  * \li Origin: sts, Feb 19 2008
1878  * \endvar
1879  */
1880                 { LFUN_COMPLETION_POPUP, "completion-popup", ReadOnly | NoUpdate, Edit },
1881 /*!
1882  * \var lyx::FuncCode lyx::LFUN_COMPLETION_COMPLETE
1883  * \li Action: Try to complete the word or command at the cursor position.
1884  * \li Syntax: completion-complete
1885  * \li Origin: sts, Feb 19 2008
1886  * \endvar
1887  */
1888                 { LFUN_COMPLETION_COMPLETE, "complete", SingleParUpdate, Edit },
1889
1890                 { LFUN_NOACTION, "", Noop, Hidden }
1891 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1892         };
1893
1894         for (int i = 0; items[i].action != LFUN_NOACTION; ++i) {
1895                 newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type);
1896         }
1897
1898         init = true;
1899 }
1900 #endif
1901
1902 LyXAction::LyXAction()
1903 {
1904         init();
1905 }
1906
1907
1908 // Returns an action tag from a string.
1909 FuncRequest LyXAction::lookupFunc(string const & func) const
1910 {
1911         string const func2 = trim(func);
1912
1913         if (func2.empty()) {
1914                 return FuncRequest(LFUN_NOACTION);
1915         }
1916
1917         string cmd;
1918         string const arg = split(func2, cmd, ' ');
1919
1920         func_map::const_iterator fit = lyx_func_map.find(cmd);
1921
1922         return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION);
1923 }
1924
1925
1926 string const LyXAction::getActionName(FuncCode action) const
1927 {
1928         info_map::const_iterator const it = lyx_info_map.find(action);
1929         return it != lyx_info_map.end() ? it->second.name : string();
1930 }
1931
1932
1933 LyXAction::func_type const LyXAction::getActionType(FuncCode action) const
1934 {
1935         info_map::const_iterator const it = lyx_info_map.find(action);
1936         return it != lyx_info_map.end() ? it->second.type : Hidden;
1937 }
1938
1939
1940 bool LyXAction::funcHasFlag(FuncCode action,
1941                             LyXAction::func_attrib flag) const
1942 {
1943         info_map::const_iterator ici = lyx_info_map.find(action);
1944
1945         if (ici == lyx_info_map.end()) {
1946                 LYXERR0("action: " << action << " is not known.");
1947                 LASSERT(false, /**/);
1948         }
1949
1950         return ici->second.attrib & flag;
1951 }
1952
1953
1954 LyXAction::const_func_iterator LyXAction::func_begin() const
1955 {
1956         return lyx_func_map.begin();
1957 }
1958
1959
1960 LyXAction::const_func_iterator LyXAction::func_end() const
1961 {
1962         return lyx_func_map.end();
1963 }
1964
1965
1966 } // namespace lyx