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