blob: d7b98a1ee72fb55da755a2365707e45b4ab8afbe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CONTROLS_H
#define CONTROLS_H
#include <QGroupBox>
QT_BEGIN_NAMESPACE
class QCheckBox;
class QRadioButton;
class QButtonGroup;
QT_END_NAMESPACE
enum { ControlLayoutMargin = 4 };
// Control for the hint part of Qt::WindowFlags
class HintControl : public QGroupBox
{
Q_OBJECT
public:
explicit HintControl(QWidget *parent= 0);
Qt::WindowFlags hints() const;
void setHints(Qt::WindowFlags hints);
signals:
void changed(Qt::WindowFlags);
private slots:
void slotCheckBoxChanged();
private:
QCheckBox *msWindowsFixedSizeDialogCheckBox;
QCheckBox *x11BypassWindowManagerCheckBox;
QCheckBox *framelessWindowCheckBox;
QCheckBox *windowTitleCheckBox;
QCheckBox *windowSystemMenuCheckBox;
QCheckBox *windowMinimizeButtonCheckBox;
QCheckBox *windowMaximizeButtonCheckBox;
QCheckBox *windowFullscreenButtonCheckBox;
QCheckBox *windowCloseButtonCheckBox;
QCheckBox *windowContextHelpButtonCheckBox;
QCheckBox *windowShadeButtonCheckBox;
QCheckBox *windowStaysOnTopCheckBox;
QCheckBox *windowStaysOnBottomCheckBox;
QCheckBox *customizeWindowHintCheckBox;
QCheckBox *transparentForInputCheckBox;
};
// Control for the Qt::WindowState enum, optional with a "visible" QCheckbox
class WindowStateControl : public QWidget {
Q_OBJECT
public:
explicit WindowStateControl(QWidget *parent= 0);
Qt::WindowStates state() const;
void setState(Qt::WindowStates s);
signals:
void stateChanged(int);
private:
QButtonGroup *group;
QCheckBox *restoreButton;
QCheckBox *minimizeButton;
QCheckBox *maximizeButton;
QCheckBox *fullscreenButton;
};
// Control for the Qt::WindowStates flags (normal, maximized, fullscreen exclusively
// combined with minimized and optionally, with a "visible" QCheckbox)
class WindowStatesControl : public QGroupBox
{
Q_OBJECT
public:
explicit WindowStatesControl(QWidget *parent= 0);
Qt::WindowStates states() const;
void setStates(Qt::WindowStates s);
bool visibleValue() const;
void setVisibleValue(bool);
bool activeValue() const;
void setActiveValue(bool v);
signals:
void changed();
private:
QCheckBox *visibleCheckBox;
QCheckBox *activeCheckBox;
WindowStateControl *stateControl;
};
// Control for the type part of Qt::WindowFlags
class TypeControl : public QGroupBox
{
Q_OBJECT
public:
explicit TypeControl(QWidget *parent= 0);
Qt::WindowFlags type() const;
void setType(Qt::WindowFlags);
signals:
void changed(Qt::WindowFlags);
private slots:
void slotChanged();
private:
QButtonGroup *group;
QRadioButton *windowRadioButton;
QRadioButton *dialogRadioButton;
QRadioButton *sheetRadioButton;
QRadioButton *drawerRadioButton;
QRadioButton *popupRadioButton;
QRadioButton *toolRadioButton;
QRadioButton *toolTipRadioButton;
QRadioButton *splashScreenRadioButton;
};
#endif // CONTROLS_H
|