Foundation classes for a basic GUI implementing simple widgets and events

Dependents:   TouchScreenGUIDemo

Committer:
duncanFrance
Date:
Sun May 08 14:42:08 2016 +0000
Revision:
12:63db16fea709
Child:
18:d849f3ada858
Update to handle dirty pixels and geometric change/damage

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duncanFrance 12:63db16fea709 1 #ifndef SIMPLEGUI_WINDOW_H
duncanFrance 12:63db16fea709 2 #define SIMPLEGUI_WINDOW_H
duncanFrance 12:63db16fea709 3
duncanFrance 12:63db16fea709 4 /**
duncanFrance 12:63db16fea709 5 * Defines an interface for classes which can contain widgets
duncanFrance 12:63db16fea709 6 **/
duncanFrance 12:63db16fea709 7
duncanFrance 12:63db16fea709 8 class Window;
duncanFrance 12:63db16fea709 9
duncanFrance 12:63db16fea709 10 #include "Widget.h"
duncanFrance 12:63db16fea709 11 #include "GraphicsContext.h"
duncanFrance 12:63db16fea709 12 #include "LinkedList.h"
duncanFrance 12:63db16fea709 13
duncanFrance 12:63db16fea709 14 class Window : public Widget {
duncanFrance 12:63db16fea709 15
duncanFrance 12:63db16fea709 16 public:
duncanFrance 12:63db16fea709 17
duncanFrance 12:63db16fea709 18 Window(GraphicsContext *context);
duncanFrance 12:63db16fea709 19
duncanFrance 12:63db16fea709 20 /**
duncanFrance 12:63db16fea709 21 * We are going to override these Widget methods
duncanFrance 12:63db16fea709 22 **/
duncanFrance 12:63db16fea709 23 virtual void attach(Widget *widget);
duncanFrance 12:63db16fea709 24 virtual void detach(Widget *widget);
duncanFrance 12:63db16fea709 25 virtual void dirtyAll();
duncanFrance 12:63db16fea709 26
duncanFrance 12:63db16fea709 27 protected:
duncanFrance 12:63db16fea709 28
duncanFrance 12:63db16fea709 29 /**
duncanFrance 12:63db16fea709 30 * Override to draw all the children
duncanFrance 12:63db16fea709 31 **/
duncanFrance 12:63db16fea709 32 virtual void _draw();
duncanFrance 12:63db16fea709 33
duncanFrance 12:63db16fea709 34 LinkedList<Widget> _widgets;
duncanFrance 12:63db16fea709 35
duncanFrance 12:63db16fea709 36 void _dirtyIntersected(Widget *w);
duncanFrance 12:63db16fea709 37 };
duncanFrance 12:63db16fea709 38
duncanFrance 12:63db16fea709 39 #endif