Display a single widget within arbitrary bounds. More...
#include <box.hpp>
Public Member Functions | |
| Box (Widget *child, const Bounds &bounds) | |
| Construct a Box from a child and Bounds to restrict the child to. | |
| Bounds | bounds () const override |
| Get the rendering bounds of this widget. | |
| void | setBounds (const Bounds &bounds) |
| Set the bounds for the child widget. | |
| void | draw () const override |
| Render the widget to the screen. | |
| void | update (time_t time_ms) override |
| Update any internal state of the widget, and check if it needs to be re-rendered. | |
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. | |
Display a single widget within arbitrary bounds.
Normally, the parent widget will specify the bounds as a way to organize multiple widgets on the screen.
|
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::Box::setBounds | ( | const Bounds & | bounds | ) |
Set the bounds for the child widget.
| bounds | The new bounds. |
|
overridevirtual |
Update any internal state of the widget, and check if it needs to be re-rendered.
| time | The current time in milliseconds. |
Reimplemented from ui::Widget.