1234567891011121314151617181920212223242526272829303132333435363738 |
- #ifndef GRIDFLOWLAYOUT_H
- #define GRIDFLOWLAYOUT_H
- #include <QLayout>
- #include <QList>
- #include <QVector>
- class GridFlowLayout :
- public QLayout
- {
- QList<QLayoutItem*> items;
- QVector<int> widths;
- QVector<int> heights;
- public:
- GridFlowLayout(QWidget* parent);
- void addItem (QLayoutItem* item) override;
- QLayoutItem* itemAt (int index) const override;
- QLayoutItem* takeAt (int index) override;
- bool hasHeightForWidth (void) const override;
- int heightForWidth (int width) const override;
- int count (void) const override;
- Qt::Orientations expandingDirections (void) const override;
- QSize minimumSize (void) const override;
- QSize sizeHint (void) const override;
- void setGeometry (const QRect& rect) override;
- private:
- void applyLayout (int rows, const QVector<QSize>& sizeHints,
- const QRect& area);
- void calculateRows (int rows, const QVector<QSize>& sizeHints);
- bool checkRows (int rows, const QRect& rect,
- const QVector<QSize>& sizeHints);
-
- };
- #endif // GRIDFLOWLAYOUT_H
|