From 664800b2adda44039a85c3566b4ed958abff8b95 Mon Sep 17 00:00:00 2001 From: v-rob Date: Wed, 6 May 2020 10:36:02 -0700 Subject: FormSpec: Add universal style selector `*` (#9718) --- src/gui/guiFormSpecMenu.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 567f0ca7e..72095a86e 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -4609,20 +4609,32 @@ StyleSpec GUIFormSpecMenu::getDefaultStyleForElement(const std::string &type, return getStyleForElement(type, name, parent_type)[StyleSpec::STATE_DEFAULT]; } -std::array GUIFormSpecMenu::getStyleForElement(const std::string &type, - const std::string &name, const std::string &parent_type) +std::array GUIFormSpecMenu::getStyleForElement( + const std::string &type, const std::string &name, const std::string &parent_type) { std::array ret; + auto it = theme_by_type.find("*"); + if (it != theme_by_type.end()) { + for (const StyleSpec &spec : it->second) + ret[(u32)spec.getState()] |= spec; + } + + it = theme_by_name.find("*"); + if (it != theme_by_name.end()) { + for (const StyleSpec &spec : it->second) + ret[(u32)spec.getState()] |= spec; + } + if (!parent_type.empty()) { - auto it = theme_by_type.find(parent_type); + it = theme_by_type.find(parent_type); if (it != theme_by_type.end()) { for (const StyleSpec &spec : it->second) ret[(u32)spec.getState()] |= spec; } } - auto it = theme_by_type.find(type); + it = theme_by_type.find(type); if (it != theme_by_type.end()) { for (const StyleSpec &spec : it->second) ret[(u32)spec.getState()] |= spec; -- cgit v1.2.3