#include namespace MyNamespace { template class MyClass : public QObject { Q_OBJECT_X public: MyClass() { connect(this, SIGNAL(asignal(Scalar)), this, SLOT(setValue(Scalar))); } enum AnEnum {Val0,Val1,Val2}; void triggerASignal() {emit asignal(21.59);} Scalar getValue(void) const { return mValue; } void setValue(Scalar v) { mValue = v; } AnEnum getEnum(void) const { return mEnumValue; } void setEnum(AnEnum m) { mEnumValue = m; } signals: void asignal(Scalar x); protected: Scalar mValue; AnEnum mEnumValue; }; typedef MyClass MyClassf; typedef MyClass MyClassd; #define MyClassDeclaration PPMOC_MAKE_TPL_DECLARATION(\ (1,(typename Scalar)), \ MyNamespace,MyClass,QObject, \ \ PPMOC_CLASSINFO("Description","An example of PPMOC.") \ PPMOC_SLOT(Scalar, getValue, ) \ PPMOC_SLOT(, setValue, PPMOC_ARG(Scalar,v)) \ PPMOC_PROPERTY(Value, Scalar, getValue, setValue, Designable) \ PPMOC_PROPERTY(EnumValue, AnEnum, getEnum, setEnum, Designable) \ PPMOC_SIGNAL(asignal, PPMOC_ARG(Scalar,x)) \ PPMOC_ENUMS(AnEnum,3,(Val0,Val1,Val2)) \ ) // #define MyClassAddMocInstanciation(CLASSNAME) PPMOC_INSTANCIATE(CLASSNAME,MyClassDeclaration) }