ExternalTextboxValue

Beschreibung

ExternalTextboxValue ermöglicht eine externe Steuerung von Textbox Objekten.

Funktionen

void

setItem (Item* item)

~ExternalTextboxValue ()

Item*

getItem () const

const char*

getValue () const

const „Color&

getColor () const

uint8_t

getSize () const

bool

hasValue () const

bool

hasupdate () const

void

resetUpdate ()

void

draw (const uint8_t x, const uint8_t y, Display* disp) const

void

setItem (char* itemStr)

void

setItem (char* itemStr, const Color& color)

void

setItem (Item* _item)

void

setValue (const char* _value)

void

delValue ()

void

setColor (const Color& _color)

void

setup (const uint8_t _sizeX, const uint8_t _sizeY)

void

setup (const uint8_t _textsize)

ExternalTextboxValue&

operator+= (const char* str)

Variablen und Konstanten

Item*

item = nullptr

std::string

value = „

bool

update = false

bool

isValueSet = false

uint8_t

sizeX = 1

uint8_t

sizeY = 1

uint8_t

textSize = 0

Color

color = Color(0,0,0)

Funktionen Beschreibung

void setItem (Item* item)

1    void setitem (Item* item) {
2        delete item;
3        item = item;
4    }

Diese Funktion löscht das item des Objektes und ersetzt es mit dem Wert des Parameters item. Anders als bei dieser setItem Funktion, wird update nicht angepasst.

~ExternalTextboxValue()

1    ~ExternalTextboxValue() {
2        delete item;
3        item = nullptr;
4    }

Dieser Destruktor löscht item und gibt den allokierten Speicherplatz frei.

Item* getItem () const

1    Item* getItem () const { return item; }

Gibt item aus.

const char* getValue ()

1    const char*  getValue () const { return value.c_str(); }

Gibt value aus.

const Color& getColor ()

1    const Color&  getColor () const { return color; }

Gibt color aus.

uint8_t getSize() const

1    uint8_t getSize() const { return textsize; }

Gibt textSize aus.

bool hasValue () const

1    bool  hasValue () const { return (item != nullptr || isValueSet); }

Gibt true zurück, falls item einen gültigen Wert besitzt oder wenn isValueSet gilt. Gibt false zurück, wenn keines von beiden der Fall ist, da item entweder der nullptr ist oder kein Wert gesetzt wurde.

bool hasUpdate () const

1    bool  hasUpdate () const { return update; }

Prüft, ob es offene Änderungen gibt (update) oder nicht.

void resetUpdate ()

1    void  resetUpdate () { update = false; }

Setzt update zurück, wenn keine offenen Änderungen bestehen.

void draw (const uint8_t x, const uint8_t y, Display* disp) const

1    void draw (const uint8_t x, const uint8_t y, Display* disp) const {
2        LOGGER(value.c_str())
3        if (item) item->draw(x, y, disp);
4        else if (isValueSet && textsize == 0) Text(value, sizeX, sizeY).draw(x, y, disp);
5        else if (isValueSet) Text(value, textsize).draw(x, y, disp);
6    }

Zeichnet item und/oder value auf das Display disp. Die Parameter x und y repräsentieren X- und Y- Koordinaten auf dem Display.

        if (item) item->draw(x, y, disp);

Falls ein item existiert, wird dieses mittels draw Funktion auf disp an den angegebenen Koordinaten gezeichnet.

        else if (isValueSet && textsize == 0) Text(value, sizeX, sizeY).draw(x, y, disp);

Sollte isValueSet true sein und textSize == 0 sein, so wird mit dem Text Konstruktor ein Text Objekt erschaffen, dessen Textgröße durch sizeX und sizeY bestimmt wird. Dieses wird mit draw auf dem disp gezeichnet.

        else if (isValueSet) Text(value, textsize).draw(x, y, disp);

Wurde hingegen eine textSize != 0 angegeben, so wird diese beim Aufruf des Text Konstruktor genutzt, um ein Text Objekt zu erschaffen, welches mit draw auf dem disp gezeichnet.

void setItem (char* itemStr)

1    void setItem (char* itemStr) { setItem(Display::createItem(itemStr)); }

Diese Funktion ruft die createItem Funktion auf, um aus dem als Parameter angegebenen itemStr ein Item Objekt zu erschaffen. Dieses Item wird beim Aufruf von setItem als Argument verwendet.

void setItem (char* itemStr, const Color& color)

