Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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
4#ifndef QTOOLBARAREALAYOUT_P_H
5#define QTOOLBARAREALAYOUT_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtWidgets/private/qtwidgetsglobal_p.h>
19#include "qmenu_p.h"
20#include <QList>
21#include <QSize>
22#include <QRect>
23
25
27
28class QToolBar;
29class QLayoutItem;
30class QMainWindow;
31class QStyleOptionToolBar;
32
34{
35public:
38
39 bool skip() const;
40 QSize minimumSize() const;
41 QSize sizeHint() const;
42 QSize realSizeHint() const;
43
44 void resize(Qt::Orientation o, int newSize)
45 {
46 newSize = qMax(pick(o, minimumSize()), newSize);
47 int sizeh = pick(o, sizeHint());
48 if (newSize == sizeh) {
49 preferredSize = -1;
50 size = sizeh;
51 } else {
52 preferredSize = newSize;
53 }
54 }
55
56 void extendSize(Qt::Orientation o, int extent)
57 {
58 int newSize = qMax(pick(o, minimumSize()), (preferredSize > 0 ? preferredSize : pick(o, sizeHint())) + extent);
59 int sizeh = pick(o, sizeHint());
60 if (newSize == sizeh) {
61 preferredSize = -1;
62 size = sizeh;
63 } else {
64 preferredSize = newSize;
65 }
66 }
67
69 int pos;
70 int size;
72 bool gap;
73};
75
77{
78public:
79 QToolBarAreaLayoutLine() { } // for QList, don't use
81
82 QSize sizeHint() const;
83 QSize minimumSize() const;
84
85 void fitLayout();
86 bool skip() const;
87
90
91 QList<QToolBarAreaLayoutItem> toolBarItems;
92};
94
96{
97public:
99
100 QSize sizeHint() const;
101 QSize minimumSize() const;
102
103 void fitLayout();
104
105 QLayoutItem *insertToolBar(QToolBar *before, QToolBar *toolBar);
106 void insertItem(QToolBar *before, QLayoutItem *item);
107 void removeToolBar(QToolBar *toolBar);
108 void insertToolBarBreak(QToolBar *before);
109 void removeToolBarBreak(QToolBar *before);
110 void moveToolBar(QToolBar *toolbar, int pos);
111
112 QList<int> gapIndex(const QPoint &pos, int *maxDistance) const;
113 bool insertGap(const QList<int> &path, QLayoutItem *item);
114 void clear();
115 QRect itemRect(const QList<int> &path) const;
116 int distance(const QPoint &pos) const;
117
118 QList<QToolBarAreaLayoutLine> lines;
122 bool dirty;
123};
125
127{
128public:
129 enum { // sentinel values used to validate state data
132 };
133
138
140
142
143 QSize minimumSize(const QSize &centerMin) const;
144 QRect rectHint(const QRect &r) const;
145 QSize sizeHint(const QSize &center) const;
146 void apply(bool animate);
147
148 QLayoutItem *itemAt(int *x, int index) const;
149 QLayoutItem *takeAt(int *x, int index);
151
152 QLayoutItem *insertToolBar(QToolBar *before, QToolBar *toolBar);
153 void removeToolBar(QToolBar *toolBar);
155 void insertToolBarBreak(QToolBar *before);
156 void removeToolBarBreak(QToolBar *before);
158 void moveToolBar(QToolBar *toolbar, int pos);
159
161 void insertItem(QToolBar *before, QLayoutItem *item);
162
163 QInternal::DockPosition findToolBar(const QToolBar *toolBar) const;
164 bool toolBarBreak(QToolBar *toolBar) const;
165
166 void getStyleOptionInfo(QStyleOptionToolBar *option, QToolBar *toolBar) const;
167
168 QList<int> indexOf(QWidget *toolBar) const;
169 QList<int> gapIndex(const QPoint &pos) const;
170 QList<int> currentGapIndex() const;
171 bool insertGap(const QList<int> &path, QLayoutItem *item);
172 void remove(const QList<int> &path);
173 void remove(QLayoutItem *item);
174 void clear();
175 QToolBarAreaLayoutItem *item(const QList<int> &path);
176 QRect itemRect(const QList<int> &path) const;
177 QLayoutItem *plug(const QList<int> &path);
178 QLayoutItem *unplug(const QList<int> &path, QToolBarAreaLayout *other);
179
180 void saveState(QDataStream &stream) const;
181 bool restoreState(QDataStream &stream, const QList<QToolBar*> &toolBars, uchar tmarker, bool testing = false);
182 bool isEmpty() const;
183};
184
186
187#endif // QTOOLBARAREALAYOUT_P_H
\inmodule QtCore\reentrant
Definition qdatastream.h:46
The QLayoutItem class provides an abstract item that a QLayout manipulates.
Definition qlayoutitem.h:25
The QMainWindow class provides a main application window.
Definition qmainwindow.h:25
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:25
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
void resize(Qt::Orientation o, int newSize)
void extendSize(Qt::Orientation o, int extent)
QToolBarAreaLayoutItem(QLayoutItem *item=nullptr)
QList< QToolBarAreaLayoutItem > toolBarItems
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)
QLayoutItem * insertToolBar(QToolBar *before, QToolBar *toolBar)
void getStyleOptionInfo(QStyleOptionToolBar *option, QToolBar *toolBar) const
QToolBarAreaLayoutInfo docks[4]
bool restoreState(QDataStream &stream, const QList< QToolBar * > &toolBars, uchar tmarker, bool testing=false)
void insertItem(QInternal::DockPosition pos, QLayoutItem *item)
QRect rectHint(const QRect &r) const
void removeToolBar(QToolBar *toolBar)
QLayoutItem * itemAt(int *x, int index) const
void insertToolBarBreak(QToolBar *before)
void apply(bool animate)
QInternal::DockPosition findToolBar(const QToolBar *toolBar) const
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)
QList< int > gapIndex(const QPoint &pos) const
void moveToolBar(QToolBar *toolbar, int pos)
The QToolBar class provides a movable panel that contains a set of controls.
Definition qtoolbar.h:23
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
Combined button and popup list for selecting options.
Orientation
Definition qnamespace.h:98
static int pick(bool vertical, const QSize &size)
EGLStreamKHR stream
constexpr const T & qMax(const T &a, const T &b)
Definition qminmax.h:42
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint index
[2]
GLboolean r
[2]
GLsizei GLsizei GLfloat distance
GLsizei const GLchar *const * path
GLuint GLenum option
#define QT_REQUIRE_CONFIG(feature)
@ Q_PRIMITIVE_TYPE
Definition qtypeinfo.h:157
@ Q_RELOCATABLE_TYPE
Definition qtypeinfo.h:158
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
Definition qtypeinfo.h:180
unsigned char uchar
Definition qtypes.h:32
QWidget * win
Definition settings.cpp:6
QSharedPointer< T > other(t)
[5]
QGraphicsItem * item