SystemPalette class


This object does all the handling for system attribute colors and system palette management.





Member Functions


SystemPalette(void)

~SystemPalette(void)

void SetPalette(uint8 index, RGBColor col)

void SetPalette(uint8 index, rgb_color col)

RGBColor GetPalette(uint8 index)

void SetGUIColor(color_which which, RGBColor col)

RGBColor GetGUIColor(color_which which)

color_set GetGUIColors(void)

void SetGUIColors(color_set cset)

void _GenerateSystemPalette(rgb_color *palette)

void _SetDefaultGUIColors(void)

 



_ Denotes a protected function


Structures


color_set {

rgb_color panel_background

rgb_color panel_text

rgb_color document_background

rgb_color document_text

rgb_color control_background

rgb_color control_text

rgb_color control_border

rgb_color control_highlight

rgb_color tooltip_background

rgb_color tooltip_text

rgb_color menu_background

rgb_color menu_selected_background

rgb_color menu_text

rgb_color menu_selected_text

rgb_color menu_separator

rgb_color menu_triggers

}



SystemPalette(void)


1) Allocate the rgb_color[256] palette on the heap and call _GenerateSystemPalette()

2) Initialize attribute variables to the defaults



~SystemPalette(void)


1) Free the palette array



void SetPalette(uint8 index, RGBColor col)

void SetPalette(uint8 index, rgb_color col)


Sets the said index to the passed color value.



RGBColor GetPalette(uint8 index)


Returns the color at said index in the palette.



void SetGUIColor(color_which which, RGBColor col)

RGBColor GetGUIColor(color_which which)

color_set GetGUIColors(void)

void SetGUIColors(color_set cset)


These tweak or return the system attribute colors, one at a time or all at once.



protected: void _GenerateSystemPalette(rgb_color *palette)


Sets the passed palette to the BeOS R5 system colors, which follows.

Grays:

0,0,0 -> 248,248,248 by increments of 8

Blues:

0,0,255

0,0,229

0,0,204

0,0,179

0,0,154

0,0,129

0,0,105

0,0,80

0,0,55

0,0,30

Reds: as per blues, but red values are 1 less

Greens: as per blues, but green values are 1 less

0,152,51

255,255,255


The following sets use [255, 203, 152, 102, 51, 0] for the blue values, keeping the other colors the same:


203,255, [value]

152,255, [value]

102,255, [value]

51,255, [value]

255,152, [value]


0,102,255

0,102,203


203,203, [value]

152,255, [value]

102,255, [value]

51,255, [value]

255,102, [value]


0,102,152

0,102,102


203,152, [value]

152,152, [value]

102,152, [value]

51,152, [value]


230,134,0


255,51, [value excepting 255]


0,102,51

0,102,0


203,102, [value]

152,102, [value]

102,102, [value]

51,102, [value]

255,0, [value excepting 0]


255,175,19

0,51,255

0,51,203


203,51, [value]

152,51, [value]

102,51, [value]

51,51, [value]


255,203,102 -> 255,203,255, stepping in the [value] increments


0,51, [value, starting at 152]

203,0, [value, excepting 0]


255,227,70


152,0, [value]

102,0, [value]

51,0, [value]


255,203,51

255,203,0


255,255, [values in reverse]



protected: void _SetDefaultGUIColors(void)


Sets the internal color_set to the defaults, which is the following:


panel_background: 216,216, 216

panel_text: 0,0,0

document_background: 255,255,255

document_text: 0,0,0

control_background: 216,216,216

control_text: 0,0,0

control_border: 0,0,0

control_highlight: 0,0,255

tooltip_background:

tooltip_text: 0,0,0

menu_background: 216,216,216

menu_selected_background: 160,160,160

menu_text: 0,0,0

menu_selected_text: 0,0,0

menu_separator_high: 241,241,241

menu_separator_low: 186,186,186

menu_triggers: 0,0,0