1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the widgets module 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 QMAINWINDOWLAYOUT_P_H
30
#define QMAINWINDOWLAYOUT_P_H
36
// This file is not part of the Qt API. It exists purely as an
37
// implementation detail. This header file may change from version to
38
// version without notice, or even be removed.
43
#include "qmainwindow.h"
50
class QDockWidgetLayout;
52
class QMainWindowLayout : public QLayout
57
explicit QMainWindowLayout(QMainWindow *mainwindow);
60
QLayoutItem *statusbar;
61
QStatusBar *statusBar() const;
62
void setStatusBar(QStatusBar *sb);
64
QWidget *centralWidget() const;
65
void setCentralWidget(QWidget *cw);
67
void addToolBarBreak(Qt::ToolBarArea area);
68
void insertToolBarBreak(QToolBar *before);
69
void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar, bool needAddChildWidget = true);
70
void insertToolBar(QToolBar *before, QToolBar *toolbar);
71
Qt::ToolBarArea toolBarArea(QToolBar *toolbar) const;
73
QDockWidgetLayout *layoutForArea(Qt::DockWidgetArea area);
74
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget,
75
Qt::Orientation orientation);
76
void splitDockWidget(QDockWidget *after, QDockWidget *dockwidget,
77
Qt::Orientation orientation);
78
Qt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) const;
80
enum { // sentinel values used to validate state data
82
ToolBarStateMarker = 0xfe,
83
DockWidgetStateMarker = 0xfd
85
void saveState(QDataStream &stream) const;
86
bool restoreState(QDataStream &stream);
89
void addItem(QLayoutItem *item);
90
void setGeometry(const QRect &r);
91
QLayoutItem *itemAt(int index) const;
92
QLayoutItem *takeAt(int index);
95
QSize sizeHint() const;
96
QSize minimumSize() const;
98
mutable QSize minSize;
102
void removeRecursive(QDockWidget *dockwidget);
107
QInternal::RelayoutType relayout_type;
108
void relayout(QInternal::RelayoutType type = QInternal::RelayoutNormal);
110
void saveLayoutInfo();
111
void resetLayoutInfo();
112
void discardLayoutInfo();
114
void beginConstrain();
116
int constrain(QDockWidgetLayout *dock, int delta);
118
Qt::DockWidgetArea locateDockWidget(QDockWidget *dockwidget, const QPoint &mouse) const;
119
QRect placeDockWidget(QDockWidget *dockwidget, const QRect &r, const QPoint &mouse);
120
void dropDockWidget(QDockWidget *dockwidget, const QRect &r, const QPoint &mouse);
122
int locateToolBar(QToolBar *toolbar, const QPoint &mouse) const;
123
void dropToolBar(QToolBar *toolbar, const QPoint &mouse, const QPoint &offset);
125
void removeToolBarInfo(QToolBar *toolbar);
127
// dock/center-widget layout data
128
Qt::DockWidgetArea corners[4];
129
struct QMainWindowLayoutInfo
136
QVector<QMainWindowLayoutInfo> layout_info, *save_layout_info;
138
// toolbar layout data
139
struct ToolBarLayoutInfo
147
struct ToolBarLineInfo
150
QList<ToolBarLayoutInfo> list;
154
helpers to return the index of next/prev visible toolbar... they
155
return -1 if none is found
157
static int nextVisible(int index, const ToolBarLineInfo &lineInfo);
158
static int prevVisible(int index, const ToolBarLineInfo &lineInfo);
160
QList<ToolBarLineInfo> tb_layout_info, *save_tb_layout_info;
163
#endif // QMAINWINDOWLAYOUT_P_H