The root widget of a UI. More...
#include <body.hpp>
Public Member Functions | |
| Body (Widget *child, color_t backgroundColor=COLOR_BLACK, const Padding &padding={0}) | |
| Construct the body with an optional color and padding for the child widget. | |
| void | draw () const override |
| Render the widget to the screen. | |
| Size | size () const override |
| Get the size of the widget. | |
| Bounds | bounds () const override |
| Get the rendering bounds of this widget. | |
| void | setColor (color_t new_color) |
| Set the background color. | |
Public Member Functions inherited from ui::SingleChildWidget | |
| SingleChildWidget (Widget *child, const Position &pos={0, 0}, const Alignment &align={ALIGN_LEFT, ALIGN_TOP}, const Padding &padding={0}) | |
| Constructor. | |
| ~SingleChildWidget () override | |
| Destructor. | |
| Size | size () const override |
| Get the size of the widget. | |
| void | update (time_t time_ms) override |
| Update any internal state of the widget, and check if it needs to be re-rendered. | |
| void | render (bool force) const override |
| Recursively render this widget and any child widgets that need it. | |
| void | drawDone () override |
| Reset any state variables after rendering has finished. | |
| void | setChild (Widget *const child) |
| Set the child widget. | |
| bool | handleEvent (Event &event) override |
| Handle events from the touchscreen. | |
| Widget * | getChild () const |
| Get the current child widget. | |
| virtual void | drawBoundingBox (time_t time) const override |
| Render the bounding box of this and any child widgets. | |
| Widget * | getWidgetById (id_t id) noexcept override |
| Get the first widget (this or any children) that has the given ID. | |
Public Member Functions inherited from ui::Widget | |
| Widget (const Position &pos={0, 0}, const Alignment &align={ALIGN_LEFT, ALIGN_TOP}, const Padding &padding={0}) | |
| The default widget constructor. | |
| virtual | ~Widget () |
| The default widget destructor. | |
| void | setPosition (const Position &pos) |
| Set the position of this widget. | |
| Position | getPosition () const |
| Get the position of this widget. | |
| void | setAlign (const Alignment &align) |
| Set the alignment of this widget. | |
| void | requestRedraw () |
| Tell this widget that it needs to be re-rendered. | |
| void | requestParentRedraw () |
| Tell the parent widget that it needs to be re-rendered. | |
| bool | needsRedraw () const |
| Check if this widget has requested to be redrawn. | |
| void | setParent (Widget *parent) |
| Set the parent widget. | |
| Bounds | parentBounds () const |
| Get the bounds of the parent widget, if any. | |
| void | onpress (std::function< void(Widget &, const Event &)> callback) override |
| Register a touchscreen event handler that triggers on press. | |
| void | onblur (std::function< void(Widget &, const Event &)> callback) override |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onhold (std::function< void(Widget &, const Event &, time_t)> callback) override |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onrelease (std::function< void(Widget &, const Event &)> callback) override |
| Register a touchscreen event handler that triggers on release. | |
| void | click () |
| Manually trigger the onrelease event handler. | |
| void | press () |
| Manually trigger the onpress event handler. | |
| void | blur () |
| Manually trigger the onblur event handler. | |
| void | release () |
| Manually trigger the onrelease event handler. | |
| void | hold (time_t time) |
| Manually trigger the onhold event handler. | |
Public Member Functions inherited from ui::EventHandlers< Widget > | |
| void | onpress (std::function< void(Widget &)> callback) |
| Register a touchscreen event handler that triggers on press. | |
| void | onpress (std::function< void(const Event &)> callback) |
| Register a touchscreen event handler that triggers on press. | |
| void | onpress (std::function< void()> callback) |
| Register a touchscreen event handler that triggers on press. | |
| void | onrelease (std::function< void(Widget &)> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onrelease (std::function< void(const Event &)> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onrelease (std::function< void()> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onblur (std::function< void(Widget &)> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onblur (std::function< void(const Event &)> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onblur (std::function< void()> callback) |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| void | onhold (std::function< void(Widget &, time_t)> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onhold (std::function< void(const Event &, time_t)> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onhold (std::function< void(time_t)> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onhold (std::function< void(Widget &)> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onhold (std::function< void(const Event &)> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onhold (std::function< void()> callback) |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onclick (std::function< void(Widget &)> callback) |
| Register a touchscreen event handler that triggers on release. | |
| void | onclick (std::function< void(const Event &)> callback) |
| Register a touchscreen event handler that triggers on release. | |
| void | onclick (std::function< void()> callback) |
| Register a touchscreen event handler that triggers on release. | |
Public Member Functions inherited from ui::CoreEventHandlers< T > | |
| virtual void | onpress (std::function< void(T &, const Event &)> callback)=0 |
| Register a touchscreen event handler that triggers on press. | |
| virtual void | onrelease (std::function< void(T &, const Event &)> callback)=0 |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| virtual void | onblur (std::function< void(T &, const Event &)> callback)=0 |
| Register a touchscreen event handler that triggers when the widget stops being pressed. | |
| virtual void | onhold (std::function< void(T &, const Event &, time_t)> callback)=0 |
| Register a touchscreen event handler that repeatedly triggers when the widget is held for a while. | |
| void | onclick (std::function< void(T &, const Event &)> callback) |
| Register a touchscreen event handler that triggers on release. | |
Additional Inherited Members | |
Public Attributes inherited from ui::Widget | |
| id_t | id |
| An optional (usually unique) identifier that can be used to search for this widget. | |
Protected Attributes inherited from ui::SingleChildWidget | |
| Widget * | child |
| The child widget. | |
Protected Attributes inherited from ui::Widget | |
| Padding | padding |
| The padding that will be applied to any child widgets. | |
| bool | redrawSelf |
| If true, force a redraw of this widget and any child widgets. | |
The root widget of a UI.
This widget renders a single-color background onto the screen. To avoid odd rendering artifacts, it should always be used as the root widget.
| ui::Body::Body | ( | Widget * | child, |
| color_t | backgroundColor = COLOR_BLACK, |
||
| const Padding & | padding = {0} |
||
| ) |
Construct the body with an optional color and padding for the child widget.
| child | The child widget. |
| backgroundColor | The color to fill the screen with. |
| padding | The padding to apply to the child widget. |
|
overridevirtual |
Get the rendering bounds of this widget.
Reimplemented from ui::Widget.
|
overridevirtual |
Render the widget to the screen.
This only gets called when widgets indicate that a redraw is needed of either themselves or their parents. Widgets that implement this method should only render graphics specific to this widget, not any children.
Implements ui::Widget.
| void ui::Body::setColor | ( | color_t | new_color | ) |
Set the background color.
| new_color | The new background color. |
|
overridevirtual |
Get the size of the widget.
Implements ui::Widget.