24 #include "ginteractor.h" 36 enum Position { West, North, South, East, Center };
38 static void clearLayout(QLayout* layout);
39 static bool contains(QLayout* layout, QWidget* widget);
40 static void forceUpdate(GInteractor* interactor);
41 static void forceUpdate(QWidget* widget);
42 static QSize getPreferredSize(QWidget* widget);
43 static QSize getProperSize(QLayout* layout);
44 static QSize getProperSize(QWidget* widget);
45 static void invalidateLayout(QLayout* layout);
46 static Position toPosition(
const string& positionName);
62 class GBorderLayout :
public QLayout {
64 GBorderLayout(QWidget* parent,
int margin = 0,
int spacing = -1);
65 GBorderLayout(
int spacing = -1);
66 ~GBorderLayout()
override;
68 void addItem(QLayoutItem* item)
override;
69 void addWidget(QWidget* widget);
70 void addWidget(QWidget* widget, GLayout::Position position);
71 Qt::Orientations expandingDirections()
const override;
72 bool hasHeightForWidth()
const override;
73 int count()
const override;
74 QLayoutItem* itemAt(
int index)
const override;
75 QSize minimumSize()
const override;
76 void setGeometry(
const QRect& rect)
override;
77 QSize sizeHint()
const override;
78 QLayoutItem* takeAt(
int index)
override;
80 void add(QLayoutItem* item, GLayout::Position position);
83 Q_DISABLE_COPY(GBorderLayout)
86 ItemWrapper(QLayoutItem* i, GLayout::Position p) {
92 GLayout::Position position;
95 enum SizeType { MinimumSize, SizeHint };
97 QSize calculateSize(SizeType sizeType)
const;
99 QList<ItemWrapper*> list;