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.lineedit; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.margins; 18 import qt.core.namespace; 19 import qt.core.point; 20 import qt.core.rect; 21 import qt.core.size; 22 import qt.core.string; 23 import qt.core.variant; 24 import qt.gui.action; 25 import qt.gui.event; 26 import qt.gui.icon; 27 import qt.helpers; 28 import qt.widgets.completer; 29 import qt.widgets.styleoption; 30 import qt.widgets.widget; 31 version(QT_NO_CONTEXTMENU){}else 32 import qt.widgets.menu; 33 version(QT_NO_VALIDATOR){}else 34 import qt.gui.validator; 35 36 /+ QT_REQUIRE_CONFIG(lineedit); +/ 37 38 extern(C++, class) struct QLineEditPrivate; 39 40 /// Binding for C++ class [QLineEdit](https://doc.qt.io/qt-6/qlineedit.html). 41 class /+ Q_WIDGETS_EXPORT +/ QLineEdit : QWidget 42 { 43 mixin(Q_OBJECT); 44 45 /+ Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) 46 Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true) 47 Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength) 48 Q_PROPERTY(bool frame READ hasFrame WRITE setFrame) 49 Q_PROPERTY(EchoMode echoMode READ echoMode WRITE setEchoMode) 50 Q_PROPERTY(QString displayText READ displayText) 51 Q_PROPERTY(int cursorPosition READ cursorPosition WRITE setCursorPosition) 52 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment) 53 Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false) 54 Q_PROPERTY(bool hasSelectedText READ hasSelectedText) 55 Q_PROPERTY(QString selectedText READ selectedText) 56 Q_PROPERTY(bool dragEnabled READ dragEnabled WRITE setDragEnabled) 57 Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) 58 Q_PROPERTY(bool undoAvailable READ isUndoAvailable) 59 Q_PROPERTY(bool redoAvailable READ isRedoAvailable) 60 Q_PROPERTY(bool acceptableInput READ hasAcceptableInput) 61 Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText) 62 Q_PROPERTY(Qt::CursorMoveStyle cursorMoveStyle READ cursorMoveStyle WRITE setCursorMoveStyle) 63 Q_PROPERTY(bool clearButtonEnabled READ isClearButtonEnabled WRITE setClearButtonEnabled) +/ 64 public: 65 enum ActionPosition { 66 LeadingPosition, 67 TrailingPosition 68 } 69 /+ Q_ENUM(ActionPosition) +/ 70 71 /+ explicit +/this(QWidget parent = null); 72 /+ explicit +/this(ref const(QString) , QWidget parent = null); 73 ~this(); 74 75 final QString text() const; 76 77 final QString displayText() const; 78 79 final QString placeholderText() const; 80 final void setPlaceholderText(ref const(QString) ); 81 82 final int maxLength() const; 83 final void setMaxLength(int); 84 85 final void setFrame(bool); 86 final bool hasFrame() const; 87 88 final void setClearButtonEnabled(bool enable); 89 final bool isClearButtonEnabled() const; 90 91 enum EchoMode { Normal, NoEcho, Password, PasswordEchoOnEdit } 92 /+ Q_ENUM(EchoMode) +/ 93 final EchoMode echoMode() const; 94 final void setEchoMode(EchoMode); 95 96 final bool isReadOnly() const; 97 final void setReadOnly(bool); 98 99 /+ #ifndef QT_NO_VALIDATOR +/ 100 version(QT_NO_VALIDATOR){}else 101 { 102 mixin(changeWindowsMangling(q{mangleClassesTailConst}, q{ 103 final void setValidator(const(QValidator) ); 104 })); 105 mixin(changeWindowsMangling(q{mangleClassesTailConst}, q{ 106 final const(QValidator) validator() const; 107 })); 108 } 109 /+ #endif 110 111 #if QT_CONFIG(completer) +/ 112 final void setCompleter(QCompleter completer); 113 final QCompleter completer() const; 114 /+ #endif +/ 115 116 override QSize sizeHint() const; 117 override QSize minimumSizeHint() const; 118 119 final int cursorPosition() const; 120 final void setCursorPosition(int); 121 final int cursorPositionAt(ref const(QPoint) pos); 122 123 final void setAlignment(/+ Qt:: +/qt.core.namespace.Alignment flag); 124 final /+ Qt:: +/qt.core.namespace.Alignment alignment() const; 125 126 final void cursorForward(bool mark, int steps = 1); 127 final void cursorBackward(bool mark, int steps = 1); 128 final void cursorWordForward(bool mark); 129 final void cursorWordBackward(bool mark); 130 final void backspace(); 131 final void del(); 132 final void home(bool mark); 133 final void end(bool mark); 134 135 final bool isModified() const; 136 final void setModified(bool); 137 138 final void setSelection(int, int); 139 final bool hasSelectedText() const; 140 final QString selectedText() const; 141 final int selectionStart() const; 142 final int selectionEnd() const; 143 final int selectionLength() const; 144 145 final bool isUndoAvailable() const; 146 final bool isRedoAvailable() const; 147 148 final void setDragEnabled(bool b); 149 final bool dragEnabled() const; 150 151 final void setCursorMoveStyle(/+ Qt:: +/qt.core.namespace.CursorMoveStyle style); 152 final /+ Qt:: +/qt.core.namespace.CursorMoveStyle cursorMoveStyle() const; 153 154 final QString inputMask() const; 155 final void setInputMask(ref const(QString) inputMask); 156 final bool hasAcceptableInput() const; 157 158 final void setTextMargins(int left, int top, int right, int bottom); 159 final void setTextMargins(ref const(QMargins) margins); 160 final QMargins textMargins() const; 161 162 /+ #if QT_CONFIG(action) +/ 163 /+ using QWidget::addAction; +/ 164 final void addAction(QAction action, ActionPosition position); 165 final QAction addAction(ref const(QIcon) icon, ActionPosition position); 166 /+ #endif +/ 167 168 public /+ Q_SLOTS +/: 169 @QSlot final void setText(ref const(QString) ); 170 @QSlot final void clear(); 171 @QSlot final void selectAll(); 172 @QSlot final void undo(); 173 @QSlot final void redo(); 174 version(QT_NO_CLIPBOARD){}else 175 { 176 @QSlot final void cut(); 177 /+ void copy() const; +/ 178 @QSlot final void paste(); 179 } 180 181 public: 182 final void deselect(); 183 final void insert(ref const(QString) ); 184 version(QT_NO_CONTEXTMENU){}else 185 { 186 final QMenu createStandardContextMenu(); 187 } 188 189 /+ Q_SIGNALS +/public: 190 @QSignal final void textChanged(ref const(QString) ); 191 @QSignal final void textEdited(ref const(QString) ); 192 @QSignal final void cursorPositionChanged(int, int); 193 @QSignal final void returnPressed(); 194 @QSignal final void editingFinished(); 195 @QSignal final void selectionChanged(); 196 @QSignal final void inputRejected(); 197 198 protected: 199 override void mousePressEvent(QMouseEvent ); 200 override void mouseMoveEvent(QMouseEvent ); 201 override void mouseReleaseEvent(QMouseEvent ); 202 override void mouseDoubleClickEvent(QMouseEvent ); 203 override void keyPressEvent(QKeyEvent ); 204 override void keyReleaseEvent(QKeyEvent ); 205 override void focusInEvent(QFocusEvent ); 206 override void focusOutEvent(QFocusEvent ); 207 override void paintEvent(QPaintEvent ); 208 /+ #if QT_CONFIG(draganddrop) +/ 209 override void dragEnterEvent(QDragEnterEvent ); 210 override void dragMoveEvent(QDragMoveEvent e); 211 override void dragLeaveEvent(QDragLeaveEvent e); 212 override void dropEvent(QDropEvent ); 213 /+ #endif +/ 214 override void changeEvent(QEvent ); 215 version(QT_NO_CONTEXTMENU){}else 216 { 217 override void contextMenuEvent(QContextMenuEvent ); 218 } 219 220 override void inputMethodEvent(QInputMethodEvent ); 221 /+ virtual +/ void initStyleOption(QStyleOptionFrame* option) const; 222 public: 223 override QVariant inputMethodQuery(/+ Qt:: +/qt.core.namespace.InputMethodQuery) const; 224 @QInvokable final QVariant inputMethodQuery(/+ Qt:: +/qt.core.namespace.InputMethodQuery property, QVariant argument) const; 225 override void timerEvent(QTimerEvent ); 226 override bool event(QEvent ); 227 protected: 228 final QRect cursorRect() const; 229 230 public: 231 232 private: 233 /+ friend class QAbstractSpinBox; +/ 234 /+ friend class QAccessibleLineEdit; +/ 235 /+ friend class QComboBox; +/ 236 version(QT_KEYPAD_NAVIGATION) 237 { 238 /+ friend class QDateTimeEdit; +/ 239 } 240 /+ Q_DISABLE_COPY(QLineEdit) +/ 241 /+ Q_DECLARE_PRIVATE(QLineEdit) +/ 242 /+ Q_PRIVATE_SLOT(d_func(), void _q_handleWindowActivate()) 243 Q_PRIVATE_SLOT(d_func(), void _q_textEdited(const QString &)) 244 Q_PRIVATE_SLOT(d_func(), void _q_cursorPositionChanged(int, int)) 245 #if QT_CONFIG(completer) 246 Q_PRIVATE_SLOT(d_func(), void _q_completionHighlighted(const QString &)) 247 #endif 248 #ifdef QT_KEYPAD_NAVIGATION 249 Q_PRIVATE_SLOT(d_func(), void _q_editFocusChange(bool)) 250 #endif 251 Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged()) 252 Q_PRIVATE_SLOT(d_func(), void _q_updateNeeded(const QRect &)) 253 Q_PRIVATE_SLOT(d_func(), void _q_textChanged(const QString &)) 254 Q_PRIVATE_SLOT(d_func(), void _q_clearButtonClicked()) 255 Q_PRIVATE_SLOT(d_func(), void _q_controlEditingFinished()) +/ 256 mixin(CREATE_CONVENIENCE_WRAPPERS); 257 } 258