// -*- C++ -*-
+/**
+ * \file lyxfunc.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author John Levon
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
#ifndef LYXFUNC_H
#define LYXFUNC_H
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-
-#include "commandtags.h" // for kb_action enum
-#include "FuncStatus.h"
#include "kbsequence.h"
-#include "LString.h"
+#include "lfuns.h"
-#include "frontends/mouse_state.h"
-#include "frontends/key_state.h"
-#include "frontends/LyXKeySym.h"
+#include "support/types.h"
+#include <boost/shared_ptr.hpp>
#include <boost/signals/trackable.hpp>
-class LyXView;
+
+class BufferView;
+class FuncRequest;
+class FuncStatus;
+class LyXKeySym;
class LyXText;
+class LyXView;
/** This class encapsulates all the LyX command operations.
class LyXFunc : public boost::signals::trackable {
public:
///
- explicit
- LyXFunc(LyXView *);
+ explicit LyXFunc(LyXView *);
/// LyX dispatcher, executes lyx actions.
- string const dispatch(kb_action ac, string argument = string());
-
- /// The same as dispatch, but also shows shortcuts and command
- /// name in minibuffer if show_sc is true (more to come?)
- void verboseDispatch(kb_action action,
- string const & argument,
- bool show_sc);
-
- /// Same as above, using a pseudoaction as argument
- void verboseDispatch(int ac, bool show_sc);
+ void dispatch(FuncRequest const &);
- /// Same as above, when the command is provided as a string
- void verboseDispatch(string const & s, bool show_sc);
-
- ///
- void miniDispatch(string const & s);
-
- ///
- void initMiniBuffer();
+ /// return the status bar state string
+ std::string const viewStatusMessage();
///
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(kb_action action,
- string const & argument = string()) const;
+ FuncStatus getStatus(FuncRequest const & action) const;
/// The last key was meta
bool wasMetaKey() 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(std::string const & m) const;
/// Buffer to store result messages
- string const getMessage() const { return dispatch_buffer; }
+ void setErrorMessage(std::string const &) const;
/// Buffer to store result messages
- string const getStatusMessage() const { return status_buffer; }
+ std::string const getMessage() const { return dispatch_buffer; }
/// Handle a accented char key sequence
void handleKeyFunc(kb_action action);
private:
///
- LyXView * owner;
+ BufferView * view() const;
+
///
- static int psd_idx;
+ LyXView * owner;
+
+ /// the last character added to the key sequence, in ISO encoded form
+ lyx::char_type encoded_last_key;
+
///
kb_sequence keyseq;
///
///
key_modifier::state meta_fake_bit;
///
- void moveCursorUpdate(bool flag = true, bool selecting = false);
- ///
void setupLocalKeymap();
- ///
- kb_action lyx_dead_action;
- ///
- kb_action lyx_calling_dead_action;
/// 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 std::string dispatch_buffer;
- // I think the following should be moved to BufferView. (Asger)
+ /// send a post-dispatch status message
+ void sendDispatchMessage(std::string 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();
- ///
- void reloadBuffer();
- ///
- // This return or directly text (default) of getLyXText()
- ///
- LyXText * TEXT(bool) const;
- ///
};
-
-/*-------------------- inlines --------------------------*/
-
-inline
-bool LyXFunc::wasMetaKey() const
-{
- return (meta_fake_bit != key_modifier::none);
-}
-
-
#endif