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