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
qqstylekitlayout_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
4#ifndef QQUICKUNIFIEDLAYOUT_H
5#define QQUICKUNIFIEDLAYOUT_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
19#include <QtQml/QtQml>
20#include <QtCore/qtimer.h>
21#include <QtQuickTemplates2/private/qquickcontrol_p.h>
22#include <QtQuick/qquickitem.h>
23
24QT_BEGIN_NAMESPACE
25
26class QQStyleKitLayoutItem : public QObject
27{
28 Q_OBJECT
29 Q_PROPERTY(QQuickItem *item READ item WRITE setItem NOTIFY itemChanged FINAL)
30 Q_PROPERTY(qreal x READ x NOTIFY xChanged FINAL)
31 Q_PROPERTY(qreal y READ y NOTIFY yChanged FINAL)
32 Q_PROPERTY(qreal width READ width NOTIFY widthChanged FINAL)
33 Q_PROPERTY(qreal height READ height NOTIFY heightChanged FINAL)
34 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged FINAL)
35 Q_PROPERTY(QMarginsF margins READ margins WRITE setMargins NOTIFY marginsChanged FINAL)
36 Q_PROPERTY(bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged FINAL)
37 Q_PROPERTY(bool fillHeight READ fillHeight WRITE setFillHeight NOTIFY fillHeightChanged FINAL)
38 QML_NAMED_ELEMENT(StyleKitLayoutItem)
39
40public:
41 QQStyleKitLayoutItem(QObject *parent = nullptr);
42 QQuickItem *item() const;
43 void setItem(QQuickItem *item);
44
45 qreal x() const;
46 void setX(qreal x);
47 qreal y() const;
48 void setY(qreal y);
49 qreal width() const;
50 void setWidth(qreal width);
51 qreal height() const;
52 void setHeight(qreal height);
53
54 Qt::Alignment alignment() const;
55 void setAlignment(Qt::Alignment alignment);
56
57 QMarginsF margins() const;
58 void setMargins(const QMarginsF &margins);
59
60 bool fillWidth() const;
61 void setFillWidth(bool fill);
62
63 bool fillHeight() const;
64 void setFillHeight(bool fill);
65
66signals:
67 void itemChanged();
68 void xChanged();
69 void yChanged();
70 void widthChanged();
71 void heightChanged();
72 void alignmentChanged();
73 void marginsChanged();
74 void fillWidthChanged();
75 void fillHeightChanged();
76
77private:
78 QPointer<QQuickItem> m_item;
79 Qt::Alignment m_alignment = Qt::AlignLeft | Qt::AlignVCenter;
80 QMarginsF m_margins;
81 bool m_fillWidth = false;
82 bool m_fillHeight = false;
83 qreal m_x = 0;
84 qreal m_y = 0;
85 qreal m_width = 0;
86 qreal m_height = 0;
87};
88
90{
91 Q_OBJECT
92 Q_PROPERTY(QQuickItem *container READ container WRITE setContainer NOTIFY containerChanged FINAL)
101 Q_CLASSINFO("DefaultProperty", "layoutItems")
103
104public:
106
107 QQuickItem *container() const;
108 void setContainer(QQuickItem *item);
109
111
112 QMarginsF padding() const;
113
115 void setContentMargins(const QMarginsF &margins);
116
117 qreal spacing() const;
118 void setSpacing(qreal spacing);
119
120 bool isMirrored() const;
121 void setMirrored(bool mirrored);
122
123 qreal implicitWidth() const;
124 qreal implicitHeight() const;
125
126 void setImplicitWidth(qreal width);
127 void setImplicitHeight(qreal height);
128
129 bool isEnabled() const;
130 void setEnabled(bool enabled);
131
132signals:
143
144private:
145 void updatePolish() override;
146
147 static void layoutItem_append(QQmlListProperty<QQStyleKitLayoutItem> *list, QQStyleKitLayoutItem *item);
148 static qsizetype layoutItem_count(QQmlListProperty<QQStyleKitLayoutItem> *list);
149 static QQStyleKitLayoutItem *layoutItem_at(QQmlListProperty<QQStyleKitLayoutItem> *list, qsizetype index);
150 static void layoutItem_clear(QQmlListProperty<QQStyleKitLayoutItem> *list);
151
152 QPointer<QQuickItem> m_container;
153 QList<QQStyleKitLayoutItem *> m_layoutItems;
154 QMarginsF m_contentMargins;
155 QMarginsF m_padding;
156 qreal m_spacing = 0;
157 qreal m_implicitWidth = 0;;
158 qreal m_implicitHeight = 0;
159
160 bool m_mirrored: 1;
161 bool m_enabled: 1;
162};
163
164QT_END_NAMESPACE
165#endif // QQUICKUNIFIEDLAYOUT_H
void setImplicitHeight(qreal height)
void mirroredChanged()
QMarginsF padding() const
void setSpacing(qreal spacing)
void contentMarginsChanged()
qreal implicitHeight() const
qreal implicitWidth() const
QMarginsF contentMargins() const
void setContentMargins(const QMarginsF &margins)
void setEnabled(bool enabled)
void setImplicitWidth(qreal width)
void setContainer(QQuickItem *item)
void updatePolish() override
This function should perform any layout as required for this item.
void implicitWidthChanged()
QQuickItem * container() const
QQmlListProperty< QQStyleKitLayoutItem > layoutItems()
void setMirrored(bool mirrored)
void layoutItemsChanged()
void implicitHeightChanged()
Combined button and popup list for selecting options.
static QT_BEGIN_NAMESPACE qreal layoutWidth(QQStyleKitLayoutItem *li, qreal availableWidth=.0)
static qreal vAlignY(QQStyleKitLayoutItem *li, qreal containerY, qreal containerHeight)
static qreal totalWidth(const QList< QQStyleKitLayoutItem * > &items, qreal spacing)
static qreal totalHeight(const QList< QQStyleKitLayoutItem * > &items)
static qreal layoutHeight(QQStyleKitLayoutItem *li, qreal availableHeight=.0)