Foundation classes for a basic GUI implementing simple widgets and events

Dependents:   TouchScreenGUIDemo

Widgets/TextWidget.cpp

Committer:
duncanFrance
Date:
2016-04-22
Revision:
11:b485561aa112
Parent:
10:e9d13e3a9d4f
Child:
12:63db16fea709

File content as of revision 11:b485561aa112:

#include "TextWidget.h"

/**
* A basic widget implementation which just draws some text.
* If the text does not fit in the bounding-box it will be clipped
**/
TextWidget::TextWidget(GUI* gui) :
    Widget(gui),
    _renderer(gui->fontRenderer()),
    _font(gui->defaultFont())
{
}

TextWidget::TextWidget(GUI* gui, FontRenderer* renderer) :
    Widget(gui),
    _renderer(renderer),
    _font(gui->defaultFont())
{
}

TextWidget::TextWidget(GUI* gui, FontRenderer* renderer, Font* font) :
    Widget(gui),
    _renderer(renderer),
    _font(font)
{
}

void TextWidget::setText(string text)
{
    _text = text;
}

void TextWidget::setFont(Font* font)
{
    _font = font;
}


void TextWidget::_draw()
{
    _renderer->window(_x, _y, _width, _height, false);
    _renderer->setForeground(_fg);
    _renderer->setBackground(_bg);
    _gui->display()->fillrect(_x, _y, _x+_width, _y+_height, _bg);
   
    _renderer->puts(_text.c_str(), _gui->display(), _font);
    _gui->display()->copy_to_lcd();
}

void TextWidget::_clear() {
    _gui->display()->fillrect(_x, _y, _x+_width, _y+_height, _bg);
}