X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfunc.h;h=4fce15e67865b2e7e7ef1e53f890165f0f294f9a;hb=89b422b320a352e503c0625820da1073805d74a9;hp=21d34fda034c78fe045db3967a8b3f2178f8cb53;hpb=44cd0fc9a1687cc63911c7f98d978594458e7813;p=lyx.git diff --git a/src/lyxfunc.h b/src/lyxfunc.h index 21d34fda03..4fce15e678 100644 --- a/src/lyxfunc.h +++ b/src/lyxfunc.h @@ -18,9 +18,12 @@ #include "kbsequence.h" #include "lfuns.h" -#include +#include "support/docstring.h" + +#include #include +namespace lyx { class BufferView; class FuncRequest; @@ -39,20 +42,20 @@ class LyXView; class LyXFunc : public boost::signals::trackable { public: /// - explicit - LyXFunc(LyXView *); + explicit LyXFunc(); /// LyX dispatcher, executes lyx actions. - void dispatch(FuncRequest const &, bool verbose = false); + void dispatch(FuncRequest const &); - /// Dispatch via a string argument - void dispatch(std::string const & s, bool verbose = false); + /// + void setLyXView(LyXView * lv); + + /// + void initKeySequences(kb_keymap * kb); /// return the status bar state string - std::string const view_status_message(); + docstring const viewStatusMessage(); - /// - typedef boost::shared_ptr LyXKeySymPtr; /// void processKeySym(LyXKeySymPtr key, key_modifier::state state); @@ -65,65 +68,72 @@ public: /// True if lyxfunc reports an error bool errorStat() const { return errorstat; } /// Buffer to store result messages - void setMessage(std::string const & m) const; + void setMessage(docstring const & m) const; /// Buffer to store result messages - void setErrorMessage(std::string const &) const; - /// Buffer to store result messages from getStatus - void setStatusMessage(std::string const &) const; + void setErrorMessage(docstring const &) const; /// Buffer to store result messages - std::string const getMessage() const { return dispatch_buffer; } - /// Buffer to store result messages - std::string const getStatusMessage() const { return status_buffer; } + docstring const getMessage() const { return dispatch_buffer; } /// Handle a accented char key sequence void handleKeyFunc(kb_action action); + /// goto a bookmark + /// openFile: whether or not open a file if the file is not opened + /// switchToBuffer: whether or not switch to buffer if the buffer is + /// not the current buffer + void gotoBookmark(unsigned int idx, bool openFile, bool switchToBuffer); private: /// BufferView * view() const; /// - LyXView * owner; + LyXView * lyx_view_; - /// the last character added to the key sequence, in ISO encoded form - char encoded_last_key; + /// the last character added to the key sequence, in UCS4 encoded form + char_type encoded_last_key; /// - kb_sequence keyseq; + boost::scoped_ptr keyseq; /// - kb_sequence cancel_meta_seq; + boost::scoped_ptr cancel_meta_seq; /// key_modifier::state meta_fake_bit; - /// - void moveCursorUpdate(); - /// - void setupLocalKeymap(); + /// Error status, only Dispatch can change this flag mutable bool errorstat; /** Buffer to store messages and result data. Is there a good reason to have this one as static in Dispatch? (Ale) */ - mutable std::string dispatch_buffer; - /** Buffer to store messages and result data from getStatus - */ - mutable std::string status_buffer; + mutable docstring dispatch_buffer; /// send a post-dispatch status message - void sendDispatchMessage(std::string const & msg, FuncRequest const & ev, bool verbose); + void sendDispatchMessage(docstring const & msg, + FuncRequest const & ev); // I think the following should be moved to BufferView. (Asger) - /// void menuNew(std::string const & argument, bool fromTemplate); - /// void open(std::string const &); - /// void doImport(std::string const &); - /// void closeBuffer(); + /// + void reloadBuffer(); + /// + bool ensureBufferClean(BufferView * bv); }; +/// Implementation is in lyx_main.C +extern LyXFunc & theLyXFunc(); + +/// Implementation is in lyx_main.C +extern FuncStatus getStatus(FuncRequest const & action); + +/// Implementation is in lyx_main.C +extern void dispatch(FuncRequest const & action); + +} // namespace lyx + #endif