Color

Beschreibung

Diese Klasse verwaltet alles, was mit Farben zu tun hat. Mit dieser Klasse kann man die Farben sämtlicher Elemente, Screens etc. anpassen.

(Anmerkung zu dieser Seite: Aufgrund eines Bugs funktionieren Verlinkungen innerhalb dieser Dokumentationsseite aktuell nicht, diese haben zu Anzeigefehlern geführt und wurden aus diesen Gründen vorzeitig entfernt. Wir bitten dies zu entschuldigen.)

Funktionen

inline

Color (const Color& prim, const Color& item, const Color& border, const Color* secondary, bool isBorderSet = false)

inline

Color (const uint8_t r, const uint8_t g, const uint8_t b, const bool)

inline

Color (const bool, const Color& other)

inline const Color

setColorOffset (const Color& color, const int offset) const

inline const Color

createItemColor (const Color& color) const

inline const „Color

createBorderColor (const Color& color) const

inline

Color (const Color& other)

inline

Color (const Color& prim, const int offset)

inline

Color (const Color& prim, const Color& item)

inline

Color (const Color& prim, const bool, const Color& border)

inline

Color (const Color& prim, const Color& item, const Color& border)

inline

Color (const Color& prim, const bool, const bool, const Color& secondary)

inline

Color (const Color& prim, const bool, Color& border, const Color& secondary)

inline

Color (const Color& prim, const Color& item, const bool, const Color& secondary)

inline

Color (const Color& prim, const Color& item, const Color& border, const Color& secondary)

inline

Color (const uint8_t r, const uint8_t g, const uint8_t b): Color(Color(r,g,b, true), 0)

inline

~Color ()

inline Color

operator! () const

inline Color

operator+ (const Color& secondary) const

inline Color

operator| (const Color& other)

inline Color

operator= (const Color& other)

inline Color

getPrimColor ()

inline Color

getItemColor ()

inline Color

getBorderColor ()

inline Color

getSecondaryItemColor ()

inline Color

getSecondaryBorderColor ()

inline Color

getSecondaryColor ()

inline uint8_t

getRed ()

inline uint8_t

getGreen ()

inline uint8_t

getBlue ()“

inline bool

hasSecondaryColor () const

inline Color

setPrimaryColor (const Color& color)

inline Color

setItemColor const Color& color)

inline Color

setBorderColor (const Color& color)

inline Color

setSecondaryColor (const Color& color)

inline Color

setSecondaryItemColor (const Color& color)

inline Color

setSecondaryBorderColor (const Color& color)

inline void

setPrimaryColor (const Color& color)

inline void

setItemColour (const Color& color)

inline void

setBorderColour (const Color& color)

inline void

setSecondaryColour (const Color& color)

inline void

setSecondaryItemColour (const Color& color)

inline void

setSecondaryBorderColour (const Color& color)

inline String

toString () const

Variablen und Konstanten

uint8_t

r_prim

uint8_t

g_prim

uint8_t

b_prim

uint8_t

r_item

uint8_t

g_item

uint8_t

b_item

uint8_t

r_border

uint8_t

g_border

uint8_t

n_border

Color*

secondaryColor = nullptr

const bool

isBorderSet = false

Farbwerte

Hier ist eine Übersicht aller Macros, die anstelle von der Color (r, g, b) Schreibweise verwendet werden können, um einfacher häufig verwendete Farben zu erstellen.

COLOR_RED

Color (255, 0, 0 )

COLOR_GREEN

Color (0, 255, 0 )

COLOR_BLUE

Color (0, 0, 255 )

COLOR_BLACK

Color (0, 0, 0 )

COLOR_WHITE

Color (255, 255, 255 )

COLOR_YELLOW

Color (255, 255, 0 )

COLOR_MAGENTA

Color (255, 0, 255 )

COLOR_CYAN

Color (0, 255, 255 )

COLOR_GRAY

Color (128, 128, 128 )

COLOR_DARK_RED

Color (128, 0, 0 )

COLOR_DARK_GREEN

