33 #ifndef GAMMARAY_METAOBJECTREPOSITORY_H
34 #define GAMMARAY_METAOBJECTREPOSITORY_H
36 #include "gammaray_core_export.h"
67 MetaObject *metaObject(
const QString& typeName)
const;
72 bool hasMetaObject(
const QString &typeName)
const;
79 void initBuiltInTypes();
80 void initQObjectTypes();
82 void initNetworkTypes();
84 void initOpenGLTypes();
87 QHash<QString, MetaObject*> m_metaObjects;
93 #define MO_ADD_BASECLASS(Base) \
94 Q_ASSERT(GammaRay::MetaObjectRepository::instance()->hasMetaObject(QStringLiteral(#Base))); \
95 mo->addBaseClass(GammaRay::MetaObjectRepository::instance()->metaObject(QStringLiteral(#Base)));
101 #define MO_ADD_METAOBJECT0(Class) \
102 mo = new GammaRay::MetaObjectImpl<Class>; \
103 mo->setClassName(QStringLiteral(#Class)); \
104 GammaRay::MetaObjectRepository::instance()->addMetaObject(mo);
109 #define MO_ADD_METAOBJECT1(Class, Base1) \
110 mo = new GammaRay::MetaObjectImpl<Class, Base1>; \
111 mo->setClassName(QStringLiteral(#Class)); \
112 MO_ADD_BASECLASS(Base1) \
113 GammaRay::MetaObjectRepository::instance()->addMetaObject(mo);
118 #define MO_ADD_METAOBJECT2(Class, Base1, Base2) \
119 mo = new GammaRay::MetaObjectImpl<Class, Base1, Base2>; \
120 mo->setClassName(QStringLiteral(#Class)); \
121 MO_ADD_BASECLASS(Base1) \
122 MO_ADD_BASECLASS(Base2) \
123 GammaRay::MetaObjectRepository::instance()->addMetaObject(mo);
126 #define MO_ADD_PROPERTY(Class, Type, Getter, Setter) \
127 mo->addProperty(new GammaRay::MetaPropertyImpl<Class, Type>( \
130 static_cast<void (Class::*)(Type)>(&Class::Setter)) \
134 #define MO_ADD_PROPERTY_CR(Class, Type, Getter, Setter) \
135 mo->addProperty(new GammaRay::MetaPropertyImpl<Class, Type, const Type&>( \
138 static_cast<void (Class::*)(const Type&)>(&Class::Setter)) \
142 #define MO_ADD_PROPERTY_RO(Class, Type, Getter) \
143 mo->addProperty(new GammaRay::MetaPropertyImpl<Class, Type>( \
148 #define MO_ADD_PROPERTY_ST(Class, Type, Getter) \
149 mo->addProperty(new GammaRay::MetaStaticPropertyImpl<Class, Type>( \
153 #endif // GAMMARAY_METAOBJECTREPOSITORY_H
Definition: endpoint.h:42