Foundation classes for a basic GUI implementing simple widgets and events

Dependents:   TouchScreenGUIDemo

Committer:
duncanFrance
Date:
Sat May 28 14:50:14 2016 +0000
Revision:
18:d849f3ada858
Parent:
17:5184762fda6c
Moved the event queue into the EventDispatcher; Improved event handling across Window/Widget

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duncanFrance 11:b485561aa112 1 #ifndef SIMPLEGUI_SPINNER_WIDGET_H
duncanFrance 11:b485561aa112 2 #define SIMPLEGUI_SPINNER_WIDGET_H
duncanFrance 11:b485561aa112 3
duncanFrance 11:b485561aa112 4 #include "BitmapWidget.h"
duncanFrance 11:b485561aa112 5 #include "TextWidget.h"
duncanFrance 11:b485561aa112 6 #include "ContainerWidget.h"
duncanFrance 11:b485561aa112 7 #include "GUI.h"
duncanFrance 11:b485561aa112 8
duncanFrance 11:b485561aa112 9 /**
duncanFrance 11:b485561aa112 10 * A spinner widget shows up and down arrows to set a value
duncanFrance 13:6714534e7974 11 * It automatically sizes itself to fit the screen dimensions when created
duncanFrance 11:b485561aa112 12 **/
duncanFrance 12:63db16fea709 13 class SpinnerWidget : public ContainerWidget
duncanFrance 12:63db16fea709 14 {
duncanFrance 12:63db16fea709 15
duncanFrance 11:b485561aa112 16 public:
duncanFrance 11:b485561aa112 17
duncanFrance 12:63db16fea709 18 SpinnerWidget(GraphicsContext *context);
duncanFrance 17:5184762fda6c 19
duncanFrance 17:5184762fda6c 20 TextWidget *getTextWidget();
duncanFrance 11:b485561aa112 21
duncanFrance 11:b485561aa112 22 void setMin(float min);
duncanFrance 11:b485561aa112 23 void setMax(float max);
duncanFrance 11:b485561aa112 24 void setIncrement(float increment);
duncanFrance 11:b485561aa112 25 void setValue(float value);
duncanFrance 12:63db16fea709 26 void setFormat(const char* format);
duncanFrance 12:63db16fea709 27
duncanFrance 12:63db16fea709 28 float getMin();
duncanFrance 12:63db16fea709 29 float getMax();
duncanFrance 12:63db16fea709 30 float getIncrement();
duncanFrance 12:63db16fea709 31 float getValue();
duncanFrance 12:63db16fea709 32 const char* getFormat();
duncanFrance 12:63db16fea709 33
duncanFrance 11:b485561aa112 34 template<typename T>
duncanFrance 12:63db16fea709 35 void onChange(T* tptr, void (T::*mptr)(Event e));
duncanFrance 12:63db16fea709 36
duncanFrance 12:63db16fea709 37 // Overrides
duncanFrance 12:63db16fea709 38 virtual void setSize(int width, int height);
duncanFrance 11:b485561aa112 39
duncanFrance 11:b485561aa112 40 protected:
duncanFrance 11:b485561aa112 41
duncanFrance 12:63db16fea709 42 BitmapWidget _upArrow;
duncanFrance 12:63db16fea709 43 TextWidget _text;
duncanFrance 12:63db16fea709 44 BitmapWidget _downArrow;
duncanFrance 11:b485561aa112 45
duncanFrance 12:63db16fea709 46 float _min, _max, _increment, _value;
duncanFrance 12:63db16fea709 47
duncanFrance 12:63db16fea709 48 const char* _format;
duncanFrance 12:63db16fea709 49 char _buf[64];
duncanFrance 11:b485561aa112 50
duncanFrance 12:63db16fea709 51 FunctionPointerArg1<void,Event> _onChange;
duncanFrance 12:63db16fea709 52
duncanFrance 12:63db16fea709 53 virtual void _onUpClick(Event e);
duncanFrance 12:63db16fea709 54 virtual void _onDownClick(Event e);
duncanFrance 12:63db16fea709 55
duncanFrance 12:63db16fea709 56 /**
duncanFrance 12:63db16fea709 57 * Overrides
duncanFrance 12:63db16fea709 58 **/
duncanFrance 12:63db16fea709 59 virtual void _dirty();
duncanFrance 11:b485561aa112 60 };
duncanFrance 11:b485561aa112 61 #endif