lyx_mirror/src/lfuns.h

415 lines
12 KiB
C
Raw Normal View 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
the stuff from the sneak preview: For one, it still contains a few things that are already in CVS (the 'brown paperbag' changes). Secondly, this changes the ParagraphList to a std::vector but does not yet take full advantage of it except removing LyXText::parOffset() and similar. I had an extensive talk with my profiler and we are happy nevertheless. This also moves almost all Cut&Paste specific stuff from text.C to CutAndPaste.C. Much smaller interface now... Namespace CutAndPaste is now lyx::cap::. Was inconsistent with the rest.... Make ParagraphList a proper class. We'll need this later for a specialized erase/insert. Remove some unneeded prototypes and function declarations Use ParameterStruct directly instead of ShareContainer<ParameterStruct> Inline a few accesses to CursorSlice members as suggested by the profiler. Fix commandline conversion crash reported by Kayvan. Replace PosIterator by DocumentIterator. The latter can also iterate through math and nested text in math... Remove math specific hack from Documentiterator Derive InsetCollapsable from InsetText instead of using an InsetText member. This give us the opportunity to get rid of the InsetOld::owner_ backpointer. Cosmetics in CutAndPaste.C and cursor.C. Fix nasty crash (popping slices off an empty selection anchor). Add a few asserts. Remove all 'manual' update calls. We do now one per user interaction which is completely sufficient. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8527 a592a061-630c-0410-9148-cb99ea01b6c8
2004-03-25 09:16:36 +00:00
* - 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
the stuff from the sneak preview: For one, it still contains a few things that are already in CVS (the 'brown paperbag' changes). Secondly, this changes the ParagraphList to a std::vector but does not yet take full advantage of it except removing LyXText::parOffset() and similar. I had an extensive talk with my profiler and we are happy nevertheless. This also moves almost all Cut&Paste specific stuff from text.C to CutAndPaste.C. Much smaller interface now... Namespace CutAndPaste is now lyx::cap::. Was inconsistent with the rest.... Make ParagraphList a proper class. We'll need this later for a specialized erase/insert. Remove some unneeded prototypes and function declarations Use ParameterStruct directly instead of ShareContainer<ParameterStruct> Inline a few accesses to CursorSlice members as suggested by the profiler. Fix commandline conversion crash reported by Kayvan. Replace PosIterator by DocumentIterator. The latter can also iterate through math and nested text in math... Remove math specific hack from Documentiterator Derive InsetCollapsable from InsetText instead of using an InsetText member. This give us the opportunity to get rid of the InsetOld::owner_ backpointer. Cosmetics in CutAndPaste.C and cursor.C. Fix nasty crash (popping slices off an empty selection anchor). Add a few asserts. Remove all 'manual' update calls. We do now one per user interaction which is completely sufficient. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8527 a592a061-630c-0410-9148-cb99ea01b6c8
2004-03-25 09:16:36 +00:00
* ::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_BREAK_PARAGRAPH_KEEP_LAYOUT,
// 65
LFUN_QUOTE_INSERT,
LFUN_ACCENT_CIRCUMFLEX,
LFUN_MATH_SUBSCRIPT,
LFUN_MATH_SUPERSCRIPT,
LFUN_ACCENT_GRAVE,
// 70
LFUN_ACCENT_ACUTE,
LFUN_ACCENT_TILDE,
LFUN_ACCENT_CEDILLA,
LFUN_ACCENT_MACRON,
LFUN_ACCENT_UNDERBAR,
// 75
LFUN_ACCENT_UNDERDOT,
LFUN_ACCENT_CIRCLE,
LFUN_ACCENT_TIE,
LFUN_ACCENT_BREVE,
LFUN_ACCENT_CARON,
// 80
LFUN_ACCENT_SPECIAL_CARON,
LFUN_ACCENT_HUNGARIAN_UMLAUT,
LFUN_ACCENT_UMLAUT,
LFUN_ACCENT_DOT,
LFUN_ACCENT_OGONEK,
// 85
LFUN_SELF_INSERT,
LFUN_GETBUFNAME,
LFUN_SERVER_GET_XY,
LFUN_SERVER_SET_XY,
LFUN_SERVER_CHAR_AFTER,
// 90
LFUN_LINEATCURSOR,
LFUN_SERVER_GET_LAYOUT,
LFUN_SERVER_GET_FONT,
LFUN_SERVER_GET_NAME,
LFUN_SERVER_NOTIFY,
// 95
LFUN_SERVER_GOTO_FILE_ROW,
LFUN_NOTE_INSERT,
LFUN_ENVIRONMENT_INSERT, // unused as of 20060905
LFUN_KEYMAP_OFF,
LFUN_KEYMAP_PRIMARY,
// 100
LFUN_KEYMAP_SECONDARY,
LFUN_KEYMAP_TOGGLE,
LFUN_MATH_INSERT,
LFUN_MATH_MATRIX,
LFUN_MATH_LIMITS,
// 105
LFUN_MATH_DELIM, // Alejandro 180696
LFUN_MATH_DISPLAY, // Alejandro 180696
LFUN_MATH_MODE, // Alejandro 040696
LFUN_MATH_NUMBER, // Alejandro 040696
LFUN_MATH_NONUMBER, // Alejandro 180696
// 110
LFUN_MATH_SIZE, // Alejandro 150896
LFUN_MATH_MACRO, // ale970510
LFUN_MATH_EXTERN, // Andre' 20010424
LFUN_MATH_MUTATE, // Andre' 20010523
LFUN_MATH_IMPORT_SELECTION, // Andre' 20010704
// 115
LFUN_MATH_SPACE, // Andre' 20010725
LFUN_WORD_DELETE_FORWARD,
LFUN_WORD_DELETE_BACKWARD,
LFUN_LINE_DELETE,
LFUN_MARK_OFF,
// 120
LFUN_MARK_ON,
LFUN_LAYOUT,
LFUN_LAYOUT_PARAGRAPH,
LFUN_DROP_LAYOUTS_CHOICE, // used in bindings as of 20060905
LFUN_FONT_CODE,
// 125
LFUN_FONT_SANS,
LFUN_FONT_DEFAULT,
LFUN_FONT_UNDERLINE,
LFUN_FONT_SIZE,
LFUN_FONT_STATE,
// 130
LFUN_WORD_UPCASE,
LFUN_WORD_LOWCASE,
LFUN_WORD_CAPITALIZE,
LFUN_LABEL_INSERT,
LFUN_DEPTH_DECREMENT,
// 135
LFUN_DEPTH_INCREMENT,
LFUN_MENU_OPEN, // used in bindings as of 20060905
LFUN_CANCEL,
LFUN_META_PREFIX,
LFUN_COMMAND_EXECUTE,
// 140
LFUN_FILE_INSERT,
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,
// 145
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
LFUN_BREAK_PARAGRAPH_SKIP,
// 150
LFUN_DELETE_BACKWARD_SKIP,
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
// 155
LFUN_INDEX_PRINT, // Lgb 97-02-27
LFUN_CELL_SPLIT,
LFUN_BUFFER_CHILD_OPEN, // Ale 970528
LFUN_TOC_INSERT, // Lgb 97-05-27
LFUN_FLOAT_LIST, // Lgb 20010503
// 160
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
LFUN_VC_REVERT, // Lgb 97-07-01
// 165
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
LFUN_END_OF_SENTENCE_PERIOD_INSERT, // Asger 970929
// 170
LFUN_TOGGLE_CURSOR_FOLLOWS_SCROLLBAR, // ARRae 971202
LFUN_BUFFER_CHKTEX, // Asger 971030
LFUN_HTML_INSERT, // CFO-G 971121; must co-exist with URL_INSERT as of 20060905
LFUN_URL_INSERT, // CFO-G 971121
LFUN_WORD_FIND_FORWARD, // Etienne 980216
// 175
LFUN_WORD_FIND_BACKWARD, // Etienne 980220
LFUN_APPENDIX, // ettrich 980505
LFUN_BUFFER_IMPORT, // Asger 980724
LFUN_MENU_SEPARATOR_INSERT, // Asger 990220
LFUN_COMMAND_SEQUENCE, // Andre' 991111
// 180
LFUN_PREFERENCES_SAVE, // Lgb 991127
LFUN_HELP_OPEN, // Jug 990627
LFUN_DATE_INSERT, // jdblair 20000131
LFUN_LANGUAGE, // Dekel 20000203
LFUN_ERT_INSERT, // Jug 20000218
// 185
LFUN_FOOTNOTE_INSERT, // Jug 20000307
LFUN_PARAGRAPH_SPACING, // Lgb 20000411
LFUN_TABULAR_INSERT, // Jug 20000412
LFUN_LOFVIEW, // Dekel 20000519
LFUN_LOTVIEW, // Dekel 20000519
// 190
LFUN_LOAVIEW, // Dekel 20000519
LFUN_SET_COLOR, // SLior 20000611
LFUN_MARGINALNOTE_INSERT, // Lgb 20000626
LFUN_FLOAT_INSERT, // Lgb 20000627
LFUN_FLOAT_WIDE_INSERT, // Lgb 20010531
// 195
LFUN_CAPTION_INSERT, // Lgb 20000718; inactive as of 20060905
LFUN_BUFFER_SWITCH,
LFUN_TABULAR_FEATURE, // Jug 20000728
LFUN_LAYOUT_TABULAR, // Jug 20000731
LFUN_BUFFER_UPDATE, // Dekel 20000805
// 200
LFUN_INDEX_INSERT, // Angus 20000803
LFUN_SCREEN_FONT_UPDATE, // ARRae 20000813
LFUN_PARAGRAPH_GOTO, // Dekel 20000826
LFUN_REFERENCE_NEXT, // Dekel 20010114
LFUN_BOOKMARK_SAVE, // Dekel 20010127
// 205
LFUN_BOOKMARK_GOTO, // Dekel 20010127
LFUN_SELECT_FILE_SYNC, // Levon 20010214
LFUN_MESSAGE, // Lgb 20010408; for scripting purposes, output in minibuffer
LFUN_CHARS_TRANSPOSE, // Lgb 20010425
LFUN_ESCAPE, // Lgb 20010517
// 210
LFUN_THESAURUS_ENTRY, // Levon 20010720
LFUN_OPTIONAL_INSERT, // Martin 12 Aug 2002
LFUN_MOUSE_PRESS, // Andr<64> 9 Aug 2002
LFUN_MOUSE_MOTION, // Andr<64> 9 Aug 2002
LFUN_MOUSE_RELEASE, // Andr<64> 9 Aug 2002
// 215
LFUN_MOUSE_DOUBLE, // Andr<64> 9 Aug 2002
LFUN_MOUSE_TRIPLE, // Andr<64> 9 Aug 2002
LFUN_WRAP_INSERT, // Dekel 7 Apr 2002
LFUN_CHANGES_TRACK, // Levon 20021001 (cool date !)
LFUN_CHANGES_MERGE, // Levon 20021016
// 220
LFUN_CHANGE_ACCEPT, // Levon 20021016
LFUN_CHANGE_REJECT, // Levon 20021016
LFUN_ALL_CHANGES_ACCEPT, // Levon 20021016
LFUN_ALL_CHANGES_REJECT, // Levon 20021016
LFUN_BIBITEM_INSERT, // Andr<64> 14 Feb 2003
// 225
LFUN_DIALOG_SHOW,
LFUN_DIALOG_SHOW_NEW_INSET,
LFUN_DIALOG_UPDATE,
LFUN_DIALOG_HIDE,
LFUN_DIALOG_TOGGLE, // JSpitzm 20070430
// 230
LFUN_DIALOG_DISCONNECT_INSET,
LFUN_INSET_APPLY,
LFUN_INSET_INSERT,
LFUN_INSET_MODIFY,
LFUN_INSET_DIALOG_UPDATE,
// 235
LFUN_INSET_SETTINGS,
LFUN_PARAGRAPH_PARAMS_APPLY,
LFUN_PARAGRAPH_UPDATE,
LFUN_EXTERNAL_EDIT,
LFUN_BRANCH_INSERT,
// 240
LFUN_BOX_INSERT,
LFUN_LINE_INSERT,
LFUN_PAGEBREAK_INSERT,
LFUN_REPEAT,
LFUN_FINISHED_LEFT,
// 245
LFUN_FINISHED_RIGHT,
LFUN_CHARSTYLE_INSERT,
LFUN_WORD_FIND,
LFUN_WORD_REPLACE,
LFUN_BUFFER_EXPORT_CUSTOM,
// 250
LFUN_BUFFER_PRINT,
LFUN_NEXT_INSET_TOGGLE,
LFUN_ALL_INSETS_TOGGLE,
LFUN_BUFFER_LANGUAGE,
LFUN_TEXTCLASS_APPLY,
// 255
LFUN_TEXTCLASS_LOAD,
LFUN_BUFFER_SAVE_AS_DEFAULT,
LFUN_BUFFER_PARAMS_APPLY,
LFUN_LYXRC_APPLY,
LFUN_GRAPHICS_EDIT,
// 260
LFUN_INSET_REFRESH,
LFUN_BUFFER_NEXT,
LFUN_BUFFER_PREVIOUS,
LFUN_WORDS_COUNT,
LFUN_CHANGES_OUTPUT, // jspitzm 20050121
// 265
LFUN_BIBTEX_DATABASE_ADD,
LFUN_BIBTEX_DATABASE_DEL,
LFUN_CITATION_INSERT,
LFUN_OUTLINE_UP, // Vermeer 20060323
LFUN_OUTLINE_DOWN,
// 270
LFUN_OUTLINE_IN,
LFUN_OUTLINE_OUT,
LFUN_PARAGRAPH_MOVE_DOWN, // Edwin 20060408
LFUN_PARAGRAPH_MOVE_UP, // Edwin 20060408
LFUN_BUFFER_TOGGLE_COMPRESSION, // bpeng 20060427
// 275
LFUN_MATH_BIGDELIM,
Split clipboard and X selection * src/LyXAction.C (LyXAction::init): handle new LFUN_CLIPBOARD_PASTE * src/insets/insettabular.C (InsetTabular::doDispatch): ditto * src/insets/insetbox.C (InsetBox::doDispatch): ditto * src/insets/insetert.C (InsetERT::doDispatch): ditto (InsetERT::getStatus): ditto * src/insets/insetcharstyle.C (InsetCharStyle::doDispatch): ditto * src/BufferView_pimpl.C (BufferView::Pimpl::selectionRequest): stuff selection, not clipboard * src/mathed/math_nestinset.C (MathNestInset::lfunMousePress): get stuff selection, not clipboard (MathNestInset::lfunMouseRelease): clipboard -> selection in commented code * src/CutAndPaste.C (cutSelection): ditto * src/frontends/{qt3,gtk}/GuiImplementation.C (GuiImplementation::newWorkArea): create new selection, not clipboard, since the clipboard is now an object (GuiImplementation::destroyWorkArea): destroy selection, not clipboard * src/frontends/{qt4,qt3,gtk}/GuiSelection.h: new, copied from GuiClipboard.h * src/frontends/{qt4,qt3,gtk}/GuiSelection.C: new, copied from GuiClipboard.C * src/frontends/{qt3,gtk}/GuiImplementation.h (selection): new accessor for selection_ (selection_): new, the global selection object * src/frontends/{qt4,qt3,gtk}/Makefile.am: add GuiSelection.C and GuiSelection.h * src/frontends/{qt4,qt3,gtk}/GuiClipboard.C (GuiClipboard::get): return clipboard, not selection (GuiClipboard::put): stuff clipboard, not selection * src/frontends/{qt4,qt3,gtk}/GuiClipboard.h (haveSelection): remove (this is now in GuiSelection) * src/frontends/{qt3,gtk}/GuiClipboard.h (old_work_area_): remove, since it is not needed anymore * src/frontends/gtk/ghelpers.C (getGTKStockIcon): handle LFUN_CLIPBOARD_PASTE * src/frontends/Clipboard.h (haveSelection): remove (this is now in Selection) * src/frontends/qt4/GuiImplementation.[Ch] (GuiImplementation::selection): new accessor for selection_ * src/frontends/Gui.h (selection): New accessor for the global selection object * src/frontends/Selection.h; new, copied from Clipboard.h * src/frontends/Makefile.am: add Selection.h * src/text3.C (various): s/clipboard().haveSelection/selection().haveSelection/ (LyXText::dispatch): handle LFUN_CLIPBOARD_PASTE (LyXText::getStatus): ditto * src/lfuns.h: new lfun LFUN_CLIPBOARD_PASTE * lib/ui/stdmenus.ui: add new lfun LFUN_CLIPBOARD_PASTE git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14408 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-10 11:32:25 +00:00
LFUN_CLIPBOARD_PASTE,
LFUN_INSET_DISSOLVE, // jspitzm 20060807
LFUN_CHANGE_NEXT,
LFUN_WINDOW_NEW, // Abdel 20061021
// 280
LFUN_WINDOW_CLOSE, // Abdel 20061023
LFUN_UNICODE_INSERT, // Lgb 20061022
LFUN_BOOKMARK_CLEAR, // bpeng 20061031
LFUN_NOMENCL_INSERT, // Ugras
LFUN_NOMENCL_PRINT, // Ugras
// 285
LFUN_CLEARPAGE_INSERT, // Ugras 20061125
LFUN_CLEARDOUBLEPAGE_INSERT, // Ugras 20061125
Add support for listings package. Two listings command \lstinline, \lstinputlisting and an environment \lstlisting are supported, along with preamble \lstset. \lstinputlisting is implemented through Include dialog, and the other two are implemented with a new inset listings, along with its dialog. * src/LyXAction.cpp: listing-insert action * src/insets/Inset.h,cpp: LISTINGS_CODE * src/insets/InsetInclude.cpp: handle \lstinputlisting * src/insets/InsetListings.h,cpp: new listings inset * src/insets/InsetListingsParams.h,cpp: parameters from listings package * src/insets/InsetCommandParams.h,cpp: handle lstinputlisting option * src/Bidi.cpp: handle LISTINGS_CODE * src/frontends/qt4/ui/TextLayoutUi.ui: update UI * src/frontends/qt4/ui/ListingsUi.ui: new dialog * src/frontends/qt4/ui/IncludeUi.ui: update UI * src/frontends/qt4/QInclude.h,cpp: add lstinputlisting * src/frontends/qt4/QDocument.h,cpp: add textedit for preamble listings_params * src/frontends/qt4/QListings.h,cpp: new listings inset * src/frontends/qt4/Dialogs.cpp: new listings dialog * src/frontends/controllers/ControlInclude.h,cpp: add lstinputlisting * src/frontends/controllers/ControlListings.h,cpp: new listings inset * src/LyXFunc.cpp: handle LISTING_CODE * src/Paragraph.cpp: handle LISTING_CODE * src/factory.cpp: new listings inset * src/CutAndPaste.cpp: handle LISTINGS_CODE * src/LaTeXFeatures.cpp: require listings * src/Text3.cpp: Handle LISTINGS_CODE * src/lfuns.h: add LFUN_LISTING_INSERT * src/Buffer.cpp: change lyx file format to 269 * src/BufferParams.h,cpp: add listings_params to preamble * lib/lyx2lyx/LyX.py: lyx2lyx * lib/lyx2lyx/lyx_1_5.py: lyx2lyx * lib/ui/stdmenus.inc: new menu item (no shortcut!) * src/insets/Makefile.am: update autotools * src/frontends/controllers/Makefile.am * src/frontends/qt4/Makefile.dialogs * src/frontends/qt4/Makefile.am * po/POTFILES.in: a few more translatable files. * development/scons/scons_manifest.py: scons build system * development/FORMAT: document format changes git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18243 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-09 19:11:42 +00:00
LFUN_LISTING_INSERT, // Herbert 20011110, bpeng 20070502
LFUN_TOOLBAR_TOGGLE, // Edwin 20070521
LFUN_BUFFER_WRITE_ALL, // rgh, gpothier 200707XX
//290
LFUN_PARAGRAPH_PARAMS, // rgh, 200708XX
This is one of a series of patches that will merge the layout modules development in personal/branches/rgheck back into the tree. Design goal: Allow the use of layout "modules", which are to LaTeX packages as layout files are to LaTeX document classes. Thus, one could have a module that defined certain character styles, environments, commands, or what have you, and include it in various documents, each of which uses a different document class, without having to modify the layout files themselves. For example, a theorems.module could be used with article.layout to provide support for theorem-type environments, without having to modify article.layout itself, and the same module could be used with book.layout, etc. This patch adds the backend. The ModuleList class holds a list of the available modules, which are retrieved from lyxmodules.lst, itself generated by configure.py. There are two LFUNs available: modules-clear and module-add, which do the obvious thing; you can test by typing these into the minibuffer, along with the name of one of the available modules: URL (a CharStyle), Endnote (a Custom Inset), and---with the spaces---End To Foot (View>LaTeX and look at the user preamble), which are themselves in lib/layouts. There are some others, too, that allow theorems to be added to classes like article and book. The GUI will come next. Issues: (i) The configure.py script could be improved. It'd be nice, for example, if it tested for the presence of the LaTeX packages a particular module needs. But this would mean re-working the LaTeX script, and I don't know how to do that. Note that at present, the packages are ignored. This will change shortly. (ii) I've used std::string in LyXModule, following what seemed to be a precedent in TextClass. If some of these should be docstrings, please let me know, and I'll change them. (iii) There is at present no distinction between LaTeX and DocBook modules. Should there be? That is: Should there be modules that are available when the document class is a LaTeX class and others that are available only when it is DocBook? Or should there just be one set of modules? Each module can of course indicate for what it is suitable in its description. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19893 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-29 17:59:49 +00:00
LFUN_LAYOUT_MODULES_CLEAR, // rgh, 20070825
LFUN_LAYOUT_MODULE_ADD, // rgh, 20070825
New nomenclature inset from Ugras * src/LyXAction.C (LyXAction::init): Add LFUN_NOMENCL_INSERT and LFUN_NOMENCL_PRINT * src/insets/insetbase.C (build_translator): ditto * src/LaTeXFeatures.C (LaTeXFeatures::getPackages): Add nomencl * src/insets/insetnomencl.[Ch]: new insets InsetNomencl and InsetPrintNomencl * src/insets/insetbase.h: Add NOMENCL_CODE and NOMENCL_PRINT_CODE * src/insets/insetcommandparams.C (InsetCommandParams::findInfo): Add nomenclature and printnomenclature (InsetCommandParams::getCommand): Extend end of command protection to cover commands with only optional arguments like printnomenclature * src/insets/insetert.C (InsetERT::getStatus): disable LFUN_NOMENCL_INSERT and LFUN_NOMENCL_PRINT * src/insets/Makefile.am: Add new files * src/frontends/qt4/Makefile.dialogs: ditto * src/frontends/qt4/Makefile.am: ditto * src/factory.C (createInset): Handle InsetNomencl and InsetPrintNomencl (readInset): ditto * src/buffer.C (LYX_FORMAT): increase * src/lyxfunc.C (LyXFunc::dispatch): Handle nomenclature * src/LaTeX.C (LaTeX::deleteFilesOnError): Delete .nls file (LaTeX::run): Run makeindex for nomenclature (LaTeX::runMakeIndex): handle nomenclature options (LaTeX::deplog): Recognize nomenclature file * src/frontends/qt4/QNomenclDialog.[Ch]: new * src/frontends/qt4/QNomencl.[Ch]: ditto * src/frontends/qt4/ui/QNomenclUi.ui: ditto * src/frontends/qt4/Dialogs.C (Dialogs::build): handle nomenclature dialog * src/text3.C (LyXText::dispatch): Handle LFUN_NOMENCL_INSERT and LFUN_NOMENCL_PRINT (LyXText::getStatus): Ditto * src/lfuns.h (kb_action): Add LFUN_NOMENCL_INSERT and LFUN_NOMENCL_PRINT * lib/lyx2lyx/LyX.py (format_relation): Update 1.5 format range * lib/lyx2lyx/lyx_1_5.py (revert_nomenclature): New (revert_printnomenclature): ditto * lib/chkconfig.ltx: Test for nomencl package * lib/doc/LaTeXConfig.lyx.in: Add nomencl package * lib/doc/Extended.lyx: Add documentation for nomencl * lib/ui/stdtoolbars.ui (Toolbar "extra" "Extra"): Add nomencl-insert * lib/ui/classic.ui: Add nomencl-insert and nomencl-print * lib/ui/stdmenus.ui: ditto * development/scons/scons_manifest.py: Add new files * development/FORMAT: Describe new format git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15739 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-04 17:55:36 +00:00
LFUN_LASTACTION // end of the table
};
std::ostream & operator<<(std::ostream &, kb_action);
} // namespace lyx
#endif // LFUNS_H