logplus/qtpropertybrowser/ColorSchemeComboBox.h

118 lines
3.7 KiB
C
Raw Normal View History

#ifndef COLORSCHEMACOMOBOX_H
#define COLORSCHEMACOMOBOX_H
#include <QMap>
#include <QList>
// #include <QtGui/QComboBox>
#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<int, QIcon> 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<int, QIcon> &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<int, QIcon> &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<QtColorSchemeComboBoxPropertyManagerPrivate> 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<int, QIcon> enumIcons;
};
typedef QMap<const QtProperty *, Data> PropertyValueMap;
PropertyValueMap m_values;
bool m_pIsColorScheme;
};
class QtColorSchemeComboBoxFactoryPrivate;
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactory : public QtAbstractEditorFactory<QtColorSchemeComboBoxPropertyManager>
{
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<QtColorSchemeComboBoxFactoryPrivate> 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<int, QIcon> &))
Q_PRIVATE_SLOT(d_func(), void slotSetValue(int))
Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *))
};
class QTPROPERTYBROWSER_EXPORT QtColorSchemeComboBoxFactoryPrivate : public EditorFactoryPrivate<QtColorSchemeComboBox>
{
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<int, QIcon> &);
void slotSetValue(int value);
};
QT_END_NAMESPACE
#endif