Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qandroidstyle_p.h
Go to the documentation of this file.
1// Copyright (C) 2013 BogDan Vatra <bogdan@kde.org>
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QANDROIDSTYLE_P_H
5#define QANDROIDSTYLE_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists for the convenience
12// of qstylefactory.cpp. This header may change from version to version
13// without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include <QtWidgets/private/qfusionstyle_p.h>
20#include <QtCore/QList>
21#include <QtCore/QMargins>
22#include <QtCore/QHash>
23#include <QtCore/QVariantMap>
24
26
27class Q_WIDGETS_EXPORT QAndroidStyle : public QFusionStyle
28{
30
31public:
53
55 {
56 QList<int> xDivs;
57 QList<int> yDivs;
58 QList<int> colors;
59 };
60
71
82
84 {
85 public:
86 AndroidDrawable(const QVariantMap &drawable, ItemType itemType);
87 virtual ~AndroidDrawable();
88 virtual void initPadding(const QVariantMap &drawable);
89 virtual AndroidDrawableType type() const = 0;
90 virtual void draw(QPainter *painter,const QStyleOption *opt) const = 0;
91 const QMargins &padding() const;
92 virtual QSize size() const;
93 static AndroidDrawable *fromMap(const QVariantMap &drawable, ItemType itemType);
94 static QMargins extractMargins(const QVariantMap &value);
95 virtual void setPaddingLeftToSizeWidth();
96 protected:
99 };
100
102 {
103 public:
104 AndroidColorDrawable(const QVariantMap &drawable, ItemType itemType);
105 virtual AndroidDrawableType type() const;
106 virtual void draw(QPainter *painter,const QStyleOption *opt) const;
107
108 protected:
110 };
111
113 {
114 public:
115 AndroidImageDrawable(const QVariantMap &drawable, ItemType itemType);
116 virtual AndroidDrawableType type() const;
117 virtual void draw(QPainter *painter,const QStyleOption *opt) const;
118 virtual QSize size() const;
119
120 protected:
124 };
125
127 {
128 public:
129 Android9PatchDrawable(const QVariantMap &drawable, ItemType itemType);
130 virtual AndroidDrawableType type() const;
131 virtual void draw(QPainter *painter, const QStyleOption *opt) const;
132 private:
133 static int calculateStretch(int boundsLimit, int startingPoint,
134 int srcSpace, int numStrechyPixelsRemaining,
135 int numFixedPixelsRemaining);
136 void extractIntArray(const QVariantList &values, QList<int> &array);
137 private:
138 Android9PatchChunk m_chunkData;
139 };
140
142 {
143 public:
155
156 public:
157 AndroidGradientDrawable(const QVariantMap &drawable, ItemType itemType);
158 virtual AndroidDrawableType type() const;
159 virtual void draw(QPainter *painter, const QStyleOption *opt) const;
160 QSize size() const;
161 private:
162 mutable QLinearGradient m_gradient;
163 GradientOrientation m_orientation;
164 int m_radius;
165 };
166
168 {
169 public:
170 AndroidClipDrawable(const QVariantMap &drawable, ItemType itemType);
172 virtual AndroidDrawableType type() const;
173 virtual void setFactor(double factor, Qt::Orientation orientation);
174 virtual void draw(QPainter *painter, const QStyleOption *opt) const;
175
176 private:
177 double m_factor;
178 Qt::Orientation m_orientation;
179 const AndroidDrawable *m_drawable;
180 };
181
183 {
184 public:
185 AndroidStateDrawable(const QVariantMap &drawable, ItemType itemType);
187 virtual AndroidDrawableType type() const;
188 virtual void draw(QPainter *painter, const QStyleOption *opt) const;
189 inline const AndroidDrawable *bestAndroidStateMatch(const QStyleOption *opt) const;
190 static int extractState(const QVariantMap &value);
191 virtual void setPaddingLeftToSizeWidth();
192 QSize sizeImage(const QStyleOption *opt) const;
193 private:
194 typedef QPair<int, const AndroidDrawable *> StateType;
195 QList<StateType> m_states;
196 };
197
199 {
200 public:
203 virtual AndroidDrawableType type() const;
204 virtual void setFactor(int id, double factor, Qt::Orientation orientation);
205 virtual void draw(QPainter *painter, const QStyleOption *opt) const;
206 AndroidDrawable *layer(int id) const;
207 QSize size() const;
208 private:
209 typedef QPair<int, AndroidDrawable *> LayerType;
210 QList<LayerType> m_layers;
211 int m_id;
212 double m_factor;
213 Qt::Orientation m_orientation;
214 };
215
217 {
218 public:
219 AndroidControl(const QVariantMap &control, ItemType itemType);
220 virtual ~AndroidControl();
221 virtual void drawControl(const QStyleOption *opt, QPainter *p, const QWidget *w);
222 virtual QRect subElementRect(SubElement subElement,
223 const QStyleOption *option,
224 const QWidget *widget = nullptr) const;
225 virtual QRect subControlRect(const QStyleOptionComplex *option,
226 SubControl sc,
227 const QWidget *widget = nullptr) const;
228 virtual QSize sizeFromContents(const QStyleOption *opt,
229 const QSize &contentsSize,
230 const QWidget *w) const;
231 virtual QMargins padding();
232 virtual QSize size(const QStyleOption *option);
233 protected:
234 virtual const AndroidDrawable * backgroundDrawable() const;
238 };
239
241 {
242 public:
243 AndroidCompoundButtonControl(const QVariantMap &control, ItemType itemType);
245 virtual void drawControl(const QStyleOption *opt, QPainter *p, const QWidget *w);
246 virtual QMargins padding();
247 virtual QSize size(const QStyleOption *option);
248 protected:
249 virtual const AndroidDrawable * backgroundDrawable() const;
251 };
252
254 {
255 public:
256 AndroidProgressBarControl(const QVariantMap &control, ItemType itemType);
258 virtual void drawControl(const QStyleOption *option, QPainter *p, const QWidget *w);
259 virtual QRect subElementRect(SubElement subElement,
260 const QStyleOption *option,
261 const QWidget *widget = nullptr) const;
262
263 QSize sizeFromContents(const QStyleOption *opt,
264 const QSize &contentsSize,
265 const QWidget *w) const;
266 protected:
271 };
272
274 {
275 public:
276 AndroidSeekBarControl(const QVariantMap &control, ItemType itemType);
277 virtual ~AndroidSeekBarControl();
278 virtual void drawControl(const QStyleOption *option, QPainter *p, const QWidget *w);
279 QSize sizeFromContents(const QStyleOption *opt,
280 const QSize &contentsSize, const QWidget *w) const;
281 QRect subControlRect(const QStyleOptionComplex *option, SubControl sc,
282 const QWidget *widget = nullptr) const;
283 private:
284 AndroidDrawable *m_seekBarThumb;
285 };
286
288 {
289 public:
290 AndroidSpinnerControl(const QVariantMap &control, ItemType itemType);
292 virtual QRect subControlRect(const QStyleOptionComplex *option,
293 SubControl sc,
294 const QWidget *widget = nullptr) const;
295 };
296
297 typedef QList<AndroidItemStateInfo *> AndroidItemStateInfoList;
298
299public:
302
303 virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
304 const QWidget *w = nullptr) const;
305
306 virtual void drawControl(QStyle::ControlElement element, const QStyleOption *opt, QPainter *p,
307 const QWidget *w = nullptr) const;
308
309 virtual QRect subElementRect(SubElement subElement, const QStyleOption *option,
310 const QWidget *widget = nullptr) const;
311 virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
312 const QWidget *widget = nullptr) const;
313 virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
314 const QPoint &pt, const QWidget *widget = nullptr) const;
315 virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
316 SubControl sc, const QWidget *widget = nullptr) const;
317
318 virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr,
319 const QWidget *widget = nullptr) const;
320
321 virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
322 const QSize &contentsSize, const QWidget *w = nullptr) const;
323
324 virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt = nullptr,
325 const QWidget *widget = nullptr) const;
326
327 virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
328 const QStyleOption *opt) const;
329
330 int styleHint(StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr,
331 QStyleHintReturn *returnData = nullptr) const;
332
333 virtual QPalette standardPalette() const;
334 void polish(QWidget *widget);
335 void unpolish(QWidget *widget);
336
337private:
338 Q_DISABLE_COPY_MOVE(QAndroidStyle)
339 static ItemType qtControl(QStyle::ComplexControl control);
340 static ItemType qtControl(QStyle::ContentsType contentsType);
341 static ItemType qtControl(QStyle::ControlElement controlElement);
342 static ItemType qtControl(QStyle::PrimitiveElement primitiveElement);
343 static ItemType qtControl(QStyle::SubElement subElement);
344 static ItemType qtControl(const QString &android);
345
346private:
347 typedef QHash<int, AndroidControl *> AndroidControlsHash;
348 AndroidControlsHash m_androidControlsHash;
349 QPalette m_standardPalette;
350 AndroidCompoundButtonControl *checkBoxControl;
351};
352
354
355#endif // QANDROIDSTYLE_P_H
const AndroidDrawable * m_background
virtual AndroidDrawableType type() const =0
virtual void draw(QPainter *painter, const QStyleOption *opt) const =0
QList< AndroidItemStateInfo * > AndroidItemStateInfoList
\inmodule QtCore
Definition qbytearray.h:57
The QColor class provides colors based on RGB, HSV or CMYK values.
Definition qcolor.h:31
Mode
This enum type describes the mode for which a pixmap is intended to be used.
Definition qicon.h:22
\inmodule QtGui
Definition qbrush.h:394
\inmodule QtCore
Definition qmargins.h:24
The QPainter class performs low-level painting on widgets and other paint devices.
Definition qpainter.h:46
The QPalette class contains color groups for each widget state.
Definition qpalette.h:19
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
Definition qpixmap.h:27
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\variable QStyleOptionGraphicsItem::exposedRect
\variable QStyleOptionMenuItem::menuItemType
The QStyleOption class stores the parameters used by QStyle functions.
ContentsType
This enum describes the available contents types.
Definition qstyle.h:546
ControlElement
This enum represents a control element.
Definition qstyle.h:170
ComplexControl
This enum describes the available complex controls.
Definition qstyle.h:331
PrimitiveElement
This enum describes the various primitive elements.
Definition qstyle.h:102
SubElement
This enum represents a sub-area of a widget.
Definition qstyle.h:242
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
QOpenGLWidget * widget
[1]
drawPrimitive(PE_IndicatorCheckBox, &subopt, p, widget)
QStyleOptionButton opt
p drawControl(QStyle::CE_CheckBox, opt)
else opt state
[0]
Combined button and popup list for selecting options.
Orientation
Definition qnamespace.h:98
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
EGLOutputLayerEXT layer
GLenum GLsizei GLsizei GLint * values
[15]
GLfloat GLfloat GLfloat w
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum type
GLenum array
GLfloat GLfloat p
[1]
GLuint GLenum option
static QT_BEGIN_NAMESPACE QVariant hint(QPlatformIntegration::StyleHint h)
#define Q_OBJECT
myFilter draw(painter, QPoint(0, 0), originalPixmap)
widget render & pixmap
QPainter painter(this)
[7]