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 QSizeF margins{0,0};
31};
32
34{
35public:
36 explicit QQuickFlexboxLayoutItem(QQuickItem *item);
38
39 void resetDefault();
40 void resetMargins();
41 void resetPaddings();
42 void resetSize();
43
44 QQuickItem *quickItem() const { return m_item; }
45 YGNodeRef yogaItem() const { return m_yogaNode; }
46
47 void insertChild(QQuickFlexboxLayoutItem *item, int index);
48
49 // Adapter APIs to the yoga library
50 void setMinSize(const QSizeF &size);
51 void setSize(const QSizeF &size);
52 void setWidth(const qreal &width);
53 void setHeight(const qreal &height);
54 void setMaxSize(const QSizeF &size);
55 void setFlexBasis(qreal value, bool reset = false);
56 void setFlexDirection(QQuickFlexboxLayout::FlexboxDirection direction);
57 void setFlexWrap(QQuickFlexboxLayout::FlexboxWrap wrap);
58 void setFlexAlignItemsProperty(QQuickFlexboxLayout::FlexboxAlignment align);
59 void setFlexAlignSelfProperty(QQuickFlexboxLayout::FlexboxAlignment align);
60 void setFlexAlignContentProperty(QQuickFlexboxLayout::FlexboxAlignment align);
61 void setFlexJustifyContentProperty(QQuickFlexboxLayout::FlexboxJustify justify);
62 void setItemGrowAlongMainAxis(qreal value);
63 void setItemShrinkAlongMainAxis(qreal value);
64 void setFlexMargin(QQuickFlexboxLayout::FlexboxEdge edge, qreal value);
65 void setFlexPadding(QQuickFlexboxLayout::FlexboxEdge edge, qreal value);
67 void setFlexGap(QQuickFlexboxLayout::FlexboxGap gap, qreal value);
69
70 bool hasMeasureFunc() const;
71 void resetMeasureFunc();
72 QPoint position() const;
73 QSizeF size() const;
74 bool isFlexBasisUndefined() const;
75 bool isItemStreched() const;
76 QSizeF computedLayoutSize() { return m_computedLayoutSize; }
77 SizeHints &cachedItemSizeHints() const;
78 void computeLayout(const QSizeF &size = QSizeF());
79
80private:
81 QQuickItem *m_item;
82 YGNodeRef m_yogaNode;
83 QSizeF m_computedLayoutSize;
84 mutable SizeHints m_cachedSizeHint;
85};
86
87QT_END_NAMESPACE
88
89#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)