Foundation classes for a basic GUI implementing simple widgets and events
Dependents: TouchScreenGUIDemo
Widgets/TextWidget.cpp@13:6714534e7974, 2016-05-21 (annotated)
- Committer:
- duncanFrance
- Date:
- Sat May 21 14:40:09 2016 +0000
- Revision:
- 13:6714534e7974
- Parent:
- 12:63db16fea709
- Child:
- 16:e9a771ecfdbe
Cleaned up SpinnerWidget; Started on SpinnerDialog - will extract Dialog later
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
duncanFrance | 0:0a590815d51c | 1 | #include "TextWidget.h" |
duncanFrance | 0:0a590815d51c | 2 | |
duncanFrance | 0:0a590815d51c | 3 | /** |
duncanFrance | 0:0a590815d51c | 4 | * A basic widget implementation which just draws some text. |
duncanFrance | 0:0a590815d51c | 5 | * If the text does not fit in the bounding-box it will be clipped |
duncanFrance | 0:0a590815d51c | 6 | **/ |
duncanFrance | 12:63db16fea709 | 7 | TextWidget::TextWidget(GraphicsContext *context) : |
duncanFrance | 12:63db16fea709 | 8 | Widget(context), |
duncanFrance | 12:63db16fea709 | 9 | _renderer(context->fontRenderer()), |
duncanFrance | 12:63db16fea709 | 10 | _font(context->defaultFont()) |
duncanFrance | 8:a460cabc85ac | 11 | { |
duncanFrance | 8:a460cabc85ac | 12 | } |
duncanFrance | 8:a460cabc85ac | 13 | |
duncanFrance | 12:63db16fea709 | 14 | TextWidget::TextWidget(GraphicsContext *context, FontRenderer* renderer) : |
duncanFrance | 12:63db16fea709 | 15 | Widget(context), |
duncanFrance | 8:a460cabc85ac | 16 | _renderer(renderer), |
duncanFrance | 12:63db16fea709 | 17 | _font(context->defaultFont()) |
duncanFrance | 8:a460cabc85ac | 18 | { |
duncanFrance | 8:a460cabc85ac | 19 | } |
duncanFrance | 8:a460cabc85ac | 20 | |
duncanFrance | 12:63db16fea709 | 21 | TextWidget::TextWidget(GraphicsContext *context, FontRenderer* renderer, Font* font) : |
duncanFrance | 12:63db16fea709 | 22 | Widget(context), |
duncanFrance | 8:a460cabc85ac | 23 | _renderer(renderer), |
duncanFrance | 8:a460cabc85ac | 24 | _font(font) |
duncanFrance | 7:303850a4b30c | 25 | { |
duncanFrance | 7:303850a4b30c | 26 | } |
duncanFrance | 0:0a590815d51c | 27 | |
duncanFrance | 12:63db16fea709 | 28 | void TextWidget::setText(char* text) |
duncanFrance | 1:48796b602c86 | 29 | { |
duncanFrance | 11:b485561aa112 | 30 | _text = text; |
duncanFrance | 12:63db16fea709 | 31 | dirty(); |
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 | 12:63db16fea709 | 37 | dirty(); |
duncanFrance | 0:0a590815d51c | 38 | } |
duncanFrance | 0:0a590815d51c | 39 | |
duncanFrance | 3:cb004f59b715 | 40 | |
duncanFrance | 8:a460cabc85ac | 41 | void TextWidget::_draw() |
duncanFrance | 3:cb004f59b715 | 42 | { |
duncanFrance | 12:63db16fea709 | 43 | Widget::_draw(); |
duncanFrance | 12:63db16fea709 | 44 | |
duncanFrance | 13:6714534e7974 | 45 | pc->printf("border (%i,%i) , (%i,%i)\n", _inner.x, _inner.y, _inner.x+_inner.width, _inner.y+_inner.height); |
duncanFrance | 13:6714534e7974 | 46 | |
duncanFrance | 12:63db16fea709 | 47 | _renderer->window(_inner.x, _inner.y, _inner.width, _inner.height, false); |
duncanFrance | 7:303850a4b30c | 48 | _renderer->setForeground(_fg); |
duncanFrance | 7:303850a4b30c | 49 | _renderer->setBackground(_bg); |
duncanFrance | 12:63db16fea709 | 50 | display()->fillrect(_inner.x, _inner.y, _inner.x+_inner.width, _inner.y+_inner.height, _bg); |
duncanFrance | 8:a460cabc85ac | 51 | |
duncanFrance | 12:63db16fea709 | 52 | _renderer->puts(_text, display(), _font); |
duncanFrance | 12:63db16fea709 | 53 | display()->copy_to_lcd(); |
duncanFrance | 8:a460cabc85ac | 54 | } |