Foundation classes for a basic GUI implementing simple widgets and events. (Fork for custom changes.)

Fork of SimpleGUI by Duncan McIntyre

Committer:
elh
Date:
Tue Oct 18 19:43:15 2016 +0000
Revision:
20:ef07d42ea062
Parent:
12:63db16fea709
Initialize Textwidgets _text to NULL preventing crash if widget is draw until a text was set.

Who changed what in which revision?

UserRevisionLine numberNew 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