#include "key_state.h"
+#include "support/docstring.h"
+
#include <boost/shared_ptr.hpp>
+
+namespace lyx {
+
/**
* This is a base class for representing a keypress.
* Each frontend has to implement this to provide
virtual ~LyXKeySym() {}
+ ///
+ virtual bool operator==(LyXKeySym const& ks) const = 0;
+
/// Initialize with the name of a key. F. ex. "space" or "a"
virtual void init(std::string const & symbolname) = 0;
* Return the value of the keysym into the UCS-4 encoding.
* This converts the LyXKeySym to a 32-bit encoded character.
*/
- virtual size_t getUCSEncoded() const = 0;
+ virtual char_type getUCSEncoded() const = 0;
/**
* Return a string describing the KeySym with modifier mod.
- * This should use the native UI format when applicable
+ * Use the native UI format when \c forgui is true.
*/
- virtual std::string const print(key_modifier::state mod) const = 0;
+ virtual docstring const print(key_modifier::state mod, bool forgui) const = 0;
};
-/**
- * We need to be able to equality compare these for the
- * sake of the keymap business.
- */
-bool operator==(LyXKeySym const & k1, LyXKeySym const & k2);
-
typedef boost::shared_ptr<LyXKeySym> LyXKeySymPtr;
+
+} // namespace lyx
+
#endif