Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-16 09:23:43

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QGRAPHICSANCHORLAYOUT_H
0006 #define QGRAPHICSANCHORLAYOUT_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qgraphicsitem.h>
0010 #include <QtWidgets/qgraphicslayout.h>
0011 
0012 QT_REQUIRE_CONFIG(graphicsview);
0013 
0014 QT_BEGIN_NAMESPACE
0015 
0016 class QGraphicsAnchorPrivate;
0017 class QGraphicsAnchorLayout;
0018 class QGraphicsAnchorLayoutPrivate;
0019 
0020 class Q_WIDGETS_EXPORT QGraphicsAnchor : public QObject
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing RESET unsetSpacing)
0024     Q_PROPERTY(QSizePolicy::Policy sizePolicy READ sizePolicy WRITE setSizePolicy)
0025 public:
0026     void setSpacing(qreal spacing);
0027     void unsetSpacing();
0028     qreal spacing() const;
0029     void setSizePolicy(QSizePolicy::Policy policy);
0030     QSizePolicy::Policy sizePolicy() const;
0031     ~QGraphicsAnchor();
0032 private:
0033     QGraphicsAnchor(QGraphicsAnchorLayout *parent);
0034 
0035     Q_DECLARE_PRIVATE(QGraphicsAnchor)
0036 
0037     friend class QGraphicsAnchorLayoutPrivate;
0038 };
0039 
0040 class Q_WIDGETS_EXPORT QGraphicsAnchorLayout : public QGraphicsLayout
0041 {
0042 public:
0043     QGraphicsAnchorLayout(QGraphicsLayoutItem *parent = nullptr);
0044     virtual ~QGraphicsAnchorLayout();
0045 
0046     QGraphicsAnchor *addAnchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge,
0047                                QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge);
0048     QGraphicsAnchor *anchor(QGraphicsLayoutItem *firstItem, Qt::AnchorPoint firstEdge,
0049                             QGraphicsLayoutItem *secondItem, Qt::AnchorPoint secondEdge);
0050 
0051     void addCornerAnchors(QGraphicsLayoutItem *firstItem, Qt::Corner firstCorner,
0052                           QGraphicsLayoutItem *secondItem, Qt::Corner secondCorner);
0053 
0054     void addAnchors(QGraphicsLayoutItem *firstItem,
0055                     QGraphicsLayoutItem *secondItem,
0056                     Qt::Orientations orientations = Qt::Horizontal | Qt::Vertical);
0057 
0058     void setHorizontalSpacing(qreal spacing);
0059     void setVerticalSpacing(qreal spacing);
0060     void setSpacing(qreal spacing);
0061     qreal horizontalSpacing() const;
0062     qreal verticalSpacing() const;
0063 
0064     void removeAt(int index) override;
0065     void setGeometry(const QRectF &rect) override;
0066     int count() const override;
0067     QGraphicsLayoutItem *itemAt(int index) const override;
0068 
0069     void invalidate() override;
0070 protected:
0071     QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override;
0072 
0073 private:
0074     Q_DISABLE_COPY(QGraphicsAnchorLayout)
0075     Q_DECLARE_PRIVATE(QGraphicsAnchorLayout)
0076 
0077     friend class QGraphicsAnchor;
0078 };
0079 
0080 QT_END_NAMESPACE
0081 
0082 #endif