Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/key.h')
-rw-r--r--src/client/key.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/client/key.h b/src/client/key.h
index ece7669..344e1fa 100644
--- a/src/client/key.h
+++ b/src/client/key.h
@@ -14,27 +14,44 @@ namespace client {
class Key
{
public:
+ /// define a new key
Key(const char *name, unsigned int keysym, char ascii=0, const char *bind=0);
~Key();
+
+ /// key modifiers
+ enum Modifier { None=0, Shift=1, Ctrl=2, Alt=3 };
+
+ /// clear all binds
+ void clear();
+
+ /// set the bind for a specific modifier
+ void assign(Modifier mod, const char *bind);
+
+ /// clear the bind for a specific modifier
+ void clear(Modifier mod);
+
+ /// return the bind for a specific modifier
+ std::string const & bind(Modifier mod) const;
inline float & pressed() { return key_pressed; }
inline std::string const & name() const { return key_name; }
- inline std::string & bind() { return key_bind; }
-
inline char ascii() const { return key_ascii; }
inline unsigned int sym() const { return key_sym; }
private:
+ std::string key_name;
unsigned int key_sym;
char key_ascii;
- std::string key_name;
- std::string key_bind;
-
float key_pressed;
+
+ std::string key_bind;
+ std::string key_bind_shift;
+ std::string key_bind_ctrl;
+ std::string key_bind_alt;
};
} // namespace client