ErrorScreen¶
Beschreibung¶
ErrorScreens sind Screens, die eine Fehlermeldung ausgeben.
Funktionen¶
ErrorScreen (const char* error_title, const char* error_text) |
|
ErrorScreen (const char* error_title, const char* error_text, const Color& background_color, const Color& text_color) |
|
void |
loop (Inputs& input) |
void |
draw () |
Variablen und Konstanten¶
const char* |
|
const char* |
|
const „Color“ |
|
const „Color“ |
Macros¶
CREATE_ERROR_SCREEN (TML, screenID, errorTitle, errorMessage) |
|
CREATE_ERROR_SCREEN_with_Colors (TML, screenID, errorTitle, errorMessage, backgroundColor, textColor) |
Funktionen Beschreibung¶
ErrorScreen (const char* error_title, const char* error_text)¶
1ErrorScreen::ErrorScreen (const char* error_title, const char* error_text):
2 ErrorScreen(error_title, error_text, COLOR_RED, COLOR_BLACK)
3 {}
Der Konstruktor wird bei der Erzeugung eines neuen Objekts der ErrorScreen Klasse aufgerufen. Als Parameter nimmt der Konstruktor den Namen des Fehlers (error_title) und den Text, den
der bei der Fehlermeldung ausgegeben werden soll (error_text). Für die Initialisierung wird der andere „ErrorScreen“ Konstruktor aufgerufen, wobei COLOR_RED die
Standard Hintergrundfarbe (des Displays) Rot und COLOR_BLACK die Standard Textfarbe Schwarz ist.
ErrorScreen (const char* error_title, const char* error_text, const Color& background_color, const Color& text_color)¶
1ErrorScreen::ErrorScreen (const char* error_title, const char* error_text, const Color& background_color, const Color& text_color):
2 error_title(error_title),
3 error_text(error_text),
4 background_color(background_color),
5 text_color(text_color)
6 {}
ErrorScreen Klasse aufgerufen. Als Parameter nimmt der Konstruktor den Namen des Fehlers (error_title), den der bei der Fehlermeldung ausgegeben werden soll (error_text), die Hintergrundfarbe (background_color), sowie die Textfarbe (text_color). Dieser Konstruktor ermöglicht es, Hintergrund- und Textfarbe individuell festzulegen, anders als bei diesem „ErrorScreen“ Konstruktor.void loop(Inputs& input) override¶
1void ErrorScreen::loop(Inputs& input) {
2
3}
Diese Funktion hat eine leere loop Funktion, da an einem ErrorScreen nach erstmaligen Zeichnen keine Änderungen vorgenommen werden.
void draw() override¶
1void ErrorScreen::draw() {
2 display->fillScreen(background_color);
3
4 // TODO: text_size automatisch anpassen (je nach Textlänge)
5 display->text_center(width/2, height/3, 3, error_title, text_color);
6 display->text_center(width/2, 2*height/3, 1, error_text, text_color);
7}
Diese Funktion überschreibt die „draw“ Funktion der „Screen“ Klasse.
Zuerst wird die „fillScreen“ Funktion des „display“ Objektes aufgerufen. Dabei wird „background_color“ als Parameter übergeben.
Dadurch wird das Display in die Hintergrundfarbe gefärbt. Anschließend sollen sowohl „error_title“ und „error_text“ auf dem Display zentriert angezeigt werden.
Zuerst erfolgt der „text_center“ Funktionsaufruf, bei welchem durch width/2 und height/3“error_title“ auf dem Display im oberen Drittel in der Mitte angezeigt wird.
Im nächsten „text_center“ Funktionsaufruf wird „error_text“ durch width/2 und height/3 auf dem mittleren Drittel zentral angezeigt.
Variablen und Konstanten Beschreibung¶
const char* error_title¶
Diese Variable speichert den Namen einer Fehlermeldung.
const char* error_text¶
Diese Variable speichert den Text, der bei einer Fehlermeldung ausgeben wird.
const Color background_color¶
Hier wird die Hintergrundfarbe von Fehlerbildschirmen gespeichert. Die Standard Hintergrundfarbe wird in diesem „ErrorScreen“ Konstruktor festgelegt.
const Color text_color¶
Hier wird die Textfarbe von Fehlermeldungen gespeichert. Die Standard Textfarbe wird in diesem „ErrorScreen“ Konstruktor festgelegt.
Macro Beschreibung¶
#define CREATE_ERROR_SCREEN(TML, screenID, errorTitle, errorMessage)¶
1#define CREATE_ERROR_SCREEN(TML, screenID, errorTitle, errorMessage) \
2 static_assert(std::is_integral<decltype(screenID)>::value && screenID >= 0 && screenID <= UINT8_MAX, "screenID must be of type uint8_t"); \
3 static_assert(std::is_same<decltype(TML), TouchMenuLib>::value, "TML must be of type TouchMenuLib"); \
4 static_assert(std::is_convertible<decltype(errorMessage), const char*>::value, "errorMessage must be of type const char*"); \
5 static_assert(std::is_convertible<decltype(errorTitle), const char*>::value, "errorTitle must be of type const char*"); \
6 TML.add(screenID, new ErrorScreen(errorTitle, errorMessage));
Dieses Macro erleichtert das Erstellen von Instanzen der ErrorScreen Klasse.
#define CREATE_ERROR_SCREEN_with_Colors(TML, screenID, errorTitle, errorMessage, backgroundColor, textColor)¶
1#define CREATE_ERROR_SCREEN_with_Colors(TML, screenID, errorTitle, errorMessage, backgroundColor, textColor) \
2 static_assert(std::is_integral<decltype(screenID)>::value && screenID >= 0 && screenID <= UINT8_MAX, "screenID must be of type uint8_t"); \
3 static_assert(std::is_same<decltype(TML), TouchMenuLib>::value, "TML must be of type TouchMenuLib"); \
4 static_assert(std::is_convertible<decltype(errorMessage), const char*>::value, "errorMessage must be of type const char*"); \
5 static_assert(std::is_convertible<decltype(errorTitle), const char*>::value, "errorTitle must be of type const char*"); \
6 static_assert(std::is_same<decltype(backgroundColor), Color>::value, "backgroundColor must be of type Color"); \
7 static_assert(std::is_same<decltype(textColor), Color>::value, "textColor must be of type Color"); \
8 ErrorScreen* screen##screenID = new ErrorScreen(errorTitle, errorMessage, backgroundColor, textColor); \
9 TML.add(screenID, screen##screenID);