qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
flowlayout.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the examples of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 ** * Redistributions of source code must retain the above copyright
15 ** notice, this list of conditions and the following disclaimer.
16 ** * Redistributions in binary form must reproduce the above copyright
17 ** notice, this list of conditions and the following disclaimer in
18 ** the documentation and/or other materials provided with the
19 ** distribution.
20 ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 ** of its contributors may be used to endorse or promote products derived
22 ** from this software without specific prior written permission.
23 **
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40 
41 #pragma once
42 
43 #include <QLayout>
44 #include <QRect>
45 #include <QStyle>
46 class FlowLayout : public QLayout
47 {
48 public:
49  explicit FlowLayout(QWidget* parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
50  explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
51  ~FlowLayout();
52 
53  void addItem(QLayoutItem* item);
54  int horizontalSpacing() const;
55  int verticalSpacing() const;
56  Qt::Orientations expandingDirections() const;
57  bool hasHeightForWidth() const;
58  int heightForWidth(int) const;
59  int count() const;
60  QLayoutItem* itemAt(int index) const;
61  QSize minimumSize() const;
62  void setGeometry(const QRect& rect);
63  QSize sizeHint() const;
64  QLayoutItem* takeAt(int index);
65 
66 private:
67  int doLayout(const QRect& rect, bool testOnly) const;
68  int smartSpacing(QStyle::PixelMetric pm) const;
69 
71  int m_hSpace;
72  int m_vSpace;
73 };
FlowLayout::minimumSize
QSize minimumSize() const
Definition: flowlayout.cpp:132
FlowLayout::itemList
QList< QLayoutItem * > itemList
Definition: flowlayout.h:108
FlowLayout::hasHeightForWidth
bool hasHeightForWidth() const
Definition: flowlayout.cpp:110
FlowLayout::takeAt
QLayoutItem * takeAt(int index)
Definition: flowlayout.cpp:97
FlowLayout::horizontalSpacing
int horizontalSpacing() const
Definition: flowlayout.cpp:71
QList< QLayoutItem * >
FlowLayout::setGeometry
void setGeometry(const QRect &rect)
Definition: flowlayout.cpp:121
FlowLayout::count
int count() const
Definition: flowlayout.cpp:87
FlowLayout
Definition: flowlayout.h:46
FlowLayout::verticalSpacing
int verticalSpacing() const
Definition: flowlayout.cpp:79
FlowLayout::~FlowLayout
~FlowLayout()
Definition: flowlayout.cpp:59
FlowLayout::addItem
void addItem(QLayoutItem *item)
Definition: flowlayout.cpp:66
FlowLayout::m_hSpace
int m_hSpace
Definition: flowlayout.h:109
FlowLayout::sizeHint
QSize sizeHint() const
Definition: flowlayout.cpp:127
FlowLayout::m_vSpace
int m_vSpace
Definition: flowlayout.h:110
FlowLayout::itemAt
QLayoutItem * itemAt(int index) const
Definition: flowlayout.cpp:92
FlowLayout::smartSpacing
int smartSpacing(QStyle::PixelMetric pm) const
Definition: flowlayout.cpp:180
FlowLayout::FlowLayout
FlowLayout(QWidget *parent, int margin=-1, int hSpacing=-1, int vSpacing=-1)
Definition: flowlayout.cpp:44
FlowLayout::doLayout
int doLayout(const QRect &rect, bool testOnly) const
Definition: flowlayout.cpp:142
FlowLayout::heightForWidth
int heightForWidth(int) const
Definition: flowlayout.cpp:115
FlowLayout::expandingDirections
Qt::Orientations expandingDirections() const
Definition: flowlayout.cpp:105