4#ifndef QQUICKUNIFIEDLAYOUT_H
5#define QQUICKUNIFIEDLAYOUT_H
20#include <QtCore/qtimer.h>
21#include <QtQuickTemplates2/private/qquickcontrol_p.h>
22#include <QtQuick/qquickitem.h>
26class QQStyleKitLayoutItem :
public QObject
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)
41 QQStyleKitLayoutItem(QObject *parent =
nullptr);
42 QQuickItem *item()
const;
43 void setItem(QQuickItem *item);
50 void setWidth(qreal width);
52 void setHeight(qreal height);
54 Qt::Alignment alignment()
const;
55 void setAlignment(Qt::Alignment alignment);
57 QMarginsF margins()
const;
58 void setMargins(
const QMarginsF &margins);
60 bool fillWidth()
const;
61 void setFillWidth(
bool fill);
63 bool fillHeight()
const;
64 void setFillHeight(
bool fill);
72 void alignmentChanged();
73 void marginsChanged();
74 void fillWidthChanged();
75 void fillHeightChanged();
78 QPointer<QQuickItem> m_item;
79 Qt::Alignment m_alignment = Qt::AlignLeft | Qt::AlignVCenter;
81 bool m_fillWidth =
false;
82 bool m_fillHeight =
false;
92 Q_PROPERTY(QQuickItem *container READ container WRITE setContainer NOTIFY containerChanged FINAL)
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);
152 QPointer<QQuickItem> m_container;
153 QList<QQStyleKitLayoutItem *> m_layoutItems;
154 QMarginsF m_contentMargins;
157 qreal m_implicitWidth = 0;;
158 qreal m_implicitHeight = 0;
void setImplicitHeight(qreal height)
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)