1    void setItem (char* itemStr, const Color& color) { setItem(Display::createItem(itemStr, color)); }

Diese Funktion ruft die createItem Funktion auf, um aus dem als Parameter angegebenen itemStr ein Item Objekt in einer festgelegten Farbe color zu erschaffen. Dieses Item wird beim Aufruf von setItem als Argument verwendet.

void setItem (Item* _item)

1    void setItem (Item* _item) {
2        delete item;
3        item = _item;
4        update = true;
5    }

Diese Funktion löscht das item des Objektes und ersetzt es mit dem Wert des Parameters item. Anders als bei dieser setItem Funktion, wird update angepasst und auf true gesetzt, um zu vermerken, dass Änderungen vorliegen.

void setValue (const char* _value)

1    void setValue (const char* _value) { 
2        value = _value; 
3        isValueSet = true; 
4        delete item;
5        item = nullptr; 
6        update = true;
7    }

Diese Funktion ersetzt value mit dem Wert des Parameters value, wodurch isValueSet auf true gesetzt wird. Außerdem wird das item gelöscht und der Pointer auf den nullptr gerichtet, da wir nun ein neues value haben, welches nicht mehr mit dem alten item zusammenhängt. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen.

void delValue ()

1    void delValue () { 
2        value = ""; 
3        isValueSet = false;
4        update = true;
5    }

Diese Funktion löscht den Wert des value und ersetzt ihn mit einem leeren String, wodurch isValueSet auf false gesetzt wird. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen.

void setColor (const Color& _color)

1    void setColor (const Color& _color) { 
2        color = _color;
3        update = true;
4    }

Diese Funktion ersetzt color mit dem Wert des Parameters color. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen.

void setup(const uint8_t _sizeX, const uint8_t _sizeY)

1    void setup(const uint8_t _sizeX, const uint8_t _sizeY) {
2        sizeX = _sizeX;
3        sizeY = _sizeY;
4        textsize = 0;
5        update = true;
6    }

Diese Funktion ersetzt sizeX und sizeY mit dem Wert der Parameter _sizeX bzw. _sizeY und setzt die textSize auf 0. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen. Diese setup Funktion wird also verwendet, damit die textsize in der draw Funktion automatisch ermittelt wird.

void setup(const uint8_t _textsize)

1    void setup(const uint8_t _textsize) {
2        sizeX = 0;
3        sizeY = 0;
4        textsize = _textsize;
5        update = true;
6    }

Diese Funktion setzt:ref:sizeX<externaltextboxvaluevsizex> und sizeY auf 0 und ersetzt die textSize mit dem Wert des Parameters _textsize. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen. Diese setup Funktion wird also verwendet, damit die textsize in der draw Funktion nicht automatisch ermittelt wird.

ExternalTextboxValue& operator+=(const char* str)

1    ExternalTextboxValue& operator+=(const char* str) {
2        value += str;
3        update = true;
4        return *this;
5    }

Dieser Überladungsoperator wird genutzt, um str value anzuzufügen. Außerdem wird update auf true gesetzt, um zu vermerken, dass Änderungen vorliegen.

Variablen und Konstanten Beschreibung

Item* item = nullptr

Gibt das Item an, welches angezeigt werden soll.

std::string value = „“

Gibt den Textinhalt an, welcher angezeigt werden soll.

bool update = false

Gibt an, ob Änderungen vorliegen, die noch nicht gezeichnet werden (update = true) oder ob der auf dem Bildschirm ausgegebene Inhalt aktuell ist (update = false). Standardmäßig gibt es keine nicht gezeichneten Änderungen.

bool isValueSet = false

Gibt an, ob ein value angegeben ist (isValueSet = true) oder nicht (isValueSet = false). Standardmäßig ist value ein leerer String "", weswegen isValueSet = false gilt.

uint8_t sizeX = 1

Gibt an, wie breit anzuzeigender Text sein soll. Standardmäßig gilt sizeX = 1, da dies die kleinstmögliche Breite ist.

uint8_t sizeY = 1

Gibt an, wie hoch anzuzeigender Text sein soll. Standardmäßig gilt sizeY = 1, da dies die kleinstmögliche Höhe ist.

uint8_t textsize = 0

Gibt die Textgröße des anzuzeigenden Textes an. Alternativ kann die Textgröße aus sizeX und sizeY bestimmt werden.

Color color = Color(0,0,0)

Gibt die Farbe Color des item an.