Text Box
The GUITextBox class is used to create and manage text box elements in the GUI.

Public Types
Section titled “Public Types”enum Flag
Section titled “enum Flag”enum Flag {    FlagDrawBox = 1 << 3,  // Enables drawing the text box's outline and background.    FlagEditable = 1 << 8  // Allows the contents of the text box to be modified.};Constructors
Section titled “Constructors”GUITextBox
Section titled “GUITextBox”GUITextBox(int x, int y, int width, int maxLength, bool countLengthByBytes);Creates a GUITextBox with specified position, width, maximum length, and length counting method.
- x: The X coordinate of the top-left corner.
- y: The Y coordinate of the top-left corner.
- width: The width of the text box.
- maxLength: The maximum length of the text box content.
- countLengthByBytes: If true, length is counted by bytes; otherwise, by characters.
GUITextBox(int x, int y, int width, const char *text, int maxLength, bool countLengthByBytes);Creates a GUITextBox with specified position, width, initial text, maximum length, and length counting method.
- x: The X coordinate of the top-left corner.
- y: The Y coordinate of the top-left corner.
- width: The width of the text box.
- text: The initial text of the text box.
- maxLength: The maximum length of the text box content.
- countLengthByBytes: If true, length is counted by bytes; otherwise, by characters.
Public Methods
Section titled “Public Methods”const char *GetText()
Section titled “const char *GetText()”const char *GetText();Returns the current text of the text box.
void SetText(const char *text)
Section titled “void SetText(const char *text)”void SetText(const char *text);Sets the text of the text box.
- text: The text to set.
// create a new elementGUITextBox m_textBox = new GUITextBox(        GetLeftX() + 10, GetTopY() + 100, GetRightX() - GetLeftX() - 10,        "Loading...",        100, false    )
// change the textm_label.SetText("Loaded, edit me");m_label.Refresh();
// get the text in the userInput variableuserInput = m_label.GetText();Use in C++ dialog
Section titled “Use in C++ dialog”This component is part of the 👨💻 demo gui that you can look for a complete example.
Text repeater
Section titled “Text repeater”Below is a simple dialog that repeats the input text on a label when clicking the button:
#include <appdef.hpp>#include <sdk/calc/calc.hpp>#include <sdk/os/debug.hpp>#include <sdk/os/gui.hpp>#include <sdk/os/lcd.hpp>#include <sdk/os/mem.hpp>#include <sdk/os/string.hpp>
/* * Fill this section in with some information about your app. * All fields are optional - so if you don't need one, take it out. */APP_NAME("Tutorial textBox app")APP_DESCRIPTION("Testing a textBox")APP_AUTHOR("Demo")APP_VERSION("1.0.0")
class MyDialog : public GUIDialog {public:    MyDialog() : GUIDialog(        GUIDialog::Height55, GUIDialog::AlignTop,        "My Demo Dialog",        GUIDialog::KeyboardStateABC    ), m_label(        GetLeftX() + 10, GetTopY() + 10,        "The text is:"    ), m_button(        GetLeftX() + 10, GetTopY() + 50,        GetRightX() - 10, GetTopY() + 90,        "Set Text", BUTTON_EVENT_ID    ), m_textBox(        GetLeftX() + 10, GetTopY() + 100, GetRightX() - GetLeftX() - 10,        "Enter text here...",        100, false    ) {        AddElement(m_label);        AddElement(m_button);        AddElement(m_textBox);    }
    virtual int OnEvent(struct GUIDialog_Wrapped *dialog, struct GUIDialog_OnEvent_Data *event) {        if (event->GetEventID() == BUTTON_EVENT_ID) {            const char *text = m_textBox.GetText();            char labelText[100];            snprintf(labelText, sizeof(labelText), "The text is: %s", text);            m_label.SetText(labelText);            m_label.Refresh();            Refresh();            return 0;        }        return GUIDialog::OnEvent(dialog, event);    }
private:    const uint16_t BUTTON_EVENT_ID = 1;
    GUILabel m_label;    GUIButton m_button;    GUITextBox m_textBox;};
void main() {    MyDialog dialog;    dialog.ShowDialog();}