Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-02 09:19:39

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 QGRAPHICSLAYOUTITEM_H
0006 #define QGRAPHICSLAYOUTITEM_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qscopedpointer.h>
0010 #include <QtWidgets/qsizepolicy.h>
0011 #include <QtGui/qevent.h>
0012 
0013 QT_REQUIRE_CONFIG(graphicsview);
0014 
0015 QT_BEGIN_NAMESPACE
0016 
0017 class QGraphicsLayoutItemPrivate;
0018 class QGraphicsItem;
0019 class Q_WIDGETS_EXPORT QGraphicsLayoutItem
0020 {
0021 public:
0022     QGraphicsLayoutItem(QGraphicsLayoutItem *parent = nullptr, bool isLayout = false);
0023     virtual ~QGraphicsLayoutItem();
0024 
0025     void setSizePolicy(const QSizePolicy &policy);
0026     void setSizePolicy(QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType = QSizePolicy::DefaultType);
0027     QSizePolicy sizePolicy() const;
0028 
0029     void setMinimumSize(const QSizeF &size);
0030     inline void setMinimumSize(qreal w, qreal h);
0031     QSizeF minimumSize() const;
0032     void setMinimumWidth(qreal width);
0033     inline qreal minimumWidth() const;
0034     void setMinimumHeight(qreal height);
0035     inline qreal minimumHeight() const;
0036 
0037     void setPreferredSize(const QSizeF &size);
0038     inline void setPreferredSize(qreal w, qreal h);
0039     QSizeF preferredSize() const;
0040     void setPreferredWidth(qreal width);
0041     inline qreal preferredWidth() const;
0042     void setPreferredHeight(qreal height);
0043     inline qreal preferredHeight() const;
0044 
0045     void setMaximumSize(const QSizeF &size);
0046     inline void setMaximumSize(qreal w, qreal h);
0047     QSizeF maximumSize() const;
0048     void setMaximumWidth(qreal width);
0049     inline qreal maximumWidth() const;
0050     void setMaximumHeight(qreal height);
0051     inline qreal maximumHeight() const;
0052 
0053     virtual void setGeometry(const QRectF &rect);
0054     QRectF geometry() const;
0055     virtual void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const;
0056     QRectF contentsRect() const;
0057 
0058     QSizeF effectiveSizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
0059 
0060     virtual void updateGeometry();
0061 
0062     virtual bool isEmpty() const;
0063     QGraphicsLayoutItem *parentLayoutItem() const;
0064     void setParentLayoutItem(QGraphicsLayoutItem *parent);
0065 
0066     bool isLayout() const;
0067     QGraphicsItem *graphicsItem() const;
0068     bool ownedByLayout() const;
0069 
0070 protected:
0071     void setGraphicsItem(QGraphicsItem *item);
0072     void setOwnedByLayout(bool ownedByLayout);
0073     QGraphicsLayoutItem(QGraphicsLayoutItemPrivate &dd);
0074 
0075     virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const = 0;
0076     QScopedPointer<QGraphicsLayoutItemPrivate> d_ptr;
0077 
0078 private:
0079     QSizeF *effectiveSizeHints(const QSizeF &constraint) const;
0080     Q_DECLARE_PRIVATE(QGraphicsLayoutItem)
0081 
0082     friend class QGraphicsLayout;
0083 };
0084 
0085 #ifndef Q_QDOC
0086 Q_DECLARE_INTERFACE(QGraphicsLayoutItem, "org.qt-project.Qt.QGraphicsLayoutItem")
0087 #endif
0088 
0089 inline void QGraphicsLayoutItem::setMinimumSize(qreal aw, qreal ah)
0090 { setMinimumSize(QSizeF(aw, ah)); }
0091 inline void QGraphicsLayoutItem::setPreferredSize(qreal aw, qreal ah)
0092 { setPreferredSize(QSizeF(aw, ah)); }
0093 inline void QGraphicsLayoutItem::setMaximumSize(qreal aw, qreal ah)
0094 { setMaximumSize(QSizeF(aw, ah)); }
0095 
0096 inline qreal QGraphicsLayoutItem::minimumWidth() const
0097 { return effectiveSizeHint(Qt::MinimumSize).width(); }
0098 inline qreal QGraphicsLayoutItem::minimumHeight() const
0099 { return effectiveSizeHint(Qt::MinimumSize).height(); }
0100 
0101 inline qreal QGraphicsLayoutItem::preferredWidth() const
0102 { return effectiveSizeHint(Qt::PreferredSize).width(); }
0103 inline qreal QGraphicsLayoutItem::preferredHeight() const
0104 { return effectiveSizeHint(Qt::PreferredSize).height(); }
0105 
0106 inline qreal QGraphicsLayoutItem::maximumWidth() const
0107 { return effectiveSizeHint(Qt::MaximumSize).width(); }
0108 inline qreal QGraphicsLayoutItem::maximumHeight() const
0109 { return effectiveSizeHint(Qt::MaximumSize).height(); }
0110 
0111 QT_END_NAMESPACE
0112 
0113 #endif