el h / SimpleGUI

Fork of SimpleGUI by Duncan McIntyre

Widgets/Widget.h

Committer:
duncanFrance
Date:
2016-03-25
Revision:
0:0a590815d51c
Child:
1:48796b602c86

File content as of revision 0:0a590815d51c:

#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);
       
        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 setBackgroun(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