gigawidgets 0.3.55
A wxWidgets-style UI library for the Arduino Giga Display Shield.
 
Loading...
Searching...
No Matches
ui::Input Class Reference

An interactive class of Widget for handling text input. More...

#include <input.hpp>

Inheritance diagram for ui::Input:
ui::Panel ui::SingleChildWidget ui::Widget ui::EventHandlers< Widget > ui::CoreEventHandlers< T >

Public Member Functions

 Input (fontsize_t scale, color_t textColor, color_t backgroundColor, const Size &size={0, 0}, radius_t borderRadius=0, const Position &pos={0, 0}, const Alignment &align={ALIGN_LEFT, ALIGN_TOP}, const Padding &padding={0})
 Construct an Input widget with the default font.
 
 Input (const GFXfont &font, color_t textColor, color_t backgroundColor, const Size &size={0, 0}, radius_t borderRadius=0, const Position &pos={0, 0}, const Alignment &align={ALIGN_LEFT, ALIGN_TOP}, const Padding &padding={0})
 Construct an Input widget with a specific font.
 
void setText (const String &text)
 Replace the stored text with a new string.
 
const String & getText () const
 Get the currently stored text.
 
void insert (char c)
 Insert a character at the current cursor position.
 
int getCursor () const
 Get the current cursor position.
 
void setCursor (int index)
 Set the position of the cursor.
 
int nearestCursor (const Coords &coords) const
 Get the nearest cursor position to a given set of screen coordinates.
 
void draw () const override
 Render the widget to the screen.
 
void update (time_t time) override
 Update any internal state of the widget, and check if it needs to be re-rendered.
 
- Public Member Functions inherited from ui::Panel
 Panel (Widget *child, color_t color, const Size &size={0, 0}, radius_t borderRadius=0, const Position &pos={0, 0}, const Alignment &align={ALIGN_LEFT, ALIGN_TOP}, const Padding &padding={0})
 Construct a panel with optional configuration.
 
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.
 
void drawDone () override
 Reset any state variables after rendering has finished.
 
Size size () const override
 Get the size of the widget.
 
void setColor (color_t new_color)
 Set the panel color.
 
color_t getColor () const
 Get the current widget color.
 
void setBorderRadius (radius_t new_radius)
 Set the border radius.
 
- 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.
 
WidgetgetChild () const
 Get the current child widget.
 
virtual void drawBoundingBox (time_t time) const override
 Render the bounding box of this and any child widgets.
 
WidgetgetWidgetById (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.
 
virtual Bounds bounds () const
 Get the rendering bounds of this widget.
 
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
Widgetchild
 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.
 

Detailed Description

An interactive class of Widget for handling text input.

A text field is constructed as a Panel widget that contains a Text widget, plus a little extra rendering to show the cursor.

Constructor & Destructor Documentation

◆ Input() [1/2]

ui::Input::Input ( fontsize_t  scale,
color_t  textColor,
color_t  backgroundColor,
const Size size = {0, 0},
radius_t  borderRadius = 0,
const Position pos = {0, 0},
const Alignment align = {ALIGN_LEFT, ALIGN_TOP},
const Padding padding = {0} 
)

Construct an Input widget with the default font.

Parameters
scaleA scaling factor for the text, e.g. 2x, 3x etc.
textColorThe text color.
backgroundColorThe color of the panel behind the text.
sizeThe minimum size of this widget. It may expand vertically to fit the rendered text.
posThe position of this widget relative to its parent.
borderRadiusThe radius of the rounded corners of the background panel.
alignThe alignment of this widget relative to its parent.
paddingThe padding to apply to the text.

◆ Input() [2/2]

ui::Input::Input ( const GFXfont &  font,
color_t  textColor,
color_t  backgroundColor,
const Size size = {0, 0},
radius_t  borderRadius = 0,
const Position pos = {0, 0},
const Alignment align = {ALIGN_LEFT, ALIGN_TOP},
const Padding padding = {0} 
)

Construct an Input widget with a specific font.

Parameters
fontThe font to use.
textColorThe text color.
backgroundColorThe color of the panel behind the text.
sizeThe minimum size of this widget. It may expand vertically to fit the rendered text.
posThe position of this widget relative to its parent.
borderRadiusThe radius of the rounded corners of the background panel.
alignThe alignment of this widget relative to its parent.
paddingThe padding to apply to the text.

Member Function Documentation

◆ draw()

void ui::Input::draw ( ) const
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.

◆ getCursor()

int ui::Input::getCursor ( ) const

Get the current cursor position.

Returns
The cursor position.

◆ getText()

const String & ui::Input::getText ( ) const

Get the currently stored text.

Returns
The current text.

◆ insert()

void ui::Input::insert ( char  c)

Insert a character at the current cursor position.

Parameters
cThe character to insert.

◆ nearestCursor()

int ui::Input::nearestCursor ( const Coords coords) const

Get the nearest cursor position to a given set of screen coordinates.

Parameters
coordsThe coordinates to check.
Returns
The nearest cursor position.

◆ setCursor()

void ui::Input::setCursor ( int  index)

Set the position of the cursor.

If the given index is outside of the max/min cursor values, it's assigned to the end/beginning of the text, respectively.

Parameters
indexThe new cursor position.

◆ setText()

void ui::Input::setText ( const String &  text)

Replace the stored text with a new string.

Parameters
textThe new text.

◆ update()

void ui::Input::update ( time_t  time)
overridevirtual

Update any internal state of the widget, and check if it needs to be re-rendered.

Parameters
timeThe current time in milliseconds.

Reimplemented from ui::Widget.


The documentation for this class was generated from the following file: