1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
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 The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
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 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #ifndef QSTYLEHINTS_H
41 #define QSTYLEHINTS_H
42 
43 #include <QtGui/qtguiglobal.h>
44 #include <QtCore/qobject.h>
45 
46 QT_BEGIN_NAMESPACE
47 
48 
49 class QPlatformIntegration;
50 class QStyleHintsPrivate;
51 
52 class Q_GUI_EXPORT QStyleHints : public QObject
53 {
54     Q_OBJECT
55     Q_DECLARE_PRIVATE(QStyleHints)
56     Q_PROPERTY(int cursorFlashTime READ cursorFlashTime NOTIFY cursorFlashTimeChanged FINAL)
57     Q_PROPERTY(qreal fontSmoothingGamma READ fontSmoothingGamma STORED false CONSTANT FINAL)
58     Q_PROPERTY(int keyboardAutoRepeatRate READ keyboardAutoRepeatRate STORED false CONSTANT FINAL)
59     Q_PROPERTY(int keyboardInputInterval READ keyboardInputInterval NOTIFY keyboardInputIntervalChanged FINAL)
60     Q_PROPERTY(int mouseDoubleClickInterval READ mouseDoubleClickInterval NOTIFY mouseDoubleClickIntervalChanged FINAL)
61     Q_PROPERTY(int mousePressAndHoldInterval READ mousePressAndHoldInterval NOTIFY mousePressAndHoldIntervalChanged FINAL)
62     Q_PROPERTY(QChar passwordMaskCharacter READ passwordMaskCharacter STORED false CONSTANT FINAL)
63     Q_PROPERTY(int passwordMaskDelay READ passwordMaskDelay STORED false CONSTANT FINAL)
64     Q_PROPERTY(bool setFocusOnTouchRelease READ setFocusOnTouchRelease STORED false CONSTANT FINAL)
65     Q_PROPERTY(bool showIsFullScreen READ showIsFullScreen STORED false CONSTANT FINAL)
66     Q_PROPERTY(bool showIsMaximized READ showIsMaximized STORED false CONSTANT FINAL)
67     Q_PROPERTY(bool showShortcutsInContextMenus READ showShortcutsInContextMenus WRITE setShowShortcutsInContextMenus NOTIFY showShortcutsInContextMenusChanged FINAL)
68     Q_PROPERTY(int startDragDistance READ startDragDistance NOTIFY startDragDistanceChanged FINAL)
69     Q_PROPERTY(int startDragTime READ startDragTime NOTIFY startDragTimeChanged FINAL)
70     Q_PROPERTY(int startDragVelocity READ startDragVelocity STORED false CONSTANT FINAL)
71     Q_PROPERTY(bool useRtlExtensions READ useRtlExtensions STORED false CONSTANT FINAL)
72     Q_PROPERTY(Qt::TabFocusBehavior tabFocusBehavior READ tabFocusBehavior NOTIFY tabFocusBehaviorChanged FINAL)
73     Q_PROPERTY(bool singleClickActivation READ singleClickActivation STORED false CONSTANT FINAL)
74     Q_PROPERTY(bool useHoverEffects READ useHoverEffects WRITE setUseHoverEffects NOTIFY useHoverEffectsChanged FINAL)
75     Q_PROPERTY(int wheelScrollLines READ wheelScrollLines NOTIFY wheelScrollLinesChanged FINAL)
76     Q_PROPERTY(int mouseQuickSelectionThreshold READ mouseQuickSelectionThreshold WRITE setMouseQuickSelectionThreshold NOTIFY mouseQuickSelectionThresholdChanged FINAL)
77     Q_PROPERTY(int mouseDoubleClickDistance READ mouseDoubleClickDistance STORED false CONSTANT FINAL)
78     Q_PROPERTY(int touchDoubleTapDistance READ touchDoubleTapDistance STORED false CONSTANT FINAL)
79 
80 public:
81     void setMouseDoubleClickInterval(int mouseDoubleClickInterval);
82     int mouseDoubleClickInterval() const;
83     int mouseDoubleClickDistance() const;
84     int touchDoubleTapDistance() const;
85     void setMousePressAndHoldInterval(int mousePressAndHoldInterval);
86     int mousePressAndHoldInterval() const;
87     void setStartDragDistance(int startDragDistance);
88     int startDragDistance() const;
89     void setStartDragTime(int startDragTime);
90     int startDragTime() const;
91     int startDragVelocity() const;
92     void setKeyboardInputInterval(int keyboardInputInterval);
93     int keyboardInputInterval() const;
94     int keyboardAutoRepeatRate() const;
95     void setCursorFlashTime(int cursorFlashTime);
96     int cursorFlashTime() const;
97     bool showIsFullScreen() const;
98     bool showIsMaximized() const;
99     bool showShortcutsInContextMenus() const;
100     void setShowShortcutsInContextMenus(bool showShortcutsInContextMenus);
101     int passwordMaskDelay() const;
102     QChar passwordMaskCharacter() const;
103     qreal fontSmoothingGamma() const;
104     bool useRtlExtensions() const;
105     bool setFocusOnTouchRelease() const;
106     Qt::TabFocusBehavior tabFocusBehavior() const;
107     void setTabFocusBehavior(Qt::TabFocusBehavior tabFocusBehavior);
108     bool singleClickActivation() const;
109     bool useHoverEffects() const;
110     void setUseHoverEffects(bool useHoverEffects);
111     int wheelScrollLines() const;
112     void setWheelScrollLines(int scrollLines);
113     void setMouseQuickSelectionThreshold(int threshold);
114     int mouseQuickSelectionThreshold() const;
115 
116 Q_SIGNALS:
117     void cursorFlashTimeChanged(int cursorFlashTime);
118     void keyboardInputIntervalChanged(int keyboardInputInterval);
119     void mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval);
120     void mousePressAndHoldIntervalChanged(int mousePressAndHoldInterval);
121     void startDragDistanceChanged(int startDragDistance);
122     void startDragTimeChanged(int startDragTime);
123     void tabFocusBehaviorChanged(Qt::TabFocusBehavior tabFocusBehavior);
124     void useHoverEffectsChanged(bool useHoverEffects);
125     void showShortcutsInContextMenusChanged(bool);
126     void wheelScrollLinesChanged(int scrollLines);
127     void mouseQuickSelectionThresholdChanged(int threshold);
128 
129 private:
130     friend class QGuiApplication;
131     QStyleHints();
132 };
133 
134 QT_END_NAMESPACE
135 
136 #endif
137