1// Copyright (C) 2016 The Qt Company Ltd.
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 QWINDOWSSTYLE_P_P_H
5#define QWINDOWSSTYLE_P_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 qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header
13// file may change from version to version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include "qwindowsstyle_p.h"
20#include "qcommonstyle_p.h"
21
22#if QT_CONFIG(style_windows)
23#include <qlist.h>
24
25QT_BEGIN_NAMESPACE
26
27class QTime;
28
29class Q_WIDGETS_EXPORT QWindowsStylePrivate : public QCommonStylePrivate
30{
31 Q_DECLARE_PUBLIC(QWindowsStyle)
32public:
33 enum { InvalidMetric = -23576 };
34
35 QWindowsStylePrivate();
36 static int pixelMetricFromSystemDp(QStyle::PixelMetric pm, const QStyleOption *option = nullptr, const QWidget *widget = nullptr);
37 static int fixedPixelMetric(QStyle::PixelMetric pm);
38 static qreal devicePixelRatio(const QWidget *widget = nullptr)
39 { return widget ? widget->devicePixelRatio() : QWindowsStylePrivate::appDevicePixelRatio(); }
40 static qreal nativeMetricScaleFactor(const QWidget *widget = nullptr);
41
42 bool hasSeenAlt(const QWidget *widget) const;
43 bool altDown() const { return alt_down; }
44 bool alt_down = false;
45 QList<const QWidget *> seenAlt;
46 int menuBarTimer = 0;
47
48 QColor inactiveCaptionText;
49 QColor activeCaptionColor;
50 QColor activeGradientCaptionColor;
51 QColor inactiveCaptionColor;
52 QColor inactiveGradientCaptionColor;
53
54 enum {
55 windowsItemFrame = 2, // menu item frame width
56 windowsSepHeight = 9, // separator item height
57 windowsItemHMargin = 3, // menu item hor text margin
58 windowsItemVMargin = 2, // menu item ver text margin
59 windowsArrowHMargin = 6, // arrow horizontal margin
60 windowsRightBorder = 15, // right border on windows
61 windowsCheckMarkWidth = 12 // checkmarks width on windows
62 };
63
64private:
65 static qreal appDevicePixelRatio();
66};
67
68QT_END_NAMESPACE
69
70#endif // style_windows
71
72#endif //QWINDOWSSTYLE_P_P_H
73;
74

source code of qtbase/src/widgets/styles/qwindowsstyle_p_p.h