Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-19 09:34:25

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 QLAYOUT_H
0006 #define QLAYOUT_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtCore/qobject.h>
0010 #include <QtWidgets/qlayoutitem.h>
0011 #include <QtWidgets/qsizepolicy.h>
0012 #include <QtCore/qrect.h>
0013 #include <QtCore/qmargins.h>
0014 
0015 #include <limits.h>
0016 
0017 QT_BEGIN_NAMESPACE
0018 
0019 
0020 class QLayout;
0021 class QSize;
0022 
0023 
0024 class QLayoutPrivate;
0025 
0026 class Q_WIDGETS_EXPORT QLayout : public QObject, public QLayoutItem
0027 {
0028     Q_OBJECT
0029     Q_DECLARE_PRIVATE(QLayout)
0030 
0031     Q_PROPERTY(int spacing READ spacing WRITE setSpacing)
0032     Q_PROPERTY(QMargins contentsMargins READ contentsMargins WRITE setContentsMargins
0033                RESET unsetContentsMargins)
0034 
0035     Q_PROPERTY(SizeConstraint sizeConstraint READ sizeConstraint WRITE setSizeConstraint)
0036     Q_PROPERTY(SizeConstraint horizontalSizeConstraint READ horizontalSizeConstraint WRITE setHorizontalSizeConstraint)
0037     Q_PROPERTY(SizeConstraint verticalSizeConstraint READ verticalSizeConstraint WRITE setVerticalSizeConstraint)
0038 
0039 public:
0040     enum SizeConstraint {
0041         SetDefaultConstraint,
0042         SetNoConstraint,
0043         SetMinimumSize,
0044         SetFixedSize,
0045         SetMaximumSize,
0046         SetMinAndMaxSize
0047     };
0048     Q_ENUM(SizeConstraint)
0049 
0050     explicit QLayout(QWidget *parent = nullptr);
0051     ~QLayout();
0052 
0053     virtual int spacing() const;
0054     virtual void setSpacing(int);
0055 
0056     void setContentsMargins(int left, int top, int right, int bottom);
0057     void setContentsMargins(const QMargins &margins);
0058     void unsetContentsMargins();
0059     void getContentsMargins(int *left, int *top, int *right, int *bottom) const;
0060     QMargins contentsMargins() const;
0061     QRect contentsRect() const;
0062 
0063     bool setAlignment(QWidget *w, Qt::Alignment alignment);
0064     bool setAlignment(QLayout *l, Qt::Alignment alignment);
0065     using QLayoutItem::setAlignment;
0066 
0067     void setSizeConstraint(SizeConstraint constraint);
0068     SizeConstraint sizeConstraint() const;
0069 
0070     void setSizeConstraints(SizeConstraint horizontal, SizeConstraint vertical);
0071 
0072     void setHorizontalSizeConstraint(SizeConstraint constraint);
0073     SizeConstraint horizontalSizeConstraint() const;
0074 
0075     void setVerticalSizeConstraint(SizeConstraint constraint);
0076     SizeConstraint verticalSizeConstraint() const;
0077 
0078     void setMenuBar(QWidget *w);
0079     QWidget *menuBar() const;
0080 
0081     QWidget *parentWidget() const;
0082 
0083     void invalidate() override;
0084     QRect geometry() const override;
0085     bool activate();
0086     void update();
0087 
0088     void addWidget(QWidget *w);
0089     virtual void addItem(QLayoutItem *) = 0;
0090 
0091     void removeWidget(QWidget *w);
0092     void removeItem(QLayoutItem *);
0093 
0094     Qt::Orientations expandingDirections() const override;
0095     QSize minimumSize() const override;
0096     QSize maximumSize() const override;
0097     virtual void setGeometry(const QRect&) override;
0098     virtual QLayoutItem *itemAt(int index) const = 0;
0099     virtual QLayoutItem *takeAt(int index) = 0;
0100     virtual int indexOf(const QWidget *) const;
0101     virtual int indexOf(const QLayoutItem *) const;
0102     virtual int count() const = 0;
0103     bool isEmpty() const override;
0104     QSizePolicy::ControlTypes controlTypes() const override;
0105 
0106     virtual QLayoutItem *replaceWidget(QWidget *from, QWidget *to,
0107                                        Qt::FindChildOptions options = Qt::FindChildrenRecursively);
0108 
0109     int totalMinimumHeightForWidth(int w) const;
0110     int totalHeightForWidth(int w) const;
0111     QSize totalMinimumSize() const;
0112     QSize totalMaximumSize() const;
0113     QSize totalSizeHint() const;
0114     QLayout *layout() override;
0115 
0116     void setEnabled(bool);
0117     bool isEnabled() const;
0118 
0119 
0120     static QSize closestAcceptableSize(const QWidget *w, const QSize &s);
0121 
0122 protected:
0123     void widgetEvent(QEvent *);
0124     void childEvent(QChildEvent *e) override;
0125     void addChildLayout(QLayout *l);
0126     void addChildWidget(QWidget *w);
0127     bool adoptLayout(QLayout *layout);
0128 
0129     QRect alignmentRect(const QRect&) const;
0130 protected:
0131     QLayout(QLayoutPrivate &d, QLayout*, QWidget*);
0132 
0133 private:
0134     Q_DISABLE_COPY(QLayout)
0135 
0136     static void activateRecursiveHelper(QLayoutItem *item);
0137 
0138     friend class QApplicationPrivate;
0139     friend class QWidget;
0140 
0141 };
0142 
0143 QT_END_NAMESPACE
0144 
0145 //### support old includes
0146 #include <QtWidgets/qboxlayout.h>
0147 #include <QtWidgets/qgridlayout.h>
0148 
0149 #endif // QLAYOUT_H