Mercurial > minori
diff include/gui/layouts/flow_layout.h @ 253:b3549da699a6
*: ooooh! stupid big commit!
oops
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Tue, 06 Feb 2024 16:56:32 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/gui/layouts/flow_layout.h Tue Feb 06 16:56:32 2024 -0500 @@ -0,0 +1,39 @@ +#ifndef __gui__layouts__flow_layout_h +#define __gui__layouts__flow_layout_h + +#include <QLayout> +#include <QRect> +#include <QStyle> + +class QWidget; +class QLayoutItem; + +class FlowLayout : public QLayout { +public: + explicit FlowLayout(QWidget* parent, int margin = -1, int hSpacing = -1, int vSpacing = -1); + explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1); + ~FlowLayout(); + + void addItem(QLayoutItem* item) override; + int horizontalSpacing() const; + int verticalSpacing() const; + Qt::Orientations expandingDirections() const override; + bool hasHeightForWidth() const override; + int heightForWidth(int) const override; + int count() const override; + QLayoutItem* itemAt(int index) const override; + QSize minimumSize() const override; + void setGeometry(const QRect& rect) override; + QSize sizeHint() const override; + QLayoutItem* takeAt(int index) override; + +private: + int doLayout(const QRect& rect, bool testOnly) const; + int smartSpacing(QStyle::PixelMetric pm) const; + + QList<QLayoutItem*> item_list; + int _horiz_space; + int _vert_space; +}; + +#endif // __gui__layouts__flow_layout_h \ No newline at end of file