summaryrefslogtreecommitdiffstats
path: root/examples/graphicsview/flowlayout/flowlayout.h
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2009-03-31 12:47:53 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2009-03-31 12:54:50 (GMT)
commitf870d559aa3a3c56f4fe34ada49d613b45963377 (patch)
tree9d6aa3eea40d6cbd24731a29abde965ee7314113 /examples/graphicsview/flowlayout/flowlayout.h
parent8de6bbfa0f3819cd13fc5fd5acc3eb1f7689db73 (diff)
downloadQt-f870d559aa3a3c56f4fe34ada49d613b45963377.zip
Qt-f870d559aa3a3c56f4fe34ada49d613b45963377.tar.gz
Qt-f870d559aa3a3c56f4fe34ada49d613b45963377.tar.bz2
Add an example of how to write a custom layout for QGraphicsLayouts.
Flowlayout... Documentation will follow.
Diffstat (limited to 'examples/graphicsview/flowlayout/flowlayout.h')
-rw-r--r--examples/graphicsview/flowlayout/flowlayout.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/graphicsview/flowlayout/flowlayout.h b/examples/graphicsview/flowlayout/flowlayout.h
new file mode 100644
index 0000000..ab3d33b
--- /dev/null
+++ b/examples/graphicsview/flowlayout/flowlayout.h
@@ -0,0 +1,36 @@
+#include <QtGui/qgraphicslayout.h>
+
+class FlowLayout : public QGraphicsLayout
+{
+public:
+ FlowLayout();
+ inline void addItem(QGraphicsLayoutItem *item);
+ void insertItem(int index, QGraphicsLayoutItem *item);
+ void setSpacing(Qt::Orientations o, qreal spacing);
+ qreal spacing(Qt::Orientation o) const;
+
+ // inherited functions
+ void setGeometry(const QRectF &geom);
+
+ int count() const;
+ QGraphicsLayoutItem *itemAt(int index) const;
+ void removeAt(int index);
+
+protected:
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
+
+private:
+ qreal doLayout(const QRectF &geom, bool applyNewGeometry);
+ QSizeF minSize(const QSizeF &constraint) const;
+ QSizeF prefSize() const;
+ QSizeF maxSize() const;
+
+ QList<QGraphicsLayoutItem*> m_items;
+ qreal m_spacing[2];
+};
+
+
+inline void FlowLayout::addItem(QGraphicsLayoutItem *item)
+{
+ insertItem(-1, item);
+}