#ifndef LYXFUNC_H
#define LYXFUNC_H
+#include "FuncCode.h"
#include "KeySequence.h"
-#include "lfuns.h"
-#include "TextClassPtr.h"
#include "support/docstring.h"
-#include <boost/signals/trackable.hpp>
-
namespace lyx {
class Buffer;
class BufferView;
+class DocumentClass;
class FuncRequest;
class FuncStatus;
class KeySymbol;
class Text;
+namespace support {
+class FileName;
+}
+
namespace frontend {
class LyXView;
}
keyboard or from the GUI. All GUI objects, including buttons and
menus should use this class and never call kernel functions directly.
*/
-class LyXFunc : public boost::signals::trackable {
+class LyXFunc
+{
public:
///
explicit LyXFunc();
///
void setLyXView(frontend::LyXView * lv);
-
+
///
void initKeySequences(KeyMap * kb);
/// return the status bar state string
- docstring const viewStatusMessage();
+ docstring viewStatusMessage();
///
- void processKeySym(KeySymbol const & key, key_modifier::state state);
+ void processKeySym(KeySymbol const & key, KeyModifier state);
///
FuncStatus getStatus(FuncRequest const & action) const;
/// Buffer to store result messages
docstring const getMessage() const { return dispatch_buffer; }
/// Handle a accented char key sequence
- void handleKeyFunc(kb_action action);
+ void handleKeyFunc(FuncCode 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);
+ /// cursor x position before dispatch started
+ int cursorBeforeDispatchX() const { return cursorPosBeforeDispatchX_; }
+ /// cursor y position before dispatch started
+ int cursorBeforeDispatchY() const { return cursorPosBeforeDispatchY_; }
+
private:
///
BufferView * view() const;
///
KeySequence cancel_meta_seq;
///
- key_modifier::state meta_fake_bit;
+ KeyModifier meta_fake_bit;
+
+ /// cursor position before dispatch started
+ int cursorPosBeforeDispatchX_;
+ int cursorPosBeforeDispatchY_;
/// Error status, only Dispatch can change this flag
mutable bool errorstat;
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);
///
- void updateLayout(TextClassPtr const & oldlayout, Buffer * buffer);
+ void updateLayout(DocumentClass const * const oldlayout, Buffer * buffer);
};
/// Implementation is in LyX.cpp