Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qlayoutengine_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
QLAYOUTENGINE_P_H
6
#
define
QLAYOUTENGINE_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/qlayoutitem.h"
21
#
include
"QtWidgets/qstyle.h"
22
#
include
<
QtCore
/
qcontainerfwd
.
h
>
23
24
QT_BEGIN_NAMESPACE
25
26
struct
QLayoutStruct
27
{
28
inline
void
init
(
int
stretchFactor = 0,
int
minSize = 0) {
29
stretch
= stretchFactor;
30
minimumSize
=
sizeHint
= minSize;
31
maximumSize
= QLAYOUTSIZE_MAX;
32
expansive
=
false
;
33
empty
=
true
;
34
spacing
= 0;
35
}
36
37
int
smartSizeHint
() {
38
return
(
stretch
> 0) ?
minimumSize
:
sizeHint
;
39
}
40
int
effectiveSpacer
(
int
uniformSpacer)
const
{
41
Q_ASSERT(uniformSpacer >= 0 ||
spacing
>= 0);
42
return
(uniformSpacer >= 0) ? uniformSpacer :
spacing
;
43
}
44
45
// parameters
46
int
stretch
;
47
int
sizeHint
;
48
int
maximumSize
;
49
int
minimumSize
;
50
int
spacing
;
51
bool
expansive
;
52
bool
empty
;
53
54
// temporary storage
55
bool
done
;
56
57
// result
58
int
pos
;
59
int
size
;
60
};
61
62
Q_WIDGETS_EXPORT
void
qGeomCalc
(
QList
<
QLayoutStruct
> &chain,
int
start,
int
count,
int
pos,
63
int
space,
int
spacer = -1);
64
Q_WIDGETS_EXPORT
QSize
qSmartMinSize(
const
QSize &sizeHint,
const
QSize &minSizeHint,
65
const
QSize &minSize,
const
QSize &maxSize,
66
const
QSizePolicy &sizePolicy);
67
Q_WIDGETS_EXPORT
QSize
qSmartMinSize(
const
QWidgetItem *i);
68
Q_WIDGETS_EXPORT
QSize
qSmartMinSize(
const
QWidget *w);
69
Q_WIDGETS_EXPORT
QSize
qSmartMaxSize(
const
QSize &sizeHint,
70
const
QSize &minSize,
const
QSize &maxSize,
71
const
QSizePolicy &sizePolicy, Qt::Alignment align = { });
72
Q_WIDGETS_EXPORT
QSize
qSmartMaxSize(
const
QWidgetItem *i, Qt::Alignment align = { });
73
Q_WIDGETS_EXPORT
QSize
qSmartMaxSize(
const
QWidget *w, Qt::Alignment align = { });
74
75
Q_WIDGETS_EXPORT
int
qSmartSpacing
(
const
QLayout *layout, QStyle::PixelMetric pm);
76
77
/*
78
Modify total maximum (max), total expansion (exp), and total empty
79
when adding boxmax/boxexp.
80
81
Expansive boxes win over non-expansive boxes.
82
Non-empty boxes win over empty boxes.
83
*/
84
static
inline
void
qMaxExpCalc
(
int
& max,
bool
&exp,
bool
&empty,
85
int
boxmax,
bool
boxexp,
bool
boxempty)
86
{
87
if
(exp) {
88
if
(boxexp)
89
max = qMax(max, boxmax);
90
}
else
{
91
if
(boxexp || (empty && (!boxempty || max == 0)))
92
max = boxmax;
93
else
if
(empty == boxempty)
94
max = qMin(max, boxmax);
95
}
96
exp = exp || boxexp;
97
empty = empty && boxempty;
98
}
99
100
QT_END_NAMESPACE
101
102
#
endif
// QLAYOUTENGINE_P_H
QBoxLayoutPrivate
Definition
qboxlayout.cpp:57
QBoxLayoutPrivate::list
QList< QBoxLayoutItem * > list
Definition
qboxlayout.cpp:70
QBoxLayoutPrivate::replaceAt
QLayoutItem * replaceAt(int index, QLayoutItem *) override
Definition
qboxlayout.cpp:420
QBoxLayoutPrivate::effectiveMargins
void effectiveMargins(int *left, int *top, int *right, int *bottom) const
Definition
qboxlayout.cpp:109
QBoxLayoutPrivate::setDirty
void setDirty()
Definition
qboxlayout.cpp:63
QBoxLayoutPrivate::sizeHint
QSize sizeHint
Definition
qboxlayout.cpp:75
QBoxLayoutPrivate::validateIndex
int validateIndex(int index) const
Definition
qboxlayout.cpp:435
QBoxLayoutPrivate::hfwHeight
int hfwHeight
Definition
qboxlayout.cpp:73
QBoxLayoutPrivate::deleteAll
void deleteAll()
Definition
qboxlayout.cpp:85
QBoxLayoutPrivate::rightMargin
int rightMargin
Definition
qboxlayout.cpp:78
QBoxLayoutPrivate::spacing
int spacing
Definition
qboxlayout.cpp:83
QBoxLayoutPrivate::setupGeom
void setupGeom()
Definition
qboxlayout.cpp:242
QBoxLayoutPrivate::topMargin
int topMargin
Definition
qboxlayout.cpp:78
QBoxLayoutPrivate::hasHfw
uint hasHfw
Definition
qboxlayout.cpp:80
QBoxLayoutPrivate::leftMargin
int leftMargin
Definition
qboxlayout.cpp:78
QBoxLayoutPrivate::hfwWidth
int hfwWidth
Definition
qboxlayout.cpp:72
QBoxLayoutPrivate::geomArray
QList< QLayoutStruct > geomArray
Definition
qboxlayout.cpp:71
QBoxLayoutPrivate::dirty
uint dirty
Definition
qboxlayout.cpp:81
QBoxLayoutPrivate::minSize
QSize minSize
Definition
qboxlayout.cpp:76
QBoxLayoutPrivate::bottomMargin
int bottomMargin
Definition
qboxlayout.cpp:78
QBoxLayoutPrivate::maxSize
QSize maxSize
Definition
qboxlayout.cpp:77
QBoxLayoutPrivate::hfwMinHeight
int hfwMinHeight
Definition
qboxlayout.cpp:74
QBoxLayoutPrivate::calcHfw
void calcHfw(int)
Definition
qboxlayout.cpp:389
QBoxLayoutPrivate::expanding
Qt::Orientations expanding
Definition
qboxlayout.cpp:79
QDataStream
\inmodule QtCore\reentrant
Definition
qdatastream.h:50
QLayoutPrivate
\inmodule QtWidgets
Definition
qlayout_p.h:31
QList
Definition
qlist.h:82
QSizePolicy
The QSizePolicy class is a layout attribute describing horizontal and vertical resizing policy.
Definition
qsizepolicy.h:19
QSize
\inmodule QtCore
Definition
qsize.h:27
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
horz
static bool horz(QBoxLayout::Direction dir)
Definition
qboxlayout.cpp:99
operator<<
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition
qdir.cpp:2620
qGeomCalc
Q_WIDGETS_EXPORT void qGeomCalc(QList< QLayoutStruct > &chain, int start, int count, int pos, int space, int spacer=-1)
Definition
qlayoutengine.cpp:41
qSmartSpacing
Q_WIDGETS_EXPORT int qSmartSpacing(const QLayout *layout, QStyle::PixelMetric pm)
Definition
qlayoutengine.cpp:390
qMaxExpCalc
static void qMaxExpCalc(int &max, bool &exp, bool &empty, int boxmax, bool boxexp, bool boxempty)
Definition
qlayoutengine_p.h:84
Q_DECLARE_TYPEINFO
Q_DECLARE_TYPEINFO(QSizePolicy, Q_PRIMITIVE_TYPE)
QBoxLayoutItem
Definition
qboxlayout.cpp:17
QBoxLayoutItem::mhfw
int mhfw(int w)
Definition
qboxlayout.cpp:29
QBoxLayoutItem::hStretch
int hStretch()
Definition
qboxlayout.cpp:36
QBoxLayoutItem::QBoxLayoutItem
QBoxLayoutItem(QLayoutItem *it, int stretch_=0)
Definition
qboxlayout.cpp:18
QBoxLayoutItem::vStretch
int vStretch()
Definition
qboxlayout.cpp:43
QBoxLayoutItem::hfw
int hfw(int w)
Definition
qboxlayout.cpp:22
QBoxLayoutItem::stretch
int stretch
Definition
qboxlayout.cpp:52
QBoxLayoutItem::~QBoxLayoutItem
~QBoxLayoutItem()
Definition
qboxlayout.cpp:20
QBoxLayoutItem::item
QLayoutItem * item
Definition
qboxlayout.cpp:51
QBoxLayoutItem::magic
bool magic
Definition
qboxlayout.cpp:53
QLayoutStruct
Definition
qlayoutengine_p.h:27
QLayoutStruct::stretch
int stretch
Definition
qlayoutengine_p.h:46
QLayoutStruct::empty
bool empty
Definition
qlayoutengine_p.h:52
QLayoutStruct::expansive
bool expansive
Definition
qlayoutengine_p.h:51
QLayoutStruct::done
bool done
Definition
qlayoutengine_p.h:55
QLayoutStruct::spacing
int spacing
Definition
qlayoutengine_p.h:50
QLayoutStruct::init
void init(int stretchFactor=0, int minSize=0)
Definition
qlayoutengine_p.h:28
QLayoutStruct::smartSizeHint
int smartSizeHint()
Definition
qlayoutengine_p.h:37
QLayoutStruct::size
int size
Definition
qlayoutengine_p.h:59
QLayoutStruct::pos
int pos
Definition
qlayoutengine_p.h:58
QLayoutStruct::effectiveSpacer
int effectiveSpacer(int uniformSpacer) const
Definition
qlayoutengine_p.h:40
QLayoutStruct::minimumSize
int minimumSize
Definition
qlayoutengine_p.h:49
QLayoutStruct::sizeHint
int sizeHint
Definition
qlayoutengine_p.h:47
QLayoutStruct::maximumSize
int maximumSize
Definition
qlayoutengine_p.h:48
qtbase
src
widgets
kernel
qlayoutengine_p.h
Generated on
for Qt by
1.18.0