lyx_mirror/src/lfuns.h
Jürgen Spitzmüller 0ce73aa2c4 Implement LFUN_INSET_DISSOLVE (bug 2201):
* src/LyXAction.C:
        * src/lfuns.h:
		- add new lfun LFUN_INSET_DISSOLVE.

        * src/insets/insettext.C
        (void InsetText::doDispatch):
		- dissolve inset when hitting backspace in the 
		  very first or delete in the very last position
		  of an inset.

        * src/text3.C
        (void LyXText::dispatch):
        (bool LyXText::getStatus):
		- implement new lfun LFUN_INSET_DISSOLVE.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14572 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-08 13:34:02 +00:00

378 lines
10 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.C
* - add a branch to a suitable ::doDispatch() method
* - add correct test to the corresponding ::getStatus() method
*/
#ifndef LFUNS_H
#define LFUNS_H
#include <iosfwd>
/** These are all the lyx functions, the main mechanism
* through which the frontends communicate with the core.
*
* They are managed in LyXAction.C and handled in various
* ::dispatch() functions, starting with LyXFunc.C:dispatch(),
* BufferView_pimpl::dispatch(), LCursor::dispatch() and
* Inset*::doDispatch();
*/
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_BUILD_PROGRAM,
LFUN_TOC_VIEW,
LFUN_BUFFER_VIEW,
LFUN_BUFFER_CLOSE,
// 10
LFUN_LYX_QUIT,
LFUN_BUFFER_AUTO_SAVE,
LFUN_UNDO,
LFUN_REDO,
LFUN_PASTE,
// 15
LFUN_PRIMARY_SELECTION_PASTE,
LFUN_CUT,
LFUN_COPY,
LFUN_ERROR_NEXT,
LFUN_NOTE_NEXT,
// 20
LFUN_INSET_TOGGLE,
LFUN_HYPHENATION_POINT_INSERT,
LFUN_LIGATURE_BREAK_INSERT,
LFUN_HFILL_INSERT,
LFUN_FONT_FREE_APPLY,
// 25
LFUN_FONT_FREE_UPDATE,
LFUN_FONT_EMPH,
LFUN_FONT_BOLD,
LFUN_FONT_ROMAN,
LFUN_FONT_NOUN,
// 30
LFUN_FONT_ITAL,
LFUN_FONT_FRAK,
LFUN_CHAR_FORWARD,
LFUN_CHAR_BACKWARD,
LFUN_UP,
// 35
LFUN_DOWN,
LFUN_SCREEN_UP,
LFUN_SCREEN_DOWN,
LFUN_LINE_BEGIN,
LFUN_LINE_END,
// 40
LFUN_CELL_FORWARD,
LFUN_CELL_BACKWARD,
LFUN_WORD_FORWARD,
LFUN_WORD_BACKWARD,
LFUN_BUFFER_BEGIN,
// 45
LFUN_BUFFER_END,
LFUN_CHAR_FORWARD_SELECT,
LFUN_CHAR_BACKWARD_SELECT,
LFUN_UP_SELECT,
LFUN_DOWN_SELECT,
// 50
LFUN_SCREEN_UP_SELECT,
LFUN_SCREEN_DOWN_SELECT,
LFUN_LINE_BEGIN_SELECT,
LFUN_LINE_END_SELECT,
LFUN_WORD_FORWARD_SELECT,
// 55
LFUN_WORD_BACKWARD_SELECT,
LFUN_WORD_SELECT,
LFUN_BUFFER_BEGIN_SELECT,
LFUN_BUFFER_END_SELECT,
LFUN_SPACE_INSERT, // JSpitzm 20030520
// 60
LFUN_MARK_TOGGLE,
LFUN_CHAR_DELETE_FORWARD,
LFUN_CHAR_DELETE_BACKWARD,
LFUN_BREAK_LINE,
LFUN_BREAK_PARAGRAPH,
// 65
LFUN_BREAK_PARAGRAPH_KEEP_LAYOUT,
LFUN_QUOTE_INSERT,
LFUN_ACCENT_CIRCUMFLEX,
LFUN_MATH_SUBSCRIPT,
LFUN_MATH_SUPERSCRIPT,
// 70
LFUN_ACCENT_GRAVE,
LFUN_ACCENT_ACUTE,
LFUN_ACCENT_TILDE,
LFUN_ACCENT_CEDILLA,
LFUN_ACCENT_MACRON,
// 75
LFUN_ACCENT_UNDERBAR,
LFUN_ACCENT_UNDERDOT,
LFUN_ACCENT_CIRCLE,
LFUN_ACCENT_TIE,
LFUN_ACCENT_BREVE,
// 80
LFUN_ACCENT_CARON,
LFUN_ACCENT_SPECIAL_CARON,
LFUN_ACCENT_HUNGARIAN_UMLAUT,
LFUN_ACCENT_UMLAUT,
LFUN_ACCENT_DOT,
// 85
LFUN_ACCENT_OGONEK,
LFUN_SELF_INSERT,
LFUN_GETBUFNAME,
LFUN_SERVER_GET_XY,
LFUN_SERVER_SET_XY,
// 90
LFUN_SERVER_CHAR_AFTER,
LFUN_LINEATCURSOR,
LFUN_SERVER_GET_LAYOUT,
LFUN_SERVER_GET_FONT,
LFUN_SERVER_GET_NAME,
// 95
LFUN_SERVER_NOTIFY,
LFUN_SERVER_GOTO_FILE_ROW,
LFUN_NOTE_INSERT,
LFUN_ENVIRONMENT_INSERT,
LFUN_KEYMAP_OFF,
// 100
LFUN_KEYMAP_PRIMARY,
LFUN_KEYMAP_SECONDARY,
LFUN_KEYMAP_TOGGLE,
LFUN_MATH_INSERT,
LFUN_MATH_MATRIX,
// 105
LFUN_MATH_LIMITS,
LFUN_MATH_DELIM, // Alejandro 180696
LFUN_MATH_DISPLAY, // Alejandro 180696
LFUN_MATH_MODE, // Alejandro 040696
LFUN_MATH_NUMBER, // Alejandro 040696
// 110
LFUN_MATH_NONUMBER, // Alejandro 180696
LFUN_MATH_SIZE, // Alejandro 150896
LFUN_MATH_MACRO, // ale970510
LFUN_MATH_EXTERN, // Andre' 20010424
LFUN_MATH_MUTATE, // Andre' 20010523
// 115
LFUN_MATH_IMPORT_SELECTION, // Andre' 20010704
LFUN_MATH_SPACE, // Andre' 20010725
LFUN_WORD_DELETE_FORWARD,
LFUN_WORD_DELETE_BACKWARD,
LFUN_LINE_DELETE,
// 120
LFUN_MARK_OFF,
LFUN_MARK_ON,
LFUN_LAYOUT,
LFUN_LAYOUT_PARAGRAPH,
LFUN_DROP_LAYOUTS_CHOICE,
// 125
LFUN_FONT_CODE,
LFUN_FONT_SANS,
LFUN_FONT_DEFAULT,
LFUN_FONT_UNDERLINE,
LFUN_FONT_SIZE,
// 130
LFUN_FONT_STATE,
LFUN_WORD_UPCASE,
LFUN_WORD_LOWCASE,
LFUN_WORD_CAPITALIZE,
LFUN_LABEL_INSERT,
// 135
LFUN_DEPTH_DECREMENT,
LFUN_DEPTH_INCREMENT,
LFUN_MENU_OPEN,
LFUN_CANCEL,
LFUN_META_PREFIX,
// 140
LFUN_COMMAND_EXECUTE,
LFUN_FILE_INSERT,
LFUN_FILE_INSERT_ASCII, // CFO-G 1997-11-19
LFUN_FILE_INSERT_ASCII_PARA, // Levon 2001-02-14
LFUN_FILE_NEW,
// 145
LFUN_FILE_OPEN,
LFUN_PARAGRAPH_UP, // Asger 1996-10-01
LFUN_PARAGRAPH_UP_SELECT, // Asger 1996-10-01
LFUN_PARAGRAPH_DOWN, // Asger 1996-10-01
LFUN_PARAGRAPH_DOWN_SELECT, // Asger 1996-10-01
// 150
LFUN_BREAK_PARAGRAPH_SKIP,
LFUN_DELETE_BACKWARD_SKIP,
LFUN_DELETE_FORWARD_SKIP,
LFUN_BUFFER_NEW_TEMPLATE, // Asger 1997-02-02
LFUN_BUFFER_RELOAD, // Asger 1997-02-02
// 155
LFUN_RECONFIGURE, // Asger 1997-02-14
LFUN_INDEX_PRINT, // Lgb 97-02-27
LFUN_CELL_SPLIT,
LFUN_BUFFER_CHILD_OPEN, // Ale 970528
LFUN_TOC_INSERT, // Lgb 97-05-27
// 160
LFUN_FLOAT_LIST, // Lgb 20010503
LFUN_BUFFER_TOGGLE_READ_ONLY, // Lgb 97-05-27
LFUN_VC_REGISTER, // Lgb 97-07-01
LFUN_VC_CHECK_IN, // Lgb 97-07-01
LFUN_VC_CHECK_OUT, // Lgb 97-07-01
// 165
LFUN_VC_REVERT, // Lgb 97-07-01
LFUN_VC_UNDO_LAST, // Lgb 97-07-01
LFUN_BUFFER_EXPORT, // Lgb 97-07-29
LFUN_LABEL_GOTO, // Ale 970806
LFUN_DOTS_INSERT, // Asger 970929
// 170
LFUN_END_OF_SENTENCE_PERIOD_INSERT, // Asger 970929
LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
LFUN_BUFFER_CHKTEX, // Asger 971030
LFUN_HTML_INSERT, // CFO-G 971121
LFUN_URL_INSERT, // CFO-G 971121
// 175
LFUN_WORD_FIND_FORWARD, // Etienne 980216
LFUN_WORD_FIND_BACKWARD, // Etienne 980220
LFUN_APPENDIX, // ettrich 980505
LFUN_BUFFER_IMPORT, // Asger 980724
LFUN_MENU_SEPARATOR_INSERT, // Asger 990220
// 180
LFUN_COMMAND_SEQUENCE, // Andre' 991111
LFUN_PREFERENCES_SAVE, // Lgb 991127
LFUN_HELP_OPEN, // Jug 990627
LFUN_DATE_INSERT, // jdblair 20000131
LFUN_LANGUAGE, // Dekel 20000203
// 185
LFUN_ERT_INSERT, // Jug 20000218
LFUN_FOOTNOTE_INSERT, // Jug 20000307
LFUN_PARAGRAPH_SPACING, // Lgb 20000411
LFUN_TABULAR_INSERT, // Jug 20000412
LFUN_LOFVIEW, // Dekel 20000519
// 190
LFUN_LOTVIEW, // Dekel 20000519
LFUN_LOAVIEW, // Dekel 20000519
LFUN_SET_COLOR, // SLior 20000611
LFUN_MARGINALNOTE_INSERT, // Lgb 20000626
LFUN_FLOAT_INSERT, // Lgb 20000627
// 195
LFUN_FLOAT_WIDE_INSERT, // Lgb 20010531
LFUN_CAPTION_INSERT, // Lgb 20000718
LFUN_BUFFER_SWITCH,
LFUN_TABULAR_FEATURE, // Jug 20000728
LFUN_LAYOUT_TABULAR, // Jug 20000731
// 200
LFUN_INSET_SCROLL, // Jug 20000801
LFUN_BUFFER_UPDATE, // Dekel 20000805
LFUN_INDEX_INSERT, // Angus 20000803
LFUN_SCREEN_FONT_UPDATE, // ARRae 20000813
LFUN_PARAGRAPH_GOTO, // Dekel 20000826
// 205
LFUN_REFERENCE_NEXT, // Dekel 20010114
LFUN_BOOKMARK_SAVE, // Dekel 20010127
LFUN_BOOKMARK_GOTO, // Dekel 20010127
LFUN_SELECT_FILE_SYNC, // Levon 20010214
LFUN_MESSAGE, // Lgb 20010408
// 210
LFUN_CHARS_TRANSPOSE, // Lgb 20010425
LFUN_ESCAPE, // Lgb 20010517
LFUN_THESAURUS_ENTRY, // Levon 20010720
LFUN_TOOLTIPS_TOGGLE, // Angus 8 Mar 2002
LFUN_OPTIONAL_INSERT, // Martin 12 Aug 2002
// 215
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
// 220
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
// 225
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,
// 230
LFUN_DIALOG_SHOW_NEXT_INSET,
LFUN_DIALOG_UPDATE,
LFUN_DIALOG_HIDE,
LFUN_DIALOG_DISCONNECT_INSET,
LFUN_INSET_APPLY,
// 235
LFUN_INSET_INSERT,
LFUN_INSET_MODIFY,
LFUN_INSET_DIALOG_UPDATE,
LFUN_INSET_SETTINGS,
LFUN_PARAGRAPH_PARAMS_APPLY,
// 240
LFUN_PARAGRAPH_UPDATE,
LFUN_EXTERNAL_EDIT,
LFUN_BRANCH_INSERT,
LFUN_BOX_INSERT,
LFUN_LINE_INSERT,
// 245
LFUN_PAGEBREAK_INSERT,
LFUN_REPEAT,
LFUN_FINISHED_LEFT,
LFUN_FINISHED_RIGHT,
LFUN_FINISHED_UP,
// 250
LFUN_FINISHED_DOWN,
LFUN_CHARSTYLE_INSERT,
LFUN_WORD_FIND,
LFUN_WORD_REPLACE,
LFUN_BUFFER_EXPORT_CUSTOM,
// 255
LFUN_BUFFER_PRINT,
LFUN_NEXT_INSET_TOGGLE,
LFUN_ALL_INSETS_TOGGLE,
LFUN_BUFFER_LANGUAGE,
LFUN_TEXTCLASS_APPLY,
// 260
LFUN_TEXTCLASS_LOAD,
LFUN_BUFFER_SAVE_AS_DEFAULT,
LFUN_BUFFER_PARAMS_APPLY,
LFUN_LYXRC_APPLY,
LFUN_GRAPHICS_EDIT,
// 265
LFUN_INSET_REFRESH,
LFUN_BUFFER_NEXT,
LFUN_BUFFER_PREVIOUS,
LFUN_WORDS_COUNT,
LFUN_CHANGES_OUTPUT, // jspitzm 20050121
// 270
LFUN_BIBTEX_DATABASE_ADD,
LFUN_BIBTEX_DATABASE_DEL,
LFUN_CITATION_INSERT,
LFUN_OUTLINE_UP, // Vermeer 20060323
LFUN_OUTLINE_DOWN,
// 275
LFUN_OUTLINE_IN,
LFUN_OUTLINE_OUT,
LFUN_PARAGRAPH_MOVE_DOWN, // Edwin 20060408
LFUN_PARAGRAPH_MOVE_UP, // Edwin 20060408
LFUN_BUFFER_TOGGLE_COMPRESSION, // bpeng 20060427
// 280
LFUN_MATH_BIGDELIM,
LFUN_CLIPBOARD_PASTE,
LFUN_INSET_DISSOLVE, // jspitzm 20060807
LFUN_LASTACTION // end of the table
};
std::ostream & operator<<(std::ostream &, kb_action);
#endif // LFUNS_H