ReflectedEnumModel::ReflectedEnumModel(const MetaEnumObj* enumObj) { const wchar_t* enumString = enumObj->getEnumString(); if (enumString != nullptr) { generateFromString(items_, enumString); } }
bool EnumGenerator::handleEnumUp (const EnumElement * e) { if (!CppGeneratorBase::handleEnumUp (e)) return false; bool toString = e->commands.count ("ENUM_TOSTRING") > 0 || e->commands.count ("ENUM_TOFROMSTRING") > 0 || e->commands.count ("ENUM") > 0; bool fromString = e->commands.count ("ENUM_FROMSTRING") > 0 || e->commands.count ("ENUM_TOFROMSTRING") > 0 || e->commands.count ("ENUM") > 0; if (toString){ bool v = generateToString (e); if (!v) return false; } if (fromString){ bool v = generateFromString (e); if (!v) return false; } return true; }
ReflectedEnumModel::ReflectedEnumModel(const PropertyAccessor& pA, ObjectHandleT<MetaEnumObj> enumObj) { const wchar_t* enumString = enumObj->getEnumString(); if (enumString != nullptr) { generateFromString(items_, enumString); return; } Collection collection = enumObj->generateEnum(pA.getObject()); auto it = collection.begin(); auto itEnd = collection.end(); for (; it != itEnd; ++it) { int index; it.key().tryCast(index); Variant itValue = it.value(); std::string text; itValue.tryCast(text); items_.push_back(new ReflectedEnumItem(index, text)); } }