1 /*
2  * DQt - D bindings for the Qt Toolkit
3  *
4  * GNU Lesser General Public License Usage
5  * This file may be used under the terms of the GNU Lesser
6  * General Public License version 3 as published by the Free Software
7  * Foundation and appearing in the file LICENSE.LGPL3 included in the
8  * packaging of this file. Please review the following information to
9  * ensure the GNU Lesser General Public License version 3 requirements
10  * will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
11  */
12 module qt.widgets.gridlayout;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.namespace;
17 import qt.core.rect;
18 import qt.core.size;
19 import qt.helpers;
20 import qt.widgets.layout;
21 import qt.widgets.layoutitem;
22 import qt.widgets.widget;
23 
24 /+ #ifdef QT_INCLUDE_COMPAT
25 #endif +/
26 
27 
28 
29 extern(C++, class) struct QGridLayoutPrivate;
30 
31 /// Binding for C++ class [QGridLayout](https://doc.qt.io/qt-6/qgridlayout.html).
32 class /+ Q_WIDGETS_EXPORT +/ QGridLayout : QLayout
33 {
34     mixin(Q_OBJECT);
35     /+ Q_DECLARE_PRIVATE(QGridLayout) +/
36     /+ QDOC_PROPERTY(int horizontalSpacing READ horizontalSpacing WRITE setHorizontalSpacing)
37     QDOC_PROPERTY(int verticalSpacing READ verticalSpacing WRITE setVerticalSpacing) +/
38 
39 public:
40     /+ explicit +/this(QWidget parent = null);
41     ~this();
42 
43     override QSize sizeHint() const;
44     override QSize minimumSize() const;
45     override QSize maximumSize() const;
46 
47     final void setHorizontalSpacing(int spacing);
48     final int horizontalSpacing() const;
49     final void setVerticalSpacing(int spacing);
50     final int verticalSpacing() const;
51     override void setSpacing(int spacing);
52     override int spacing() const;
53 
54     final void setRowStretch(int row, int stretch);
55     final void setColumnStretch(int column, int stretch);
56     final int rowStretch(int row) const;
57     final int columnStretch(int column) const;
58 
59     final void setRowMinimumHeight(int row, int minSize);
60     final void setColumnMinimumWidth(int column, int minSize);
61     final int rowMinimumHeight(int row) const;
62     final int columnMinimumWidth(int column) const;
63 
64     final int columnCount() const;
65     final int rowCount() const;
66 
67     final QRect cellRect(int row, int column) const;
68 
69     override bool hasHeightForWidth() const;
70     override int heightForWidth(int) const;
71     override int minimumHeightForWidth(int) const;
72 
73     override /+ Qt:: +/qt.core.namespace.Orientations expandingDirections() const;
74     override void invalidate();
75 
76     // pragma(inline, true) final void addWidget(QWidget w) { QLayout.addWidget(w); }
77     final void addWidget(QWidget , int row, int column, /+ Qt:: +/qt.core.namespace.Alignment = globalInitVar!Alignment);
78     final void addWidget(QWidget , int row, int column, int rowSpan, int columnSpan, /+ Qt:: +/qt.core.namespace.Alignment = globalInitVar!Alignment);
79     final void addLayout(QLayout , int row, int column, /+ Qt:: +/qt.core.namespace.Alignment = globalInitVar!Alignment);
80     final void addLayout(QLayout , int row, int column, int rowSpan, int columnSpan, /+ Qt:: +/qt.core.namespace.Alignment = globalInitVar!Alignment);
81 
82     final void setOriginCorner(/+ Qt:: +/qt.core.namespace.Corner);
83     final /+ Qt:: +/qt.core.namespace.Corner originCorner() const;
84 
85     override QLayoutItem itemAt(int index) const;
86     final QLayoutItem itemAtPosition(int row, int column) const;
87     override QLayoutItem takeAt(int index);
88     override int count() const;
89     override void setGeometry(ref const(QRect));
90 
91     final void addItem(QLayoutItem item, int row, int column, int rowSpan = 1, int columnSpan = 1, /+ Qt:: +/qt.core.namespace.Alignment = globalInitVar!(qt.core.namespace.Alignment));
92 
93     final void setDefaultPositioning(int n, /+ Qt:: +/qt.core.namespace.Orientation orient);
94     final void getItemPosition(int idx, int* row, int* column, int* rowSpan, int* columnSpan) const;
95 
96 protected:
97     override void addItem(QLayoutItem );
98 
99 private:
100     /+ Q_DISABLE_COPY(QGridLayout) +/
101 
102     mixin(CREATE_CONVENIENCE_WRAPPERS);
103 }
104