/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd ** All rights reserved. ** For any questions to The Qt Company, please use contact form at http://qt.io ** ** This file is part of the Qt Data Visualization module. ** ** Licensees holding valid commercial license for Qt may use this file in ** accordance with the Qt License Agreement provided with the Software ** or, alternatively, in accordance with the terms contained in a written ** agreement between you and The Qt Company. ** ** If you have questions regarding the use of this file, please use ** contact form at http://qt.io ** ****************************************************************************/ #ifndef Q3DTHEME_H #define Q3DTHEME_H #include #include #include #include #include QT_BEGIN_NAMESPACE_DATAVISUALIZATION class Q3DThemePrivate; class QT_DATAVISUALIZATION_EXPORT Q3DTheme : public QObject { Q_OBJECT Q_ENUMS(ColorStyle) Q_ENUMS(Theme) Q_PROPERTY(Theme type READ type WRITE setType NOTIFY typeChanged) Q_PROPERTY(QList baseColors READ baseColors WRITE setBaseColors NOTIFY baseColorsChanged) Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged) Q_PROPERTY(QColor windowColor READ windowColor WRITE setWindowColor NOTIFY windowColorChanged) Q_PROPERTY(QColor labelTextColor READ labelTextColor WRITE setLabelTextColor NOTIFY labelTextColorChanged) Q_PROPERTY(QColor labelBackgroundColor READ labelBackgroundColor WRITE setLabelBackgroundColor NOTIFY labelBackgroundColorChanged) Q_PROPERTY(QColor gridLineColor READ gridLineColor WRITE setGridLineColor NOTIFY gridLineColorChanged) Q_PROPERTY(QColor singleHighlightColor READ singleHighlightColor WRITE setSingleHighlightColor NOTIFY singleHighlightColorChanged) Q_PROPERTY(QColor multiHighlightColor READ multiHighlightColor WRITE setMultiHighlightColor NOTIFY multiHighlightColorChanged) Q_PROPERTY(QColor lightColor READ lightColor WRITE setLightColor NOTIFY lightColorChanged) Q_PROPERTY(QList baseGradients READ baseGradients WRITE setBaseGradients NOTIFY baseGradientsChanged) Q_PROPERTY(QLinearGradient singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) Q_PROPERTY(QLinearGradient multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) Q_PROPERTY(float lightStrength READ lightStrength WRITE setLightStrength NOTIFY lightStrengthChanged) Q_PROPERTY(float ambientLightStrength READ ambientLightStrength WRITE setAmbientLightStrength NOTIFY ambientLightStrengthChanged) Q_PROPERTY(float highlightLightStrength READ highlightLightStrength WRITE setHighlightLightStrength NOTIFY highlightLightStrengthChanged) Q_PROPERTY(bool labelBorderEnabled READ isLabelBorderEnabled WRITE setLabelBorderEnabled NOTIFY labelBorderEnabledChanged) Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) Q_PROPERTY(bool backgroundEnabled READ isBackgroundEnabled WRITE setBackgroundEnabled NOTIFY backgroundEnabledChanged) Q_PROPERTY(bool gridEnabled READ isGridEnabled WRITE setGridEnabled NOTIFY gridEnabledChanged) Q_PROPERTY(bool labelBackgroundEnabled READ isLabelBackgroundEnabled WRITE setLabelBackgroundEnabled NOTIFY labelBackgroundEnabledChanged) Q_PROPERTY(ColorStyle colorStyle READ colorStyle WRITE setColorStyle NOTIFY colorStyleChanged) public: enum ColorStyle { ColorStyleUniform = 0, ColorStyleObjectGradient, ColorStyleRangeGradient }; enum Theme { ThemeQt, ThemePrimaryColors, ThemeDigia, ThemeStoneMoss, ThemeArmyBlue, ThemeRetro, ThemeEbony, ThemeIsabelle, ThemeUserDefined }; public: explicit Q3DTheme(QObject *parent = 0); explicit Q3DTheme(Theme themeType, QObject *parent = 0); virtual ~Q3DTheme(); void setType(Theme themeType); Theme type() const; void setBaseColors(const QList &colors); QList baseColors() const; void setBackgroundColor(const QColor &color); QColor backgroundColor() const; void setWindowColor(const QColor &color); QColor windowColor() const; void setLabelTextColor(const QColor &color); QColor labelTextColor() const; void setLabelBackgroundColor(const QColor &color); QColor labelBackgroundColor() const; void setGridLineColor(const QColor &color); QColor gridLineColor() const; void setSingleHighlightColor(const QColor &color); QColor singleHighlightColor() const; void setMultiHighlightColor(const QColor &color); QColor multiHighlightColor() const; void setLightColor(const QColor &color); QColor lightColor() const; void setBaseGradients(const QList &gradients); QList baseGradients() const; void setSingleHighlightGradient(const QLinearGradient &gradient); QLinearGradient singleHighlightGradient() const; void setMultiHighlightGradient(const QLinearGradient &gradient); QLinearGradient multiHighlightGradient() const; void setLightStrength(float strength); float lightStrength() const; void setAmbientLightStrength(float strength); float ambientLightStrength() const; void setHighlightLightStrength(float strength); float highlightLightStrength() const; void setLabelBorderEnabled(bool enabled); bool isLabelBorderEnabled() const; void setFont(const QFont &font); QFont font() const; void setBackgroundEnabled(bool enabled); bool isBackgroundEnabled() const; void setGridEnabled(bool enabled); bool isGridEnabled() const; void setLabelBackgroundEnabled(bool enabled); bool isLabelBackgroundEnabled() const; void setColorStyle(ColorStyle style); ColorStyle colorStyle() const; Q_SIGNALS: void typeChanged(Q3DTheme::Theme themeType); void baseColorsChanged(const QList &colors); void backgroundColorChanged(const QColor &color); void windowColorChanged(const QColor &color); void labelTextColorChanged(const QColor &color); void labelBackgroundColorChanged(const QColor &color); void gridLineColorChanged(const QColor &color); void singleHighlightColorChanged(const QColor &color); void multiHighlightColorChanged(const QColor &color); void lightColorChanged(const QColor &color); void baseGradientsChanged(const QList &gradients); void singleHighlightGradientChanged(const QLinearGradient &gradient); void multiHighlightGradientChanged(const QLinearGradient &gradient); void lightStrengthChanged(float strength); void ambientLightStrengthChanged(float strength); void highlightLightStrengthChanged(float strength); void labelBorderEnabledChanged(bool enabled); void fontChanged(const QFont &font); void backgroundEnabledChanged(bool enabled); void gridEnabledChanged(bool enabled); void labelBackgroundEnabledChanged(bool enabled); void colorStyleChanged(Q3DTheme::ColorStyle style); protected: explicit Q3DTheme(Q3DThemePrivate *d, Theme themeType, QObject *parent = 0); QScopedPointer d_ptr; private: Q_DISABLE_COPY(Q3DTheme) friend class ThemeManager; friend class Abstract3DRenderer; friend class Bars3DController; friend class AbstractDeclarative; friend class Abstract3DController; }; QT_END_NAMESPACE_DATAVISUALIZATION #endif