From 46fdf97dea86cc469ea1653ac287489ffbe29b75 Mon Sep 17 00:00:00 2001 From: Pascal Abresch Date: Thu, 21 Jul 2022 19:56:46 +0200 Subject: [PATCH] Interface Kit: add default dark appearence color constants Change-Id: I8added6ada702eb09e95f5f2d6e34b748067c6bc Reviewed-on: https://review.haiku-os.org/c/haiku/+/4571 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- headers/private/interface/DefaultColors.h | 9 ++-- src/kits/interface/InterfaceDefs.cpp | 59 ++++++++++++++++++++++- 2 files changed, 62 insertions(+), 6 deletions(-) diff --git a/headers/private/interface/DefaultColors.h b/headers/private/interface/DefaultColors.h index 592e1afb1e..6bae934a1c 100644 --- a/headers/private/interface/DefaultColors.h +++ b/headers/private/interface/DefaultColors.h @@ -1,18 +1,19 @@ /* - * Copyright 2006, Haiku, Inc. + * Copyright 2006-2022, Haiku, Inc. * Distributed under the terms of the MIT License. */ #ifndef _DEFAULT_COLORS_H #define _DEFAULT_COLORS_H -#include - +#include namespace BPrivate { extern const rgb_color* kDefaultColors; -} // namespace BPrivate +rgb_color GetSystemColor(color_which, bool darkVariant); + +} // namespace BPrivate #endif // _DEFAULT_COLORS_H diff --git a/src/kits/interface/InterfaceDefs.cpp b/src/kits/interface/InterfaceDefs.cpp index b76f86440a..97628450ee 100644 --- a/src/kits/interface/InterfaceDefs.cpp +++ b/src/kits/interface/InterfaceDefs.cpp @@ -118,6 +118,51 @@ static const rgb_color _kDefaultColors[kColorWhichCount] = { const rgb_color* BPrivate::kDefaultColors = &_kDefaultColors[0]; +static const rgb_color _kDefaultColorsDark[kColorWhichCount] = { + {43, 43, 43, 255}, // B_PANEL_BACKGROUND_COLOR + {28, 28, 28, 255}, // B_MENU_BACKGROUND_COLOR + {227, 73, 17, 255}, // B_WINDOW_TAB_COLOR + {0, 0, 229, 255}, // B_KEYBOARD_NAVIGATION_COLOR + {51, 102, 152, 255}, // B_DESKTOP_COLOR + {90, 90, 90, 255}, // B_MENU_SELECTED_BACKGROUND_COLOR + {255, 255, 255, 255}, // B_MENU_ITEM_TEXT_COLOR + {255, 255, 255, 255}, // B_MENU_SELECTED_ITEM_TEXT_COLOR + {0, 0, 0, 255}, // B_MENU_SELECTED_BORDER_COLOR + {253, 253, 253, 255}, // B_PANEL_TEXT_COLOR + {0, 0, 0, 255}, // B_DOCUMENT_BACKGROUND_COLOR + {234, 234, 234, 255}, // B_DOCUMENT_TEXT_COLOR + {29, 29, 29, 255}, // B_CONTROL_BACKGROUND_COLOR + {230, 230, 230, 255}, // B_CONTROL_TEXT_COLOR + {195, 195, 195, 255}, // B_CONTROL_BORDER_COLOR + {75, 124, 168, 255}, // B_CONTROL_HIGHLIGHT_COLOR + {0, 0, 0, 255}, // B_NAVIGATION_PULSE_COLOR + {255, 255, 255, 255}, // B_SHINE_COLOR + {0, 0, 0, 255}, // B_SHADOW_COLOR + {76, 68, 79, 255}, // B_TOOLTIP_BACKGROUND_COLOR + {255, 255, 255, 255}, // B_TOOLTIP_TEXT_COLOR + {255, 255, 255, 255}, // B_WINDOW_TEXT_COLOR + {203, 32, 9, 255}, // B_WINDOW_INACTIVE_TAB_COLOR + {255, 255, 255, 255}, // B_WINDOW_INACTIVE_TEXT_COLOR + {227, 73, 17, 255}, // B_WINDOW_BORDER_COLOR + {203, 32, 9, 255}, // B_WINDOW_INACTIVE_BORDER_COLOR + {27, 82, 140, 255}, // B_CONTROL_MARK_COLOR + {0, 0, 0, 255}, // B_LIST_BACKGROUND_COLOR + {90, 90, 90, 255}, // B_LIST_SELECTED_BACKGROUND_COLOR + {255, 255, 255, 255}, // B_LIST_ITEM_TEXT_COLOR + {255, 255, 255, 255}, // B_LIST_SELECTED_ITEM_TEXT_COLOR + {39, 39, 39, 255}, // B_SCROLL_BAR_THUMB_COLOR + {106, 112, 212, 255}, // B_LINK_TEXT_COLOR + {102, 152, 203, 255}, // B_LINK_HOVER_COLOR + {145, 112, 155, 255}, // B_LINK_VISITED_COLOR + {121, 142, 203, 255}, // B_LINK_ACTIVE_COLOR + {50, 150, 255, 255}, // B_STATUS_BAR_COLOR + // 100... + {46, 204, 64, 255}, // B_SUCCESS_COLOR + {255, 40, 54, 255}, // B_FAILURE_COLOR + {} +}; + + static const char* kColorNames[kColorWhichCount] = { "B_PANEL_BACKGROUND_COLOR", "B_MENU_BACKGROUND_COLOR", @@ -1242,13 +1287,23 @@ ui_color(color_which which) if (shared != NULL) { // check for unset colors if (shared->colors[index] == B_TRANSPARENT_COLOR) - shared->colors[index] = kDefaultColors[index]; + shared->colors[index] = _kDefaultColors[index]; return shared->colors[index]; } } - return kDefaultColors[index]; + return _kDefaultColors[index]; +} + + +rgb_color +BPrivate::GetSystemColor(color_which colorConstant, bool darkVariant) { + if (darkVariant) { + return _kDefaultColorsDark[color_which_to_index(colorConstant)]; + } else { + return _kDefaultColors[color_which_to_index(colorConstant)]; + } }