Make QScopedPointer::operator== and != non-member
[qt-netbsd.git] / examples / widgets / windowflags / controllerwindow.cpp
blobdb17c7656178524c79de9c102a30286a04b8cc71
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the examples of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #include <QtGui>
44 #include "controllerwindow.h"
46 //! [0]
47 ControllerWindow::ControllerWindow()
49 previewWindow = new PreviewWindow(this);
51 createTypeGroupBox();
52 createHintsGroupBox();
54 quitButton = new QPushButton(tr("&Quit"));
55 connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
57 QHBoxLayout *bottomLayout = new QHBoxLayout;
58 bottomLayout->addStretch();
59 bottomLayout->addWidget(quitButton);
61 QVBoxLayout *mainLayout = new QVBoxLayout;
62 mainLayout->addWidget(typeGroupBox);
63 mainLayout->addWidget(hintsGroupBox);
64 mainLayout->addLayout(bottomLayout);
65 setLayout(mainLayout);
67 setWindowTitle(tr("Window Flags"));
68 updatePreview();
70 //! [0]
72 //! [1]
73 void ControllerWindow::updatePreview()
75 Qt::WindowFlags flags = 0;
77 if (windowRadioButton->isChecked()) {
78 flags = Qt::Window;
79 } else if (dialogRadioButton->isChecked()) {
80 flags = Qt::Dialog;
81 } else if (sheetRadioButton->isChecked()) {
82 flags = Qt::Sheet;
83 } else if (drawerRadioButton->isChecked()) {
84 flags = Qt::Drawer;
85 } else if (popupRadioButton->isChecked()) {
86 flags = Qt::Popup;
87 } else if (toolRadioButton->isChecked()) {
88 flags = Qt::Tool;
89 } else if (toolTipRadioButton->isChecked()) {
90 flags = Qt::ToolTip;
91 } else if (splashScreenRadioButton->isChecked()) {
92 flags = Qt::SplashScreen;
93 //! [1] //! [2]
95 //! [2] //! [3]
97 if (msWindowsFixedSizeDialogCheckBox->isChecked())
98 flags |= Qt::MSWindowsFixedSizeDialogHint;
99 if (x11BypassWindowManagerCheckBox->isChecked())
100 flags |= Qt::X11BypassWindowManagerHint;
101 if (framelessWindowCheckBox->isChecked())
102 flags |= Qt::FramelessWindowHint;
103 if (windowTitleCheckBox->isChecked())
104 flags |= Qt::WindowTitleHint;
105 if (windowSystemMenuCheckBox->isChecked())
106 flags |= Qt::WindowSystemMenuHint;
107 if (windowMinimizeButtonCheckBox->isChecked())
108 flags |= Qt::WindowMinimizeButtonHint;
109 if (windowMaximizeButtonCheckBox->isChecked())
110 flags |= Qt::WindowMaximizeButtonHint;
111 if (windowCloseButtonCheckBox->isChecked())
112 flags |= Qt::WindowCloseButtonHint;
113 if (windowContextHelpButtonCheckBox->isChecked())
114 flags |= Qt::WindowContextHelpButtonHint;
115 if (windowShadeButtonCheckBox->isChecked())
116 flags |= Qt::WindowShadeButtonHint;
117 if (windowStaysOnTopCheckBox->isChecked())
118 flags |= Qt::WindowStaysOnTopHint;
119 if (windowStaysOnBottomCheckBox->isChecked())
120 flags |= Qt::WindowStaysOnBottomHint;
121 if (customizeWindowHintCheckBox->isChecked())
122 flags |= Qt::CustomizeWindowHint;
124 previewWindow->setWindowFlags(flags);
125 //! [3] //! [4]
127 QPoint pos = previewWindow->pos();
128 if (pos.x() < 0)
129 pos.setX(0);
130 if (pos.y() < 0)
131 pos.setY(0);
132 previewWindow->move(pos);
133 previewWindow->show();
135 //! [4]
137 //! [5]
138 void ControllerWindow::createTypeGroupBox()
140 typeGroupBox = new QGroupBox(tr("Type"));
142 windowRadioButton = createRadioButton(tr("Window"));
143 dialogRadioButton = createRadioButton(tr("Dialog"));
144 sheetRadioButton = createRadioButton(tr("Sheet"));
145 drawerRadioButton = createRadioButton(tr("Drawer"));
146 popupRadioButton = createRadioButton(tr("Popup"));
147 toolRadioButton = createRadioButton(tr("Tool"));
148 toolTipRadioButton = createRadioButton(tr("Tooltip"));
149 splashScreenRadioButton = createRadioButton(tr("Splash screen"));
150 windowRadioButton->setChecked(true);
152 QGridLayout *layout = new QGridLayout;
153 layout->addWidget(windowRadioButton, 0, 0);
154 layout->addWidget(dialogRadioButton, 1, 0);
155 layout->addWidget(sheetRadioButton, 2, 0);
156 layout->addWidget(drawerRadioButton, 3, 0);
157 layout->addWidget(popupRadioButton, 0, 1);
158 layout->addWidget(toolRadioButton, 1, 1);
159 layout->addWidget(toolTipRadioButton, 2, 1);
160 layout->addWidget(splashScreenRadioButton, 3, 1);
161 typeGroupBox->setLayout(layout);
163 //! [5]
165 //! [6]
166 void ControllerWindow::createHintsGroupBox()
168 hintsGroupBox = new QGroupBox(tr("Hints"));
170 msWindowsFixedSizeDialogCheckBox =
171 createCheckBox(tr("MS Windows fixed size dialog"));
172 x11BypassWindowManagerCheckBox =
173 createCheckBox(tr("X11 bypass window manager"));
174 framelessWindowCheckBox = createCheckBox(tr("Frameless window"));
175 windowTitleCheckBox = createCheckBox(tr("Window title"));
176 windowSystemMenuCheckBox = createCheckBox(tr("Window system menu"));
177 windowMinimizeButtonCheckBox = createCheckBox(tr("Window minimize button"));
178 windowMaximizeButtonCheckBox = createCheckBox(tr("Window maximize button"));
179 windowCloseButtonCheckBox = createCheckBox(tr("Window close button"));
180 windowContextHelpButtonCheckBox =
181 createCheckBox(tr("Window context help button"));
182 windowShadeButtonCheckBox = createCheckBox(tr("Window shade button"));
183 windowStaysOnTopCheckBox = createCheckBox(tr("Window stays on top"));
184 windowStaysOnBottomCheckBox = createCheckBox(tr("Window stays on bottom"));
185 customizeWindowHintCheckBox= createCheckBox(tr("Customize window"));
187 QGridLayout *layout = new QGridLayout;
188 layout->addWidget(msWindowsFixedSizeDialogCheckBox, 0, 0);
189 layout->addWidget(x11BypassWindowManagerCheckBox, 1, 0);
190 layout->addWidget(framelessWindowCheckBox, 2, 0);
191 layout->addWidget(windowTitleCheckBox, 3, 0);
192 layout->addWidget(windowSystemMenuCheckBox, 4, 0);
193 layout->addWidget(windowMinimizeButtonCheckBox, 0, 1);
194 layout->addWidget(windowMaximizeButtonCheckBox, 1, 1);
195 layout->addWidget(windowCloseButtonCheckBox, 2, 1);
196 layout->addWidget(windowContextHelpButtonCheckBox, 3, 1);
197 layout->addWidget(windowShadeButtonCheckBox, 4, 1);
198 layout->addWidget(windowStaysOnTopCheckBox, 5, 1);
199 layout->addWidget(windowStaysOnBottomCheckBox, 6, 1);
200 layout->addWidget(customizeWindowHintCheckBox, 5, 0);
201 hintsGroupBox->setLayout(layout);
203 //! [6]
205 //! [7]
206 QCheckBox *ControllerWindow::createCheckBox(const QString &text)
208 QCheckBox *checkBox = new QCheckBox(text);
209 connect(checkBox, SIGNAL(clicked()), this, SLOT(updatePreview()));
210 return checkBox;
212 //! [7]
214 //! [8]
215 QRadioButton *ControllerWindow::createRadioButton(const QString &text)
217 QRadioButton *button = new QRadioButton(text);
218 connect(button, SIGNAL(clicked()), this, SLOT(updatePreview()));
219 return button;
221 //! [8]