Color (gb.ncurses)

Farben werden im Terminal mithilfe von "color pairs", d.h. in Paaren, festgelegt. Identifiziert werden diese Paare durch Nummern von 0 bis Color.Pairs - 1 (wobei 0 das voreingestellte Paar für alles mögliche ist und der Konfiguration des Terminals obliegt) und ihnen wird eine Vorder- und Hintergrundfarbe zugeordnet. Ein color pair kann als Attribut für Zeichen auf dem Bildschirm verwendet werden.
Analog dazu sind alle Farben - siehe die Farbkonstanten in der Color-Klasse, die die ANSI Standard-Farben abbilden - auch von 0 bis Color.Colors - 1 durchnummeriert und verbunden mit RGB-Werten.

Wichtig ist nun aber, dass man diese Nummern-Repräsentation stets im Hinterkopf zu behalten hat, besonders, was color pairs betrifft. Man kann eine Zeile auf dem Bildschirm hübsch mit dem color pair 1 versehen (wenn es vorher durch Vorder- und Hintergrundfarbe definiert wurde), jedoch sobald man die Definition des color pairs 1 ändert, wird auch die o.g. Zeile ihre Farbe entsprechend verändern - wie jedes andere Zeichen auf dem gesamten Bildschirm, das mit diesem color pair verknüpft wurde. (Übrigens: man kann auf ein color pair mithilfe des Array-Operators dieser Klasse zugreifen.)

Wenn oben gesagt wurde, dass alles per default mit dem color pair 0 coloriert wird, mache man sich klar, dass dies auch auf z.B. Window-Objekte zutrifft. Ihre .Foreground- und .Background-Eigenschaften manipulieren das color pair, das mit dem gesamten Window assoziiert ist (änderbar über Window.Attributes.Color) - normalerweise 0, wie für alles andere auch, das wiederum nach einer Änderung an diesen Eigenschaften auch die Farbe wechselt. Es ist generell eine gute Idee, für jedes Window nach der Instantiierung ein separates color pair festzulegen.

Ich hoffe, es ist klar geworden, dass die Benutzung von Farben einen Gedanken mehr erfordert...

Diese Klasse ist statisch.

Diese Klasse wirkt wie ein nur lesbar statisches Array.

Konstanten
Black  
Blue  
Cyan  
Green  
Magenta  
Red  
White  
Yellow  

Statische Eigenschaften
Available  
CanChange  
Count  

Statische Methoden
Set