istereo2
annotate libs/goatkit/event.h @ 15:7bd4264bf74a
gui done?
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 30 Sep 2015 04:41:21 +0300 |
parents | |
children |
rev | line source |
---|---|
nuclear@6 | 1 /* |
nuclear@6 | 2 GoatKit - a themable/animated widget toolkit for games |
nuclear@6 | 3 Copyright (C) 2014 John Tsiombikas <nuclear@member.fsf.org> |
nuclear@6 | 4 |
nuclear@6 | 5 This program is free software: you can redistribute it and/or modify |
nuclear@6 | 6 it under the terms of the GNU Lesser General Public License as published by |
nuclear@6 | 7 the Free Software Foundation, either version 3 of the License, or |
nuclear@6 | 8 (at your option) any later version. |
nuclear@6 | 9 |
nuclear@6 | 10 This program is distributed in the hope that it will be useful, |
nuclear@6 | 11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
nuclear@6 | 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
nuclear@6 | 13 GNU Lesser General Public License for more details. |
nuclear@6 | 14 |
nuclear@6 | 15 You should have received a copy of the GNU Lesser General Public License |
nuclear@6 | 16 along with this program. If not, see <http://www.gnu.org/licenses/>. |
nuclear@6 | 17 */ |
nuclear@6 | 18 #ifndef EVENT_H_ |
nuclear@6 | 19 #define EVENT_H_ |
nuclear@6 | 20 |
nuclear@6 | 21 #include "vec.h" |
nuclear@6 | 22 |
nuclear@6 | 23 namespace goatkit { |
nuclear@6 | 24 |
nuclear@6 | 25 enum EventType { |
nuclear@6 | 26 // primary events |
nuclear@6 | 27 EV_MOUSE_BUTTON, |
nuclear@6 | 28 EV_MOUSE_MOTION, |
nuclear@6 | 29 EV_MOUSE_FOCUS, |
nuclear@6 | 30 EV_KEY, |
nuclear@6 | 31 |
nuclear@6 | 32 // derived events |
nuclear@6 | 33 EV_CLICK, |
nuclear@6 | 34 EV_DOUBLE_CLICK, |
nuclear@6 | 35 EV_CHANGE, |
nuclear@6 | 36 |
nuclear@6 | 37 NUM_EVENTS |
nuclear@6 | 38 }; |
nuclear@6 | 39 |
nuclear@6 | 40 enum SpecialKeys { |
nuclear@6 | 41 KEY_ESCAPE = 27, |
nuclear@6 | 42 KEY_DELETE = 127, |
nuclear@6 | 43 |
nuclear@6 | 44 KEY_F1 = 256, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, |
nuclear@6 | 45 KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, |
nuclear@6 | 46 KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, |
nuclear@6 | 47 KEY_HOME, KEY_END, KEY_PGUP, KEY_PGDOWN, |
nuclear@6 | 48 KEY_INSERT |
nuclear@6 | 49 }; |
nuclear@6 | 50 |
nuclear@6 | 51 struct ButtonEvent { |
nuclear@6 | 52 Vec2 pos; |
nuclear@6 | 53 int button; |
nuclear@6 | 54 bool press; |
nuclear@6 | 55 }; |
nuclear@6 | 56 |
nuclear@6 | 57 struct MotionEvent { |
nuclear@6 | 58 Vec2 pos; |
nuclear@6 | 59 }; |
nuclear@6 | 60 |
nuclear@6 | 61 struct FocusEvent { |
nuclear@6 | 62 bool enter; |
nuclear@6 | 63 }; |
nuclear@6 | 64 |
nuclear@6 | 65 struct KeyEvent { |
nuclear@6 | 66 int key; |
nuclear@6 | 67 bool press; |
nuclear@6 | 68 }; |
nuclear@6 | 69 |
nuclear@6 | 70 struct Event { |
nuclear@6 | 71 EventType type; |
nuclear@6 | 72 |
nuclear@6 | 73 ButtonEvent button; |
nuclear@6 | 74 MotionEvent motion; |
nuclear@6 | 75 FocusEvent focus; |
nuclear@6 | 76 KeyEvent key; |
nuclear@6 | 77 }; |
nuclear@6 | 78 |
nuclear@6 | 79 const char *event_type_name(EventType type); |
nuclear@6 | 80 |
nuclear@6 | 81 } // namespace goatkit |
nuclear@6 | 82 |
nuclear@6 | 83 #endif // EVENT_H_ |