Foundation classes for a basic GUI implementing simple widgets and events
Dependents: TouchScreenGUIDemo
Widgets/SpinnerWidget.h@18:d849f3ada858, 2016-05-28 (annotated)
- 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?
User | Revision | Line number | New 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 |