#ifndef GRAPHICS_VIEW_HH
#define GRAPHICS_VIEW_HH
namespace graphics
{
class View;
}
#include "Drawable.hh"
#include "Display.hh"
#include "../Types.hh"
namespace graphics
{
/**
* A view is some area of the display that displays something
*/
class View /* : public Drawable */ {
protected:
/**
* The area of the screen that is ours to draw on
*/
PixelArea area;
public:
/**
* Set the initial area that is drawn into
*/
View (const PixelArea &area) :
area(area)
{
}
/**
* Draw into the view area
*/
virtual void draw (Display &display) = 0;
/**
* Update the view area
*/
virtual void resize (const PixelArea &new_area) {
this->area = new_area;
}
/**
* Get current width
*/
PixelDimension getWidth (void) const {
return area.right - area.left;
}
/**
* Get current height
*/
PixelDimension getHeight (void) const {
return area.bottom - area.top;
}
};
}
#endif