#ifndef GREVENTS_H #define GREVENTS_H #define gr_event_none 0 #define gr_event_wait 1 #define gr_event_poll 2 #define gr_event_flush 3 #define gr_mouse_down 0x04 #define gr_mouse_move 0x08 #define gr_mouse_up 0x10 #define gr_mouse_drag 0x20 #define gr_key_down 0x40 #define gr_key_up 0x80 #define gr_event_mouse 0x3C #define gr_event_key 0xC0 #define gr_event_type (gr_event_mouse | gr_event_key) typedef enum grKey_ { grKeyNone = 0, grKeyF1, grKeyF2, grKeyF3, grKeyF4, grKeyF5, grKeyF6, grKeyF7, grKeyF8, grKeyF9, grKeyF10, grKeyF11, grKeyF12, grKeyLeft, grKeyRight, grKeyUp, grKeyDown, grKeyIns, grKeyDel, grKeyHome, grKeyEnd, grKeyPageUp, grKeyPageDown, grKeyEsc, grKeyTab, grKeyBackSpace, grKeyReturn, grKeyMax, grKeyForceShort = 0x7FFF /* this forces the grKey to be stored */ /* on at least one short ! */ } grKey; #define grKEY(c) ((grKey)(c)) #define grKeyAlt ((grKey)0x8000) #define grKeyCtrl ((grKey)0x4000) #define grKeyShift ((grKey)0x2000) #define grKeyModifiers ((grKey)0xE000) #define grKey0 grKEY('0') #define grKey1 grKEY('1') #define grKey2 grKEY('2') #define grKey3 grKEY('3') #define grKey4 grKEY('4') #define grKey5 grKEY('5') #define grKey6 grKEY('6') #define grKey7 grKEY('7') #define grKey8 grKEY('8') #define grKey9 grKEY('9') #define grKeyPlus grKEY('+') #define grKeyLess grKEY('-') #define grKeyEqual grKEY('=') #define grKeyMult grKEY('*') #define grKeyDollar grKEY('$') #define grKeySmaller grKEY('<') #define grKeyGreater grKEY('>') #define grKeyQuestion grKEY('?') #define grKeyComma grKEY(',') #define grKeyDot grKEY('.') #define grKeySemiColumn grKEY(';') #define grKeyColumn grKEY(':') #define grKeyDiv grKEY('/') #define grKeyExclam grKEY('!') #define grKeyPercent grKEY('%') #define grKeyLeftParen grKEY('(') #define grKeyRightParen grKEY('(') #define grKeyAt grKEY('@') #define grKeyUnder grKEY('_') typedef struct grEvent_ { int type; grKey key; int x, y; } grEvent; #endif /* GREVENTS_H */