4#ifndef QQUICKLAYOUT_P_H
5#define QQUICKLAYOUT_P_H
20#include <QtCore/qflags.h>
22#include <QtQuickLayouts/private/qquicklayoutglobal_p.h>
23#include <private/qquickitem_p.h>
24#include <QtQuick/private/qquickitemchangelistener_p.h>
25#include <QtGui/private/qlayoutpolicy_p.h>
52 ApplySizeHints = 0b010
55 Q_DECLARE_FLAGS(EnsureLayoutItemsUpdatedOptions, EnsureLayoutItemsUpdatedOption)
68 virtual void invalidate(
QQuickItem * childItem =
nullptr);
71 void ensureLayoutItemsUpdated(EnsureLayoutItemsUpdatedOptions options = {})
const;
77 virtual void rearrange(
const QSizeF &);
87 void deactivateRecur();
89 bool invalidated()
const;
90 bool invalidatedArrangement()
const;
91 bool isMirrored()
const;
115 void invalidateSenderItem();
118 unsigned m_inUpdatePolish : 1;
119 unsigned m_polishInsideUpdatePolish : 2;
133 , m_dirtyArrangement(true)
135 , m_disableRearrange(true)
136 , m_hasItemChangeListeners(
false) {}
138 void applySizeHints()
const;
155 unsigned m_hasItemChangeListeners : 1;
162 Q_PROPERTY(
qreal minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged FINAL)
163 Q_PROPERTY(
qreal minimumHeight READ minimumHeight WRITE setMinimumHeight NOTIFY minimumHeightChanged FINAL)
164 Q_PROPERTY(
qreal preferredWidth READ preferredWidth WRITE setPreferredWidth NOTIFY preferredWidthChanged FINAL)
165 Q_PROPERTY(
qreal preferredHeight READ preferredHeight WRITE setPreferredHeight NOTIFY preferredHeightChanged FINAL)
166 Q_PROPERTY(
qreal maximumWidth READ maximumWidth WRITE setMaximumWidth NOTIFY maximumWidthChanged FINAL)
167 Q_PROPERTY(
qreal maximumHeight READ maximumHeight WRITE setMaximumHeight NOTIFY maximumHeightChanged FINAL)
168 Q_PROPERTY(
bool fillHeight READ fillHeight WRITE setFillHeight NOTIFY fillHeightChanged FINAL)
169 Q_PROPERTY(
bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged FINAL)
172 Q_PROPERTY(
int rowSpan READ rowSpan WRITE setRowSpan NOTIFY rowSpanChanged FINAL)
173 Q_PROPERTY(
int columnSpan READ columnSpan WRITE setColumnSpan NOTIFY columnSpanChanged FINAL)
175 Q_PROPERTY(
int horizontalStretchFactor READ horizontalStretchFactor WRITE setHorizontalStretchFactor NOTIFY horizontalStretchFactorChanged FINAL)
176 Q_PROPERTY(
int verticalStretchFactor READ verticalStretchFactor WRITE setVerticalStretchFactor NOTIFY verticalStretchFactorChanged FINAL)
178 Q_PROPERTY(
qreal margins READ margins WRITE setMargins NOTIFY marginsChanged FINAL)
179 Q_PROPERTY(
qreal leftMargin READ leftMargin WRITE setLeftMargin RESET resetLeftMargin NOTIFY leftMarginChanged FINAL)
180 Q_PROPERTY(
qreal topMargin READ topMargin WRITE setTopMargin RESET resetTopMargin NOTIFY topMarginChanged FINAL)
181 Q_PROPERTY(
qreal rightMargin READ rightMargin WRITE setRightMargin RESET resetRightMargin NOTIFY rightMarginChanged FINAL)
182 Q_PROPERTY(
qreal bottomMargin READ bottomMargin WRITE setBottomMargin RESET resetBottomMargin NOTIFY bottomMarginChanged FINAL)
211 void setMinimumImplicitSize(
const QSizeF &sz);
212 void setMaximumImplicitSize(
const QSizeF &sz);
215 void setFillWidth(
bool fill);
219 void setFillHeight(
bool fill);
223 void setRow(
int row);
226 void setColumn(
int column);
230 void setRowSpan(
int span);
232 void setColumnSpan(
int span);
239 void setHorizontalStretchFactor(
int stretchFactor);
242 void setVerticalStretchFactor(
int stretchFactor);
249 qreal leftMargin()
const {
return m_isLeftMarginSet ? m_margins.left() : m_defaultMargins; }
250 void setLeftMargin(
qreal m);
251 void resetLeftMargin();
254 qreal topMargin()
const {
return m_isTopMarginSet ? m_margins.top() : m_defaultMargins; }
255 void setTopMargin(
qreal m);
256 void resetTopMargin();
259 qreal rightMargin()
const {
return m_isRightMarginSet ? m_margins.right() : m_defaultMargins; }
260 void setRightMargin(
qreal m);
261 void resetRightMargin();
264 qreal bottomMargin()
const {
return m_isBottomMarginSet ? m_margins.bottom() : m_defaultMargins; }
265 void setBottomMargin(
qreal m);
266 void resetBottomMargin();
270 return QMarginsF(leftMargin(), topMargin(), rightMargin(), bottomMargin());
274 bool mirrored = parentLayout() && parentLayout()->isMirrored();
276 return QMarginsF(rightMargin(), topMargin(), leftMargin(), bottomMargin());
283 const bool old = m_changesNotificationEnabled;
284 m_changesNotificationEnabled =
enabled;
294 return o ==
Qt::Horizontal ? m_isMinimumWidthSet : m_isMinimumHeightSet;
296 return o ==
Qt::Horizontal ? m_isMaximumWidthSet : m_isMaximumHeightSet;
329 void invalidateItem();
333 qreal m_minimumWidth;
334 qreal m_minimumHeight;
335 qreal m_preferredWidth;
336 qreal m_preferredHeight;
337 qreal m_maximumWidth;
338 qreal m_maximumHeight;
340 qreal m_defaultMargins;
343 qreal m_fallbackWidth;
344 qreal m_fallbackHeight;
352 unsigned m_fillWidth : 1;
353 unsigned m_fillHeight : 1;
354 unsigned m_isFillWidthSet : 1;
355 unsigned m_isFillHeightSet : 1;
356 unsigned m_isMinimumWidthSet : 1;
357 unsigned m_isMinimumHeightSet : 1;
360 unsigned m_isMaximumWidthSet : 1;
361 unsigned m_isMaximumHeightSet : 1;
362 unsigned m_changesNotificationEnabled : 1;
363 unsigned m_isMarginsSet : 1;
364 unsigned m_isLeftMarginSet : 1;
365 unsigned m_isTopMarginSet : 1;
366 unsigned m_isRightMarginSet : 1;
367 unsigned m_isBottomMarginSet : 1;
368 unsigned m_isAlignmentSet : 1;
369 Qt::Alignment m_alignment;
370 int m_horizontalStretch;
371 int m_verticalStretch;
virtual void itemSiblingOrderChanged(QQuickItem *)
virtual void itemImplicitWidthChanged(QQuickItem *)
virtual void itemDestroyed(QQuickItem *)
virtual void itemVisibilityChanged(QQuickItem *)
virtual void itemImplicitHeightChanged(QQuickItem *)
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
virtual void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
void componentComplete() override
\reimp Derived classes should call the base class method before adding their own actions to perform a...
virtual void itemChange(ItemChange, const ItemChangeData &)
Called when change occurs for this item.
virtual void updatePolish()
This function should perform any layout as required for this item.
ItemChange
Used in conjunction with QQuickItem::itemChange() to notify the item about certain types of changes.
bool enabled
\qmlproperty bool QtQuick::Item::enabled
void bottomMarginChanged()
qreal preferredWidth() const
bool isTopMarginSet() const
bool isHorizontalStretchFactorSet() const
bool isFillWidthSet() const
void preferredWidthChanged()
bool isRightMarginSet() const
QMarginsF qMargins() const
qreal minimumHeight() const
qreal preferredHeight() const
Qt::Alignment alignment() const
bool isPreferredHeightSet() const
bool isFillHeightSet() const
bool isMaximumHeightSet() const
bool isAlignmentSet() const
void minimumWidthChanged()
void preferredHeightChanged()
bool isLeftMarginSet() const
int horizontalStretchFactor() const
int verticalStretchFactor() const
bool isMaximumWidthSet() const
void maximumWidthChanged()
qreal maximumWidth() const
void rightMarginChanged()
bool isMarginsSet() const
qreal minimumWidth() const
void maximumHeightChanged()
bool isBottomMarginSet() const
bool isExtentExplicitlySet(Qt::Orientation o, Qt::SizeHint whichSize) const
void minimumHeightChanged()
QMarginsF effectiveQMargins() const
qreal maximumHeight() const
void horizontalStretchFactorChanged()
bool isPreferredWidthSet() const
qreal bottomMargin() const
bool isMinimumWidthSet() const
bool setChangesNotificationEnabled(bool enabled)
qreal rightMargin() const
bool isMinimumHeightSet() const
bool isVerticalStretchFactorSet() const
void verticalStretchFactorChanged()
unsigned m_disableRearrange
unsigned m_dirtyArrangement
virtual void setAlignment(QQuickItem *item, Qt::Alignment align)=0
EnsureLayoutItemsUpdatedOption
virtual void setStretchFactor(QQuickItem *item, int stretchFactor, Qt::Orientation orient)=0
virtual void updateLayoutItems()=0
virtual QQuickItem * itemAt(int index) const =0
virtual QSizeF sizeHint(Qt::SizeHint whichSizeHint) const =0
virtual int itemCount() const =0
\inmodule QtCore\reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
#define Q_DECLARE_LOGGING_CATEGORY(name)
constexpr const T & qMax(const T &a, const T &b)
GLenum GLuint GLint level
GLint GLsizei GLsizei height
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLsizei void GLsizei void * column
GLenum GLenum GLsizei void * row
GLenum GLenum GLsizei void GLsizei void void * span
#define QML_DECLARE_TYPE(TYPE)
#define QML_UNCREATABLE(REASON)
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_ATTACHED(ATTACHED_TYPE)
QQuickLayoutAttached * attachedLayoutObject(QQuickItem *item, bool create=true)
label setAlignment(Qt::AlignLeft|Qt::AlignTop)
[0]
QFileInfo info(fileName)
[8]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent