00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLUONCORE_METAINFO_H
00021 #define GLUONCORE_METAINFO_H
00022
00023 #include <QtCore/QObject>
00024
00025 namespace GluonCore
00026 {
00027 class GluonObject;
00028 class MetaInfo : public QObject
00029 {
00030 Q_OBJECT
00031 public:
00032 MetaInfo( GluonObject* parent );
00033 MetaInfo( const MetaInfo& other );
00034 ~MetaInfo();
00035
00042 Q_INVOKABLE void setPropertyRange( const QString& property, qreal min, qreal max );
00048 Q_INVOKABLE bool hasPropertyRange( const QString& property ) const;
00055 Q_INVOKABLE qreal propertyRangeMin( const QString& property ) const;
00062 Q_INVOKABLE qreal propertyRangeMax( const QString& property ) const;
00067 Q_INVOKABLE void removePropertyRange( const QString& property );
00076 Q_INVOKABLE qreal applyRange( const QString& property, qreal newValue ) const;
00077
00083 Q_INVOKABLE void setPropertySteps( const QString& property, quint32 steps );
00089 Q_INVOKABLE bool hasPropertySteps( const QString& property ) const;
00096 Q_INVOKABLE quint32 propertySteps( const QString& property ) const;
00101 Q_INVOKABLE void removePropertySteps( const QString& property );
00110 Q_INVOKABLE qreal applySteps( const QString& property, qreal newValue ) const;
00111
00121 Q_INVOKABLE qreal applyRangeAndStep( const QString& property, qreal newValue ) const;
00122 private:
00123 class MetaInfoPrivate;
00124 MetaInfoPrivate* d;
00125 };
00126 }
00127
00128 #endif // GLUONCORE_METAINFO_H