porymap/include/ui/flowlayout.h

36 lines
1 KiB
C
Raw Permalink Normal View History

2020-10-20 18:48:45 +01:00
#ifndef FLOWLAYOUT_H
#define FLOWLAYOUT_H
#include <QLayout>
#include <QStyle>
2021-02-18 00:20:14 +00:00
class FlowLayout : public QLayout {
2020-10-20 18:48:45 +01:00
public:
2021-02-18 00:20:14 +00:00
explicit FlowLayout(QWidget* parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
2020-10-20 18:48:45 +01:00
explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
~FlowLayout();
2021-02-18 00:20:14 +00:00
void addItem(QLayoutItem* item) override;
2020-10-20 18:48:45 +01:00
int horizontalSpacing() const;
int verticalSpacing() const;
Qt::Orientations expandingDirections() const override;
bool hasHeightForWidth() const override;
int heightForWidth(int) const override;
int count() const override;
2021-02-18 00:20:14 +00:00
QLayoutItem* itemAt(int index) const override;
2020-10-20 18:48:45 +01:00
QSize minimumSize() const override;
2021-02-18 00:20:14 +00:00
void setGeometry(const QRect& rect) override;
2020-10-20 18:48:45 +01:00
QSize sizeHint() const override;
2021-02-18 00:20:14 +00:00
QLayoutItem* takeAt(int index) override;
2020-10-20 18:48:45 +01:00
private:
2021-02-18 00:20:14 +00:00
int doLayout(const QRect& rect, bool testOnly) const;
2020-10-20 18:48:45 +01:00
int smartSpacing(QStyle::PixelMetric pm) const;
2021-02-18 00:20:14 +00:00
QList<QLayoutItem*> itemList;
2020-10-20 18:48:45 +01:00
int horzSpace;
int vertSpace;
};
#endif // FLOWLAYOUT_H