Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: TouchScreenGUIDemo
Widgets/Widget.h
- Committer:
- duncanFrance
- Date:
- 2016-03-25
- Revision:
- 1:48796b602c86
- Parent:
- 0:0a590815d51c
- Child:
- 5:b7ce5721a0b5
File content as of revision 1:48796b602c86:
#ifndef SIMPLEGUI_WIDGET_H
#define SIMPLEGUI_WIDGET_H
#include "EventListener.h"
#include "GraphicsDisplay.h"
/**
* A basic widget draws itself in a rectangular area
**/
class Widget : public EventListener {
    
    public:
    
        Widget(GraphicsDisplay* display) : _display(display), _fg(Black), _bg(White) {}
     
        virtual bool isEventTarget(Event e) {
            return e.screenX >= _x && e.screenX <= (_x+_width) && e.screenY >= _y && e.screenY <= (_y+_height);
        }
       
        virtual void setLocation(int x, int y) {
            _x = x;
            _y = y;
        }
        
        virtual void setSize(int width, int height) {
            _width = width;
            _height = height;
        }
        
        virtual int x() {
            return _x;
        }
        
        virtual int y() {
            return _y;
        }
        
        virtual int height() {
            return _height;
        }
        
        virtual int width() {
            return _width;
        }
        
        virtual void setForeground(uint16_t color) {
            _fg = color;
        }
        
        virtual void setBackground(uint16_t color) {
            _bg = color;
        }
        
        virtual void draw() = 0;
        
        void setHidden(bool hidden) {
            _hidden = hidden;
        }
        
        bool isHidden() {
            return _hidden;
        }
        
    protected:
    
        bool _hidden;
        GraphicsDisplay* _display;
        
        int _x,_y,_width,_height;
        uint16_t _fg, _bg;
        
};
#endif