Foundation classes for a basic GUI implementing simple widgets and events
Dependents: TouchScreenGUIDemo
Widgets/Widget.h@5:b7ce5721a0b5, 2016-03-28 (annotated)
- Committer:
- duncanFrance
- Date:
- Mon Mar 28 10:47:39 2016 +0000
- Revision:
- 5:b7ce5721a0b5
- Parent:
- 1:48796b602c86
- Child:
- 7:303850a4b30c
Added BitmapWidget
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
duncanFrance | 0:0a590815d51c | 1 | #ifndef SIMPLEGUI_WIDGET_H |
duncanFrance | 0:0a590815d51c | 2 | #define SIMPLEGUI_WIDGET_H |
duncanFrance | 0:0a590815d51c | 3 | |
duncanFrance | 0:0a590815d51c | 4 | #include "EventListener.h" |
duncanFrance | 0:0a590815d51c | 5 | #include "GraphicsDisplay.h" |
duncanFrance | 0:0a590815d51c | 6 | |
duncanFrance | 0:0a590815d51c | 7 | /** |
duncanFrance | 0:0a590815d51c | 8 | * A basic widget draws itself in a rectangular area |
duncanFrance | 0:0a590815d51c | 9 | **/ |
duncanFrance | 0:0a590815d51c | 10 | |
duncanFrance | 0:0a590815d51c | 11 | class Widget : public EventListener { |
duncanFrance | 0:0a590815d51c | 12 | |
duncanFrance | 0:0a590815d51c | 13 | public: |
duncanFrance | 0:0a590815d51c | 14 | |
duncanFrance | 5:b7ce5721a0b5 | 15 | Widget(GraphicsDisplay* display) : _display(display), _fg(Black), _bg(White), _x(0), _y(0), _width(0), _height(0) {} |
duncanFrance | 0:0a590815d51c | 16 | |
duncanFrance | 1:48796b602c86 | 17 | virtual bool isEventTarget(Event e) { |
duncanFrance | 1:48796b602c86 | 18 | return e.screenX >= _x && e.screenX <= (_x+_width) && e.screenY >= _y && e.screenY <= (_y+_height); |
duncanFrance | 1:48796b602c86 | 19 | } |
duncanFrance | 0:0a590815d51c | 20 | |
duncanFrance | 0:0a590815d51c | 21 | virtual void setLocation(int x, int y) { |
duncanFrance | 0:0a590815d51c | 22 | _x = x; |
duncanFrance | 0:0a590815d51c | 23 | _y = y; |
duncanFrance | 0:0a590815d51c | 24 | } |
duncanFrance | 0:0a590815d51c | 25 | |
duncanFrance | 0:0a590815d51c | 26 | virtual void setSize(int width, int height) { |
duncanFrance | 0:0a590815d51c | 27 | _width = width; |
duncanFrance | 0:0a590815d51c | 28 | _height = height; |
duncanFrance | 0:0a590815d51c | 29 | } |
duncanFrance | 0:0a590815d51c | 30 | |
duncanFrance | 0:0a590815d51c | 31 | virtual int x() { |
duncanFrance | 0:0a590815d51c | 32 | return _x; |
duncanFrance | 0:0a590815d51c | 33 | } |
duncanFrance | 0:0a590815d51c | 34 | |
duncanFrance | 0:0a590815d51c | 35 | virtual int y() { |
duncanFrance | 0:0a590815d51c | 36 | return _y; |
duncanFrance | 0:0a590815d51c | 37 | } |
duncanFrance | 0:0a590815d51c | 38 | |
duncanFrance | 0:0a590815d51c | 39 | virtual int height() { |
duncanFrance | 0:0a590815d51c | 40 | return _height; |
duncanFrance | 0:0a590815d51c | 41 | } |
duncanFrance | 0:0a590815d51c | 42 | |
duncanFrance | 0:0a590815d51c | 43 | virtual int width() { |
duncanFrance | 0:0a590815d51c | 44 | return _width; |
duncanFrance | 0:0a590815d51c | 45 | } |
duncanFrance | 0:0a590815d51c | 46 | |
duncanFrance | 0:0a590815d51c | 47 | virtual void setForeground(uint16_t color) { |
duncanFrance | 0:0a590815d51c | 48 | _fg = color; |
duncanFrance | 0:0a590815d51c | 49 | } |
duncanFrance | 0:0a590815d51c | 50 | |
duncanFrance | 1:48796b602c86 | 51 | virtual void setBackground(uint16_t color) { |
duncanFrance | 0:0a590815d51c | 52 | _bg = color; |
duncanFrance | 0:0a590815d51c | 53 | } |
duncanFrance | 0:0a590815d51c | 54 | |
duncanFrance | 0:0a590815d51c | 55 | virtual void draw() = 0; |
duncanFrance | 0:0a590815d51c | 56 | |
duncanFrance | 0:0a590815d51c | 57 | void setHidden(bool hidden) { |
duncanFrance | 0:0a590815d51c | 58 | _hidden = hidden; |
duncanFrance | 0:0a590815d51c | 59 | } |
duncanFrance | 0:0a590815d51c | 60 | |
duncanFrance | 0:0a590815d51c | 61 | bool isHidden() { |
duncanFrance | 0:0a590815d51c | 62 | return _hidden; |
duncanFrance | 0:0a590815d51c | 63 | } |
duncanFrance | 0:0a590815d51c | 64 | |
duncanFrance | 0:0a590815d51c | 65 | protected: |
duncanFrance | 0:0a590815d51c | 66 | |
duncanFrance | 5:b7ce5721a0b5 | 67 | GraphicsDisplay* _display; |
duncanFrance | 5:b7ce5721a0b5 | 68 | uint16_t _fg, _bg; |
duncanFrance | 5:b7ce5721a0b5 | 69 | int _x,_y,_width,_height; |
duncanFrance | 0:0a590815d51c | 70 | bool _hidden; |
duncanFrance | 0:0a590815d51c | 71 | |
duncanFrance | 0:0a590815d51c | 72 | }; |
duncanFrance | 0:0a590815d51c | 73 | |
duncanFrance | 0:0a590815d51c | 74 | #endif |