#ifndef COLORSCHEMACOMOBOX_H #define COLORSCHEMACOMOBOX_H #include #include // #include #include "qtpropertybrowser.h" #include "qteditorfactory.h" #include "QtColorSchemeComboBox.h" //const QSize rectSize(200,15); QT_BEGIN_NAMESPACE class QtColorSchemeComboBoxFactoryPrivate; class QtColorSchemeComboBoxPropertyManagerPrivate; class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtColorSchemeComboBoxPropertyManager(QObject *parent = 0); ~QtColorSchemeComboBoxPropertyManager(); int value(const QtProperty *property) const; QStringList enumNames(const QtProperty *property) const; QMap enumIcons(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, int val, bool islinestyle); void setEnumNames(QtProperty *property, const QStringList &names); void setEnumIcons(QtProperty *property, const QMap &icons); void setLinear(QtProperty *property); Q_SIGNALS: void valueChanged(QtProperty *property, int val,bool islineStyle); void enumNamesChanged(QtProperty *property, const QStringList &names); void enumIconsChanged(QtProperty *property, const QMap &icons); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; bool IsColorScheme(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE(QtColorSchemeComboBoxPropertyManager) Q_DISABLE_COPY(QtColorSchemeComboBoxPropertyManager) }; class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxPropertyManagerPrivate { QtColorSchemeComboBoxPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtColorSchemeComboBoxPropertyManager) public: struct Data { Data() : val(-1) {} int val; QStringList enumNames; QMap enumIcons; }; typedef QMap PropertyValueMap; PropertyValueMap m_values; bool m_pIsColorScheme; }; class QtColorSchemeComboBoxFactoryPrivate; class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtColorSchemeComboBoxFactory(QObject *parent = 0); ~QtColorSchemeComboBoxFactory(); protected: void connectPropertyManager(QtColorSchemeComboBoxPropertyManager *manager); QWidget *createEditor(QtColorSchemeComboBoxPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtColorSchemeComboBoxPropertyManager *manager); //void rendererLinearEnum(QComboBox *editor); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE(QtColorSchemeComboBoxFactory) Q_DISABLE_COPY(QtColorSchemeComboBoxFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *, const QStringList &)) Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *, const QMap &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactoryPrivate : public EditorFactoryPrivate { QtColorSchemeComboBoxFactory *q_ptr; Q_DECLARE_PUBLIC(QtColorSchemeComboBoxFactory) public: void slotPropertyChanged(QtProperty *property, int value); void slotEnumNamesChanged(QtProperty *property, const QStringList &); void slotEnumIconsChanged(QtProperty *property, const QMap &); void slotSetValue(int value); }; QT_END_NAMESPACE #endif