lyx_mirror/src/lfuns.h
Bernhard Roider 1a77c867a2 CmdDef.cpp/h: A class that manages command definitions. The definitions are
by default read from lib/commands/default.def 
              A .def file allows to define a command with
              \define "Name" "lfun"
              where Name is the name of the new command and lfun is the code
              to be executed.
              \def_file "FileName"
              allows to include another .def file.
              The implementation of CmdDef is similar to KeyMap, i.e. there is 
              one instance created in the LyX.cpp that reads the .def file, holds 
              a list containing all definitions, and supplies access methods.


LFUN_CALL:    The new lfun is used to execute a command definition, e.g.
              call Name

If a toolbar item has the associated action "call Name" then the image 
lib/images/commands/Name.png is used for the button.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21093 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-20 23:27:03 +00:00

419 lines
12 KiB
C++
Raw Blame History

// -*- C++ -*-
/**
* \file lfuns.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* Full author contact details are available in file CREDITS.
*
* To add a new function:
* - add a new enum constant immediately before LFUN_LASTACTION
* - add an appropriate line in LyXAction.cpp
* - add a branch to a suitable ::doDispatch() method
* - add correct test to the corresponding ::getStatus() method
*/
#ifndef LFUNS_H
#define LFUNS_H
#include <iosfwd>
namespace lyx {
/** These are all the lyx functions, the main mechanism
* through which the frontends communicate with the core.
*
* They are managed in LyXAction.cpp and handled in various
* ::dispatch() functions, starting with LyXFunc.C:dispatch(),
* BufferView::dispatch(), Cursor::dispatch() and
* Inset*::doDispatch();
*/
/** LFUN documentation (a start at least, Chr 2007-08-12)
*
* The documentation below is primarily notes about restrictions and
* oddities relating to the different LFUNs. Note that this
* documentation may well be moved to a more suitable location later
* on.
*
* The documentation is interspersed with the enum:s. Another choice
* was to put it in a separate list. The best choice was unclear, so
* this may change. Particularly if doxygen can be used somehow.
*/
enum kb_action {
LFUN_UNKNOWN_ACTION = -1,
// 0
LFUN_NOACTION = 0,
LFUN_COMMAND_PREFIX,
LFUN_SCREEN_RECENTER,
LFUN_BUFFER_NEW,
LFUN_BUFFER_WRITE,
// 5
LFUN_BUFFER_WRITE_AS,
/** LFUN_BUFFER_WRITE_AS,
* Function: Rename and save current buffer.
* Syntax: buffer-write-as <filename>
* In: <filename> = New name of the buffer/file. A relative path
* is with respect to the original location of the buffer/file.
*/
LFUN_BUILD_PROGRAM,
LFUN_BUFFER_VIEW,
LFUN_BUFFER_CLOSE,
LFUN_LYX_QUIT,
// 10
LFUN_BUFFER_AUTO_SAVE,
LFUN_UNDO,
LFUN_REDO,
LFUN_PASTE,
LFUN_PRIMARY_SELECTION_PASTE,
// 15
LFUN_CUT,
LFUN_COPY,
LFUN_ERROR_NEXT,
LFUN_NOTE_NEXT,
LFUN_INSET_TOGGLE,
// 20
LFUN_HYPHENATION_POINT_INSERT,
LFUN_LIGATURE_BREAK_INSERT,
LFUN_HFILL_INSERT,
LFUN_FONT_FREE_APPLY,
LFUN_FONT_FREE_UPDATE,
// 25
LFUN_FONT_EMPH,
LFUN_FONT_BOLD,
LFUN_FONT_ROMAN,
LFUN_FONT_NOUN,
LFUN_FONT_ITAL,
// 30
LFUN_FONT_FRAK,
LFUN_CHAR_FORWARD,
LFUN_CHAR_BACKWARD,
LFUN_UP,
LFUN_DOWN,
// 35
LFUN_SCREEN_UP,
LFUN_SCREEN_DOWN,
LFUN_LINE_BEGIN,
LFUN_LINE_END,
LFUN_CELL_FORWARD,
// 40
LFUN_CELL_BACKWARD,
LFUN_WORD_FORWARD,
LFUN_WORD_BACKWARD,
LFUN_BUFFER_BEGIN,
LFUN_BUFFER_END,
// 45
LFUN_CHAR_FORWARD_SELECT,
LFUN_CHAR_BACKWARD_SELECT,
LFUN_UP_SELECT,
LFUN_DOWN_SELECT,
LFUN_SCREEN_UP_SELECT,
// 50
LFUN_SCREEN_DOWN_SELECT,
LFUN_LINE_BEGIN_SELECT,
LFUN_LINE_END_SELECT,
LFUN_WORD_FORWARD_SELECT,
LFUN_WORD_BACKWARD_SELECT,
// 55
LFUN_WORD_SELECT,
LFUN_BUFFER_BEGIN_SELECT,
LFUN_BUFFER_END_SELECT,
LFUN_SPACE_INSERT, // JSpitzm 20030520
LFUN_MARK_TOGGLE,
// 60
LFUN_CHAR_DELETE_FORWARD,
LFUN_CHAR_DELETE_BACKWARD,
LFUN_BREAK_LINE,
LFUN_BREAK_PARAGRAPH,
LFUN_QUOTE_INSERT,
// 65
LFUN_ACCENT_CIRCUMFLEX,
LFUN_MATH_SUBSCRIPT,
LFUN_MATH_SUPERSCRIPT,
LFUN_ACCENT_GRAVE,
LFUN_ACCENT_ACUTE,
// 70
LFUN_ACCENT_TILDE,
LFUN_ACCENT_CEDILLA,
LFUN_ACCENT_MACRON,
LFUN_ACCENT_UNDERBAR,
LFUN_ACCENT_UNDERDOT,
// 75
LFUN_ACCENT_CIRCLE,
LFUN_ACCENT_TIE,
LFUN_ACCENT_BREVE,
LFUN_ACCENT_CARON,
LFUN_ACCENT_SPECIAL_CARON,
// 80
LFUN_ACCENT_HUNGARIAN_UMLAUT,
LFUN_ACCENT_UMLAUT,
LFUN_ACCENT_DOT,
LFUN_ACCENT_OGONEK,
LFUN_SELF_INSERT,
// 85
LFUN_GETBUFNAME,
LFUN_SERVER_GET_XY,
LFUN_SERVER_SET_XY,
LFUN_SERVER_CHAR_AFTER,
LFUN_LINEATCURSOR,
// 90
LFUN_SERVER_GET_LAYOUT,
LFUN_SERVER_GET_FONT,
LFUN_SERVER_GET_NAME,
LFUN_SERVER_NOTIFY,
LFUN_SERVER_GOTO_FILE_ROW,
// 95
LFUN_NOTE_INSERT,
LFUN_ENVIRONMENT_INSERT, // unused as of 20060905
LFUN_KEYMAP_OFF,
LFUN_KEYMAP_PRIMARY,
LFUN_KEYMAP_SECONDARY,
// 100
LFUN_KEYMAP_TOGGLE,
LFUN_MATH_INSERT,
LFUN_MATH_MATRIX,
LFUN_MATH_LIMITS,
LFUN_MATH_DELIM, // Alejandro 180696
// 105
LFUN_MATH_DISPLAY, // Alejandro 180696
LFUN_MATH_MODE, // Alejandro 040696
LFUN_MATH_NUMBER, // Alejandro 040696
LFUN_MATH_NONUMBER, // Alejandro 180696
LFUN_MATH_SIZE, // Alejandro 150896
// 110
LFUN_MATH_MACRO, // ale970510
LFUN_MATH_EXTERN, // Andre' 20010424
LFUN_MATH_MUTATE, // Andre' 20010523
LFUN_MATH_IMPORT_SELECTION, // Andre' 20010704
LFUN_MATH_SPACE, // Andre' 20010725
// 115
LFUN_WORD_DELETE_FORWARD,
LFUN_WORD_DELETE_BACKWARD,
LFUN_LINE_DELETE,
LFUN_MARK_OFF,
LFUN_MARK_ON,
// 120
LFUN_LAYOUT,
LFUN_LAYOUT_PARAGRAPH,
LFUN_DROP_LAYOUTS_CHOICE, // used in bindings as of 20060905
LFUN_FONT_TYPEWRITER, // changed from FONT_CODE 20070920
LFUN_FONT_SANS,
// 125
LFUN_FONT_DEFAULT,
LFUN_FONT_UNDERLINE,
LFUN_FONT_SIZE,
LFUN_FONT_STATE,
LFUN_WORD_UPCASE,
// 130
LFUN_WORD_LOWCASE,
LFUN_WORD_CAPITALIZE,
LFUN_LABEL_INSERT,
LFUN_DEPTH_DECREMENT,
LFUN_DEPTH_INCREMENT,
// 135
LFUN_MENU_OPEN, // used in bindings as of 20060905
LFUN_CANCEL,
LFUN_META_PREFIX,
LFUN_COMMAND_EXECUTE,
LFUN_FILE_INSERT,
// 140
LFUN_FILE_INSERT_PLAINTEXT, // CFO-G 1997-11-19
LFUN_FILE_INSERT_PLAINTEXT_PARA,// Levon 2001-02-14
LFUN_FILE_NEW, // for scripting purposes
LFUN_FILE_OPEN,
LFUN_PARAGRAPH_UP, // Asger 1996-10-01
// 145
LFUN_PARAGRAPH_UP_SELECT, // Asger 1996-10-01
LFUN_PARAGRAPH_DOWN, // Asger 1996-10-01
LFUN_PARAGRAPH_DOWN_SELECT, // Asger 1996-10-01
LFUN_BREAK_PARAGRAPH_SKIP,
LFUN_DELETE_BACKWARD_SKIP,
// 150
LFUN_DELETE_FORWARD_SKIP,
LFUN_BUFFER_NEW_TEMPLATE, // Asger 1997-02-02
LFUN_BUFFER_RELOAD, // Asger 1997-02-02
LFUN_RECONFIGURE, // Asger 1997-02-14
LFUN_INDEX_PRINT, // Lgb 97-02-27
// 155
LFUN_CELL_SPLIT,
LFUN_BUFFER_CHILD_OPEN, // Ale 970528
LFUN_TOC_INSERT, // Lgb 97-05-27
LFUN_FLOAT_LIST, // Lgb 20010503
LFUN_BUFFER_TOGGLE_READ_ONLY, // Lgb 97-05-27
// 160
LFUN_VC_REGISTER, // Lgb 97-07-01
LFUN_VC_CHECK_IN, // Lgb 97-07-01
LFUN_VC_CHECK_OUT, // Lgb 97-07-01
LFUN_VC_REVERT, // Lgb 97-07-01
LFUN_VC_UNDO_LAST, // Lgb 97-07-01
// 165
LFUN_BUFFER_EXPORT, // Lgb 97-07-29
LFUN_LABEL_GOTO, // Ale 970806
LFUN_DOTS_INSERT, // Asger 970929
LFUN_END_OF_SENTENCE_PERIOD_INSERT, // Asger 970929
LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
// 170
LFUN_BUFFER_CHKTEX, // Asger 971030
LFUN_HYPERLINK_INSERT, // CFO-G 971121
LFUN_WORD_FIND_FORWARD, // Etienne 980216
LFUN_WORD_FIND_BACKWARD, // Etienne 980220
LFUN_APPENDIX, // ettrich 980505
// 175
LFUN_BUFFER_IMPORT, // Asger 980724
LFUN_MENU_SEPARATOR_INSERT, // Asger 990220
LFUN_COMMAND_SEQUENCE, // Andre' 991111
LFUN_PREFERENCES_SAVE, // Lgb 991127
LFUN_HELP_OPEN, // Jug 990627
// 180
LFUN_DATE_INSERT, // jdblair 20000131
LFUN_LANGUAGE, // Dekel 20000203
LFUN_ERT_INSERT, // Jug 20000218
LFUN_FOOTNOTE_INSERT, // Jug 20000307
LFUN_PARAGRAPH_SPACING, // Lgb 20000411
// 185
LFUN_TABULAR_INSERT, // Jug 20000412
LFUN_LOFVIEW, // Dekel 20000519
LFUN_LOTVIEW, // Dekel 20000519
LFUN_LOAVIEW, // Dekel 20000519
LFUN_SET_COLOR, // SLior 20000611
// 190
LFUN_MARGINALNOTE_INSERT, // Lgb 20000626
LFUN_FLOAT_INSERT, // Lgb 20000627
LFUN_FLOAT_WIDE_INSERT, // Lgb 20010531
LFUN_CAPTION_INSERT, // Lgb 20000718; inactive as of 20060905
LFUN_BUFFER_SWITCH,
// 195
LFUN_TABULAR_FEATURE, // Jug 20000728
LFUN_LAYOUT_TABULAR, // Jug 20000731
LFUN_BUFFER_UPDATE, // Dekel 20000805
LFUN_INDEX_INSERT, // Angus 20000803
LFUN_SCREEN_FONT_UPDATE, // ARRae 20000813
// 200
LFUN_PARAGRAPH_GOTO, // Dekel 20000826
LFUN_REFERENCE_NEXT, // Dekel 20010114
LFUN_BOOKMARK_SAVE, // Dekel 20010127
LFUN_BOOKMARK_GOTO, // Dekel 20010127
LFUN_SELECT_FILE_SYNC, // Levon 20010214
// 205
LFUN_MESSAGE, // Lgb 20010408; for scripting purposes, output in minibuffer
LFUN_CHARS_TRANSPOSE, // Lgb 20010425
LFUN_ESCAPE, // Lgb 20010517
LFUN_THESAURUS_ENTRY, // Levon 20010720
LFUN_OPTIONAL_INSERT, // Martin 12 Aug 2002
// 210
LFUN_MOUSE_PRESS, // Andr<64> 9 Aug 2002
LFUN_MOUSE_MOTION, // Andr<64> 9 Aug 2002
LFUN_MOUSE_RELEASE, // Andr<64> 9 Aug 2002
LFUN_MOUSE_DOUBLE, // Andr<64> 9 Aug 2002
LFUN_MOUSE_TRIPLE, // Andr<64> 9 Aug 2002
// 215
LFUN_WRAP_INSERT, // Dekel 7 Apr 2002
LFUN_CHANGES_TRACK, // Levon 20021001 (cool date !)
LFUN_CHANGES_MERGE, // Levon 20021016
LFUN_CHANGE_ACCEPT, // Levon 20021016
LFUN_CHANGE_REJECT, // Levon 20021016
// 220
LFUN_ALL_CHANGES_ACCEPT, // Levon 20021016
LFUN_ALL_CHANGES_REJECT, // Levon 20021016
LFUN_BIBITEM_INSERT, // Andr<64> 14 Feb 2003
LFUN_DIALOG_SHOW,
LFUN_DIALOG_SHOW_NEW_INSET,
// 225
LFUN_DIALOG_UPDATE,
LFUN_DIALOG_HIDE,
LFUN_DIALOG_TOGGLE, // JSpitzm 20070430
LFUN_DIALOG_DISCONNECT_INSET,
LFUN_INSET_APPLY,
// 230
LFUN_INSET_INSERT,
LFUN_INSET_MODIFY,
LFUN_INSET_DIALOG_UPDATE,
LFUN_INSET_SETTINGS,
LFUN_PARAGRAPH_PARAMS_APPLY,
// 235
LFUN_PARAGRAPH_UPDATE,
LFUN_EXTERNAL_EDIT,
LFUN_BRANCH_INSERT,
LFUN_BOX_INSERT,
LFUN_LINE_INSERT,
// 240
LFUN_PAGEBREAK_INSERT,
LFUN_REPEAT,
LFUN_FINISHED_LEFT,
LFUN_FINISHED_RIGHT,
LFUN_FLEX_INSERT,
// 245
LFUN_WORD_FIND,
LFUN_WORD_REPLACE,
LFUN_BUFFER_EXPORT_CUSTOM,
LFUN_BUFFER_PRINT,
LFUN_NEXT_INSET_TOGGLE,
// 250
LFUN_ALL_INSETS_TOGGLE,
LFUN_BUFFER_LANGUAGE,
LFUN_TEXTCLASS_APPLY,
LFUN_TEXTCLASS_LOAD,
LFUN_BUFFER_SAVE_AS_DEFAULT,
// 255
LFUN_BUFFER_PARAMS_APPLY,
LFUN_LYXRC_APPLY,
LFUN_GRAPHICS_EDIT,
LFUN_INSET_REFRESH,
LFUN_BUFFER_NEXT,
// 260
LFUN_BUFFER_PREVIOUS,
LFUN_WORDS_COUNT,
LFUN_CHANGES_OUTPUT, // jspitzm 20050121
LFUN_BIBTEX_DATABASE_ADD,
LFUN_BIBTEX_DATABASE_DEL,
// 265
LFUN_CITATION_INSERT,
LFUN_OUTLINE_UP, // Vermeer 20060323
LFUN_OUTLINE_DOWN,
LFUN_OUTLINE_IN,
LFUN_OUTLINE_OUT,
// 270
LFUN_PARAGRAPH_MOVE_DOWN, // Edwin 20060408
LFUN_PARAGRAPH_MOVE_UP, // Edwin 20060408
LFUN_BUFFER_TOGGLE_COMPRESSION, // bpeng 20060427
LFUN_MATH_BIGDELIM,
LFUN_CLIPBOARD_PASTE,
// 275
LFUN_INSET_DISSOLVE, // jspitzm 20060807
LFUN_CHANGE_NEXT,
LFUN_WINDOW_NEW, // Abdel 20061021
LFUN_WINDOW_CLOSE, // Abdel 20061023
LFUN_UNICODE_INSERT, // Lgb 20061022
// 280
LFUN_BOOKMARK_CLEAR, // bpeng 20061031
LFUN_NOMENCL_INSERT, // Ugras
LFUN_NOMENCL_PRINT, // Ugras
LFUN_CLEARPAGE_INSERT, // Ugras 20061125
LFUN_CLEARDOUBLEPAGE_INSERT, // Ugras 20061125
// 285
LFUN_LISTING_INSERT, // Herbert 20011110, bpeng 20070502
LFUN_TOOLBAR_TOGGLE, // Edwin 20070521
LFUN_BUFFER_WRITE_ALL, // rgh, gpothier 200707XX
LFUN_PARAGRAPH_PARAMS, // rgh, 200708XX
LFUN_LAYOUT_MODULES_CLEAR, // rgh, 20070825
// 290
LFUN_LAYOUT_MODULE_ADD, // rgh, 20070825
LFUN_LAYOUT_RELOAD, // rgh, 20070903
LFUN_MASTER_BUFFER_VIEW, // Tommaso, 20070920
LFUN_MASTER_BUFFER_UPDATE, // Tommaso, 20070920
LFUN_INFO_INSERT, // bpeng, 20071007
// 295
LFUN_CALL, // broider, 20071002
LFUN_LASTACTION // end of the table
};
std::ostream & operator<<(std::ostream &, kb_action);
} // namespace lyx
#endif // LFUNS_H