From 6f4333fca728caf7140c487176b8ea5671b63860 Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Thu, 9 Sep 2021 22:16:25 +0200 Subject: LibGfx: Add support for enumerating by Metric and Path roles For Theme Editor. --- Userland/Libraries/LibGfx/SystemTheme.h | 38 +++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/Userland/Libraries/LibGfx/SystemTheme.h b/Userland/Libraries/LibGfx/SystemTheme.h index 58dd20f775..98b60fc007 100644 --- a/Userland/Libraries/LibGfx/SystemTheme.h +++ b/Userland/Libraries/LibGfx/SystemTheme.h @@ -89,6 +89,19 @@ namespace Gfx { C(Window) \ C(WindowText) +#define ENUMERATE_METRIC_ROLES(C) \ + C(TitleHeight) \ + C(TitleButtonWidth) \ + C(TitleButtonHeight) + +#define ENUMERATE_PATH_ROLES(C) \ + C(TitleButtonIcons) \ + C(InactiveWindowShadow) \ + C(ActiveWindowShadow) \ + C(TaskbarShadow) \ + C(MenuShadow) \ + C(TooltipShadow) + enum class ColorRole { NoRole, @@ -121,21 +134,24 @@ inline const char* to_string(ColorRole role) enum class MetricRole { NoRole, - TitleHeight, - TitleButtonWidth, - TitleButtonHeight, - __Count, + +#undef __ENUMERATE_METRIC_ROLE +#define __ENUMERATE_METRIC_ROLE(role) role, + ENUMERATE_METRIC_ROLES(__ENUMERATE_METRIC_ROLE) +#undef __ENUMERATE_METRIC_ROLE + + __Count, }; enum class PathRole { NoRole, - TitleButtonIcons, - InactiveWindowShadow, - ActiveWindowShadow, - TaskbarShadow, - MenuShadow, - TooltipShadow, - __Count, + +#undef __ENUMERATE_PATH_ROLE +#define __ENUMERATE_PATH_ROLE(role) role, + ENUMERATE_PATH_ROLES(__ENUMERATE_PATH_ROLE) +#undef __ENUMERATE_PATH_ROLE + + __Count, }; struct SystemTheme { -- cgit v1.2.3