Button_Blank¶
Beschreibung¶
Dieses Element ist ein Button. Anders als die anderen Ausprägungen, wird mit Button_Blank ein Objekt erzeugt,
dass keine Farbe hat (also sowohl keine Umrandungsfarbe, als auch keine Füllfarbe). Daher eignet sich diese Klasse besonders gut, um Items
auf dem Bildschirm anzuzeigen, die sich wie Buttons/ Switches verhalten sollen. So wäre es z.B. möglich, komplett eigens gestaltete Buttons/ Switches zu erstellen.
(Unterschied zwischen Button und Switch siehe Button)
Beispielbild¶
Dieses Bild dient nur der Veranschaulichung, wie Objekte dieser Klasse aussehen können.
new Button_Blank("icon:slider", COLOR_BLUE, TML_empty_button)
Funktionen¶
Button_Blank (const char* item, const Color& color, const std::function<void()> button_callback, ExternalButtonValue* const value=nullptr) |
|
Button_Blank (const char* item, const Color& color, const std::function<void()> button_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value=nullptr) |
|
Button_Blank (const char* item, const Color& color, const std::function<void(bool)> switch_callback, ExternalButtonValue* const value=nullptr) |
|
Button_Blank (const char* item, const Color& color, const std::function<void(bool)> switch_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value=nullptr) |
|
bool |
checkSize () override |
void |
draw () override |
void |
loop (Inputs& input) override |
Variablen und Konstanten¶
Funktionen Beschreibung¶
Button_Blank(const char* item, const Color& color, const std::function<void()> button_callback, ExternalButtonValue* const value=nullptr)¶
1Button_Blank::Button_Blank(const char* itemStr, const Color& color, const std::function<void()> button_callback, ExternalButtonValue* const value):
2 Button(button_callback, nullptr),
3 item(Display::createItem(itemStr, color)) {
4 // hasButtonAnimation = false;
5 }
Diese Funktion ist ein Konstruktor, der einen leeren Button (keinen Switch) erzeugt. Als Parameter nimmt der Konstruktor den Namen eines Items (item), die Farbe des Items (color),
eine Button Callback Funktion (button_callback) (siehe button_callback), sowie dem ExternalButtonValue* value, der angibt, ob der Button aktiviert ist oder nicht.
In der Initialisierungsliste wird der Button Konstruktor aufgerufen, sowie mittels createItem das item initialisiert.
Dort wird auch beschrieben, wie die Eingabe des char* item aussehen soll.
Button_Blank(const char* item, const Color& color, const std::function<void()> button_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value=nullptr)¶
1Button_Blank::Button_Blank(const char* itemStr, const Color& color, const std::function<void()> button_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value):
2 Button(button_callback, longpress_callback, value),
3 item(Display::createItem(itemStr, color)) {
4 // hasButtonAnimation = false;
5 }
Diese Funktion ist ein Konstruktor, der einen leeren Button (keinen Switch) erzeugt. Als Parameter nimmt der Konstruktor den Namen eines Items (item), die Farbe des Items (color),
eine Button Callback Funktion (button_callback) (siehe button_callback), eine Longpress Callback Funktion (longpress_callback) (siehe longpress_callback)
sowie dem ExternalButtonValue* value, der angibt, ob der Button aktiviert ist oder nicht.
In der Initialisierungsliste wird der Button Konstruktor aufgerufen, sowie mittels createItem das item initialisiert.
Dort wird auch beschrieben, wie die Eingabe des char* item aussehen soll.
Button_Blank(const char* item, const Color& color, const std::function<void(bool)> switch_callback, ExternalButtonValue* const value=nullptr)¶
1Button_Blank::Button_Blank(const char* itemStr, const Color& color, const std::function<void(bool)> switch_callback, ExternalButtonValue* const value):
2 Button(switch_callback, value),
3 item(Display::createItem(itemStr, color)) {
4 // hasButtonAnimation = false;
5 }
Diese Funktion ist ein Konstruktor, der einen leeren Switch (keinen Button) erzeugt. Als Parameter nimmt der Konstruktor den Namen eines Items (item), die Farbe des Items (color),
eine Switch Callback Funktion (switch_callback) (siehe switch_callback), sowie dem ExternalButtonValue* value, der angibt, ob der Button aktiviert ist oder nicht.
In der Initialisierungsliste wird der Button Konstruktor aufgerufen, sowie mittels createItem das item initialisiert.
Dort wird auch beschrieben, wie die Eingabe des char* item aussehen soll.
Button_Blank(const char* item, const Color& color, const std::function<void(bool)> switch_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value=nullptr)¶
1Button_Blank::Button_Blank(const char* itemStr, const Color& color, const std::function<void(bool)> switch_callback, const std::function<void()> longpress_callback, ExternalButtonValue* const value):
2 Button(switch_callback, longpress_callback, value),
3 item(Display::createItem(itemStr, color)) {
4 // hasButtonAnimation = false;
5 }
Diese Funktion ist ein Konstruktor, der einen leeren Switch (keinen Button) erzeugt. Als Parameter nimmt der Konstruktor den Namen eines Items (item), die Farbe des Items (color),
eine Switch Callback Funktion (switch_callback) (siehe switch_callback), eine Longpress Callback Funktion (longpress_callback) (siehe longpress_callback)
sowie dem ExternalButtonValue* value, der angibt, ob der Button aktiviert ist oder nicht.
In der Initialisierungsliste wird der Button Konstruktor aufgerufen, sowie mittels createItem das item initialisiert.
Dort wird auch beschrieben, wie die Eingabe des char* item aussehen soll.
~Button_Blank()¶
1Button_Blank::~Button_Blank () {
2 delete item;
3}
Dieser Destruktor löscht das item Objekt und gibt den allokierten Speicherplatz wieder frei.
bool checkSize(uint16_t sizeX, uint16_t sizeY, uint8_t rotation) override¶
1bool Button_Blank::checkSize(uint16_t sizeX, uint16_t sizeY, uint8_t rotation) {
2 item->setResolution(sizeX, sizeY);
3 return sizeX > item->getWith() && sizeY > item->getHeight();
4}
Diese Funktion überprüft, ob Objekte der Button_Blank Klasse zeichenbar sind, oder ob sie zu groß bzw. zu klein sind, um sie anzuzeigen.
Die Parameter der Funktion sind die Höhe (sizeY) und Breite des Objektes (sizeX).
Dafür wird die setResolution des item aufgerufen, um zu bestimmen, wie groß item auf dem Button angezeigt werden wird.
Anschließend wird überprüft, ob item entweder breiter oder höher als der Button ist, also ob item aus dem Button herausragen würde. Ist dies nicht der Fall, wird true ausgegeben.
void draw() override¶
1void Button_Blank::draw() {
2 if (value) item->drawOn(posX + sizeX/2, posY + sizeY/2, display);
3 else item->drawOff(posX + sizeX/2, posY + sizeY/2, display);
4}
Diese Funktion zeichnet Objekte der Button_Blank Klasse auf display.
Sollte value == true gelten, so wird item auf den Button im angeschalteten Zustand gezeichnet. Dafür wird die drawOn Funktion verwendet. Mit
posX + sizeX/2 und posY + sizeY/2 wird item auf die gewünschte Position gezeichnet. Ist value hingegen false, wir mit drawOff das Item
auf den Button im ausgeschalteten Zustand gezeichnet.
uint16_t loop(Inputs& input) override¶
1void Button_Blank::loop(Inputs& input) {
2 if (externalValue && externalValue->getValue() != value) input.update = true;
3 Button::loop(input);
4}
Diese Funktion dient dazu, den Zustand des aktuellen Objektes zu aktualisieren, um auf Benutzereingaben zu reagieren.
Sollte ein externalValue existieren und sollte sich dieser vom value des aktuellen Objektes unterscheiden, wird
input.update true gesetzt, um die Verfügbarkeit einer Veränderung im Zustand kenntlich zu machen.
Anschließend wird die loop des Buttons aufgerufen, um mögliche Veränderungen umzusetzen.
Variablen und Konstanten Beschreibung¶
Item* item¶
Gibt das Item des aktuellen Objektes an.