Color (0, 128, 0 )

COLOR_DARK_BLUE

Color (0, 0, 128 )

COLOR_DARK_YELLOW

Color (128, 128, 0 )

COLOR_DARK_MAGENTA

Color (128, 0, 128 )

COLOR_DARK_CYAN

Color (0, 128, 128 )

COLOR_LIGHT_RED

Color (255, 128, 128 )

COLOR_LIGHT_GREEN

Color (128, 255, 128 )

COLOR_LIGHT_BLUE

Color (128, 128, 255 )

COLOR_LIGHT_YELLOW

Color (255, 255, 128 )

COLOR_LIGHT_MAGENTA

Color (255, 128, 255 )

COLOR_LIGHT_CYAN

Color (128, 255, 255 )

COLOR_ORANGE

Color (255, 165, 0 )

COLOR_PURPLE

Color (128, 0, 128 ))

COLOR_PINK

Color (255, 192, 203 )

COLOR_LIME

Color (0, 255, 0 )

COLOR_TEAL

Color (0, 128, 128 )

COLOR_BROWN

Color (139, 69, 19 )

COLOR_NAVY

Color (0, 0, 128 )

Funktionen Beschreibung

inline Color(const Color& prim, const Color& item, const Color& border, const Color* secondary, bool isBorderSet = false)

 1    inline Color(const Color& prim, const Color& item, const Color& border, const Color* secondary, bool isBorderSet = false): 
 2                r_prim(prim.getRed()), g_prim(prim.getGreen()), b_prim(prim.getBlue()), 
 3                r_item(item.getRed()), g_item(item.getGreen()), b_item(item.getBlue()), 
 4                r_border(border.getRed()), g_border(border.getGreen()), b_border(border.getBlue()),
 5                isBorderSet(isBorderSet) 
 6                {
 7                    // LOGGER_PATTERN("Erstelle Farbe (_,_,_)", prim.r_prim, prim.g_prim, prim.b_prim)
 8                    if (secondary) secondaryColor = new Color(*secondary);
 9                    else secondaryColor = nullptr;
10                }

Dieser Konstruktor wird genutzt, um die RGB Werte der Parameter, also der Hauptfarbe prim, der Farbe des Objektes item und der Umrandunsfarbe border zu extrahieren, und mit ihnen die entsprechenden Variablen zu initialisieren. Außerdem findet eine Initialisierung von isBorderSet statt.

inline Color(const uint8_t r, const uint8_t g, const uint8_t b, const bool)

1    inline Color(const uint8_t r, const uint8_t g, const uint8_t b, const bool): 
2        r_prim(r), g_prim(g), b_prim(b), 
3        r_item(0), g_item(0), b_item(0), 
4        r_border(0), g_border(0), b_border(0),
5        secondaryColor(nullptr),
6        isBorderSet(false)
7        {}

Dieser Konstruktor wird genutzt, um mit den RGB übergebenen Werten nur die Variablen r_prim, g_prim und b_prim zu initialisieren. Daher eignet sich der Konstruktor besonders, um ein Color-Objekt ohne Item oder Border zu erstellen.

inline Color(const bool, const Color& other)

1    inline Color(const bool, const Color& other):
2        r_prim(other.r_prim), g_prim(other.g_prim), b_prim(other.b_prim),
3        r_item(0), g_item(0), b_item(0), 
4        r_border(0), g_border(0), b_border(0),
5        secondaryColor(nullptr),
6        isBorderSet(false)
7        {}

Dieser Konstruktor wird genutzt, um mit der übergebenen Farbe other nur die Variablen r_prim, g_prim und b_prim zu initialisieren. Daher eignet sich der Konstruktor besonders, um von einer Farbe, die vorher auch Farbinformationen zu einem Icon oder Border gehabt hat, nur die Hauptfarbe zu extrahieren.

