qskinny/src/layouts/QskIndexedLayoutBox.h

59 lines
1.7 KiB
C
Raw Normal View History

2017-07-21 18:21:34 +02:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#ifndef QSK_INDEXED_LAYOUT_BOX_H
#define QSK_INDEXED_LAYOUT_BOX_H
2019-04-08 13:08:58 +02:00
#include "QskLayoutBox.h"
2017-07-21 18:21:34 +02:00
2019-04-08 13:08:58 +02:00
class QSK_EXPORT QskIndexedLayoutBox : public QskLayoutBox
2017-07-21 18:21:34 +02:00
{
Q_OBJECT
Q_PROPERTY( bool autoAddChildren READ autoAddChildren
WRITE setAutoAddChildren NOTIFY autoAddChildrenChanged )
Q_PROPERTY( Qt::Alignment defaultAlignment READ defaultAlignment
WRITE setDefaultAlignment NOTIFY defaultAlignmentChanged )
2019-04-08 13:08:58 +02:00
using Inherited = QskLayoutBox;
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
public:
2017-07-21 18:21:34 +02:00
explicit QskIndexedLayoutBox( QQuickItem* parent = nullptr );
2018-07-31 17:32:25 +02:00
~QskIndexedLayoutBox() override;
2017-07-21 18:21:34 +02:00
void setAutoAddChildren( bool );
bool autoAddChildren() const;
void setDefaultAlignment( Qt::Alignment );
Qt::Alignment defaultAlignment() const;
2018-08-03 08:15:28 +02:00
Q_INVOKABLE void addItem(
QQuickItem*, Qt::Alignment alignment = Qt::Alignment() );
2017-07-21 18:21:34 +02:00
2018-08-03 08:15:28 +02:00
Q_INVOKABLE void insertItem(
int index, QQuickItem*, Qt::Alignment alignment = Qt::Alignment() );
2017-07-21 18:21:34 +02:00
2019-05-12 15:19:49 +02:00
void setAlignment( int index, Qt::Alignment );
Qt::Alignment alignment( int index ) const;
2017-07-21 18:21:34 +02:00
void setAlignment( const QQuickItem*, Qt::Alignment );
Qt::Alignment alignment( const QQuickItem* ) const;
2018-08-03 08:15:28 +02:00
Q_SIGNALS:
2017-07-21 18:21:34 +02:00
void autoAddChildrenChanged();
void defaultAlignmentChanged();
2018-08-03 08:15:28 +02:00
protected:
2018-07-31 17:32:25 +02:00
void itemChange( ItemChange, const ItemChangeData& ) override;
2017-07-21 18:21:34 +02:00
void insertLayoutItem( QskLayoutItem*, int index );
2018-08-03 08:15:28 +02:00
private:
2017-07-21 18:21:34 +02:00
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif