mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 03:37:43 +00:00
LibGfx: Use an enumerator macro for color roles
This commit is contained in:
parent
dfe8adde3f
commit
50076997f4
2 changed files with 91 additions and 129 deletions
|
@ -98,72 +98,11 @@ RefPtr<SharedBuffer> load_system_theme(const String& path)
|
||||||
return &path[0];
|
return &path[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DO_COLOR(x) \
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
data->color[(int)ColorRole::x] = get_color(#x)
|
#define __ENUMERATE_COLOR_ROLE(role) \
|
||||||
|
data->color[(int)ColorRole::role] = get_color(#role);
|
||||||
DO_COLOR(DesktopBackground);
|
ENUMERATE_COLOR_ROLES(__ENUMERATE_COLOR_ROLE)
|
||||||
DO_COLOR(ThreedHighlight);
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
DO_COLOR(ThreedShadow1);
|
|
||||||
DO_COLOR(ThreedShadow2);
|
|
||||||
DO_COLOR(HoverHighlight);
|
|
||||||
DO_COLOR(Selection);
|
|
||||||
DO_COLOR(SelectionText);
|
|
||||||
DO_COLOR(InactiveSelection);
|
|
||||||
DO_COLOR(InactiveSelectionText);
|
|
||||||
DO_COLOR(Window);
|
|
||||||
DO_COLOR(WindowText);
|
|
||||||
DO_COLOR(Base);
|
|
||||||
DO_COLOR(BaseText);
|
|
||||||
DO_COLOR(Button);
|
|
||||||
DO_COLOR(ButtonText);
|
|
||||||
DO_COLOR(DesktopBackground);
|
|
||||||
DO_COLOR(ActiveWindowBorder1);
|
|
||||||
DO_COLOR(ActiveWindowBorder2);
|
|
||||||
DO_COLOR(ActiveWindowTitle);
|
|
||||||
DO_COLOR(ActiveWindowTitleShadow);
|
|
||||||
DO_COLOR(ActiveWindowTitleStripes);
|
|
||||||
DO_COLOR(InactiveWindowBorder1);
|
|
||||||
DO_COLOR(InactiveWindowBorder2);
|
|
||||||
DO_COLOR(InactiveWindowTitle);
|
|
||||||
DO_COLOR(InactiveWindowTitleShadow);
|
|
||||||
DO_COLOR(InactiveWindowTitleStripes);
|
|
||||||
DO_COLOR(MovingWindowBorder1);
|
|
||||||
DO_COLOR(MovingWindowBorder2);
|
|
||||||
DO_COLOR(MovingWindowTitle);
|
|
||||||
DO_COLOR(MovingWindowTitleShadow);
|
|
||||||
DO_COLOR(MovingWindowTitleStripes);
|
|
||||||
DO_COLOR(HighlightWindowBorder1);
|
|
||||||
DO_COLOR(HighlightWindowBorder2);
|
|
||||||
DO_COLOR(HighlightWindowTitle);
|
|
||||||
DO_COLOR(HighlightWindowTitleShadow);
|
|
||||||
DO_COLOR(HighlightWindowTitleStripes);
|
|
||||||
DO_COLOR(MenuStripe);
|
|
||||||
DO_COLOR(MenuBase);
|
|
||||||
DO_COLOR(MenuBaseText);
|
|
||||||
DO_COLOR(MenuSelection);
|
|
||||||
DO_COLOR(MenuSelectionText);
|
|
||||||
DO_COLOR(RubberBandFill);
|
|
||||||
DO_COLOR(RubberBandBorder);
|
|
||||||
DO_COLOR(Link);
|
|
||||||
DO_COLOR(ActiveLink);
|
|
||||||
DO_COLOR(VisitedLink);
|
|
||||||
DO_COLOR(Ruler);
|
|
||||||
DO_COLOR(RulerBorder);
|
|
||||||
DO_COLOR(RulerActiveText);
|
|
||||||
DO_COLOR(RulerInactiveText);
|
|
||||||
DO_COLOR(TextCursor);
|
|
||||||
DO_COLOR(FocusOutline);
|
|
||||||
DO_COLOR(SyntaxComment);
|
|
||||||
DO_COLOR(SyntaxNumber);
|
|
||||||
DO_COLOR(SyntaxString);
|
|
||||||
DO_COLOR(SyntaxType);
|
|
||||||
DO_COLOR(SyntaxPunctuation);
|
|
||||||
DO_COLOR(SyntaxOperator);
|
|
||||||
DO_COLOR(SyntaxKeyword);
|
|
||||||
DO_COLOR(SyntaxControlKeyword);
|
|
||||||
DO_COLOR(SyntaxIdentifier);
|
|
||||||
DO_COLOR(SyntaxPreprocessorStatement);
|
|
||||||
DO_COLOR(SyntaxPreprocessorValue);
|
|
||||||
|
|
||||||
#define DO_METRIC(x) \
|
#define DO_METRIC(x) \
|
||||||
data->metric[(int)MetricRole::x] = get_metric(#x, (int)MetricRole::x)
|
data->metric[(int)MetricRole::x] = get_metric(#x, (int)MetricRole::x)
|
||||||
|
|
|
@ -33,77 +33,100 @@
|
||||||
|
|
||||||
namespace Gfx {
|
namespace Gfx {
|
||||||
|
|
||||||
|
#define ENUMERATE_COLOR_ROLES(C) \
|
||||||
|
C(ActiveLink) \
|
||||||
|
C(ActiveWindowBorder1) \
|
||||||
|
C(ActiveWindowBorder2) \
|
||||||
|
C(ActiveWindowTitle) \
|
||||||
|
C(ActiveWindowTitleShadow) \
|
||||||
|
C(ActiveWindowTitleStripes) \
|
||||||
|
C(Base) \
|
||||||
|
C(BaseText) \
|
||||||
|
C(Button) \
|
||||||
|
C(ButtonText) \
|
||||||
|
C(DesktopBackground) \
|
||||||
|
C(FocusOutline) \
|
||||||
|
C(HighlightWindowBorder1) \
|
||||||
|
C(HighlightWindowBorder2) \
|
||||||
|
C(HighlightWindowTitle) \
|
||||||
|
C(HighlightWindowTitleShadow) \
|
||||||
|
C(HighlightWindowTitleStripes) \
|
||||||
|
C(HoverHighlight) \
|
||||||
|
C(InactiveSelection) \
|
||||||
|
C(InactiveSelectionText) \
|
||||||
|
C(InactiveWindowBorder1) \
|
||||||
|
C(InactiveWindowBorder2) \
|
||||||
|
C(InactiveWindowTitle) \
|
||||||
|
C(InactiveWindowTitleShadow) \
|
||||||
|
C(InactiveWindowTitleStripes) \
|
||||||
|
C(Link) \
|
||||||
|
C(MenuBase) \
|
||||||
|
C(MenuBaseText) \
|
||||||
|
C(MenuSelection) \
|
||||||
|
C(MenuSelectionText) \
|
||||||
|
C(MenuStripe) \
|
||||||
|
C(MovingWindowBorder1) \
|
||||||
|
C(MovingWindowBorder2) \
|
||||||
|
C(MovingWindowTitle) \
|
||||||
|
C(MovingWindowTitleShadow) \
|
||||||
|
C(MovingWindowTitleStripes) \
|
||||||
|
C(RubberBandBorder) \
|
||||||
|
C(RubberBandFill) \
|
||||||
|
C(Ruler) \
|
||||||
|
C(RulerActiveText) \
|
||||||
|
C(RulerBorder) \
|
||||||
|
C(RulerInactiveText) \
|
||||||
|
C(Selection) \
|
||||||
|
C(SelectionText) \
|
||||||
|
C(SyntaxComment) \
|
||||||
|
C(SyntaxControlKeyword) \
|
||||||
|
C(SyntaxIdentifier) \
|
||||||
|
C(SyntaxKeyword) \
|
||||||
|
C(SyntaxNumber) \
|
||||||
|
C(SyntaxOperator) \
|
||||||
|
C(SyntaxPreprocessorStatement) \
|
||||||
|
C(SyntaxPreprocessorValue) \
|
||||||
|
C(SyntaxPunctuation) \
|
||||||
|
C(SyntaxString) \
|
||||||
|
C(SyntaxType) \
|
||||||
|
C(TextCursor) \
|
||||||
|
C(ThreedHighlight) \
|
||||||
|
C(ThreedShadow1) \
|
||||||
|
C(ThreedShadow2) \
|
||||||
|
C(VisitedLink) \
|
||||||
|
C(Window) \
|
||||||
|
C(WindowText)
|
||||||
|
|
||||||
enum class ColorRole {
|
enum class ColorRole {
|
||||||
NoRole,
|
NoRole,
|
||||||
DesktopBackground,
|
|
||||||
ActiveWindowBorder1,
|
|
||||||
ActiveWindowBorder2,
|
|
||||||
ActiveWindowTitle,
|
|
||||||
ActiveWindowTitleShadow,
|
|
||||||
ActiveWindowTitleStripes,
|
|
||||||
InactiveWindowBorder1,
|
|
||||||
InactiveWindowBorder2,
|
|
||||||
InactiveWindowTitle,
|
|
||||||
InactiveWindowTitleShadow,
|
|
||||||
InactiveWindowTitleStripes,
|
|
||||||
MovingWindowBorder1,
|
|
||||||
MovingWindowBorder2,
|
|
||||||
MovingWindowTitle,
|
|
||||||
MovingWindowTitleShadow,
|
|
||||||
MovingWindowTitleStripes,
|
|
||||||
HighlightWindowBorder1,
|
|
||||||
HighlightWindowBorder2,
|
|
||||||
HighlightWindowTitle,
|
|
||||||
HighlightWindowTitleStripes,
|
|
||||||
HighlightWindowTitleShadow,
|
|
||||||
MenuStripe,
|
|
||||||
MenuBase,
|
|
||||||
MenuBaseText,
|
|
||||||
MenuSelection,
|
|
||||||
MenuSelectionText,
|
|
||||||
Window,
|
|
||||||
WindowText,
|
|
||||||
Button,
|
|
||||||
ButtonText,
|
|
||||||
Base,
|
|
||||||
BaseText,
|
|
||||||
ThreedHighlight,
|
|
||||||
ThreedShadow1,
|
|
||||||
ThreedShadow2,
|
|
||||||
HoverHighlight,
|
|
||||||
Selection,
|
|
||||||
SelectionText,
|
|
||||||
InactiveSelection,
|
|
||||||
InactiveSelectionText,
|
|
||||||
RubberBandFill,
|
|
||||||
RubberBandBorder,
|
|
||||||
Link,
|
|
||||||
ActiveLink,
|
|
||||||
VisitedLink,
|
|
||||||
Ruler,
|
|
||||||
RulerBorder,
|
|
||||||
RulerActiveText,
|
|
||||||
RulerInactiveText,
|
|
||||||
TextCursor,
|
|
||||||
FocusOutline,
|
|
||||||
SyntaxComment,
|
|
||||||
SyntaxNumber,
|
|
||||||
SyntaxString,
|
|
||||||
SyntaxType,
|
|
||||||
SyntaxPunctuation,
|
|
||||||
SyntaxOperator,
|
|
||||||
SyntaxKeyword,
|
|
||||||
SyntaxControlKeyword,
|
|
||||||
SyntaxIdentifier,
|
|
||||||
SyntaxPreprocessorStatement,
|
|
||||||
SyntaxPreprocessorValue,
|
|
||||||
|
|
||||||
__Count,
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
|
#define __ENUMERATE_COLOR_ROLE(role) role,
|
||||||
|
ENUMERATE_COLOR_ROLES(__ENUMERATE_COLOR_ROLE)
|
||||||
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
|
|
||||||
|
__Count,
|
||||||
|
|
||||||
Background = Window,
|
Background = Window,
|
||||||
DisabledText = ThreedShadow1,
|
DisabledText = ThreedShadow1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline const char* to_string(ColorRole role)
|
||||||
|
{
|
||||||
|
switch (role) {
|
||||||
|
case ColorRole::NoRole:
|
||||||
|
return "NoRole";
|
||||||
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
|
#define __ENUMERATE_COLOR_ROLE(role) \
|
||||||
|
case ColorRole::role: \
|
||||||
|
return #role;
|
||||||
|
ENUMERATE_COLOR_ROLES(__ENUMERATE_COLOR_ROLE)
|
||||||
|
#undef __ENUMERATE_COLOR_ROLE
|
||||||
|
default:
|
||||||
|
ASSERT_NOT_REACHED();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
enum class MetricRole {
|
enum class MetricRole {
|
||||||
NoRole,
|
NoRole,
|
||||||
TitleHeight,
|
TitleHeight,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue