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.gui.inputmethod; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.locale; 17 import qt.core.namespace; 18 import qt.core.object; 19 import qt.core.rect; 20 import qt.core.variant; 21 import qt.gui.transform; 22 import qt.helpers; 23 24 extern(C++, class) struct QInputMethodPrivate; 25 26 /// Binding for C++ class [QInputMethod](https://doc.qt.io/qt-6/qinputmethod.html). 27 class /+ Q_GUI_EXPORT +/ QInputMethod : QObject 28 { 29 mixin(Q_OBJECT); 30 /+ Q_DECLARE_PRIVATE(QInputMethod) +/ 31 /+ Q_PROPERTY(QRectF cursorRectangle READ cursorRectangle NOTIFY cursorRectangleChanged) 32 Q_PROPERTY(QRectF anchorRectangle READ anchorRectangle NOTIFY anchorRectangleChanged) 33 Q_PROPERTY(QRectF keyboardRectangle READ keyboardRectangle NOTIFY keyboardRectangleChanged) 34 Q_PROPERTY(QRectF inputItemClipRectangle READ inputItemClipRectangle 35 NOTIFY inputItemClipRectangleChanged) 36 Q_PROPERTY(bool visible READ isVisible NOTIFY visibleChanged) 37 Q_PROPERTY(bool animating READ isAnimating NOTIFY animatingChanged) 38 Q_PROPERTY(QLocale locale READ locale NOTIFY localeChanged) 39 Q_PROPERTY(Qt::LayoutDirection inputDirection READ inputDirection NOTIFY inputDirectionChanged) +/ 40 41 public: 42 final QTransform inputItemTransform() const; 43 final void setInputItemTransform(ref const(QTransform) transform); 44 45 final QRectF inputItemRectangle() const; 46 final void setInputItemRectangle(ref const(QRectF) rect); 47 48 // in window coordinates 49 final QRectF cursorRectangle() const; // ### what if we have rotations for the item? 50 final QRectF anchorRectangle() const; // ### ditto 51 52 // keyboard geometry in window coords 53 final QRectF keyboardRectangle() const; 54 55 final QRectF inputItemClipRectangle() const; 56 57 enum Action { 58 Click, 59 ContextMenu 60 } 61 /+ Q_ENUM(Action) +/ 62 63 final bool isVisible() const; 64 final void setVisible(bool visible); 65 66 final bool isAnimating() const; 67 68 final QLocale locale() const; 69 final /+ Qt:: +/qt.core.namespace.LayoutDirection inputDirection() const; 70 71 static QVariant queryFocusObject(/+ Qt:: +/qt.core.namespace.InputMethodQuery query, ref const(QVariant) argument); 72 73 public /+ Q_SLOTS +/: 74 @QSlot final void show(); 75 @QSlot final void hide(); 76 77 @QSlot final void update(/+ Qt:: +/qt.core.namespace.InputMethodQueries queries); 78 @QSlot final void reset(); 79 @QSlot final void commit(); 80 81 @QSlot final void invokeAction(Action a, int cursorPosition); 82 83 /+ Q_SIGNALS +/public: 84 @QSignal final void cursorRectangleChanged(); 85 @QSignal final void anchorRectangleChanged(); 86 @QSignal final void keyboardRectangleChanged(); 87 @QSignal final void inputItemClipRectangleChanged(); 88 @QSignal final void visibleChanged(); 89 @QSignal final void animatingChanged(); 90 @QSignal final void localeChanged(); 91 @QSignal final void inputDirectionChanged(/+ Qt:: +/qt.core.namespace.LayoutDirection newDirection); 92 93 private: 94 /+ friend class QGuiApplication; +/ 95 /+ friend class QGuiApplicationPrivate; +/ 96 /+ friend class QPlatformInputContext; +/ 97 this(); 98 ~this(); 99 mixin(CREATE_CONVENIENCE_WRAPPERS); 100 } 101