Cute Chess  0.1
tilelayout.h
1 /*
2  This file is part of Cute Chess.
3 
4  Cute Chess is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  Cute Chess is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with Cute Chess. If not, see <http://www.gnu.org/licenses/>.
16 */
17 
18 #ifndef TILELAYOUT_H
19 #define TILELAYOUT_H
20 
21 #include <QLayout>
22 #include <QStyle>
23 
24 class TileLayout : public QLayout
25 {
26  Q_OBJECT
27 
28  public:
29  explicit TileLayout(QWidget* parent = nullptr);
30  virtual ~TileLayout();
31 
32  // Inherited from QLayout
33  void addItem(QLayoutItem* item);
34  Qt::Orientations expandingDirections() const;
35  int count() const;
36  QLayoutItem* itemAt(int index) const;
37  QSize minimumSize() const;
38  void setGeometry(const QRect& rect);
39  QSize sizeHint() const;
40  QLayoutItem* takeAt(int index);
41 
42  private:
43  int horizontalSpacing() const;
44  int verticalSpacing() const;
45  void doLayout(const QRect& rect) const;
46  int smartSpacing(QStyle::PixelMetric pm) const;
47 
48  QList<QLayoutItem*> m_items;
49 };
50 
51 #endif // TILELAYOUT_H
Definition: tilelayout.h:24