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.dialogbuttonbox; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.flags; 18 import qt.core.list; 19 import qt.core.namespace; 20 import qt.core.string; 21 import qt.helpers; 22 import qt.widgets.abstractbutton; 23 import qt.widgets.pushbutton; 24 import qt.widgets.widget; 25 26 /+ QT_REQUIRE_CONFIG(dialogbuttonbox); +/ 27 28 29 30 extern(C++, class) struct QDialogButtonBoxPrivate; 31 32 /// Binding for C++ class [QDialogButtonBox](https://doc.qt.io/qt-6/qdialogbuttonbox.html). 33 class /+ Q_WIDGETS_EXPORT +/ QDialogButtonBox : QWidget 34 { 35 mixin(Q_OBJECT); 36 /+ Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) 37 Q_PROPERTY(StandardButtons standardButtons READ standardButtons WRITE setStandardButtons) 38 Q_PROPERTY(bool centerButtons READ centerButtons WRITE setCenterButtons) +/ 39 40 public: 41 enum ButtonRole { 42 // keep this in sync with QMessageBox::ButtonRole and QPlatformDialogHelper::ButtonRole 43 InvalidRole = -1, 44 AcceptRole, 45 RejectRole, 46 DestructiveRole, 47 ActionRole, 48 HelpRole, 49 YesRole, 50 NoRole, 51 ResetRole, 52 ApplyRole, 53 54 NRoles 55 } 56 57 enum StandardButton { 58 // keep this in sync with QMessageBox::StandardButton and QPlatformDialogHelper::StandardButton 59 NoButton = 0x00000000, 60 Ok = 0x00000400, 61 Save = 0x00000800, 62 SaveAll = 0x00001000, 63 Open = 0x00002000, 64 Yes = 0x00004000, 65 YesToAll = 0x00008000, 66 No = 0x00010000, 67 NoToAll = 0x00020000, 68 Abort = 0x00040000, 69 Retry = 0x00080000, 70 Ignore = 0x00100000, 71 Close = 0x00200000, 72 Cancel = 0x00400000, 73 Discard = 0x00800000, 74 Help = 0x01000000, 75 Apply = 0x02000000, 76 Reset = 0x04000000, 77 RestoreDefaults = 0x08000000, 78 79 /+ #ifndef Q_MOC_RUN +/ 80 FirstButton = StandardButton.Ok, 81 LastButton = StandardButton.RestoreDefaults 82 /+ #endif +/ 83 } 84 85 /+ Q_DECLARE_FLAGS(StandardButtons, StandardButton) +/ 86 alias StandardButtons = QFlags!(StandardButton); /+ Q_FLAG(StandardButtons) +/ 87 88 enum ButtonLayout { 89 // keep this in sync with QPlatformDialogHelper::ButtonLayout 90 WinLayout, 91 MacLayout, 92 KdeLayout, 93 GnomeLayout, 94 AndroidLayout 95 } 96 97 this(QWidget parent = null); 98 this(/+ Qt:: +/qt.core.namespace.Orientation orientation, QWidget parent = null); 99 /+ explicit +/this(StandardButtons buttons, QWidget parent = null); 100 this(StandardButtons buttons, /+ Qt:: +/qt.core.namespace.Orientation orientation, 101 QWidget parent = null); 102 ~this(); 103 104 final void setOrientation(/+ Qt:: +/qt.core.namespace.Orientation orientation); 105 final /+ Qt:: +/qt.core.namespace.Orientation orientation() const; 106 107 final void addButton(QAbstractButton button, ButtonRole role); 108 final QPushButton addButton(ref const(QString) text, ButtonRole role); 109 final QPushButton addButton(StandardButton button); 110 final void removeButton(QAbstractButton button); 111 final void clear(); 112 113 final QList!(QAbstractButton) buttons() const; 114 final ButtonRole buttonRole(QAbstractButton button) const; 115 116 final void setStandardButtons(StandardButtons buttons); 117 final StandardButtons standardButtons() const; 118 final StandardButton standardButton(QAbstractButton button) const; 119 final QPushButton button(StandardButton which) const; 120 121 final void setCenterButtons(bool center); 122 final bool centerButtons() const; 123 124 /+ Q_SIGNALS +/public: 125 @QSignal final void clicked(QAbstractButton button); 126 @QSignal final void accepted(); 127 @QSignal final void helpRequested(); 128 @QSignal final void rejected(); 129 130 protected: 131 override void changeEvent(QEvent event); 132 override bool event(QEvent event); 133 134 private: 135 /+ Q_DISABLE_COPY(QDialogButtonBox) +/ 136 /+ Q_DECLARE_PRIVATE(QDialogButtonBox) +/ 137 /+ Q_PRIVATE_SLOT(d_func(), void _q_handleButtonClicked()) 138 Q_PRIVATE_SLOT(d_func(), void _q_handleButtonDestroyed()) +/ 139 mixin(CREATE_CONVENIENCE_WRAPPERS); 140 } 141 /+pragma(inline, true) QFlags!(QDialogButtonBox.StandardButtons.enum_type) operator |(QDialogButtonBox.StandardButtons.enum_type f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/{return QFlags!(QDialogButtonBox.StandardButtons.enum_type)(f1)|f2;}+/ 142 /+pragma(inline, true) QFlags!(QDialogButtonBox.StandardButtons.enum_type) operator |(QDialogButtonBox.StandardButtons.enum_type f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 143 /+pragma(inline, true) QFlags!(QDialogButtonBox.StandardButtons.enum_type) operator &(QDialogButtonBox.StandardButtons.enum_type f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/{return QFlags!(QDialogButtonBox.StandardButtons.enum_type)(f1)&f2;}+/ 144 /+pragma(inline, true) QFlags!(QDialogButtonBox.StandardButtons.enum_type) operator &(QDialogButtonBox.StandardButtons.enum_type f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 145 /+pragma(inline, true) void operator +(QDialogButtonBox.StandardButtons.enum_type f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/;+/ 146 /+pragma(inline, true) void operator +(QDialogButtonBox.StandardButtons.enum_type f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/;+/ 147 /+pragma(inline, true) void operator +(int f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/;+/ 148 /+pragma(inline, true) void operator -(QDialogButtonBox.StandardButtons.enum_type f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/;+/ 149 /+pragma(inline, true) void operator -(QDialogButtonBox.StandardButtons.enum_type f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/;+/ 150 /+pragma(inline, true) void operator -(int f1, QFlags!(QDialogButtonBox.StandardButtons.enum_type) f2)/+noexcept+/;+/ 151 /+pragma(inline, true) QIncompatibleFlag operator |(QDialogButtonBox.StandardButtons.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 152 /+pragma(inline, true) void operator +(int f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/;+/ 153 /+pragma(inline, true) void operator +(QDialogButtonBox.StandardButtons.enum_type f1, int f2)/+noexcept+/;+/ 154 /+pragma(inline, true) void operator -(int f1, QDialogButtonBox.StandardButtons.enum_type f2)/+noexcept+/;+/ 155 /+pragma(inline, true) void operator -(QDialogButtonBox.StandardButtons.enum_type f1, int f2)/+noexcept+/;+/ 156 157 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QDialogButtonBox::StandardButtons) +/