/** * @file key.h * @author Joe Wingbermuehle * @date 2004-2006 * * @brief Header for the key binding functions. * */ #ifndef KEY_H #define KEY_H struct ClientNode; typedef enum { KEY_NONE = 0, KEY_UP = 1, KEY_DOWN = 2, KEY_RIGHT = 3, KEY_LEFT = 4, KEY_ESC = 5, KEY_ENTER = 6, KEY_NEXT = 7, KEY_NEXT_STACKED = 8, KEY_PREV = 9, KEY_PREV_STACKED = 10, KEY_RAISE = 11, KEY_CLOSE = 12, KEY_MIN = 13, KEY_MAX = 14, KEY_SHADE = 15, KEY_MOVE = 16, KEY_RESIZE = 17, KEY_ROOT = 18, KEY_WIN = 19, KEY_DESKTOP = 20, KEY_PUT = 21, KEY_SENDTO = 22, KEY_EXEC = 23, KEY_RESTART = 24, KEY_EXIT = 25 } KeyType; void InitializeKeys(); void StartupKeys(); void ShutdownKeys(); void DestroyKeys(); KeyType GetKey(const XKeyEvent *event); void GrabKeys(struct ClientNode *np); void InsertBinding(KeyType key, const char *modifiers, const char *stroke, const char *code, const char *command); void RunKeyCommand(const XKeyEvent *event); void ShowKeyMenu(const XKeyEvent *event); void ValidateKeys(); int HasArrowKeys(); int Switching(const XKeyEvent *event); #endif