Foundation classes for a basic GUI implementing simple widgets and events. (Fork for custom changes.)
Fork of SimpleGUI by
Events/EventHandler.h@12:63db16fea709, 2016-05-08 (annotated)
- Committer:
- duncanFrance
- Date:
- Sun May 08 14:42:08 2016 +0000
- Revision:
- 12:63db16fea709
- Parent:
- 0:0a590815d51c
Update to handle dirty pixels and geometric change/damage
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
duncanFrance | 0:0a590815d51c | 1 | #ifndef SIMPLEGUI_EVENT_HANDLER_H |
duncanFrance | 0:0a590815d51c | 2 | #define SIMPLEGUI_EVENT_HANDLER_H |
duncanFrance | 0:0a590815d51c | 3 | |
duncanFrance | 0:0a590815d51c | 4 | #include "Event.h" |
duncanFrance | 12:63db16fea709 | 5 | #include "EventHandlerFunction.h" |
duncanFrance | 0:0a590815d51c | 6 | |
duncanFrance | 12:63db16fea709 | 7 | class EventHandler { |
duncanFrance | 0:0a590815d51c | 8 | |
duncanFrance | 0:0a590815d51c | 9 | public: |
duncanFrance | 0:0a590815d51c | 10 | |
duncanFrance | 12:63db16fea709 | 11 | EventHandler(EventType eventType, EventHandlerFunction fn) : type(eventType) |
duncanFrance | 12:63db16fea709 | 12 | { |
duncanFrance | 12:63db16fea709 | 13 | _fp.attach(fn); |
duncanFrance | 12:63db16fea709 | 14 | } |
duncanFrance | 12:63db16fea709 | 15 | |
duncanFrance | 0:0a590815d51c | 16 | |
duncanFrance | 12:63db16fea709 | 17 | template<typename T> |
duncanFrance | 12:63db16fea709 | 18 | EventHandler(EventType eventType, T* tptr, void (T::*mptr)(Event)) : type(eventType) |
duncanFrance | 12:63db16fea709 | 19 | { |
duncanFrance | 12:63db16fea709 | 20 | _fp.attach(tptr, mptr); |
duncanFrance | 12:63db16fea709 | 21 | } |
duncanFrance | 12:63db16fea709 | 22 | |
duncanFrance | 12:63db16fea709 | 23 | void handle(Event e) { |
duncanFrance | 12:63db16fea709 | 24 | _fp.call(e); |
duncanFrance | 12:63db16fea709 | 25 | } |
duncanFrance | 12:63db16fea709 | 26 | |
duncanFrance | 12:63db16fea709 | 27 | EventType type; |
duncanFrance | 12:63db16fea709 | 28 | FunctionPointerArg1<void,Event> _fp; |
duncanFrance | 0:0a590815d51c | 29 | }; |
duncanFrance | 0:0a590815d51c | 30 | |
duncanFrance | 12:63db16fea709 | 31 | class EventHandlerList { |
duncanFrance | 12:63db16fea709 | 32 | |
duncanFrance | 12:63db16fea709 | 33 | public: |
duncanFrance | 12:63db16fea709 | 34 | |
duncanFrance | 12:63db16fea709 | 35 | EventHandlerList(EventHandler* eventHandler) : handler(eventHandler), next(NULL), prev(NULL) |
duncanFrance | 12:63db16fea709 | 36 | { |
duncanFrance | 12:63db16fea709 | 37 | } |
duncanFrance | 12:63db16fea709 | 38 | |
duncanFrance | 12:63db16fea709 | 39 | EventHandler *handler; |
duncanFrance | 12:63db16fea709 | 40 | EventHandlerList *next; |
duncanFrance | 12:63db16fea709 | 41 | EventHandlerList *prev; |
duncanFrance | 12:63db16fea709 | 42 | |
duncanFrance | 12:63db16fea709 | 43 | }; |
duncanFrance | 0:0a590815d51c | 44 | |
duncanFrance | 0:0a590815d51c | 45 | #endif |