1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the Qt 3 compatibility classes of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
29
#ifndef Q3MAINWINDOW_H
30
#define Q3MAINWINDOW_H
32
#include "QtGui/qwidget.h"
33
#include "Qt3Support/q3toolbar.h"
34
#include "QtCore/qtextstream.h"
36
#ifndef QT_NO_MAINWINDOW
41
class Q3MainWindowPrivate;
42
class Q3MainWindowLayout;
44
template<class T> class QList;
46
class Q_COMPAT_EXPORT Q3MainWindow: public QWidget
49
Q_DECLARE_PRIVATE(Q3MainWindow)
51
Q_PROPERTY(bool rightJustification READ rightJustification WRITE setRightJustification DESIGNABLE false)
52
Q_PROPERTY(bool usesBigPixmaps READ usesBigPixmaps WRITE setUsesBigPixmaps)
53
Q_PROPERTY(bool usesTextLabel READ usesTextLabel WRITE setUsesTextLabel)
54
Q_PROPERTY(bool dockWindowsMovable READ dockWindowsMovable WRITE setDockWindowsMovable)
55
Q_PROPERTY(bool opaqueMoving READ opaqueMoving WRITE setOpaqueMoving)
58
Q3MainWindow(QWidget* parent=0, const char* name=0, Qt::WFlags f = Qt::WType_TopLevel);
62
QMenuBar * menuBar() const;
64
QStatusBar * statusBar() const;
66
QToolTipGroup * toolTipGroup() const;
69
virtual void setCentralWidget(QWidget *);
70
QWidget * centralWidget() const;
72
virtual void setDockEnabled(Qt::Dock dock, bool enable);
73
bool isDockEnabled(Qt::Dock dock) const;
74
bool isDockEnabled(Q3DockArea *area) const;
75
virtual void setDockEnabled(Q3DockWindow *tb, Qt::Dock dock, bool enable);
76
bool isDockEnabled(Q3DockWindow *tb, Qt::Dock dock) const;
77
bool isDockEnabled(Q3DockWindow *tb, Q3DockArea *area) const;
79
virtual void addDockWindow(Q3DockWindow *, Qt::Dock = Qt::DockTop, bool newLine = false);
80
virtual void addDockWindow(Q3DockWindow *, const QString &label,
81
Qt::Dock = Qt::DockTop, bool newLine = false);
82
virtual void moveDockWindow(Q3DockWindow *, Qt::Dock = Qt::DockTop);
83
virtual void moveDockWindow(Q3DockWindow *, Qt::Dock, bool nl, int index, int extraOffset = -1);
84
virtual void removeDockWindow(Q3DockWindow *);
86
void setVisible(bool);
87
QSize sizeHint() const;
88
QSize minimumSizeHint() const;
90
bool rightJustification() const;
91
bool usesBigPixmaps() const;
92
bool usesTextLabel() const;
93
bool dockWindowsMovable() const;
94
bool opaqueMoving() const;
96
bool eventFilter(QObject*, QEvent*);
98
bool getLocation(Q3DockWindow *tb, Qt::Dock &dock, int &index, bool &nl, int &extraOffset) const;
100
QList<Q3DockWindow *> dockWindows(Qt::Dock dock) const;
101
QList<Q3DockWindow *> dockWindows() const;
102
void lineUpDockWindows(bool keepNewLines = false);
104
bool isDockMenuEnabled() const;
106
// compatibility stuff
107
bool hasDockWindow(Q3DockWindow *dw);
108
#ifndef QT_NO_TOOLBAR
109
void addToolBar(Q3DockWindow *, Qt::Dock = Qt::DockTop, bool newLine = false);
110
void addToolBar(Q3DockWindow *, const QString &label,
111
Qt::Dock = Qt::DockTop, bool newLine = false);
112
void moveToolBar(Q3DockWindow *, Qt::Dock = Qt::DockTop);
113
void moveToolBar(Q3DockWindow *, Qt::Dock, bool nl, int index, int extraOffset = -1);
114
void removeToolBar(Q3DockWindow *);
116
bool toolBarsMovable() const;
117
QList<Q3ToolBar *> toolBars(Qt::Dock dock) const;
118
void lineUpToolBars(bool keepNewLines = false);
121
virtual Q3DockArea *dockingArea(const QPoint &p);
122
Q3DockArea *leftDock() const;
123
Q3DockArea *rightDock() const;
124
Q3DockArea *topDock() const;
125
Q3DockArea *bottomDock() const;
127
virtual bool isCustomizable() const;
129
bool appropriate(Q3DockWindow *dw) const;
131
enum DockWindows { OnlyToolBars, NoToolBars, AllDockWindows };
132
virtual Q3PopupMenu *createDockWindowMenu(DockWindows dockWindows = AllDockWindows) const;
135
virtual void setRightJustification(bool);
136
virtual void setUsesBigPixmaps(bool);
137
virtual void setUsesTextLabel(bool);
138
virtual void setDockWindowsMovable(bool);
139
virtual void setOpaqueMoving(bool);
140
virtual void setDockMenuEnabled(bool);
141
virtual void whatsThis();
142
virtual void setAppropriate(Q3DockWindow *dw, bool a);
143
virtual void customize();
145
// compatibility stuff
146
void setToolBarsMovable(bool);
149
void pixmapSizeChanged(bool);
150
void usesTextLabelChanged(bool);
151
void dockWindowPositionChanged(Q3DockWindow *);
153
#ifndef QT_NO_TOOLBAR
154
// compatibility stuff
155
void toolBarPositionChanged(Q3ToolBar *);
159
virtual void setUpLayout();
160
virtual bool showDockMenu(const QPoint &globalPos);
163
void paintEvent(QPaintEvent *);
164
void childEvent(QChildEvent *);
165
bool event(QEvent *);
168
void slotPlaceChanged();
169
void doLineUp() { lineUpDockWindows(true); }
172
Q_DISABLE_COPY(Q3MainWindow)
174
void triggerLayout(bool deleteLayout = true);
175
bool dockMainWindow(QObject *dock) const;
177
#ifndef QT_NO_MENUBAR
178
virtual void setMenuBar(QMenuBar *);
180
virtual void setStatusBar(QStatusBar *);
182
virtual void setToolTipGroup(QToolTipGroup *);
185
friend class Q3DockWindow;
186
friend class QMenuBarPrivate;
187
friend class QHideDock;
188
friend class Q3ToolBar;
189
friend class Q3MainWindowLayout;
192
#ifndef QT_NO_TOOLBAR
193
inline void Q3MainWindow::addToolBar(Q3DockWindow *w, Qt::ToolBarDock dock, bool newLine)
195
addDockWindow(w, dock, newLine);
198
inline void Q3MainWindow::addToolBar(Q3DockWindow *w, const QString &label,
199
Qt::ToolBarDock dock, bool newLine)
201
addDockWindow(w, label, dock, newLine);
204
inline void Q3MainWindow::moveToolBar(Q3DockWindow *w, Qt::ToolBarDock dock)
206
moveDockWindow(w, dock);
209
inline void Q3MainWindow::moveToolBar(Q3DockWindow *w, Qt::ToolBarDock dock, bool nl, int index, int extraOffset)
211
moveDockWindow(w, dock, nl, index, extraOffset);
214
inline void Q3MainWindow::removeToolBar(Q3DockWindow *w)
219
inline bool Q3MainWindow::toolBarsMovable() const
221
return dockWindowsMovable();
224
inline void Q3MainWindow::lineUpToolBars(bool keepNewLines)
226
lineUpDockWindows(keepNewLines);
229
inline void Q3MainWindow::setToolBarsMovable(bool b)
231
setDockWindowsMovable(b);
235
#ifndef QT_NO_TEXTSTREAM
236
Q_COMPAT_EXPORT QTextStream &operator<<(QTextStream &, const Q3MainWindow &);
237
Q_COMPAT_EXPORT QTextStream &operator>>(QTextStream &, Q3MainWindow &);
240
#endif // QT_NO_MAINWINDOW
242
#endif // Q3MAINWINDOW_H