00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GLUON_CREATOR_PROPERTYWIDGETITEM_H
00020 #define GLUON_CREATOR_PROPERTYWIDGETITEM_H
00021
00022 #include "gluoncreator_macros.h"
00023 #include "propertywidgetitemfactory.h"
00024
00025 #include <QtCore/QVariant>
00026 #include <QtGui/QWidget>
00027
00028 namespace GluonCreator
00029 {
00035 class GLUONCREATOR_EXPORT PropertyWidgetItem : public QWidget
00036 {
00037 Q_OBJECT
00038 public:
00039 explicit PropertyWidgetItem( QWidget* parent = 0, Qt::WindowFlags f = 0 );
00040 virtual ~PropertyWidgetItem();
00041
00042 QWidget* editWidget() const;
00043 QObject* editObject() const;
00044 QString editProperty() const;
00045
00046
00047 virtual QStringList supportedDataTypes() const = 0;
00048 virtual PropertyWidgetItem* instantiate() = 0;
00049
00050 const QString typeName() const;
00051
00052 public slots:
00053 virtual void setEditObject( QObject* editThis );
00054 virtual void setEditProperty( const QString& propertyName );
00055 virtual void setEditWidget( QWidget* widget );
00056 virtual void setEditValue( const QVariant& value );
00057 virtual void valueChanged( QVariant );
00058
00059 signals:
00060 void propertyChanged( QObject* object, const QString& propertyName, const QVariant& oldValue, const QVariant& newValue );
00061
00062 private:
00063 class PropertyWidgetItemPrivate;
00064 PropertyWidgetItemPrivate* d;
00065 };
00066 }
00067
00068 #endif // GLUON_CREATOR_PROPERTYWIDGETITEM_H