diff options
author | Sami Merila <sami.merila@nokia.com> | 2011-03-08 06:39:59 (GMT) |
---|---|---|
committer | Sami Merila <sami.merila@nokia.com> | 2011-03-08 06:39:59 (GMT) |
commit | a8f7a5067e4c3d1e7ef87a7067e026e62eab5c17 (patch) | |
tree | bc04efcbb22519d833415515fde36a0e7f24b924 /src/gui/inputmethod/qcoefepinputcontext_p.h | |
parent | 1224e6c3f7bbf361f0be2ff5116b5745cb98fb76 (diff) | |
download | Qt-a8f7a5067e4c3d1e7ef87a7067e026e62eab5c17.zip Qt-a8f7a5067e4c3d1e7ef87a7067e026e62eab5c17.tar.gz Qt-a8f7a5067e4c3d1e7ef87a7067e026e62eab5c17.tar.bz2 |
Support partial input mode
By default Symbian devices use fullscreen editing mode. However, in the
latest AVKON releases a partial virtual keyboard is supported. Support
the non-fullscreen editing mode from QCoeFepInputContext.
The non-fullscreen editing mode is only supported for Symbian^3 and
only for graphicsview-based solutions (QGraphicsView, QGraphicsWebView,
QDeclarativeView, ...). When native side indicates that the keyboard
opens, the graphicsview is possibly translated so that the text cursor
position is ensured to be visible. When keyboard closes, the
translation is removed. If the graphicsview contains vertical scrollbar,
the whole view is resized to the area above the keyboard, since
translating it, would move the upper part of the scrollbar out of
screen area.
There is a new exported private API to control when partial vkb is
used.
Task-number: QTBUG-16572
Reviewed-by: axis
Reviewed-by: Mrudul Pendharkar
Reviewed-by: Laszlo Agocs
Diffstat (limited to 'src/gui/inputmethod/qcoefepinputcontext_p.h')
-rw-r--r-- | src/gui/inputmethod/qcoefepinputcontext_p.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h index 8c8ffd4..de3577f 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_p.h +++ b/src/gui/inputmethod/qcoefepinputcontext_p.h @@ -93,6 +93,9 @@ public: TCoeInputCapabilities inputCapabilities(); + void resetSplitViewWidget(bool keepInputWidget = false); + void ensureFocusWidgetVisible(QWidget *widget); + protected: void timerEvent(QTimerEvent *timerEvent); @@ -104,9 +107,11 @@ private: void queueInputCapabilitiesChanged(); bool needsInputPanel(); void commitTemporaryPreeditString(); + bool isWidgetVisible(QWidget *widget, int offset = 0); private Q_SLOTS: void ensureInputCapabilitiesChanged(); + void translateInputWidget(); // From MCoeFepAwareTextEditor public: @@ -155,9 +160,15 @@ private: QBasicTimer m_tempPreeditStringTimeout; bool m_hasTempPreeditString; + int m_splitViewResizeBy; + Qt::WindowStates m_splitViewPreviousWindowStates; + QRectF m_transformation; + friend class tst_QInputContext; }; +Q_GUI_EXPORT void qt_s60_setPartialScreenInputMode(bool enable); + QT_END_NAMESPACE #endif // QT_NO_IM |