1
/****************************************************************************
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
6
** This file is part of the QtGui module of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
40
****************************************************************************/
42
#ifndef QMACSTYLE_MAC_P_H
43
#define QMACSTYLE_MAC_P_H
45
#include <QtWidgets/qcommonstyle.h>
52
#if defined(Q_OS_MAC) && !defined(QT_NO_STYLE_MAC)
57
class QStyleOptionButton;
58
class QMacStylePrivate;
59
class QMacStyle : public QCommonStyle
66
void polish(QWidget *w);
67
void unpolish(QWidget *w);
69
void polish(QApplication*);
70
void unpolish(QApplication*);
72
void polish(QPalette &pal);
74
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
75
const QWidget *w = 0) const;
76
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
77
const QWidget *w = 0) const;
78
QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const;
79
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
80
const QWidget *w = 0) const;
81
SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
82
const QPoint &pt, const QWidget *w = 0) const;
83
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc,
84
const QWidget *w = 0) const;
85
QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
86
const QSize &contentsSize, const QWidget *w = 0) const;
88
int pixelMetric(PixelMetric pm, const QStyleOption *opt = 0, const QWidget *widget = 0) const;
90
QPalette standardPalette() const;
92
virtual int styleHint(StyleHint sh, const QStyleOption *opt = 0, const QWidget *w = 0,
93
QStyleHintReturn *shret = 0) const;
95
enum FocusRectPolicy { FocusEnabled, FocusDisabled, FocusDefault };
96
static void setFocusRectPolicy(QWidget *w, FocusRectPolicy policy);
97
static FocusRectPolicy focusRectPolicy(const QWidget *w);
99
enum WidgetSizePolicy { SizeSmall, SizeLarge, SizeMini, SizeDefault
102
static void setWidgetSizePolicy(const QWidget *w, WidgetSizePolicy policy);
103
static WidgetSizePolicy widgetSizePolicy(const QWidget *w, const QStyleOption *opt = 0);
105
QPixmap standardPixmap(StandardPixmap sp, const QStyleOption *opt,
106
const QWidget *widget = 0) const;
108
QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
109
const QStyleOption *opt) const;
111
virtual void drawItemText(QPainter *p, const QRect &r, int flags, const QPalette &pal,
112
bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
114
bool event(QEvent *e);
116
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *opt = 0,
117
const QWidget *widget = 0) const;
118
int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2,
119
Qt::Orientation orientation, const QStyleOption *option = 0,
120
const QWidget *widget = 0) const;
123
Q_DISABLE_COPY(QMacStyle)
124
Q_DECLARE_PRIVATE(QMacStyle)
126
friend bool qt_mac_buttonIsRenderedFlat(const QPushButton *pushButton, const QStyleOptionButton *option);
135
#endif // QMACSTYLE_MAC_P_H