Create and use new list view item colors

* B_LIST_BACKGROUND_COLOR
* B_LIST_SELECTED_BACKGROUND_COLOR
* B_LIST_ITEM_TEXT_COLOR
* B_LIST_SELECTED_ITEM_TEXT_COLOR
This commit is contained in:
John Scipione
2012-08-22 00:28:24 -04:00
parent f49d27c7ed
commit 91c78f092f
9 changed files with 49 additions and 27 deletions
+14 -9
View File
@@ -306,27 +306,32 @@ enum color_which {
B_MENU_SELECTED_ITEM_TEXT_COLOR = 8, B_MENU_SELECTED_ITEM_TEXT_COLOR = 8,
B_MENU_SELECTED_BORDER_COLOR = 9, B_MENU_SELECTED_BORDER_COLOR = 9,
B_LIST_BACKGROUND_COLOR = 28,
B_LIST_SELECTED_BACKGROUND_COLOR = 29,
B_LIST_ITEM_TEXT_COLOR = 30,
B_LIST_SELECTED_ITEM_TEXT_COLOR = 31,
B_TOOL_TIP_BACKGROUND_COLOR = 20, B_TOOL_TIP_BACKGROUND_COLOR = 20,
B_TOOL_TIP_TEXT_COLOR = 21, B_TOOL_TIP_TEXT_COLOR = 21,
B_SUCCESS_COLOR = 100, B_SUCCESS_COLOR = 100,
B_FAILURE_COLOR = 101, B_FAILURE_COLOR = 101,
// Old name synonyms.
B_KEYBOARD_NAVIGATION_COLOR = B_NAVIGATION_BASE_COLOR,
B_MENU_SELECTION_BACKGROUND_COLOR = B_MENU_SELECTED_BACKGROUND_COLOR,
// These are deprecated -- do not use in new code. See BScreen for
// the replacement for B_DESKTOP_COLOR.
B_DESKTOP_COLOR = 5,
B_WINDOW_TAB_COLOR = 3, B_WINDOW_TAB_COLOR = 3,
B_WINDOW_TEXT_COLOR = 22, B_WINDOW_TEXT_COLOR = 22,
B_WINDOW_INACTIVE_TAB_COLOR = 23, B_WINDOW_INACTIVE_TAB_COLOR = 23,
B_WINDOW_INACTIVE_TEXT_COLOR = 24, B_WINDOW_INACTIVE_TEXT_COLOR = 24,
B_WINDOW_BORDER_COLOR = 25, B_WINDOW_BORDER_COLOR = 25,
B_WINDOW_INACTIVE_BORDER_COLOR = 26 B_WINDOW_INACTIVE_BORDER_COLOR = 26,
// Old name synonyms.
B_KEYBOARD_NAVIGATION_COLOR = B_NAVIGATION_BASE_COLOR,
B_MENU_SELECTION_BACKGROUND_COLOR = B_MENU_SELECTED_BACKGROUND_COLOR,
// These are deprecated -- do not use in new code. See BScreen for
// the replacement for B_DESKTOP_COLOR.
B_DESKTOP_COLOR = 5
}; };
+5 -5
View File
@@ -13,7 +13,7 @@
#include <InterfaceDefs.h> #include <InterfaceDefs.h>
static const int32 kNumColors = 32; static const int32 kNumColors = 34;
struct server_read_only_memory { struct server_read_only_memory {
rgb_color colors[kNumColors]; rgb_color colors[kNumColors];
@@ -26,10 +26,10 @@ static inline int32
color_which_to_index(color_which which) color_which_to_index(color_which which)
{ {
// NOTE: this must be kept in sync with InterfaceDefs.h color_which! // NOTE: this must be kept in sync with InterfaceDefs.h color_which!
if (which <= B_CONTROL_MARK_COLOR) if (which <= B_LIST_SELECTED_ITEM_TEXT_COLOR)
return which - 1; return which - 1;
if (which >= B_SUCCESS_COLOR && which <= B_FAILURE_COLOR) if (which >= B_SUCCESS_COLOR && which <= B_FAILURE_COLOR)
return which - B_SUCCESS_COLOR + B_CONTROL_MARK_COLOR; return which - B_SUCCESS_COLOR + B_LIST_SELECTED_ITEM_TEXT_COLOR;
return -1; return -1;
} }
@@ -39,11 +39,11 @@ static inline color_which
index_to_color_which(int32 index) index_to_color_which(int32 index)
{ {
if (index >= 0 && index < kNumColors) { if (index >= 0 && index < kNumColors) {
if ((color_which)index < B_CONTROL_MARK_COLOR) if ((color_which)index < B_LIST_SELECTED_ITEM_TEXT_COLOR)
return (color_which)(index + 1); return (color_which)(index + 1);
else { else {
return (color_which)(index + B_SUCCESS_COLOR return (color_which)(index + B_SUCCESS_COLOR
- B_CONTROL_MARK_COLOR); - B_LIST_SELECTED_ITEM_TEXT_COLOR);
} }
} }
+4
View File
@@ -53,6 +53,10 @@ static struct option const kLongOptions[] = {
I(menu_item_text_color, B_MENU_ITEM_TEXT_COLOR), I(menu_item_text_color, B_MENU_ITEM_TEXT_COLOR),
I(menu_selected_item_text_color, B_MENU_SELECTED_ITEM_TEXT_COLOR), I(menu_selected_item_text_color, B_MENU_SELECTED_ITEM_TEXT_COLOR),
I(menu_selected_border_color, B_MENU_SELECTED_BORDER_COLOR), I(menu_selected_border_color, B_MENU_SELECTED_BORDER_COLOR),
I(list_background_color, B_LIST_BACKGROUND_COLOR),
I(list_selected_background_color, B_LIST_SELECTED_BACKGROUND_COLOR),
I(list_item_text_color, B_LIST_ITEM_TEXT_COLOR),
I(list_selected_item_text_color, B_LIST_SELECTED_ITEM_TEXT_COLOR),
I(tooltip_background_color, B_TOOL_TIP_BACKGROUND_COLOR), I(tooltip_background_color, B_TOOL_TIP_BACKGROUND_COLOR),
I(tooltip_text_color, B_TOOL_TIP_TEXT_COLOR), I(tooltip_text_color, B_TOOL_TIP_TEXT_COLOR),
I(success_color, B_SUCCESS_COLOR), I(success_color, B_SUCCESS_COLOR),
+4
View File
@@ -97,6 +97,10 @@ static const rgb_color _kDefaultColors[kNumColors] = {
{224, 224, 224, 255}, // B_WINDOW_BORDER_COLOR {224, 224, 224, 255}, // B_WINDOW_BORDER_COLOR
{232, 232, 232, 255}, // B_WINDOW_INACTIVE_BORDER_COLOR {232, 232, 232, 255}, // B_WINDOW_INACTIVE_BORDER_COLOR
{27, 82, 140, 255}, // B_CONTROL_MARK_COLOR {27, 82, 140, 255}, // B_CONTROL_MARK_COLOR
{255, 255, 255, 255}, // B_LIST_BACKGROUND_COLOR
{153, 153, 153, 255}, // B_LIST_SELECTED_BACKGROUND_COLOR
{0, 0, 0, 255}, // B_LIST_ITEM_TEXT_COLOR
{0, 0, 0, 255}, // B_LIST_SELECTED_ITEM_TEXT_COLOR
// 100... // 100...
{0, 255, 0, 255}, // B_SUCCESS_COLOR {0, 255, 0, 255}, // B_SUCCESS_COLOR
{255, 0, 0, 255}, // B_FAILURE_COLOR {255, 0, 0, 255}, // B_FAILURE_COLOR
+3
View File
@@ -1381,6 +1381,9 @@ BListView::_InitObject(list_view_type type)
fTrack = new track_data; fTrack = new track_data;
fTrack->try_drag = false; fTrack->try_drag = false;
fTrack->item_index = -1; fTrack->item_index = -1;
SetViewColor(ui_color(B_LIST_BACKGROUND_COLOR));
SetLowColor(ui_color(B_LIST_BACKGROUND_COLOR));
} }
+5 -5
View File
@@ -77,7 +77,7 @@ BStringItem::DrawItem(BView *owner, BRect frame, bool complete)
if (IsSelected() || complete) { if (IsSelected() || complete) {
if (IsSelected()) { if (IsSelected()) {
owner->SetHighColor(ui_color(B_MENU_SELECTED_BACKGROUND_COLOR)); owner->SetHighColor(ui_color(B_LIST_SELECTED_BACKGROUND_COLOR));
owner->SetLowColor(owner->HighColor()); owner->SetLowColor(owner->HighColor());
} else } else
owner->SetHighColor(lowColor); owner->SetHighColor(lowColor);
@@ -88,16 +88,16 @@ BStringItem::DrawItem(BView *owner, BRect frame, bool complete)
owner->MovePenTo(frame.left, frame.top + fBaselineOffset); owner->MovePenTo(frame.left, frame.top + fBaselineOffset);
if (!IsEnabled()) { if (!IsEnabled()) {
rgb_color textColor = ui_color(B_MENU_ITEM_TEXT_COLOR); rgb_color textColor = ui_color(B_LIST_ITEM_TEXT_COLOR);
if (textColor.red + textColor.green + textColor.blue > 128 * 3) if (textColor.red + textColor.green + textColor.blue > 128 * 3)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT)); owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else else
owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT)); owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT));
} else { } else {
if (IsSelected()) if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
else else
owner->SetHighColor(ui_color(B_MENU_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_ITEM_TEXT_COLOR));
} }
owner->DrawString(fText); owner->DrawString(fText);
@@ -118,7 +118,7 @@ BStringItem::SetText(const char *text)
} }
const char * const char*
BStringItem::Text() const BStringItem::Text() const
{ {
return fText; return fText;
+6
View File
@@ -47,6 +47,12 @@ static ColorDescription sColorDescriptionTable[] =
B_TRANSLATE_MARK("Selected menu item text") }, B_TRANSLATE_MARK("Selected menu item text") },
{ B_MENU_SELECTED_BORDER_COLOR, { B_MENU_SELECTED_BORDER_COLOR,
B_TRANSLATE_MARK("Selected menu item border") }, B_TRANSLATE_MARK("Selected menu item border") },
{ B_LIST_BACKGROUND_COLOR, B_TRANSLATE_MARK("List background") },
{ B_LIST_SELECTED_BACKGROUND_COLOR,
B_TRANSLATE_MARK("Selected list item background") },
{ B_LIST_ITEM_TEXT_COLOR, B_TRANSLATE_MARK("List item text") },
{ B_LIST_SELECTED_ITEM_TEXT_COLOR,
B_TRANSLATE_MARK("Selected list item text") },
{ B_TOOL_TIP_BACKGROUND_COLOR, B_TRANSLATE_MARK("Tooltip background") }, { B_TOOL_TIP_BACKGROUND_COLOR, B_TRANSLATE_MARK("Tooltip background") },
{ B_TOOL_TIP_TEXT_COLOR, B_TRANSLATE_MARK("Tooltip text") }, { B_TOOL_TIP_TEXT_COLOR, B_TRANSLATE_MARK("Tooltip text") },
{ B_SUCCESS_COLOR, B_TRANSLATE_MARK("Success") }, { B_SUCCESS_COLOR, B_TRANSLATE_MARK("Success") },
@@ -32,7 +32,7 @@ ColorWhichItem::DrawItem(BView *owner, BRect frame, bool complete)
if (IsSelected() || complete) { if (IsSelected() || complete) {
if (IsSelected()) { if (IsSelected()) {
owner->SetHighColor(ui_color(B_MENU_SELECTED_BACKGROUND_COLOR)); owner->SetHighColor(ui_color(B_LIST_SELECTED_BACKGROUND_COLOR));
owner->SetLowColor(owner->HighColor()); owner->SetLowColor(owner->HighColor());
} else } else
owner->SetHighColor(lowColor); owner->SetHighColor(lowColor);
@@ -54,16 +54,16 @@ ColorWhichItem::DrawItem(BView *owner, BRect frame, bool complete)
+ BaselineOffset()); + BaselineOffset());
if (!IsEnabled()) { if (!IsEnabled()) {
rgb_color textColor = ui_color(B_MENU_ITEM_TEXT_COLOR); rgb_color textColor = ui_color(B_LIST_ITEM_TEXT_COLOR);
if (textColor.red + textColor.green + textColor.blue > 128 * 3) if (textColor.red + textColor.green + textColor.blue > 128 * 3)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT)); owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else else
owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT)); owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT));
} else { } else {
if (IsSelected()) if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
else else
owner->SetHighColor(ui_color(B_MENU_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_ITEM_TEXT_COLOR));
} }
owner->DrawString(Text()); owner->DrawString(Text());
+4 -4
View File
@@ -67,7 +67,7 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
if (IsSelected() || complete) { if (IsSelected() || complete) {
rgb_color color; rgb_color color;
if (IsSelected()) if (IsSelected())
color = ui_color(B_MENU_SELECTED_BACKGROUND_COLOR); color = ui_color(B_LIST_SELECTED_BACKGROUND_COLOR);
else else
color = owner->ViewColor(); color = owner->ViewColor();
@@ -79,7 +79,7 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
BString text = Text(); BString text = Text();
if (!IsEnabled()) { if (!IsEnabled()) {
rgb_color textColor = ui_color(B_MENU_ITEM_TEXT_COLOR); rgb_color textColor = ui_color(B_LIST_ITEM_TEXT_COLOR);
if (textColor.red + textColor.green + textColor.blue > 128 * 3) if (textColor.red + textColor.green + textColor.blue > 128 * 3)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT)); owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else else
@@ -88,9 +88,9 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
text << " [" << B_TRANSLATE("already chosen") << "]"; text << " [" << B_TRANSLATE("already chosen") << "]";
} else { } else {
if (IsSelected()) if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
else else
owner->SetHighColor(ui_color(B_MENU_ITEM_TEXT_COLOR)); owner->SetHighColor(ui_color(B_LIST_ITEM_TEXT_COLOR));
} }
owner->MovePenTo(frame.left + kLeftInset + textOffset, owner->MovePenTo(frame.left + kLeftInset + textOffset,