diff --git a/include/rive/viewmodel/runtime/viewmodel_runtime.hpp b/include/rive/viewmodel/runtime/viewmodel_runtime.hpp index 77f6f0e21..a0435bfb3 100644 --- a/include/rive/viewmodel/runtime/viewmodel_runtime.hpp +++ b/include/rive/viewmodel/runtime/viewmodel_runtime.hpp @@ -16,6 +16,7 @@ struct PropertyData { DataType type; std::string name; + std::string enumName; }; class ViewModelRuntime : public RefCnt diff --git a/src/viewmodel/runtime/viewmodel_runtime.cpp b/src/viewmodel/runtime/viewmodel_runtime.cpp index f625b8c94..d92500ff2 100644 --- a/src/viewmodel/runtime/viewmodel_runtime.cpp +++ b/src/viewmodel/runtime/viewmodel_runtime.cpp @@ -46,6 +46,7 @@ std::vector ViewModelRuntime::buildPropertiesData( for (auto property : properties) { DataType type = DataType::none; + std::string enumName; switch (property->coreType()) { case ViewModelPropertyString::typeKey: @@ -66,8 +67,16 @@ std::vector ViewModelRuntime::buildPropertiesData( case ViewModelPropertyEnum::typeKey: case ViewModelPropertyEnumCustomBase::typeKey: case ViewModelPropertyEnumSystemBase::typeKey: + { type = DataType::enumType; + auto* dataEnum = + static_cast(property)->dataEnum(); + if (dataEnum != nullptr) + { + enumName = dataEnum->enumName(); + } break; + } case ViewModelPropertyTrigger::typeKey: type = DataType::trigger; break; @@ -86,7 +95,7 @@ std::vector ViewModelRuntime::buildPropertiesData( default: break; } - props.push_back({type, property->name()}); + props.push_back({type, property->name(), enumName}); } return props; }