#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>
-#include "support/std_string.h"
+namespace lyx {
class BufferView;
class FuncRequest;
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(string const & s, bool verbose = false);
+ ///
+ void setLyXView(LyXView * lv);
- /// Dispatch via a pseudo action, also displaying shortcut/command name
- void dispatch(int ac, bool verbose = false);
+ ///
+ void initKeySequences(kb_keymap * kb);
/// return the status bar state string
- string const view_status_message();
+ docstring const viewStatusMessage();
- ///
- typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
///
void processKeySym(LyXKeySymPtr key, key_modifier::state state);
- /// we need one internal which is called from inside LyXAction and
- /// can contain the string argument.
- FuncStatus getStatus(int ac) const;
///
FuncStatus getStatus(FuncRequest const & action) const;
/// True if lyxfunc reports an error
bool errorStat() const { return errorstat; }
/// Buffer to store result messages
- void setMessage(string const & m) const;
- /// Buffer to store result messages
- void setErrorMessage(string const &) const;
- /// Buffer to store result messages from getStatus
- void setStatusMessage(string const &) const;
+ void setMessage(docstring const & m) const;
/// Buffer to store result messages
- string const getMessage() const { return dispatch_buffer; }
+ void setErrorMessage(docstring const &) const;
/// Buffer to store result messages
- 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);
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 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 string dispatch_buffer;
- /** Buffer to store messages and result data from getStatus
- */
- mutable string status_buffer;
+ mutable docstring dispatch_buffer;
/// send a post-dispatch status message
- void sendDispatchMessage(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(string const & argument, bool fromTemplate);
-
+ void menuNew(std::string const & argument, bool fromTemplate);
///
- void open(string const &);
-
+ void open(std::string const &);
///
- void doImport(string const &);
-
+ 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