diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/styles/qfusionstyle.cpp | 3 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle.h | 111 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle_p.h | 148 | ||||
-rw-r--r-- | src/widgets/styles/qfusionstyle_p_p.h | 153 | ||||
-rw-r--r-- | src/widgets/styles/qstylefactory.cpp | 2 | ||||
-rw-r--r-- | src/widgets/styles/styles.pri | 2 |
6 files changed, 210 insertions, 209 deletions
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index 4121292cc7..c8b6154413 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qfusionstyle.h" #include "qfusionstyle_p.h" +#include "qfusionstyle_p_p.h" #if !defined(QT_NO_STYLE_FUSION) || defined(QT_PLUGIN) #include "qcommonstyle_p.h" @@ -346,6 +346,7 @@ QFusionStylePrivate::QFusionStylePrivate() \brief The QFusionStyle class provides a custom widget style \inmodule QtWidgets + \internal The Fusion style provides a custom look and feel that is not tied to a particular platform. diff --git a/src/widgets/styles/qfusionstyle.h b/src/widgets/styles/qfusionstyle.h deleted file mode 100644 index 927ba32342..0000000000 --- a/src/widgets/styles/qfusionstyle.h +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QFUSIONSTYLE_H -#define QFUSIONSTYLE_H - -#include <QtWidgets/qcommonstyle.h> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - - -#if !defined(QT_NO_STYLE_FUSION) - -class QFusionStylePrivate; -class Q_WIDGETS_EXPORT QFusionStyle : public QCommonStyle -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QFusionStyle) - -public: - QFusionStyle(); - ~QFusionStyle(); - - QPalette standardPalette () const; - void drawPrimitive(PrimitiveElement elem, - const QStyleOption *option, - QPainter *painter, const QWidget *widget = 0) const; - void drawControl(ControlElement ce, const QStyleOption *option, QPainter *painter, - const QWidget *widget) const; - int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; - void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, - QPainter *painter, const QWidget *widget) const; - QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const; - QSize sizeFromContents(ContentsType type, const QStyleOption *option, - const QSize &size, const QWidget *widget) const; - SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, - const QPoint &pt, const QWidget *w = 0) const; - QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, - SubControl sc, const QWidget *widget) const; - QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, - const QStyleOption *opt) const; - int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, - QStyleHintReturn *returnData = 0) const; - QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; - QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, - const QWidget *widget = 0) const; - QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, - const QWidget *widget = 0) const; - void drawItemPixmap(QPainter *painter, const QRect &rect, - int alignment, const QPixmap &pixmap) const; - void drawItemText(QPainter *painter, const QRect &rect, - int flags, const QPalette &pal, bool enabled, - const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; - void polish(QWidget *widget); - void polish(QApplication *app); - void polish(QPalette &pal); - void unpolish(QWidget *widget); - void unpolish(QApplication *app); - -protected: - QFusionStyle(QFusionStylePrivate &dd); - -}; - -#endif // QT_NO_STYLE_FUSION - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QFUSIONSTYLE_H diff --git a/src/widgets/styles/qfusionstyle_p.h b/src/widgets/styles/qfusionstyle_p.h index affb85bbb1..f6b2afcb35 100644 --- a/src/widgets/styles/qfusionstyle_p.h +++ b/src/widgets/styles/qfusionstyle_p.h @@ -42,112 +42,70 @@ #ifndef QFUSIONSTYLE_P_H #define QFUSIONSTYLE_P_H -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header -// file may change from version to version without notice, or even be removed. -// -// We mean it. -// +#include <QtWidgets/qcommonstyle.h> -#include "qcommonstyle.h" -#include "qcommonstyle_p.h" -#include <qpa/qplatformtheme.h> -#include "private/qguiapplication_p.h" - -#ifndef QT_NO_STYLE_FUSION +QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QFusionStylePrivate : public QCommonStylePrivate -{ - Q_DECLARE_PUBLIC(QFusionStyle) - -public: - QFusionStylePrivate(); - - // Used for grip handles - QColor lightShade() const { - return QColor(255, 255, 255, 90); - } - QColor darkShade() const { - return QColor(0, 0, 0, 60); - } - - QColor topShadow() const { - return QColor(0, 0, 0, 18); - } - - QColor innerContrastLine() const { - return QColor(255, 255, 255, 30); - } - - // On mac we want a standard blue color used when the system palette is used - bool isMacSystemPalette(const QPalette &pal) const { - Q_UNUSED(pal); -#ifdef Q_OS_MAC - const QPalette *themePalette = QGuiApplicationPrivate::platformTheme()->palette(); - if (themePalette->color(QPalette::Normal, QPalette::Highlight) == - pal.color(QPalette::Normal, QPalette::Highlight) && - themePalette->color(QPalette::Normal, QPalette::HighlightedText) == - pal.color(QPalette::Normal, QPalette::HighlightedText)) - return true; -#endif - return false; - } - QColor highlight(const QPalette &pal) const { - if (isMacSystemPalette(pal)) - return QColor(60, 140, 230); - return pal.color(QPalette::Active, QPalette::Highlight); - } +#if !defined(QT_NO_STYLE_FUSION) - QColor highlightedText(const QPalette &pal) const { - if (isMacSystemPalette(pal)) - return Qt::white; - return pal.color(QPalette::Active, QPalette::HighlightedText); - } - - QColor outline(const QPalette &pal) const { - if (!pal.window().texture().isNull()) - return QColor(0, 0, 0, 160); - return pal.background().color().darker(140); - } - - QColor highlightedOutline(const QPalette &pal) const { - QColor highlightedOutline = highlight(pal).darker(125); - if (highlightedOutline.value() > 160) - highlightedOutline.setHsl(highlightedOutline.hue(), highlightedOutline.saturation(), 160); - return highlightedOutline; - } - - QColor tabFrameColor(const QPalette &pal) const { - if (!pal.button().texture().isNull()) - return QColor(255, 255, 255, 8); - return buttonColor(pal).lighter(104); - } +class QFusionStylePrivate; +class QFusionStyle : public QCommonStyle +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QFusionStyle) - QColor buttonColor(const QPalette &pal) const { - QColor buttonColor = pal.button().color(); - int val = qGray(buttonColor.rgb()); - buttonColor = buttonColor.lighter(100 + qMax(1, (180 - val)/6)); - buttonColor.setHsv(buttonColor.hue(), buttonColor.saturation() * 0.75, buttonColor.value()); - return buttonColor; - } +public: + QFusionStyle(); + ~QFusionStyle(); + + QPalette standardPalette () const; + void drawPrimitive(PrimitiveElement elem, + const QStyleOption *option, + QPainter *painter, const QWidget *widget = 0) const; + void drawControl(ControlElement ce, const QStyleOption *option, QPainter *painter, + const QWidget *widget) const; + int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; + void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, + QPainter *painter, const QWidget *widget) const; + QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const; + QSize sizeFromContents(ContentsType type, const QStyleOption *option, + const QSize &size, const QWidget *widget) const; + SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, + const QPoint &pt, const QWidget *w = 0) const; + QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, + SubControl sc, const QWidget *widget) const; + QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, + const QStyleOption *opt) const; + int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, + QStyleHintReturn *returnData = 0) const; + QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; + QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, + const QWidget *widget = 0) const; + QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, + const QWidget *widget = 0) const; + void drawItemPixmap(QPainter *painter, const QRect &rect, + int alignment, const QPixmap &pixmap) const; + void drawItemText(QPainter *painter, const QRect &rect, + int flags, const QPalette &pal, bool enabled, + const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; + void polish(QWidget *widget); + void polish(QApplication *app); + void polish(QPalette &pal); + void unpolish(QWidget *widget); + void unpolish(QApplication *app); + +protected: + QFusionStyle(QFusionStylePrivate &dd); - enum { - menuItemHMargin = 3, // menu item hor text margin - menuArrowHMargin = 6, // menu arrow horizontal margin - menuRightBorder = 15, // right border on menus - menuCheckMarkWidth = 12 // checkmarks width on menus - }; }; +#endif // QT_NO_STYLE_FUSION + QT_END_NAMESPACE -#endif // QT_NO_STYLE_FUSION +QT_END_HEADER #endif //QFUSIONSTYLE_P_H diff --git a/src/widgets/styles/qfusionstyle_p_p.h b/src/widgets/styles/qfusionstyle_p_p.h new file mode 100644 index 0000000000..1098ad5b87 --- /dev/null +++ b/src/widgets/styles/qfusionstyle_p_p.h @@ -0,0 +1,153 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QFUSIONSTYLE_P_P_H +#define QFUSIONSTYLE_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#include "qcommonstyle.h" +#include "qcommonstyle_p.h" +#include <qpa/qplatformtheme.h> +#include "private/qguiapplication_p.h" + +#ifndef QT_NO_STYLE_FUSION + +QT_BEGIN_NAMESPACE + +class QFusionStylePrivate : public QCommonStylePrivate +{ + Q_DECLARE_PUBLIC(QFusionStyle) + +public: + QFusionStylePrivate(); + + // Used for grip handles + QColor lightShade() const { + return QColor(255, 255, 255, 90); + } + QColor darkShade() const { + return QColor(0, 0, 0, 60); + } + + QColor topShadow() const { + return QColor(0, 0, 0, 18); + } + + QColor innerContrastLine() const { + return QColor(255, 255, 255, 30); + } + + // On mac we want a standard blue color used when the system palette is used + bool isMacSystemPalette(const QPalette &pal) const { + Q_UNUSED(pal); +#ifdef Q_OS_MAC + const QPalette *themePalette = QGuiApplicationPrivate::platformTheme()->palette(); + if (themePalette->color(QPalette::Normal, QPalette::Highlight) == + pal.color(QPalette::Normal, QPalette::Highlight) && + themePalette->color(QPalette::Normal, QPalette::HighlightedText) == + pal.color(QPalette::Normal, QPalette::HighlightedText)) + return true; +#endif + return false; + } + + QColor highlight(const QPalette &pal) const { + if (isMacSystemPalette(pal)) + return QColor(60, 140, 230); + return pal.color(QPalette::Active, QPalette::Highlight); + } + + QColor highlightedText(const QPalette &pal) const { + if (isMacSystemPalette(pal)) + return Qt::white; + return pal.color(QPalette::Active, QPalette::HighlightedText); + } + + QColor outline(const QPalette &pal) const { + if (!pal.window().texture().isNull()) + return QColor(0, 0, 0, 160); + return pal.background().color().darker(140); + } + + QColor highlightedOutline(const QPalette &pal) const { + QColor highlightedOutline = highlight(pal).darker(125); + if (highlightedOutline.value() > 160) + highlightedOutline.setHsl(highlightedOutline.hue(), highlightedOutline.saturation(), 160); + return highlightedOutline; + } + + QColor tabFrameColor(const QPalette &pal) const { + if (!pal.button().texture().isNull()) + return QColor(255, 255, 255, 8); + return buttonColor(pal).lighter(104); + } + + QColor buttonColor(const QPalette &pal) const { + QColor buttonColor = pal.button().color(); + int val = qGray(buttonColor.rgb()); + buttonColor = buttonColor.lighter(100 + qMax(1, (180 - val)/6)); + buttonColor.setHsv(buttonColor.hue(), buttonColor.saturation() * 0.75, buttonColor.value()); + return buttonColor; + } + + enum { + menuItemHMargin = 3, // menu item hor text margin + menuArrowHMargin = 6, // menu arrow horizontal margin + menuRightBorder = 15, // right border on menus + menuCheckMarkWidth = 12 // checkmarks width on menus + }; +}; + +QT_END_NAMESPACE + +#endif // QT_NO_STYLE_FUSION + +#endif //QFUSIONSTYLE_P_P_H diff --git a/src/widgets/styles/qstylefactory.cpp b/src/widgets/styles/qstylefactory.cpp index 56633bdd3f..5cdc9678af 100644 --- a/src/widgets/styles/qstylefactory.cpp +++ b/src/widgets/styles/qstylefactory.cpp @@ -47,7 +47,7 @@ #include "qapplication.h" #include "qwindowsstyle.h" #ifndef QT_NO_STYLE_FUSION -#include "qfusionstyle.h" +#include "qfusionstyle_p.h" #endif #ifndef QT_NO_STYLE_GTK #include "qgtkstyle_p.h" diff --git a/src/widgets/styles/styles.pri b/src/widgets/styles/styles.pri index efe241c48d..f7e51005ca 100644 --- a/src/widgets/styles/styles.pri +++ b/src/widgets/styles/styles.pri @@ -112,8 +112,8 @@ contains( styles, gtk ) { DEFINES += QT_NO_STYLE_GTK } contains( styles, fusion ) { - HEADERS += styles/qfusionstyle.h HEADERS += styles/qfusionstyle_p.h + HEADERS += styles/qfusionstyle_p_p.h SOURCES += styles/qfusionstyle.cpp } else { DEFINES += QT_NO_STYLE_FUSION |