PropertyItemFactory::PropertyItemFactory()
        : propertyMgr_(new QtVariantPropertyManager())
    {
#define REG_PROPERTY(NAME, TYPE) \
    registerPropertyCreator(NAME, TYPE, new BuiltinPropertyCreator(TYPE));

        REG_PROPERTY("bool", QVariant::Bool);
        REG_PROPERTY("int", QVariant::Int);
        REG_PROPERTY("float", QVariant::Double);
        REG_PROPERTY("string", QVariant::String);
        REG_PROPERTY("vec2", QVariant::Vector2D);
        REG_PROPERTY("vec3", QVariant::Vector3D);
        REG_PROPERTY("vec4", QVariant::Vector4D);
        REG_PROPERTY("color", QVariant::Color);
        REG_PROPERTY("size", QVariant::Size);
        REG_PROPERTY("sizeF", QVariant::SizeF);
        REG_PROPERTY("rect", QVariant::Rect);
        REG_PROPERTY("rectF", QVariant::RectF);
        REG_PROPERTY("point", QVariant::Point);
        REG_PROPERTY("pointF", QVariant::PointF);
        REG_PROPERTY("file", QVariant::String);
        REG_PROPERTY("image", QVariant::String);
        REG_PROPERTY("select", QVariant::List);
        REG_PROPERTY("list", QVariant::List);
        REG_PROPERTY("dict", QVariant::Map);
        REG_PROPERTY("stringList", QVariant::StringList);
        REG_PROPERTY("enum", QtVariantPropertyManager::enumTypeId());
        REG_PROPERTY("class", QtVariantPropertyManager::groupTypeId());
        REG_PROPERTY("group", QtVariantPropertyManager::groupTypeId());

#undef REG_PROPERTY
    }
Example #2
0
	bool CSObject::create(CSLevel* level, int id)
	{
		// log this event
		CS_LOG(CSLOGTYPE::CSL_DEBUG, "CSObject::create()");

		// remember these
		m_Level = level;
		m_Id = id;

		// create the info structure
		m_Info = new CSObjectInfo(ID_CSOBJECT, "CSObject", "the base object class", 1.00f, "Seven");

		m_Children = new CSObjectManager();
		m_Children->initialize();
		m_Children->create();

		// instantiate the property manager
		m_PropertyManager = new CSPropertyManager();
		m_PropertyManager->create();

		// Register base class properties
		REG_PROPERTY(CSObject, "Id", NULL, &CSObject::csGetId, "CS_INT", "unique object identifier");
		REG_PROPERTY(CSObject, "Name", &CSObject::csSetName, &CSObject::csGetName, "CS_PCHAR", "this is the object's name, i am using a long text to test the gui in the editor");
		REG_PROPERTY(CSObject, "Dead", &CSObject::csSetDead, &CSObject::csGetDead, "CS_BOOL", "auto delete object");
//		REG_PROPERTY(CSObject, "AbsolutePosition", &CSObject::csSetAbsolutePosition, &CSObject::csGetAbsolutePosition, "CS_VEC3D", "object position");
		REG_PROPERTY(CSObject, "RelativePosition", &CSObject::csSetRelativePosition, &CSObject::csGetRelativePosition, "CS_VEC3D", "object position");
//		REG_PROPERTY(CSObject, "AbsoluteRotation", &CSObject::csSetAbsoluteRotation, &CSObject::csGetAbsoluteRotation, "CS_VEC3D", "object rotation");
		REG_PROPERTY(CSObject, "RelativeRotation", &CSObject::csSetRelativeRotation, &CSObject::csGetRelativeRotation, "CS_VEC3D", "object rotation");
		REG_PROPERTY(CSObject, "AbsoluteScale", &CSObject::csSetAbsoluteScale, &CSObject::csGetAbsoluteScale, "CS_VEC3D", "object scale");
		REG_PROPERTY(CSObject, "RelativeScale", &CSObject::csSetRelativeScale, &CSObject::csGetRelativeScale, "CS_VEC3D", "object scale");
		REG_PROPERTY(CSObject, "PositionOffset", &CSObject::csSetPositionOffset, &CSObject::csGetPositionOffset, "CS_VEC3D", "Bounding box position offset");
		REG_PROPERTY(CSObject, "RotationOffset", &CSObject::csSetRotationOffset, &CSObject::csGetRotationOffset, "CS_VEC3D", "Bounding box rotation offset");
		REG_PROPERTY(CSObject, "ScaleOffset", &CSObject::csSetScaleOffset, &CSObject::csGetScaleOffset, "CS_VEC3D", "Scale offset of the Object");
		REG_PROPERTY(CSObject, "BBOffset", &CSObject::csSetBBOffset, &CSObject::csGetBBOffset, "CS_VEC3D", "Bounding box offset");
		REG_PROPERTY(CSObject, "DebugObject", &CSObject::csSetDebugObject, &CSObject::csGetDebugObject, "CS_BOOL", "toggle debug info");
		REG_PROPERTY(CSObject, "Mass", &CSObject::csSetMass, &CSObject::csGetMass, "CS_FLOAT", "");
		REG_PROPERTY(CSObject, "ActorFileName", &CSObject::csSetActorFileName, &CSObject::csGetActorFileName, "CS_FILENAME", "actor filename");
		REG_PROPERTY(CSObject, "TextureFileName", &CSObject::csSetTextureFileName, &CSObject::csGetTextureFileName, "CS_FILENAME", "Texture filename");
		REG_PROPERTY(CSObject, "Shadow", &CSObject::csSetShadow, &CSObject::csGetShadow, "CS_BOOL", "toggle if object casts shadows");

		// everything went fine
		return true;
	}