]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.h
* lyx_main.[Ch]
[lyx.git] / src / lyxfunc.h
index 399a64055a64d9d88b733f553238028630da52fa..549e778d897be8ed85797cbcdc508018144712df 100644 (file)
 #include "kbsequence.h"
 #include "lfuns.h"
 
-#include <boost/shared_ptr.hpp>
+#include "support/docstring.h"
+
+#include <boost/scoped_ptr.hpp>
 #include <boost/signals/trackable.hpp>
 
+namespace lyx {
 
 class BufferView;
 class FuncRequest;
@@ -39,16 +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 &);
 
-       /// return the status bar state string
-       std::string const view_status_message();
+       ///
+       void setLyXView(LyXView * lv);
 
        ///
-       typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
+       void initKeySequences(kb_keymap * kb);
+
+       /// return the status bar state string
+       std::string const viewStatusMessage();
+
        ///
        void processKeySym(LyXKeySymPtr key, key_modifier::state state);
 
@@ -61,15 +68,11 @@ public:
        /// True if lyxfunc reports an error
        bool errorStat() const { return errorstat; }
        /// Buffer to store result messages
-       void setMessage(std::string 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 setMessage(docstring const & m) const;
        /// Buffer to store result messages
-       std::string const getMessage() const { return dispatch_buffer; }
+       void setErrorMessage(docstring const &) const;
        /// 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);
 
@@ -78,32 +81,29 @@ 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;
+       char_type encoded_last_key;
 
        ///
-       kb_sequence keyseq;
+       boost::scoped_ptr<kb_sequence> keyseq;
        ///
-       kb_sequence cancel_meta_seq;
+       boost::scoped_ptr<kb_sequence> cancel_meta_seq;
        ///
        key_modifier::state meta_fake_bit;
-       ///
-       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)
        ///
@@ -114,6 +114,19 @@ private:
        void doImport(std::string const &);
        ///
        void closeBuffer();
+       ///
+       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