Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtoolbararealayout_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QTOOLBARAREALAYOUT_P_H
6#define QTOOLBARAREALAYOUT_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtWidgets/private/qtwidgetsglobal_p.h>
20#include <QtWidgets/private/qwidgetanimator_p.h>
21#include "qmenu_p.h"
22#include <QList>
23#include <QSize>
24#include <QRect>
25
27
28QT_BEGIN_NAMESPACE
29
30class QToolBar;
31class QLayoutItem;
32class QMainWindow;
33class QStyleOptionToolBar;
34
36{
37public:
38 QToolBarAreaLayoutItem(QLayoutItem *item = nullptr)
39 : widgetItem(item), pos(0), size(-1), preferredSize(-1), gap(false) {}
40
41 bool skip() const;
42 QSize minimumSize() const;
43 QSize sizeHint() const;
44 QSize realSizeHint() const;
45
46 void resize(Qt::Orientation o, int newSize)
47 {
48 newSize = qMax(pick(o, minimumSize()), newSize);
49 int sizeh = pick(o, sizeHint());
50 if (newSize == sizeh) {
51 preferredSize = -1;
52 size = sizeh;
53 } else {
54 preferredSize = newSize;
55 }
56 }
57
58 void extendSize(Qt::Orientation o, int extent)
59 {
60 int newSize = qMax(pick(o, minimumSize()), (preferredSize > 0 ? preferredSize : pick(o, sizeHint())) + extent);
61 int sizeh = pick(o, sizeHint());
62 if (newSize == sizeh) {
63 preferredSize = -1;
64 size = sizeh;
65 } else {
66 preferredSize = newSize;
67 }
68 }
69
70 QLayoutItem *widgetItem;
71 int pos;
72 int size;
74 bool gap;
75};
77
79{
80public:
81 QToolBarAreaLayoutLine() { } // for QList, don't use
82 QToolBarAreaLayoutLine(Qt::Orientation orientation);
83
84 QSize sizeHint() const;
85 QSize minimumSize() const;
86
87 void fitLayout();
88 bool skip() const;
89
92
94};
96
98{
99public:
100 QToolBarAreaLayoutInfo(QInternal::DockPosition pos = QInternal::TopDock);
101
102 QSize sizeHint() const;
103 QSize minimumSize() const;
104
105 void fitLayout();
106
107 QLayoutItem *insertToolBar(QToolBar *before, QToolBar *toolBar);
108 void insertItem(QToolBar *before, QLayoutItem *item);
109 void removeToolBar(QToolBar *toolBar);
110 void insertToolBarBreak(QToolBar *before);
111 void removeToolBarBreak(QToolBar *before);
112 void moveToolBar(QToolBar *toolbar, int pos);
113
114 QList<int> gapIndex(const QPoint &pos, int *maxDistance) const;
115 bool insertGap(const QList<int> &path, QLayoutItem *item);
116 void clear();
117 QRect itemRect(const QList<int> &path) const;
118 int distance(const QPoint &pos) const;
119
124 bool dirty;
125};
127
129{
130public:
132 const QMainWindow *mainWindow;
135
136 QToolBarAreaLayout(const QMainWindow *win);
137
139
140 QSize minimumSize(const QSize &centerMin) const;
141 QRect rectHint(const QRect &r) const;
142 QSize sizeHint(const QSize &center) const;
143 void apply(QWidgetAnimator::AnimationRule rule);
144
145 QLayoutItem *itemAt(int *x, int index) const;
146 QLayoutItem *takeAt(int *x, int index);
148
149 QLayoutItem *insertToolBar(QToolBar *before, QToolBar *toolBar);
150 void removeToolBar(QToolBar *toolBar);
151 QLayoutItem *addToolBar(QInternal::DockPosition pos, QToolBar *toolBar);
152 void insertToolBarBreak(QToolBar *before);
153 void removeToolBarBreak(QToolBar *before);
154 void addToolBarBreak(QInternal::DockPosition pos);
155 void moveToolBar(QToolBar *toolbar, int pos);
156
157 void insertItem(QInternal::DockPosition pos, QLayoutItem *item);
158 void insertItem(QToolBar *before, QLayoutItem *item);
159
160 QInternal::DockPosition findToolBar(const QToolBar *toolBar) const;
161 bool toolBarBreak(QToolBar *toolBar) const;
162
163 void getStyleOptionInfo(QStyleOptionToolBar *option, QToolBar *toolBar) const;
164
165 QList<int> indexOf(QWidget *toolBar) const;
166 QList<int> gapIndex(const QPoint &pos) const;
167 QList<int> currentGapIndex() const;
168 bool insertGap(const QList<int> &path, QLayoutItem *item);
169 void remove(const QList<int> &path);
170 void remove(QLayoutItem *item);
171 void clear();
172 QToolBarAreaLayoutItem *item(const QList<int> &path);
173 QRect itemRect(const QList<int> &path) const;
174 QLayoutItem *plug(const QList<int> &path);
175 QLayoutItem *unplug(const QList<int> &path, QToolBarAreaLayout *other);
176
177 void saveState(QDataStream &stream) const;
178 bool restoreState(QDataStream &stream, const QList<QToolBar*> &toolBars, uchar tmarker, QInternal::CallMode callMode);
179 bool isEmpty() const;
180};
181
182QT_END_NAMESPACE
183
184#endif // QTOOLBARAREALAYOUT_P_H
QInternal::DockPosition dockPos
void insertToolBarBreak(QToolBar *before)
void insertItem(QToolBar *before, QLayoutItem *item)
QList< QToolBarAreaLayoutLine > lines
void removeToolBar(QToolBar *toolBar)
void removeToolBarBreak(QToolBar *before)
QLayoutItem * insertToolBar(QToolBar *before, QToolBar *toolBar)
QToolBarAreaLayoutInfo(QInternal::DockPosition pos=QInternal::TopDock)
QList< int > gapIndex(const QPoint &pos, int *maxDistance) const
void moveToolBar(QToolBar *toolbar, int pos)
bool insertGap(const QList< int > &path, QLayoutItem *item)
QRect itemRect(const QList< int > &path) const
int distance(const QPoint &pos) const
void resize(Qt::Orientation o, int newSize)
void extendSize(Qt::Orientation o, int extent)
QToolBarAreaLayoutItem(QLayoutItem *item=nullptr)
QList< QToolBarAreaLayoutItem > toolBarItems
QToolBarAreaLayoutLine(Qt::Orientation orientation)
bool insertGap(const QList< int > &path, QLayoutItem *item)
const QMainWindow * mainWindow
QList< int > indexOf(QWidget *toolBar) const
QSize sizeHint(const QSize &center) const
void removeToolBarBreak(QToolBar *before)
QSize minimumSize(const QSize &centerMin) const
QLayoutItem * unplug(const QList< int > &path, QToolBarAreaLayout *other)
void remove(QLayoutItem *item)
QLayoutItem * insertToolBar(QToolBar *before, QToolBar *toolBar)
void getStyleOptionInfo(QStyleOptionToolBar *option, QToolBar *toolBar) const
QToolBarAreaLayoutInfo docks[4]
void insertItem(QInternal::DockPosition pos, QLayoutItem *item)
void apply(QWidgetAnimator::AnimationRule rule)
QRect rectHint(const QRect &r) const
void removeToolBar(QToolBar *toolBar)
QLayoutItem * itemAt(int *x, int index) const
bool restoreState(QDataStream &stream, const QList< QToolBar * > &toolBars, uchar tmarker, QInternal::CallMode callMode)
void insertToolBarBreak(QToolBar *before)
QInternal::DockPosition findToolBar(const QToolBar *toolBar) const
QToolBarAreaLayoutItem * item(const QList< int > &path)
QRect itemRect(const QList< int > &path) const
QToolBarAreaLayout(const QMainWindow *win)
QLayoutItem * takeAt(int *x, int index)
void saveState(QDataStream &stream) const
QLayoutItem * addToolBar(QInternal::DockPosition pos, QToolBar *toolBar)
QList< int > currentGapIndex() const
bool toolBarBreak(QToolBar *toolBar) const
void remove(const QList< int > &path)
void addToolBarBreak(QInternal::DockPosition pos)
QLayoutItem * plug(const QList< int > &path)
void insertItem(QToolBar *before, QLayoutItem *item)
QList< int > gapIndex(const QPoint &pos) const
void moveToolBar(QToolBar *toolbar, int pos)
Combined button and popup list for selecting options.
QMainWindowLayout * qt_mainwindow_layout(const QMainWindow *window)
QT_REQUIRE_CONFIG(liburing)
static QRect unpackRect(uint geom0, uint geom1, bool *floating)
static void packRect(uint *geom0, uint *geom1, const QRect &rect, bool floating)
static int getInt(QDataStream &stream)
Q_DECLARE_TYPEINFO(QToolBarAreaLayoutItem, Q_PRIMITIVE_TYPE)
Q_DECLARE_TYPEINFO(QToolBarAreaLayoutInfo, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QToolBarAreaLayoutLine, Q_RELOCATABLE_TYPE)