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 }
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; }