diff --git a/projects/frontend/es-core/src/themes/ElementTypes.h b/projects/frontend/es-core/src/themes/ElementTypes.h index 4d0aceac1669df4612cdcbf664267c52ebd83f1d..eb1b9e5f59a7765dddf9ead4a325cf2e862751fe 100644 --- a/projects/frontend/es-core/src/themes/ElementTypes.h +++ b/projects/frontend/es-core/src/themes/ElementTypes.h @@ -3,6 +3,8 @@ // #pragma once +#include + enum class ThemeElementType { Polymorphic = -1, //!< Special value ! @@ -31,3 +33,41 @@ enum class ThemeElementType MenuSection, MenuSize, }; + +inline const char* ThemeElementTypeToString(ThemeElementType type) +{ + static HashMap sNames + ({ + { ThemeElementType::Polymorphic, "Polymorphic" }, + { ThemeElementType::None, "None" }, + { ThemeElementType::Image, "Image" }, + { ThemeElementType::Box, "Box" }, + { ThemeElementType::Video, "Video" }, + { ThemeElementType::Text, "Text" }, + { ThemeElementType::ScrollText, "ScrollText" }, + { ThemeElementType::Markdown, "Markdown" }, + { ThemeElementType::TextList, "TextList" }, + { ThemeElementType::Container, "Container" }, + { ThemeElementType::NinePatch, "NinePatch" }, + { ThemeElementType::DateTime, "DateTime" }, + { ThemeElementType::Rating, "Rating" }, + { ThemeElementType::Sound, "Sound" }, + { ThemeElementType::HelpSystem, "HelpSystem" }, + { ThemeElementType::Carousel, "Carousel" }, + { ThemeElementType::MenuBackground, "MenuBackground" }, + { ThemeElementType::MenuIcons, "MenuIcons" }, + { ThemeElementType::MenuSwitch, "MenuSwitch" }, + { ThemeElementType::MenuSlider, "MenuSlider" }, + { ThemeElementType::MenuButton, "MenuButton" }, + { ThemeElementType::MenuText, "MenuText" }, + { ThemeElementType::MenuTextSmall, "MenuTextSmall" }, + { ThemeElementType::MenuSection, "MenuSection" }, + { ThemeElementType::MenuSize, "MenuSize" }, + }); + + const char** found = sNames.try_get(type); + if (found != nullptr) + return *found; + + return "Unknown"; +} diff --git a/projects/frontend/es-core/src/themes/ThemeData.cpp b/projects/frontend/es-core/src/themes/ThemeData.cpp index 4e7a635b3b56df9413e928da31d7f882fdf93bb6..176631eacea342866da12e1478d06669e6601466 100755 --- a/projects/frontend/es-core/src/themes/ThemeData.cpp +++ b/projects/frontend/es-core/src/themes/ThemeData.cpp @@ -515,7 +515,7 @@ const ThemeElement* ThemeData::Element(const String& viewName, const String& ele if(element->Type() == expectedType || element->Type() == expectedType2 || expectedType == ThemeElementType::Polymorphic) return element; - { LOGT(LogWarning) << "[Theme] Mismatched theme type for [" << viewName << "." << elementName << "] - expected \"" << (int)expectedType << "\", got \"" << (int)element->Type() << "\""; } + { LOGT(LogWarning) << "[Theme] Mismatched theme type for [" << viewName << "." << elementName << "] - expected \"" << ThemeElementTypeToString(expectedType) << "\", got \"" << ThemeElementTypeToString(element->Type()) << "\""; } return nullptr; } @@ -602,7 +602,7 @@ ThemeExtras::List ThemeData::GetExtras(const String& view, WindowManager& window comp->DoApplyThemeElement(*this, view, elem.Name(), ThemePropertyCategory::All); comps.push_back({ elem.Name(), elem.Type(), comp }); } - else { LOGT(LogWarning) << "[Theme] Extra type unknown: " << (int)elem.Type(); } + else { LOGT(LogWarning) << "[Theme] Extra type unknown: " << ThemeElementTypeToString(elem.Type()); } } }