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.buttongroup;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.list;
17 import qt.core.object;
18 import qt.helpers;
19 import qt.widgets.abstractbutton;
20 
21 /+ QT_REQUIRE_CONFIG(buttongroup); +/
22 
23 
24 extern(C++, class) struct QButtonGroupPrivate;
25 
26 /// Binding for C++ class [QButtonGroup](https://doc.qt.io/qt-6/qbuttongroup.html).
27 class /+ Q_WIDGETS_EXPORT +/ QButtonGroup : QObject
28 {
29     mixin(Q_OBJECT);
30 
31     /+ Q_PROPERTY(bool exclusive READ exclusive WRITE setExclusive) +/
32 public:
33     /+ explicit +/this(QObject parent = null);
34     ~this();
35 
36     final void setExclusive(bool);
37     final bool exclusive() const;
38 
39     final void addButton(QAbstractButton , int id = -1);
40     final void removeButton(QAbstractButton );
41 
42     final QList!(QAbstractButton) buttons() const;
43 
44     final QAbstractButton  checkedButton() const;
45     // no setter on purpose!
46 
47     final QAbstractButton button(int id) const;
48     final void setId(QAbstractButton button, int id);
49     final int id(QAbstractButton button) const;
50     final int checkedId() const;
51 
52 /+ Q_SIGNALS +/public:
53     @QSignal final void buttonClicked(QAbstractButton );
54     @QSignal final void buttonPressed(QAbstractButton );
55     @QSignal final void buttonReleased(QAbstractButton );
56     @QSignal final void buttonToggled(QAbstractButton , bool);
57     @QSignal final void idClicked(int);
58     @QSignal final void idPressed(int);
59     @QSignal final void idReleased(int);
60     @QSignal final void idToggled(int, bool);
61 
62 private:
63     /+ Q_DISABLE_COPY(QButtonGroup) +/
64     /+ Q_DECLARE_PRIVATE(QButtonGroup) +/
65     /+ friend class QAbstractButton; +/
66     /+ friend class QAbstractButtonPrivate; +/
67     mixin(CREATE_CONVENIENCE_WRAPPERS);
68 }
69