Made QWindowsCEStyle internal

We will take this opportynity to remove various QStyle specializations
from the public API in Qt5. This gives us much more freedom, for
example changing the inheritance hierarchy, pluginizing etc. without
worrying about BC.

=> Use QStyleFactory and/or QProxyStyle instead of creating an instance
or inheriting QWindowsCEStyle directly.

Change-Id: I6b3c0554e7a2a4a5f0027f4ea1342fd332af89ad
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
This commit is contained in:
J-P Nurmi 2012-11-20 13:41:59 +01:00 committed by The Qt Project
parent 96f17a061a
commit 4fb0e52515
7 changed files with 166 additions and 168 deletions

View File

@ -59,7 +59,7 @@
#include "qwindowsvistastyle_p.h"
#endif
#ifndef QT_NO_STYLE_WINDOWSCE
#include "qwindowscestyle.h"
#include "qwindowscestyle_p.h"
#endif
#ifndef QT_NO_STYLE_WINDOWSMOBILE
#include "qwindowsmobilestyle.h"

View File

@ -39,7 +39,7 @@
**
****************************************************************************/
#include "qwindowscestyle.h"
#include "qwindowscestyle_p.h"
#if !defined(QT_NO_STYLE_WINDOWSCE) || defined(QT_PLUGIN)
@ -50,7 +50,7 @@
#include "qpaintengine.h"
#include "qpainter.h"
#include "qstyleoption.h"
#include "qwindowscestyle_p.h"
#include "qwindowscestyle_p_p.h"
#include "qdebug.h"
#include "qdrawutil.h"

View File

@ -1,103 +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 QWINDOWSCESTYLE_H
#define QWINDOWSCESTYLE_H
#include <QtWidgets/qwindowsstyle.h>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if !defined(QT_NO_STYLE_WINDOWSCE)
class Q_WIDGETS_EXPORT QWindowsCEStyle : public QWindowsStyle
{
Q_OBJECT
public:
QWindowsCEStyle();
~QWindowsCEStyle();
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget = 0) const;
void drawControl(ControlElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const;
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
QPainter *painter, const QWidget *widget) const;
virtual void drawItemText(QPainter *painter, const QRect &rect,
int flags, const QPalette &pal, bool enabled,
const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
const QSize &size, const QWidget *widget) const;
QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
SubControl sc, const QWidget *widget) const;
SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
const QPoint &pos, const QWidget *widget = 0) const;
QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
const QWidget *widget = 0) const;
int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
int styleHint(StyleHint hint, const QStyleOption *opt = 0, const QWidget *widget = 0,
QStyleHintReturn *returnData = 0) const;
void polish(QWidget *widget);
void polish(QPalette &palette);
void polish(QApplication *app);
QPalette standardPalette() const;
};
#endif // QT_NO_STYLE_WINDOWSCE
QT_END_NAMESPACE
QT_END_HEADER
#endif // QWINDOWSCESTYLE_H

View File

@ -39,80 +39,65 @@
**
****************************************************************************/
#ifndef QWINDOWSCE_P_H
#define QWINDOWSCE_P_H
#ifndef QWINDOWSCESTYLE_P_H
#define QWINDOWSCESTYLE_P_H
#include "qwindowscestyle.h"
#include <private/qwindowsstyle_p.h>
#include <QtWidgets/qwindowsstyle.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.
//
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QPainter;
class QPalette;
class QPoint;
class QColor;
class QBrush;
class QRect;
// Private class
class QWindowsCEStylePrivate : public QWindowsStylePrivate
{
Q_DECLARE_PUBLIC(QWindowsCEStyle)
#if !defined(QT_NO_STYLE_WINDOWSCE)
class QWindowsCEStyle : public QWindowsStyle
{
Q_OBJECT
public:
inline QWindowsCEStylePrivate()
{ }
QWindowsCEStyle();
~QWindowsCEStyle();
static void drawWinCEButton(QPainter *p, int x, int y, int w, int h,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget = 0) const;
static void drawWinCEButton(QPainter *p, const QRect &r,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
void drawControl(ControlElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const;
static void drawWinCEPanel(QPainter *p, int x, int y, int w, int h,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
QPainter *painter, const QWidget *widget) const;
static void drawWinCEPanel(QPainter *p, const QRect &r,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
virtual void drawItemText(QPainter *painter, const QRect &rect,
int flags, const QPalette &pal, bool enabled,
const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
static void drawWinShades(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
const QSize &size, const QWidget *widget) const;
static void drawWinCEShades(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
static void drawWinCEShadesSunken(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
SubControl sc, const QWidget *widget) const;
SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
const QPoint &pos, const QWidget *widget = 0) const;
QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
const QWidget *widget = 0) const;
int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
int styleHint(StyleHint hint, const QStyleOption *opt = 0, const QWidget *widget = 0,
QStyleHintReturn *returnData = 0) const;
void polish(QWidget *widget);
void polish(QPalette &palette);
void polish(QApplication *app);
QPalette standardPalette() const;
};
#endif // QT_NO_STYLE_WINDOWSCE
QT_END_NAMESPACE
#endif //QWINDOWSCE_P_H
QT_END_HEADER
#endif // QWINDOWSCESTYLE_P_H

View File

@ -0,0 +1,118 @@
/****************************************************************************
**
** 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 QWINDOWSCESTYLE_P_P_H
#define QWINDOWSCESTYLE_P_P_H
#include "qwindowscestyle_p.h"
#include <private/qwindowsstyle_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.
//
QT_BEGIN_NAMESPACE
class QPainter;
class QPalette;
class QPoint;
class QColor;
class QBrush;
class QRect;
// Private class
class QWindowsCEStylePrivate : public QWindowsStylePrivate
{
Q_DECLARE_PUBLIC(QWindowsCEStyle)
public:
inline QWindowsCEStylePrivate()
{ }
static void drawWinCEButton(QPainter *p, int x, int y, int w, int h,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
static void drawWinCEButton(QPainter *p, const QRect &r,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
static void drawWinCEPanel(QPainter *p, int x, int y, int w, int h,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
static void drawWinCEPanel(QPainter *p, const QRect &r,
const QPalette &pal, bool sunken = false,
const QBrush *fill = 0);
static void drawWinShades(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
static void drawWinCEShades(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
static void drawWinCEShadesSunken(QPainter *p,
int x, int y, int w, int h,
const QColor &c1, const QColor &c2,
const QColor &c3, const QColor &c4,
const QBrush *fill);
};
QT_END_NAMESPACE
#endif //QWINDOWSCESTYLE_P_P_H

View File

@ -121,7 +121,8 @@ contains( styles, fusion ) {
}
contains( styles, windowsce ) {
HEADERS += styles/qwindowscestyle.h
HEADERS += styles/qwindowscestyle_p.h
HEADERS += styles/qwindowscestyle_p_p.h
SOURCES += styles/qwindowscestyle.cpp
} else {
DEFINES += QT_NO_STYLE_WINDOWSCE

View File

@ -75,10 +75,6 @@
#include <QMacStyle>
#endif
#ifdef Q_OS_WINCE
#include <QWindowsCEStyle>
#endif
#ifdef Q_OS_WINCE_WM
#include <QWindowsMobileStyle>
#include <windows.h>
@ -541,8 +537,9 @@ void tst_QStyle::testMacStyle()
// WindowsCEStyle style
void tst_QStyle::testWindowsCEStyle()
{
QWindowsCEStyle cstyle;
QStyle *cstyle = QStyleFactory::create("WindowsCE");
QVERIFY(testAllFunctions(&cstyle));
delete cstyle;
}
#endif