48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
/******************************************************************************
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
*****************************************************************************/
|
|
|
|
#ifndef ANCHOR_BOX_H
|
|
#define ANCHOR_BOX_H
|
|
|
|
#include "QskControl.h"
|
|
|
|
class AnchorBox : public QskControl
|
|
{
|
|
Q_OBJECT
|
|
|
|
using Inherited = QskControl;
|
|
|
|
public:
|
|
AnchorBox( QQuickItem* parent = nullptr );
|
|
~AnchorBox() override;
|
|
|
|
// anchoring to the box
|
|
void addAnchor( QQuickItem*, Qt::AnchorPoint, Qt::AnchorPoint );
|
|
void addAnchors( QQuickItem*, Qt::Corner );
|
|
void addAnchors( QQuickItem*, Qt::Orientations = Qt::Horizontal | Qt::Vertical );
|
|
|
|
// anchoring between 2 children
|
|
void addAnchor( QQuickItem*, Qt::AnchorPoint, QQuickItem*, Qt::AnchorPoint );
|
|
void addAnchors( QQuickItem*, Qt::Corner, QQuickItem*, Qt::Corner );
|
|
void addAnchors( QQuickItem*, QQuickItem*,
|
|
Qt::Orientations = Qt::Horizontal | Qt::Vertical );
|
|
|
|
protected:
|
|
void geometryChangeEvent( QskGeometryChangeEvent* ) override;
|
|
void updateLayout() override;
|
|
|
|
QSizeF layoutSizeHint( Qt::SizeHint, const QSizeF& ) const override;
|
|
|
|
private:
|
|
void setupAnchorConstraints();
|
|
void setupSizeConstraints( bool );
|
|
|
|
class PrivateData;
|
|
std::unique_ptr< PrivateData > m_data;
|
|
};
|
|
|
|
#endif
|
|
|