inline const Color setColorOffset(const Color& color, const int offset) const

 1    inline const Color setColorOffset(const Color& color, const int offset) const {
 2        if (offset == 0) return Color(0, color);
 3
 4        LOGGER_PATTERN ("_ + _ + _ + _ < 0", static_cast<int>(color.r_prim), static_cast<int>(color.g_prim), static_cast<int>(color.b_prim), offset)
 5
 6        // Very dark colours should only become lighter
 7        if (static_cast<int>(color.r_prim) + static_cast<int>(color.g_prim) + static_cast<int>(color.b_prim) + offset <= 0) return Color(color, std::abs(offset));
 8        
 9        const uint8_t r = std::min(std::max(static_cast<int>(color.r_prim) + offset, 0), 255);
10        const uint8_t g = std::min(std::max(static_cast<int>(color.g_prim) + offset, 0), 255);
11        const uint8_t b = std::min(std::max(static_cast<int>(color.b_prim) + offset, 0), 255);
12
13        LOGGER_PATTERN("Berechne Offset: _ + _ = _", color.toString(), offset, Color(r, g, b, 0).toString())
14
15        return Color(r, g, b, 0);
16    }

Mit dieser Funktion kann aus einer Farbe eine neue Farbe erstellt werden, deren RGB Werte um einen bestimmten offset verschoben ist gegenüber der Ausgangsfarbe.

        if (offset == 0) return Color(0, color);

Sollte kein offset angegeben werden, wird dieser Color Konstruktor aufgerufen. Die neue Farbe ist äquivalent zur alten.

        if (static_cast<int>(color.r_prim) + static_cast<int>(color.g_prim) + static_cast<int>(color.b_prim) + offset <= 0) return Color(color, std::abs(offset));

Besonders dunkle Farben sollen nur heller und nicht noch dunkler werden, deshalb wird hier geprüft, ob die Summe von r_prim, g_prim und b_prim kleinergleich 0 ist. Wenn ja, wird der Color mit std::abs(offset) aufgerufen, um aus einer negativen Zahl eine positive zu erhalten.

        const uint8_t r = std::min(std::max(static_cast<int>(color.r_prim) + offset, 0), 255);
        const uint8_t g = std::min(std::max(static_cast<int>(color.g_prim) + offset, 0), 255);
        const uint8_t b = std::min(std::max(static_cast<int>(color.b_prim) + offset, 0), 255);

        LOGGER_PATTERN("Berechne Offset: _ + _ = _", color.toString(), offset, Color(r, g, b, 0).toString())

        return Color(r, g, b, 0);

Andernfalls werden mithilfe des offset neue RGB Werte berechnet. Dafür wird der maximale Wert aus 0 und static_cast<int>(color.r_prim) + offset bestimmt, also dem Wert für auf einen int gecasteten Wert für r_prim addiert mit dem offset. Anschließend vergleichen wir das gerade ermittelte Maximum mit 255 und weisen r dem Wert des daraus resultierenden Minumums zu. Da wir r_prim von einem uint8_t zu einem normalen int casten und das Ergebnis der Addition deshalb >255 sein kann, ist dieses Minumum äußerst wichtig. Mit den Variablen g und b wird genauso verfahren. Anschließend wird dieser Color Konstruktor aufgerufen, wodurch aus den neuen RGB Werten ein Color Objekt entsteht.

inline const Color createItemColor(const Color& color) const

1    inline const Color createItemColor(const Color& color) const {
2        if (r_prim + g_prim + b_prim < (120*3)) return Color(255,255,255, 0);
3        else return Color(0,0,0, 0);
4    }

Mit dieser Funktion wird automatisch eine Farbe für ein Item bestimmt. Dieses kann hier entweder weiß oder schwarz werden, je nachdem, welche Farbe sichtbarer ist. Sollte die Summe aus r_prim, g_prim und b_prim kleiner sein als der Referenzwert, so wird der Color Konstruktor aufgerufen, um eine Farbe in Weiß zu erstellen. Andernfalls wird derselbe Konstruktor aufgerufen, um eine Farbe in Schwarz zu erstellen.

inline const Color createBorderColor(const Color& color) const

