aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/inputcontext.h
diff options
context:
space:
mode:
authorJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-26 11:31:56 +0200
committerJarkko Koivikko <jarkko.koivikko@code-q.fi>2015-10-28 09:44:59 +0000
commit03e2a1036061b82739041911e3827de3cb388d02 (patch)
treee23bb1390d0fba0d69a68dfee70afdc09a496bc5 /src/virtualkeyboard/inputcontext.h
parent2c5d6925ceeee7b216dead5ab87693c0d4cc0ca4 (diff)
Refactor class names
Since the virtual keyboard C++ interface is wrapped inside a namespace, it is possible to get rid of "Declarative" name in the class names, that would otherwise conflict with the QML namespace in the documentation. - Rename DeclarativeSettings to VirtualKeyboardSettings - Remove "Declarative" from class names The rationale for this change is that the name Declarative refers to now obsolete QtQuick1 module. Also, the class names are now the same in C++ and QML name spaces. Change-Id: Ide050d47110443d894d95d35dddf0df5891587be Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/virtualkeyboard/inputcontext.h')
-rw-r--r--src/virtualkeyboard/inputcontext.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/src/virtualkeyboard/inputcontext.h b/src/virtualkeyboard/inputcontext.h
new file mode 100644
index 00000000..b07b1cad
--- /dev/null
+++ b/src/virtualkeyboard/inputcontext.h
@@ -0,0 +1,140 @@
+/******************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+******************************************************************************/
+
+#ifndef INPUTCONTEXT_H
+#define INPUTCONTEXT_H
+
+#include <QObject>
+#include <QRectF>
+#include <QLocale>
+#include <QInputMethodEvent>
+#include <QInputMethod>
+
+namespace QtVirtualKeyboard {
+
+class PlatformInputContext;
+class InputEngine;
+class ShiftHandler;
+class InputContextPrivate;
+
+class InputContext : public QObject
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(InputContext)
+ Q_DECLARE_PRIVATE(InputContext)
+ Q_PROPERTY(bool focus READ focus NOTIFY focusChanged)
+ Q_PROPERTY(bool shift READ shift WRITE setShift NOTIFY shiftChanged)
+ Q_PROPERTY(bool capsLock READ capsLock WRITE setCapsLock NOTIFY capsLockChanged)
+ Q_PROPERTY(int cursorPosition READ cursorPosition NOTIFY cursorPositionChanged)
+ Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints NOTIFY inputMethodHintsChanged)
+ Q_PROPERTY(QString preeditText READ preeditText WRITE setPreeditText NOTIFY preeditTextChanged)
+ Q_PROPERTY(QString surroundingText READ surroundingText NOTIFY surroundingTextChanged)
+ Q_PROPERTY(QString selectedText READ selectedText NOTIFY selectedTextChanged)
+ Q_PROPERTY(QRectF cursorRectangle READ cursorRectangle NOTIFY cursorRectangleChanged)
+ Q_PROPERTY(QRectF keyboardRectangle READ keyboardRectangle WRITE setKeyboardRectangle NOTIFY keyboardRectangleChanged)
+ Q_PROPERTY(QRectF previewRectangle READ previewRectangle WRITE setPreviewRectangle NOTIFY previewRectangleChanged)
+ Q_PROPERTY(bool previewVisible READ previewVisible WRITE setPreviewVisible NOTIFY previewVisibleChanged)
+ Q_PROPERTY(bool animating READ animating WRITE setAnimating NOTIFY animatingChanged)
+ Q_PROPERTY(QString locale READ locale WRITE setLocale NOTIFY localeChanged)
+ Q_PROPERTY(QObject *inputItem READ inputItem NOTIFY inputItemChanged)
+ Q_PROPERTY(QtVirtualKeyboard::ShiftHandler *shiftHandler READ shiftHandler CONSTANT)
+ Q_PROPERTY(QtVirtualKeyboard::InputEngine *inputEngine READ inputEngine CONSTANT)
+
+public:
+ explicit InputContext(PlatformInputContext *parent = 0);
+ ~InputContext();
+
+ bool focus() const;
+ bool shift() const;
+ void setShift(bool enable);
+ bool capsLock() const;
+ void setCapsLock(bool enable);
+ int cursorPosition() const;
+ Qt::InputMethodHints inputMethodHints() const;
+ QString preeditText() const;
+ void setPreeditText(const QString &text, QList<QInputMethodEvent::Attribute> attributes = QList<QInputMethodEvent::Attribute>(), int replaceFrom = 0, int replaceLength = 0);
+ QString surroundingText() const;
+ QString selectedText() const;
+ QRectF cursorRectangle() const;
+ QRectF keyboardRectangle() const;
+ void setKeyboardRectangle(QRectF rectangle);
+ QRectF previewRectangle() const;
+ void setPreviewRectangle(QRectF rectangle);
+ bool previewVisible() const;
+ void setPreviewVisible(bool visible);
+ bool animating() const;
+ void setAnimating(bool animating);
+ QString locale() const;
+ void setLocale(const QString &locale);
+ Q_INVOKABLE void updateAvailableLocales(const QStringList &availableLocales);
+ QObject *inputItem() const;
+ ShiftHandler *shiftHandler() const;
+ InputEngine *inputEngine() const;
+
+ Q_INVOKABLE void hideInputPanel();
+ Q_INVOKABLE void sendKeyClick(int key, const QString &text, int modifiers = 0);
+ Q_INVOKABLE void commit();
+ Q_INVOKABLE void commit(const QString &text, int replaceFrom = 0, int replaceLength = 0);
+ Q_INVOKABLE void clear();
+
+ // Helper functions
+ Q_INVOKABLE bool fileExists(const QUrl &fileUrl);
+ Q_INVOKABLE bool hasEnterKeyAction(QObject *item) const;
+
+signals:
+ void focusChanged();
+ void focusEditorChanged();
+ void preeditTextChanged();
+ void inputMethodHintsChanged();
+ void surroundingTextChanged();
+ void selectedTextChanged();
+ void cursorPositionChanged();
+ void cursorRectangleChanged();
+ void shiftChanged();
+ void capsLockChanged();
+ void keyboardRectangleChanged();
+ void previewRectangleChanged();
+ void previewVisibleChanged();
+ void animatingChanged();
+ void localeChanged();
+ void inputItemChanged();
+ void navigationKeyPressed(int key, bool isAutoRepeat);
+ void navigationKeyReleased(int key, bool isAutoRepeat);
+
+private slots:
+ void onInputItemChanged();
+
+private:
+ void setFocus(bool enable);
+ void sendPreedit(const QString &text, const QList<QInputMethodEvent::Attribute> &attributes, int replaceFrom, int replaceLength);
+ void reset();
+ void externalCommit();
+ void update(Qt::InputMethodQueries queries);
+ void invokeAction(QInputMethod::Action action, int cursorPosition);
+ bool filterEvent(const QEvent *event);
+
+private:
+ friend class PlatformInputContext;
+};
+
+} // namespace QtVirtualKeyboard
+
+#endif