summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h')
-rw-r--r--Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h b/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h
index 8a9d089..d37912c 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h
+++ b/Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h
@@ -8,6 +8,32 @@
#include <typeinfo>
+#include <QObject>
+#include <QString>
+
+#define GenericQtVCardFieldInfo(MENU_NAME, ALLOWED_INSTANCES, FIELD_CLASS) \
+ class FieldInfo : public QtVCardFieldInfo { \
+ public: \
+ virtual ~FieldInfo() { \
+ } \
+ \
+ virtual QString getMenuName() const { \
+ return QObject::tr(MENU_NAME); \
+ } \
+ \
+ virtual int getAllowedInstances() const { \
+ return ALLOWED_INSTANCES; \
+ } \
+ \
+ virtual QWidget* createFieldInstance(QWidget* parent, bool editable) const { \
+ return new FIELD_CLASS(parent, editable); \
+ } \
+ \
+ virtual bool testInstance(QWidget* widget) const { \
+ return dynamic_cast<FIELD_CLASS*>(widget) != 0; \
+ } \
+ };
+
class QWidget;
namespace Swift {
@@ -23,5 +49,4 @@ namespace Swift {
virtual QWidget* createFieldInstance(QWidget* parent, bool editable) const = 0;
virtual bool testInstance(QWidget*) const = 0;
};
-
}