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.inputdialog; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.flags; 17 import qt.core.namespace; 18 import qt.core.object; 19 import qt.core.size; 20 import qt.core.string; 21 import qt.core.stringlist; 22 import qt.helpers; 23 import qt.widgets.dialog; 24 import qt.widgets.lineedit; 25 import qt.widgets.widget; 26 27 /+ QT_REQUIRE_CONFIG(inputdialog); +/ 28 29 30 extern(C++, class) struct QInputDialogPrivate; 31 32 /// Binding for C++ class [QInputDialog](https://doc.qt.io/qt-6/qinputdialog.html). 33 class /+ Q_WIDGETS_EXPORT +/ QInputDialog : QDialog 34 { 35 mixin(Q_OBJECT); 36 /+ Q_DECLARE_PRIVATE(QInputDialog) +/ 37 /+ QDOC_PROPERTY(InputMode inputMode READ inputMode WRITE setInputMode) 38 QDOC_PROPERTY(QString labelText READ labelText WRITE setLabelText) 39 QDOC_PROPERTY(InputDialogOptions options READ options WRITE setOptions) 40 QDOC_PROPERTY(QString textValue READ textValue WRITE setTextValue NOTIFY textValueChanged) 41 QDOC_PROPERTY(int intValue READ intValue WRITE setIntValue NOTIFY intValueChanged) 42 QDOC_PROPERTY(int doubleValue READ doubleValue WRITE setDoubleValue NOTIFY doubleValueChanged) 43 QDOC_PROPERTY(QLineEdit::EchoMode textEchoMode READ textEchoMode WRITE setTextEchoMode) 44 QDOC_PROPERTY(bool comboBoxEditable READ isComboBoxEditable WRITE setComboBoxEditable) 45 QDOC_PROPERTY(QStringList comboBoxItems READ comboBoxItems WRITE setComboBoxItems) 46 QDOC_PROPERTY(int intMinimum READ intMinimum WRITE setIntMinimum) 47 QDOC_PROPERTY(int intMaximum READ intMaximum WRITE setIntMaximum) 48 QDOC_PROPERTY(int intStep READ intStep WRITE setIntStep) 49 QDOC_PROPERTY(double doubleMinimum READ doubleMinimum WRITE setDoubleMinimum) 50 QDOC_PROPERTY(double doubleMaximum READ doubleMaximum WRITE setDoubleMaximum) 51 QDOC_PROPERTY(int doubleDecimals READ doubleDecimals WRITE setDoubleDecimals) 52 QDOC_PROPERTY(QString okButtonText READ okButtonText WRITE setOkButtonText) 53 QDOC_PROPERTY(QString cancelButtonText READ cancelButtonText WRITE setCancelButtonText) 54 QDOC_PROPERTY(double doubleStep READ doubleStep WRITE setDoubleStep) +/ 55 56 public: 57 enum InputDialogOption { 58 NoButtons = 0x00000001, 59 UseListViewForComboBoxItems = 0x00000002, 60 UsePlainTextEditForTextInput = 0x00000004 61 } 62 63 /+ Q_DECLARE_FLAGS(InputDialogOptions, InputDialogOption) +/ 64 alias InputDialogOptions = QFlags!(InputDialogOption); 65 enum InputMode { 66 TextInput, 67 IntInput, 68 DoubleInput 69 } 70 71 this(QWidget parent = null, /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags()); 72 ~this(); 73 74 final void setInputMode(InputMode mode); 75 final InputMode inputMode() const; 76 77 final void setLabelText(ref const(QString) text); 78 final QString labelText() const; 79 80 final void setOption(InputDialogOption option, bool on = true); 81 final bool testOption(InputDialogOption option) const; 82 final void setOptions(InputDialogOptions options); 83 final InputDialogOptions options() const; 84 85 final void setTextValue(ref const(QString) text); 86 final QString textValue() const; 87 88 final void setTextEchoMode(QLineEdit.EchoMode mode); 89 final QLineEdit.EchoMode textEchoMode() const; 90 91 final void setComboBoxEditable(bool editable); 92 final bool isComboBoxEditable() const; 93 94 final void setComboBoxItems(ref const(QStringList) items); 95 final QStringList comboBoxItems() const; 96 97 final void setIntValue(int value); 98 final int intValue() const; 99 100 final void setIntMinimum(int min); 101 final int intMinimum() const; 102 103 final void setIntMaximum(int max); 104 final int intMaximum() const; 105 106 final void setIntRange(int min, int max); 107 108 final void setIntStep(int step); 109 final int intStep() const; 110 111 final void setDoubleValue(double value); 112 final double doubleValue() const; 113 114 final void setDoubleMinimum(double min); 115 final double doubleMinimum() const; 116 117 final void setDoubleMaximum(double max); 118 final double doubleMaximum() const; 119 120 final void setDoubleRange(double min, double max); 121 122 final void setDoubleDecimals(int decimals); 123 final int doubleDecimals() const; 124 125 final void setOkButtonText(ref const(QString) text); 126 final QString okButtonText() const; 127 128 final void setCancelButtonText(ref const(QString) text); 129 final QString cancelButtonText() const; 130 131 /+ using QDialog::open; +/ 132 final void open(QObject receiver, const(char)* member); 133 134 override QSize minimumSizeHint() const; 135 override QSize sizeHint() const; 136 137 override void setVisible(bool visible); 138 139 static QString getText(QWidget parent, ref const(QString) title, ref const(QString) label, 140 QLineEdit.EchoMode echo = QLineEdit.EchoMode.Normal, 141 ref const(QString) text = globalInitVar!QString, bool* ok = null, 142 /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags(), 143 /+ Qt:: +/qt.core.namespace.InputMethodHints inputMethodHints = /+ Qt:: +/qt.core.namespace.InputMethodHint.ImhNone); 144 static QString getMultiLineText(QWidget parent, ref const(QString) title, ref const(QString) label, 145 ref const(QString) text = globalInitVar!QString, bool* ok = null, 146 /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags(), 147 /+ Qt:: +/qt.core.namespace.InputMethodHints inputMethodHints = /+ Qt:: +/qt.core.namespace.InputMethodHint.ImhNone); 148 static QString getItem(QWidget parent, ref const(QString) title, ref const(QString) label, 149 ref const(QStringList) items, int current = 0, bool editable = true, 150 bool* ok = null, /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags(), 151 /+ Qt:: +/qt.core.namespace.InputMethodHints inputMethodHints = /+ Qt:: +/qt.core.namespace.InputMethodHint.ImhNone); 152 153 static int getInt(QWidget parent, ref const(QString) title, ref const(QString) label, int value = 0, 154 int minValue = -2147483647, int maxValue = 2147483647, 155 int step = 1, bool* ok = null, /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags()); 156 157 static double getDouble(QWidget parent, ref const(QString) title, ref const(QString) label, double value = 0, 158 double minValue = -2147483647, double maxValue = 2147483647, 159 int decimals = 1, bool* ok = null, /+ Qt:: +/qt.core.namespace.WindowFlags flags = /+ Qt:: +/qt.core.namespace.WindowFlags(), 160 double step = 1); 161 162 final void setDoubleStep(double step); 163 final double doubleStep() const; 164 165 /+ Q_SIGNALS +/public: 166 @QSignal final void textValueChanged(ref const(QString) text); 167 @QSignal final void textValueSelected(ref const(QString) text); 168 @QSignal final void intValueChanged(int value); 169 @QSignal final void intValueSelected(int value); 170 @QSignal final void doubleValueChanged(double value); 171 @QSignal final void doubleValueSelected(double value); 172 173 public: 174 override void done(int result); 175 176 private: 177 /+ Q_DISABLE_COPY(QInputDialog) +/ 178 /+ Q_PRIVATE_SLOT(d_func(), void _q_textChanged(const QString&)) 179 Q_PRIVATE_SLOT(d_func(), void _q_plainTextEditTextChanged()) 180 Q_PRIVATE_SLOT(d_func(), void _q_currentRowChanged(const QModelIndex&, const QModelIndex&)) +/ 181 mixin(CREATE_CONVENIENCE_WRAPPERS); 182 } 183 /+pragma(inline, true) QFlags!(QInputDialog.InputDialogOptions.enum_type) operator |(QInputDialog.InputDialogOptions.enum_type f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QInputDialog.InputDialogOptions.enum_type)(f1)|f2;}+/ 184 /+pragma(inline, true) QFlags!(QInputDialog.InputDialogOptions.enum_type) operator |(QInputDialog.InputDialogOptions.enum_type f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 185 /+pragma(inline, true) QFlags!(QInputDialog.InputDialogOptions.enum_type) operator &(QInputDialog.InputDialogOptions.enum_type f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QInputDialog.InputDialogOptions.enum_type)(f1)&f2;}+/ 186 /+pragma(inline, true) QFlags!(QInputDialog.InputDialogOptions.enum_type) operator &(QInputDialog.InputDialogOptions.enum_type f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 187 /+pragma(inline, true) void operator +(QInputDialog.InputDialogOptions.enum_type f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/;+/ 188 /+pragma(inline, true) void operator +(QInputDialog.InputDialogOptions.enum_type f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/;+/ 189 /+pragma(inline, true) void operator +(int f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/;+/ 190 /+pragma(inline, true) void operator -(QInputDialog.InputDialogOptions.enum_type f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/;+/ 191 /+pragma(inline, true) void operator -(QInputDialog.InputDialogOptions.enum_type f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/;+/ 192 /+pragma(inline, true) void operator -(int f1, QFlags!(QInputDialog.InputDialogOptions.enum_type) f2)/+noexcept+/;+/ 193 /+pragma(inline, true) QIncompatibleFlag operator |(QInputDialog.InputDialogOptions.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 194 /+pragma(inline, true) void operator +(int f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/;+/ 195 /+pragma(inline, true) void operator +(QInputDialog.InputDialogOptions.enum_type f1, int f2)/+noexcept+/;+/ 196 /+pragma(inline, true) void operator -(int f1, QInputDialog.InputDialogOptions.enum_type f2)/+noexcept+/;+/ 197 /+pragma(inline, true) void operator -(QInputDialog.InputDialogOptions.enum_type f1, int f2)/+noexcept+/;+/ 198 199 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QInputDialog::InputDialogOptions) +/