Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquicklinearlayout_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 QQUICKLINEARLAYOUT_P_H
5#define QQUICKLINEARLAYOUT_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 <QtQuickLayouts/private/qquicklayoutglobal_p.h>
19#include "qquicklayout_p.h"
21
23
24/**********************************
25 **
26 ** QQuickGridLayoutBase
27 **
28 **/
30
31class Q_QUICKLAYOUTS_PRIVATE_EXPORT QQuickGridLayoutBase : public QQuickLayout
32{
34
35 Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection
36 NOTIFY layoutDirectionChanged REVISION(1, 1) FINAL)
39
40public:
41
43
45 Qt::Orientation orientation,
46 QQuickItem *parent = nullptr);
47
49 void componentComplete() override;
50 void invalidate(QQuickItem *childItem = nullptr) override;
51 Qt::Orientation orientation() const;
52 void setOrientation(Qt::Orientation orientation);
53 QSizeF sizeHint(Qt::SizeHint whichSizeHint) const override;
54 Qt::LayoutDirection layoutDirection() const;
55 void setLayoutDirection(Qt::LayoutDirection dir);
56 Qt::LayoutDirection effectiveLayoutDirection() const;
57 void setAlignment(QQuickItem *item, Qt::Alignment align) override;
58 void setStretchFactor(QQuickItem *item, int stretchFactor, Qt::Orientation orient) override;
59
60 /* QQuickItemChangeListener */
61 void itemDestroyed(QQuickItem *item) override;
63
64protected:
65 void updateLayoutItems() override;
66 QQuickItem *itemAt(int index) const override;
67 int itemCount() const override;
68
69 void rearrange(const QSizeF &size) override;
70 virtual void insertLayoutItems() {}
71
73 Q_REVISION(1, 1) void layoutDirectionChanged();
74
76 void removeGridItem(QGridLayoutItem *gridItem);
77 Q_DECLARE_PRIVATE(QQuickGridLayoutBase)
78};
79
81
83{
84 Q_DECLARE_PUBLIC(QQuickGridLayoutBase)
85
86public:
87 QQuickGridLayoutBasePrivate() : m_recurRearrangeCounter(0)
88 , m_rearranging(false)
89 , m_layoutDirection(Qt::LeftToRight)
90 {}
91
92 void mirrorChange() override
93 {
95 q->invalidate();
96 }
97
101 unsigned m_rearranging : 1;
104
106};
107
108/**********************************
109 **
110 ** QQuickGridLayout
111 **
112 **/
114class Q_QUICKLAYOUTS_PRIVATE_EXPORT QQuickGridLayout : public QQuickGridLayoutBase
115{
117
118 Q_PROPERTY(qreal columnSpacing READ columnSpacing WRITE setColumnSpacing NOTIFY columnSpacingChanged FINAL)
119 Q_PROPERTY(qreal rowSpacing READ rowSpacing WRITE setRowSpacing NOTIFY rowSpacingChanged FINAL)
120 Q_PROPERTY(int columns READ columns WRITE setColumns NOTIFY columnsChanged FINAL)
121 Q_PROPERTY(int rows READ rows WRITE setRows NOTIFY rowsChanged FINAL)
122 Q_PROPERTY(Flow flow READ flow WRITE setFlow NOTIFY flowChanged FINAL)
123 Q_PROPERTY(bool uniformCellWidths READ uniformCellWidths WRITE setUniformCellWidths
124 NOTIFY uniformCellWidthsChanged REVISION(6, 6) FINAL)
125 Q_PROPERTY(bool uniformCellHeights READ uniformCellHeights WRITE setUniformCellHeights
126 NOTIFY uniformCellHeightsChanged REVISION(6, 6) FINAL)
127 QML_NAMED_ELEMENT(GridLayout)
129public:
131 qreal columnSpacing() const;
132 void setColumnSpacing(qreal spacing);
133 qreal rowSpacing() const;
134 void setRowSpacing(qreal spacing);
135
136 int columns() const;
137 void setColumns(int columns);
138 int rows() const;
139 void setRows(int rows);
140
141 enum Flow { LeftToRight, TopToBottom };
142 Q_ENUM(Flow)
143 Flow flow() const;
144 void setFlow(Flow flow);
145
146 bool uniformCellWidths() const;
147 void setUniformCellWidths(bool uniformCellWidths);
148 bool uniformCellHeights() const;
149 void setUniformCellHeights(bool uniformCellHeights);
150
151 void insertLayoutItems() override;
152
156
159
161
162 Q_REVISION(6, 6) void uniformCellWidthsChanged();
163 Q_REVISION(6, 6) void uniformCellHeightsChanged();
164private:
165 Q_DECLARE_PRIVATE(QQuickGridLayout)
166};
167
169{
170 Q_DECLARE_PUBLIC(QQuickGridLayout)
171public:
172 QQuickGridLayoutPrivate(): columns(-1), rows(-1), flow(QQuickGridLayout::LeftToRight) {}
174 int rows;
176};
177
178
179/**********************************
180 **
181 ** QQuickLinearLayout
182 **
183 **/
185class Q_QUICKLAYOUTS_PRIVATE_EXPORT QQuickLinearLayout : public QQuickGridLayoutBase
186{
188 Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing NOTIFY spacingChanged FINAL)
189 Q_PROPERTY(bool uniformCellSizes READ uniformCellSizes WRITE setUniformCellSizes
190 NOTIFY uniformCellSizesChanged REVISION(6, 6) FINAL)
191public:
192 explicit QQuickLinearLayout(Qt::Orientation orientation,
193 QQuickItem *parent = nullptr);
195 qreal spacing() const;
196 void setSpacing(qreal spacing);
197 bool uniformCellSizes() const;
198 void setUniformCellSizes(bool uniformCellSizes);
199
200 void insertLayoutItems() override;
201
204 Q_REVISION(6, 6) void uniformCellSizesChanged();
205private:
206 Q_DECLARE_PRIVATE(QQuickLinearLayout)
207};
208
210{
211 Q_DECLARE_PUBLIC(QQuickLinearLayout)
212public:
214};
215
216
217/**********************************
218 **
219 ** QQuickRowLayout
220 **
221 **/
222class Q_QUICKLAYOUTS_PRIVATE_EXPORT QQuickRowLayout : public QQuickLinearLayout
223{
225 QML_NAMED_ELEMENT(RowLayout)
227
228public:
229 explicit QQuickRowLayout(QQuickItem *parent = nullptr)
230 : QQuickLinearLayout(Qt::Horizontal, parent) {}
231};
232
233
234/**********************************
235 **
236 ** QQuickColumnLayout
237 **
238 **/
239class Q_QUICKLAYOUTS_PRIVATE_EXPORT QQuickColumnLayout : public QQuickLinearLayout
240{
242 QML_NAMED_ELEMENT(ColumnLayout)
244
245public:
247 : QQuickLinearLayout(Qt::Vertical, parent) {}
248};
249
251
252#endif // QQUICKLINEARLAYOUT_P_H
Definition qlist.h:74
QQuickColumnLayout(QQuickItem *parent=nullptr)
QVector< QQuickItem * > m_invalidateAfterRearrange
QQuickGridLayoutEngine engine
Qt::LayoutDirection m_layoutDirection
Q_REVISION(1, 1) void layoutDirectionChanged()
virtual void insertLayoutItems()
QQuickGridLayout::Flow flow
void columnSpacingChanged()
Q_REVISION(6, 6) void uniformCellWidthsChanged()
void rowSpacingChanged()
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:64
virtual void setAlignment(QQuickItem *item, Qt::Alignment align)=0
void itemDestroyed(QQuickItem *item) override
virtual void rearrange(const QSizeF &)
void itemVisibilityChanged(QQuickItem *item) override
virtual void invalidate(QQuickItem *childItem=nullptr)
virtual void setStretchFactor(QQuickItem *item, int stretchFactor, Qt::Orientation orient)=0
virtual void updateLayoutItems()=0
virtual QQuickItem * itemAt(int index) const =0
void componentComplete() override
\reimp Derived classes should call the base class method before adding their own actions to perform a...
virtual QSizeF sizeHint(Qt::SizeHint whichSizeHint) const =0
virtual int itemCount() const =0
Q_REVISION(6, 6) void uniformCellSizesChanged()
void insertLayoutItem(QQuickItem *item)
QQuickRowLayout(QQuickItem *parent=nullptr)
\inmodule QtCore
Definition qsize.h:207
void spacingChanged()
qreal spacing
Combined button and popup list for selecting options.
LayoutDirection
Orientation
Definition qnamespace.h:97
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint index
[2]
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
#define QML_ANONYMOUS
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_SIGNALS
double qreal
Definition qtypes.h:92
#define explicit
QString dir
[11]
QGraphicsItem * item
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent