Foundation classes for a basic GUI implementing simple widgets and events

Dependents:   TouchScreenGUIDemo

Committer:
duncanFrance
Date:
Mon Apr 11 19:19:54 2016 +0000
Revision:
10:e9d13e3a9d4f
Parent:
9:616a9686d5db
Child:
11:b485561aa112
Formatting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duncanFrance 0:0a590815d51c 1 #include "TextWidget.h"
duncanFrance 9:616a9686d5db 2 #include "string.h"
duncanFrance 0:0a590815d51c 3
duncanFrance 0:0a590815d51c 4 /**
duncanFrance 0:0a590815d51c 5 * A basic widget implementation which just draws some text.
duncanFrance 0:0a590815d51c 6 * If the text does not fit in the bounding-box it will be clipped
duncanFrance 0:0a590815d51c 7 **/
duncanFrance 8:a460cabc85ac 8 TextWidget::TextWidget(GUI* gui) :
duncanFrance 8:a460cabc85ac 9 Widget(gui),
duncanFrance 8:a460cabc85ac 10 _renderer(gui->fontRenderer()),
duncanFrance 8:a460cabc85ac 11 _font(gui->defaultFont())
duncanFrance 8:a460cabc85ac 12 {
duncanFrance 8:a460cabc85ac 13 }
duncanFrance 8:a460cabc85ac 14
duncanFrance 8:a460cabc85ac 15 TextWidget::TextWidget(GUI* gui, FontRenderer* renderer) :
duncanFrance 8:a460cabc85ac 16 Widget(gui),
duncanFrance 8:a460cabc85ac 17 _renderer(renderer),
duncanFrance 8:a460cabc85ac 18 _font(gui->defaultFont())
duncanFrance 8:a460cabc85ac 19 {
duncanFrance 8:a460cabc85ac 20 }
duncanFrance 8:a460cabc85ac 21
duncanFrance 8:a460cabc85ac 22 TextWidget::TextWidget(GUI* gui, FontRenderer* renderer, Font* font) :
duncanFrance 8:a460cabc85ac 23 Widget(gui),
duncanFrance 8:a460cabc85ac 24 _renderer(renderer),
duncanFrance 8:a460cabc85ac 25 _font(font)
duncanFrance 7:303850a4b30c 26 {
duncanFrance 7:303850a4b30c 27 }
duncanFrance 0:0a590815d51c 28
duncanFrance 1:48796b602c86 29 void TextWidget::setText(char* text)
duncanFrance 1:48796b602c86 30 {
duncanFrance 9:616a9686d5db 31 _text = text; //strncpy(_text, text, strlen(text));
duncanFrance 0:0a590815d51c 32 }
duncanFrance 0:0a590815d51c 33
duncanFrance 2:bb9183379488 34 void TextWidget::setFont(Font* font)
duncanFrance 1:48796b602c86 35 {
duncanFrance 2:bb9183379488 36 _font = font;
duncanFrance 0:0a590815d51c 37 }
duncanFrance 0:0a590815d51c 38
duncanFrance 3:cb004f59b715 39
duncanFrance 8:a460cabc85ac 40 void TextWidget::_draw()
duncanFrance 3:cb004f59b715 41 {
duncanFrance 7:303850a4b30c 42 _renderer->window(_x, _y, _width, _height, false);
duncanFrance 7:303850a4b30c 43 _renderer->setForeground(_fg);
duncanFrance 7:303850a4b30c 44 _renderer->setBackground(_bg);
duncanFrance 9:616a9686d5db 45 _gui->display()->fillrect(_x, _y, _x+_width, _y+_height, _bg);
duncanFrance 8:a460cabc85ac 46
duncanFrance 9:616a9686d5db 47 _renderer->puts(_text, _gui->display(), _font);
duncanFrance 8:a460cabc85ac 48 _gui->display()->copy_to_lcd();
duncanFrance 3:cb004f59b715 49 }
duncanFrance 8:a460cabc85ac 50
duncanFrance 8:a460cabc85ac 51 void TextWidget::_clear() {
duncanFrance 8:a460cabc85ac 52 _gui->display()->fillrect(_x, _y, _x+_width, _y+_height, _bg);
duncanFrance 8:a460cabc85ac 53 }