/* client/key.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_KEY_H__ #define __INCLUDED_CLIENT_KEY_H__ #include 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 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; float key_pressed; std::string key_bind; std::string key_bind_shift; std::string key_bind_ctrl; std::string key_bind_alt; }; } // namespace client #endif // __INCLUDED_CLIENT_KEY_H__