1    inline const Color createBorderColor(const Color& color) const {
2        if (r_prim + g_prim + b_prim < (60*3)) return Color(255,255,255, 0);
3        else return Color(0,0,0, 0);
4    }

Mit dieser Funktion wird automatisch eine Farbe für die Umrandung bestimmt. Diese kann hier entweder weiß oder schwarz werden, je nachdem, welche Farbe sichtbarer ist. Sollte die Summe aus r_prim, g_prim und b_prim kleiner sein als der Referenzwert, so wird der Color Konstruktor aufgerufen, um eine Farbe in Weiß zu erstellen. Andernfalls wird derselbe Konstruktor aufgerufen, um eine Farbe in Schwarz zu erstellen. TODO

inline Color(const Color& other)

1    inline Color(const Color& other): Color(other, other.getItemColor(), other.getBorderColor(), other.secondaryColor) {}

Mithilfe dieser Copy Konstruktors kann ein Objekt der Color Klasse kopiert werden.

inline Color(const Color& prim, const int offset)

1    inline Color(const Color& prim, const int offset): Color(setColorOffset(prim, offset), createItemColor(prim), createBorderColor(prim), nullptr) {}

Mithilfe dieses Konstruktors kann aus einer Farbe eine neue Farbe mit einem offset erstellt werden. Dafür erfolgt bei der Initialisierung ein Funktionsaufruf von colorsetColorOffset mit den gegebenen Parametern.

inline Color(const Color& prim, const Color& item)

1    inline Color(const Color& prim, const Color& item): Color(prim, item, createBorderColor(prim), nullptr) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Item Farbe erstellt werden. Die Borderfarbe wird mit colorcreatebordercolor generiert.

inline Color(const Color& prim, const bool, const Color& border)

1    inline Color(const Color& prim, const bool, const Color& border): Color(prim, createItemColor(prim), border, nullptr) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Umrandungs Farbe erstellt werden. Die Item Farbe wird mit colorcreateitemcolor generiert.

inline Color(const Color& prim, const Color& item, const Color& border)

1    inline Color(const Color& prim, const Color& item, const Color& border): Color(prim, item, border, nullptr) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Item Farbe und einer selbst festgelegten Umrandungs Farbe erstellt werden.

inline Color(const Color& prim, const bool, const bool, const Color& secondary)

1    inline Color(const Color& prim, const bool, const bool, const Color& secondary): Color(prim, createItemColor(prim), createBorderColor(prim), new Color(secondary)) {}

Mithilfe dieses Konstruktors kann eine Farbe zusammen mit einer zusätzlichen Zweitfarbe (siehe secondaryColor) erstellt werden. Die Item Farbe und Umrandungs Farbe werden mit createItemColor bzw. createBorderColor generiert.

inline Color(const Color& prim, const bool, Color& border, const Color& secondary)

1    inline Color(const Color& prim, const bool, Color& border, const Color& secondary): Color(prim, createItemColor(prim), border, new Color(secondary)) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Umrandungsfarbe zusammen mit einer zusätzlichen Zweitfarbe (siehe secondaryColor) erstellt werden. Die Item Farbe wird mit createitemcolor generiert.

inline Color(const Color& prim, const Color& item, const bool, const Color& secondary)

1    inline Color(const Color& prim, const Color& item, const bool, const Color& secondary): Color(prim, item, createBorderColor(prim), new Color(secondary)) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Item Farbe zusammen mit einer zusätzlichen Zweitfarbe (siehe secondaryColor ) erstellt werden. Die Umrandungs Farbe wird mit createBorderColor generiert.

inline Color(const Color& prim, const Color& item, const Color& border, const Color& secondary)

1    inline Color(const Color& prim, const Color& item, const Color& border, const Color& secondary): Color(prim, item, border, new Color(secondary)) {}

Mithilfe dieses Konstruktors kann eine Farbe mit einer selbst festgelegten Item Farbe und einer selbst festgelegten Umrandungs Farbe zusammen mit einer zusätzlichen Zweitfarbe (siehe secondaryColor) erstellt werden.

