/**************************************************************************** ** ** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ******************************************************************************/ #ifndef QBOXLAYOUT_H #define QBOXLAYOUT_H #include #include #ifdef QT_INCLUDE_COMPAT #include #endif #include QT_BEGIN_NAMESPACE class QBoxLayoutPrivate; class Q_WIDGETS_EXPORT QBoxLayout : public QLayout { Q_OBJECT Q_DECLARE_PRIVATE(QBoxLayout) public: enum Direction { LeftToRight, RightToLeft, TopToBottom, BottomToTop, Down = TopToBottom, Up = BottomToTop }; explicit QBoxLayout(Direction, QWidget *parent = nullptr); ~QBoxLayout(); Direction direction() const; void setDirection(Direction); void addSpacing(int size); void addStretch(int stretch = 0); void addSpacerItem(QSpacerItem *spacerItem); void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()); void addLayout(QLayout *layout, int stretch = 0); void addStrut(int); void addItem(QLayoutItem *) override; void insertSpacing(int index, int size); void insertStretch(int index, int stretch = 0); void insertSpacerItem(int index, QSpacerItem *spacerItem); void insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()); void insertLayout(int index, QLayout *layout, int stretch = 0); void insertItem(int index, QLayoutItem *); int spacing() const override; void setSpacing(int spacing) override; bool setStretchFactor(QWidget *w, int stretch); bool setStretchFactor(QLayout *l, int stretch); void setStretch(int index, int stretch); int stretch(int index) const; QSize sizeHint() const override; QSize minimumSize() const override; QSize maximumSize() const override; bool hasHeightForWidth() const override; int heightForWidth(int) const override; int minimumHeightForWidth(int) const override; Qt::Orientations expandingDirections() const override; void invalidate() override; QLayoutItem *itemAt(int) const override; QLayoutItem *takeAt(int) override; int count() const override; void setGeometry(const QRect&) override; private: Q_DISABLE_COPY(QBoxLayout) }; class Q_WIDGETS_EXPORT QHBoxLayout : public QBoxLayout { Q_OBJECT public: QHBoxLayout(); explicit QHBoxLayout(QWidget *parent); ~QHBoxLayout(); private: Q_DISABLE_COPY(QHBoxLayout) }; class Q_WIDGETS_EXPORT QVBoxLayout : public QBoxLayout { Q_OBJECT public: QVBoxLayout(); explicit QVBoxLayout(QWidget *parent); ~QVBoxLayout(); private: Q_DISABLE_COPY(QVBoxLayout) }; QT_END_NAMESPACE #endif // QBOXLAYOUT_H