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_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_TEXT_COLOR = 21,
B_SUCCESS_COLOR = 100,
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_TEXT_COLOR = 22,
B_WINDOW_INACTIVE_TAB_COLOR = 23,
B_WINDOW_INACTIVE_TEXT_COLOR = 24,
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>
static const int32 kNumColors = 32;
static const int32 kNumColors = 34;
struct server_read_only_memory {
rgb_color colors[kNumColors];
@@ -26,10 +26,10 @@ static inline int32
color_which_to_index(color_which 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;
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;
}
@@ -39,11 +39,11 @@ static inline color_which
index_to_color_which(int32 index)
{
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);
else {
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_selected_item_text_color, B_MENU_SELECTED_ITEM_TEXT_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_text_color, B_TOOL_TIP_TEXT_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
{232, 232, 232, 255}, // B_WINDOW_INACTIVE_BORDER_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...
{0, 255, 0, 255}, // B_SUCCESS_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->try_drag = false;
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()) {
owner->SetHighColor(ui_color(B_MENU_SELECTED_BACKGROUND_COLOR));
owner->SetHighColor(ui_color(B_LIST_SELECTED_BACKGROUND_COLOR));
owner->SetLowColor(owner->HighColor());
} else
owner->SetHighColor(lowColor);
@@ -88,16 +88,16 @@ BStringItem::DrawItem(BView *owner, BRect frame, bool complete)
owner->MovePenTo(frame.left, frame.top + fBaselineOffset);
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)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else
owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT));
} else {
if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR));
owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
else
owner->SetHighColor(ui_color(B_MENU_ITEM_TEXT_COLOR));
owner->SetHighColor(ui_color(B_LIST_ITEM_TEXT_COLOR));
}
owner->DrawString(fText);
@@ -118,7 +118,7 @@ BStringItem::SetText(const char *text)
}
const char *
const char*
BStringItem::Text() const
{
return fText;
+6
View File
@@ -47,6 +47,12 @@ static ColorDescription sColorDescriptionTable[] =
B_TRANSLATE_MARK("Selected menu item text") },
{ B_MENU_SELECTED_BORDER_COLOR,
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_TEXT_COLOR, B_TRANSLATE_MARK("Tooltip text") },
{ B_SUCCESS_COLOR, B_TRANSLATE_MARK("Success") },
@@ -32,7 +32,7 @@ ColorWhichItem::DrawItem(BView *owner, BRect frame, bool complete)
if (IsSelected() || complete) {
if (IsSelected()) {
owner->SetHighColor(ui_color(B_MENU_SELECTED_BACKGROUND_COLOR));
owner->SetHighColor(ui_color(B_LIST_SELECTED_BACKGROUND_COLOR));
owner->SetLowColor(owner->HighColor());
} else
owner->SetHighColor(lowColor);
@@ -54,16 +54,16 @@ ColorWhichItem::DrawItem(BView *owner, BRect frame, bool complete)
+ BaselineOffset());
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)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else
owner->SetHighColor(tint_color(textColor, B_LIGHTEN_2_TINT));
} else {
if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR));
owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
else
owner->SetHighColor(ui_color(B_MENU_ITEM_TEXT_COLOR));
owner->SetHighColor(ui_color(B_LIST_ITEM_TEXT_COLOR));
}
owner->DrawString(Text());
+4 -4
View File
@@ -67,7 +67,7 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
if (IsSelected() || complete) {
rgb_color color;
if (IsSelected())
color = ui_color(B_MENU_SELECTED_BACKGROUND_COLOR);
color = ui_color(B_LIST_SELECTED_BACKGROUND_COLOR);
else
color = owner->ViewColor();
@@ -79,7 +79,7 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
BString text = Text();
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)
owner->SetHighColor(tint_color(textColor, B_DARKEN_2_TINT));
else
@@ -88,9 +88,9 @@ LanguageListItem::DrawItemWithTextOffset(BView* owner, BRect frame,
text << " [" << B_TRANSLATE("already chosen") << "]";
} else {
if (IsSelected())
owner->SetHighColor(ui_color(B_MENU_SELECTED_ITEM_TEXT_COLOR));
owner->SetHighColor(ui_color(B_LIST_SELECTED_ITEM_TEXT_COLOR));
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,