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
qquickflexboxlayoutitem_p.h
Go to the documentation of this file.
1// Copyright (C) 2025 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 QQUICKFLEXBOXLAYOUTITEM_P_H
6#define QQUICKFLEXBOXLAYOUTITEM_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 <QtQuick/private/qquickitem_p.h>
20#include <QtQuickLayouts/private/qquickflexboxlayout_p.h>
21#include <yoga/Yoga.h>
22
23QT_BEGIN_NAMESPACE
24
25struct SizeHints {
26 inline QSizeF &min() { return array[Qt::MinimumSize]; }
27 inline QSizeF &pref() { return array[Qt::PreferredSize]; }
28 inline QSizeF &max() { return array[Qt::MaximumSize]; }
29 QSizeF array[Qt::NSizeHints];
30};
31
33{
34public:
35 explicit QQuickFlexboxLayoutItem(QQuickItem *item);
37
38 void resetDefault();
39 void resetMargins();
40 void resetPaddings();
41 void resetSize();
42
43 QQuickItem *quickItem() const { return m_item; }
44 YGNodeRef yogaItem() const { return m_yogaNode; }
45
46 void insertChild(QQuickFlexboxLayoutItem *item, int index);
47
48 // Adapter APIs to the yoga library
49 void setMinSize(const QSizeF &size);
50 void setSize(const QSizeF &size);
51 void setWidth(const qreal &width);
52 void setHeight(const qreal &height);
53 void setMaxSize(const QSizeF &size);
54 void setFlexBasis(qreal value, bool reset = false);
55 void setFlexDirection(QQuickFlexboxLayout::FlexboxDirection direction);
56 void setFlexWrap(QQuickFlexboxLayout::FlexboxWrap wrap);
57 void setFlexAlignItemsProperty(QQuickFlexboxLayout::FlexboxAlignment align);
58 void setFlexAlignSelfProperty(QQuickFlexboxLayout::FlexboxAlignment align);
59 void setFlexAlignContentProperty(QQuickFlexboxLayout::FlexboxAlignment align);
60 void setFlexJustifyContentProperty(QQuickFlexboxLayout::FlexboxJustify justify);
61 void setItemGrowAlongMainAxis(qreal value);
62 void setItemShrinkAlongMainAxis(qreal value);
63 void setFlexMargin(QQuickFlexboxLayout::FlexboxEdge edge, qreal value);
64 void setFlexPadding(QQuickFlexboxLayout::FlexboxEdge edge, qreal value);
66 void setFlexGap(QQuickFlexboxLayout::FlexboxGap gap, qreal value);
68
69 bool hasMeasureFunc() const;
70 void resetMeasureFunc();
71 QPoint position() const;
72 QSizeF size() const;
73 bool isFlexBasisUndefined() const;
74 bool isItemStreched() const;
75 QSizeF computedLayoutSize() { return m_computedLayoutSize; }
76 SizeHints &cachedItemSizeHints() const;
77 void computeLayout(const QSizeF &size = QSizeF());
78
79private:
80 QQuickItem *m_item;
81 YGNodeRef m_yogaNode;
82 QSizeF m_computedLayoutSize;
83 mutable SizeHints m_cachedSizeHint;
84};
85
86QT_END_NAMESPACE
87
88#endif // QQUICKFLEXBOXLAYOUTITEM_P_H
void insertChild(QQuickFlexboxLayoutItem *item, int index)
void setFlexWrap(QQuickFlexboxLayout::FlexboxWrap wrap)
void setMaxSize(const QSizeF &size)
void setFlexAlignContentProperty(QQuickFlexboxLayout::FlexboxAlignment align)
void setWidth(const qreal &width)
QQuickFlexboxLayoutItem(QQuickItem *item)
void setFlexMargin(QQuickFlexboxLayout::FlexboxEdge edge, qreal value)
void setFlexGap(QQuickFlexboxLayout::FlexboxGap gap, qreal value)
void setFlexAlignItemsProperty(QQuickFlexboxLayout::FlexboxAlignment align)
SizeHints & cachedItemSizeHints() const
void setFlexPadding(QQuickFlexboxLayout::FlexboxEdge edge, qreal value)
void setFlexJustifyContentProperty(QQuickFlexboxLayout::FlexboxJustify justify)
void setFlexDirection(QQuickFlexboxLayout::FlexboxDirection direction)
void setFlexBasis(qreal value, bool reset=false)
void setMinSize(const QSizeF &size)
void setFlexAlignSelfProperty(QQuickFlexboxLayout::FlexboxAlignment align)
void setHeight(const qreal &height)
void setItemShrinkAlongMainAxis(qreal value)
void computeLayout(const QSizeF &size=QSizeF())
void setSize(const QSizeF &size)