44 lines
1.3 KiB
C++
44 lines
1.3 KiB
C++
/******************************************************************************
|
|
* QSkinny - Copyright (C) The authors
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#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 updateHints();
|
|
void updateGeometries( const QRectF& );
|
|
|
|
class PrivateData;
|
|
std::unique_ptr< PrivateData > m_data;
|
|
};
|