Foundation classes for a basic GUI implementing simple widgets and events
Dependents: TouchScreenGUIDemo
Widgets/TextWidget.cpp@10:e9d13e3a9d4f, 2016-04-11 (annotated)
- 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?
User | Revision | Line number | New 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 | } |