inline Color(const uint8_t r, const uint8_t g, const uint8_t b): Color(Color(r,g,b, true), 0)

1    inline Color(const uint8_t r, const uint8_t g, const uint8_t b): Color(Color(r,g,b, true), 0) {

Mithilfe dieses Konstruktors kann man mit Angabe von RGB Werten den Color Konstruktor aufrufen.

inline ~Color()

1    inline ~Color() { delete secondaryColor; }

Der Destructor wird bei der Zerstörung eines Color Objektes aufgerufen und gibt den von secondaryColor belegten Speicherplatz wieder frei.

inline Color operator!() const

1    inline Color operator!()                       const { return Color(255-r_prim, 255-g_prim, 255-b_prim); }

Diese Funktion invertiert die RGB Werte einer Farbe und erzeugt ruft den Color Konstruktor auf, um diese neue Farbe zu erstellen.

inline Color operator+(const Color& secondary) const

1    inline Color operator+(const Color& secondary) const { return Color(*this, getItemColor(), getBorderColor(), secondary); }

Diese Funktion addiert eine Farbe mit einer zweiten, übergebenen Farbe. Sie gibt ein neues Color Objekt mit diesen addierten Farbwerten nach dem Konstruktoraufruf von Color zurück.

inline Color operator|(const Color& other)

1    inline Color operator|(const Color& other)     const {
2        // LOGGER_PATTERN("isBorderSet: _, prim: (_, _, _)|(_, _, _)|(_, _, _), other: (_, _, _)|(_, _, _)|(_, _, _)", isBorderSet, r_prim, g_prim, b_prim, r_item, g_item, b_item, r_border, g_border, b_border, other.r_prim, other.g_prim, other.b_prim, other.r_item, other.g_item, other.b_item, other.r_border, other.g_border, other.b_border)
3        if (!isBorderSet) return Color(*this, other, getBorderColor(), secondaryColor, true);   // 1. add item color
4        else return Color(*this, getItemColor(), other, secondaryColor);                        // 2. add border color
5    }

Diese Funktion nimmt eine Farbe other und benutzt diese Farbe als Hauptfarbe für eine neues Color Objekt, wenn bereits eine Umrandungsfarbe festgelegt ist (isBorderSet<colorvisborderset>). Dafür wird der Color Konstruktor aufgerufen. Dabei wird mithilfe von getBorderColor die Umrandunsfarbe übergeben. Desweiteren übergeben wir true an den Konstruktor, da dieses Objekt eine Umrandungsfarbe besitzt. Ist noch keine Umrandungsfarbe festgelet, wird other stattdessen als Umrandunsfarbe für ein neues Objekt verwendet und es wird ebenso dieser Color Konstruktor aufgerufen. Mithilfe von getItemColor wird die Farbe des Items als Hauptfarbe übermittelt.

inline Color& operator=(const Color& other)

 1    inline Color& operator=(const Color& other) {
 2        if (this != &other) { // Selbstzuweisung vermeiden
 3            r_prim = other.r_prim;     g_prim = other.g_prim;     b_prim = other.b_prim;
 4            r_item = other.r_item;     g_item = other.g_item;     b_item = other.b_item; 
 5            r_border = other.r_border; g_border = other.g_border; b_border = other.b_border;
 6            
 7            delete secondaryColor;
 8            secondaryColor = nullptr;
 9            
10            if (other.secondaryColor != nullptr)
11                secondaryColor = new Color(*other.secondaryColor);
12        }
13        return *this;
14    }

Diese Funktion überschreibt die Farbwerte von einem Objekt mit den Farbwerten eines anderen Objekts. Um eine Selbstzuweisung zu verhindern, wird mit this != &other sichergestellt, dass tatsächlich zwei verschiedene Objekte betrachtet werden. Anschließend werden r_prim, g_prim, b_prim, r_item, g_item, b_item, r_border, g_border und b_border mit den entsprechenden Werten der anderen Farbe other überschrieben. Schließlich wird secondaryColor gelöscht und der Speicherplatz freigegeben. Sollte other hingegen eine secondaryColor besitzen, so wird für das aktuelle Objekt eine neue secondaryColor erstellt, die auf den Speicherplatz der anderen zeigt.

inline Color getPrimColor()

1    inline Color getPrimColor()            const { return Color( *this, 0 ); }

Diese Getter-Funktion gibt die Hauptfarbe eines Color Objektes aus.

inline Color getItemColor()

1    inline Color getItemColor()            const { return Color( r_item,   g_item,   b_item  ); }

Diese Getter-Funktion gibt die Item Farbe eines Color Objektes aus.

inline Color getBorderColor()

1    inline Color getBorderColor()          const { return Color( r_border, g_border, b_border); }

Diese Getter-Funktion gibt die Umrandungs Farbe eines Color Objektes aus.

inline Color getSecondaryItemColor()

1    inline Color getSecondaryItemColor()   const { return getSecondaryColor().getItemColor(); }

Diese Getter-Funktion gibt die Item Farbe der Zweitfarbe eines Color Objektes aus.

inline Color getSecondaryBorderColor()

1    inline Color getSecondaryBorderColor() const { return getSecondaryColor().getBorderColor(); }

Diese Getter-Funktion gibt die Umrandungs Farbe der Zweitfarbe eines Color Objektes aus.

inline Color getSecondaryColor()

1    inline Color getSecondaryColor()       const { 
2        if (secondaryColor) return *secondaryColor;
3        else return *this;
4    }

Diese Getter-Funktion gibt die Zweitfarbe eines Color Objektes aus. Wenn ein Objekt keine Zweifarbe besitzt, wird stattdessen das Color Objekt zurückgegeben.

inline uint8_t getRed()

1    inline uint8_t getRed   () const { return r_prim; }

Gibt den Rotanteil einer Farbe (r_prim) zurück.

inline uint8_t getGreen()

1    inline uint8_t getGreen () const { return g_prim; }

Gibt den Grünanteil einer Farbe (g_prim) zurück.

inline uint8_t getBlue()

1    inline uint8_t getBlue  () const { return b_prim; }

Gibt den Blauanteil einer Farbe (b_prim) zurück.

inline bool hasSecondaryColor() const

1    inline bool hasSecondaryColor() const { return secondaryColor != nullptr; }

Diese Funktion gibt true zurück, wenn ein Color Objekt eine Zweitfarbe (secondaryColor) besitzt, und false falls es keine besitzt.

inline Color setPrimaryColor(const Color& color) const

1    inline Color setPrimaryColor(const Color& color)         const { return Color(color, getItemColor(), getBorderColor(), secondaryColor); }

Mit dieser Funktion lässt sich die Hauptfarbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline Color setItemColor(const Color& color) const

1    inline Color setItemColor(const Color& color)            const { return Color(getPrimColor(), color, getBorderColor(), secondaryColor); }

Mit dieser Funktion lässt sich die Item Farbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline Color setBorderColor(const Color& color) const

1    inline Color setBorderColor(const Color& color)          const { return Color(getPrimColor(), getItemColor(), color, secondaryColor); }

Mit dieser Funktion lässt sich die Umrandungs Farbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline Color setSecondaryColor(const Color& color) const

1    inline Color setSecondaryColor(const Color& color)       const { return Color(getPrimColor(), getItemColor(), getBorderColor(), color); }

Mit dieser Funktion lässt sich die Zweitfarbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline Color setSecondaryItemColor(const Color& color) const

1    inline Color setSecondaryItemColor(const Color& color)   const { return Color(*this, getItemColor(), getBorderColor(), Color(*secondaryColor, secondaryColor->getItemColor(), color)); }

Mit dieser Funktion lässt sich die Item Farbe der Zweitfarbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline Color setSecondaryBorderColor(const Color& color) const

1    inline Color getSecondaryBorderColor() const { return getSecondaryColor().getBorderColor(); }

Mit dieser Funktion lässt sich die Umrandungs Farbe der Zweitfarbe eines Color Objektes setzen. Die Funktion gibt ein neues Objekt zurück.

inline void setPrimaryColor(const Color& color)

1    inline void setPrimaryColor(const Color& color)          { r_prim = color.r_prim; g_prim = color.g_prim; b_prim = color.b_prim; }

Mit dieser Funktion lässt sich die Hauptfarbe des aktuellen Color Objektes verändern.

inline void setItemColor(const Color& color)

1    inline void setItemColor(const Color& color)             { r_item = color.r_prim; g_item = color.g_prim; b_item = color.b_prim; }

Mit dieser Funktion lässt sich die Item Farbe des aktuellen Color Objektes verändern.

inline void setBorderColor(const Color& color)

1    inline void setBorderColor(const Color& color)           { r_border = color.r_prim; g_border = color.g_prim; b_border = color.b_prim; }

Mit dieser Funktion lässt sich die Umrandungs Farbe des aktuellen Color Objektes verändern.

inline void setSecondaryColor(const Color& color)

1    inline void setSecondaryColor(const Color& color)        { secondaryColor->r_prim = color.r_prim; secondaryColor->g_prim = color.g_prim; secondaryColor->b_prim = color.b_prim; }

Mit dieser Funktion lässt sich die Zweitfarbe des aktuellen Color Objektes verändern.

inline void setSecondaryItemColor(const Color& color)

1    inline void setSecondaryItemColor(const Color& color)    { secondaryColor->r_item = color.r_prim; secondaryColor->g_item = color.g_prim; secondaryColor->b_item = color.b_prim; }

Mit dieser Funktion lässt sich die Item Farbe der Zweitfarbe des aktuellen Color Objektes verändern.

inline void setSecondaryBorderColor(const Color& color)

1    inline void setSecondaryBorderColor(const Color& color)  { secondaryColor->r_border = color.r_prim; secondaryColor->g_border = color.g_prim; secondaryColor->b_border = color.b_prim; }

Mit dieser Funktion lässt sich die Umrandungs Farbe der Zweitfarbe des aktuellen Color Objektes verändern.

inline String toString() const

1    inline String toString() const {
2        return "Color(" + String(r_prim) + ", " + String(g_prim) + ", " + String(b_prim) + ")";
3    }

Diese Funktion gibt einen String in der Form Color(r,g,b) zurück, wobei die jeweiligen Zahlenwerte an Stelle von „r“,“g“ bzw. „b“ ausgegeben werden.

Variablen Beschreibung

uint8_t r_prim

Gibt den Rotanteil an, den eine Farbe haben kann (0 bis 255).

uint8_t g_prim

Gibt den Grünanteil an, den eine Farbe haben kann (0 bis 255).

uint8_t b_prim

Gibt den Blauanteil an, den eine Farbe haben kann (0 bis 255).

uint8_t r_item

Gibt den Rotanteil an, den die Farbe eines Item haben kann (0 bis 255).

uint8_t g_item

Gibt den Grünanteil an, den die Farbe eines Item haben kann (0 bis 255).

uint8_t b_item

Gibt den Blauanteil an, den die Farbe eines Item haben kann (0 bis 255).

uint8_t r_border

Gibt den Rotanteil an, den die Farbe einer Umrandung haben kann (0 bis 255).

uint8_t g_border

Gibt den Grünanteil an, den die Farbe einer Umrandung haben kann (0 bis 255).

uint8_t b_border

Gibt den Blauanteil an, den die Farbe einer Umrandung haben kann (0 bis 255).

Color* secondaryColor = nullptr

Die secondaryColor ist eine zusätzliche (Zweit)Farbe, die im Color Objekt gespeichert werden kann, wenn der Bedarf ist. Sie ist nützlich, wenn z.B. ein Button in seiner aktivierten Form eine andere Farbe haben soll, als in seiner deaktivierten Form. ie aus einer anderen Farbe (bzw. einem anderen Color Objekt) erstellt werden kann.

const bool isBorderSet = false

Speichert, ob bereits eine Umrandungsfarbe für ein Objekt festgelegt ist.