Esempio n. 1
0
ReflectedEnumModel::ReflectedEnumModel(const MetaEnumObj* enumObj)
{
	const wchar_t* enumString = enumObj->getEnumString();
	if (enumString != nullptr)
	{
		generateFromString(items_, enumString);
	}
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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));
	}
}