summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp91
1 files changed, 61 insertions, 30 deletions
diff --git a/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp b/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp
index 11eb4a5082..08de94a082 100644
--- a/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp
+++ b/src/plugins/platforms/qnx/qqnxvirtualkeyboardbps.cpp
@@ -1,6 +1,6 @@
/***************************************************************************
**
-** Copyright (C) 2012 Research In Motion
+** Copyright (C) 2013 BlackBerry Limited. All rights reserved.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the plugins of the Qt Toolkit.
@@ -46,6 +46,9 @@
#include <bps/event.h>
#include <bps/locale.h>
#include <bps/virtualkeyboard.h>
+#if defined(Q_OS_BLACKBERRY)
+#include <bbndk.h>
+#endif
#if defined(QQNXVIRTUALKEYBOARD_DEBUG)
#define qVirtualKeyboardDebug qDebug
@@ -89,7 +92,7 @@ bool QQnxVirtualKeyboardBps::showKeyboard()
// They keyboard's mode is global between applications, we have to set it each time
if ( !isVisible() )
- applyKeyboardMode(keyboardMode());
+ applyKeyboardOptions();
virtualkeyboard_show();
return true;
@@ -102,48 +105,76 @@ bool QQnxVirtualKeyboardBps::hideKeyboard()
return true;
}
-void QQnxVirtualKeyboardBps::applyKeyboardMode(KeyboardMode mode)
+void QQnxVirtualKeyboardBps::applyKeyboardOptions()
{
- virtualkeyboard_layout_t layout = VIRTUALKEYBOARD_LAYOUT_DEFAULT;
+ virtualkeyboard_layout_t layout = keyboardLayout();
+ virtualkeyboard_enter_t enter = enterKey();
- switch (mode) {
- case Url:
- layout = VIRTUALKEYBOARD_LAYOUT_URL;
- break;
+ qVirtualKeyboardDebug() << Q_FUNC_INFO << "mode=" << keyboardMode() << "enterKey=" << enterKeyType();
- case Email:
- layout = VIRTUALKEYBOARD_LAYOUT_EMAIL;
- break;
+ virtualkeyboard_change_options(layout, enter);
+}
+virtualkeyboard_layout_t QQnxVirtualKeyboardBps::keyboardLayout() const
+{
+ switch (keyboardMode()) {
+ case Url:
+ return VIRTUALKEYBOARD_LAYOUT_URL;
+ case Email:
+ return VIRTUALKEYBOARD_LAYOUT_EMAIL;
case Web:
- layout = VIRTUALKEYBOARD_LAYOUT_WEB;
- break;
-
+ return VIRTUALKEYBOARD_LAYOUT_WEB;
case NumPunc:
- layout = VIRTUALKEYBOARD_LAYOUT_NUM_PUNC;
- break;
-
+ return VIRTUALKEYBOARD_LAYOUT_NUM_PUNC;
+ case Number:
+ return VIRTUALKEYBOARD_LAYOUT_NUMBER;
case Symbol:
- layout = VIRTUALKEYBOARD_LAYOUT_SYMBOL;
- break;
-
+ return VIRTUALKEYBOARD_LAYOUT_SYMBOL;
case Phone:
- layout = VIRTUALKEYBOARD_LAYOUT_PHONE;
- break;
-
+ return VIRTUALKEYBOARD_LAYOUT_PHONE;
case Pin:
- layout = VIRTUALKEYBOARD_LAYOUT_PIN;
- break;
-
+ return VIRTUALKEYBOARD_LAYOUT_PIN;
+ case Password:
+ return VIRTUALKEYBOARD_LAYOUT_PASSWORD;
+#if defined(Q_OS_BLACKBERRY)
+#if BBNDK_VERSION_AT_LEAST(10, 2, 1)
+ case Alphanumeric:
+ return VIRTUALKEYBOARD_LAYOUT_ALPHANUMERIC;
+#endif
+#endif
case Default: // fall through
default:
- layout = VIRTUALKEYBOARD_LAYOUT_DEFAULT;
- break;
+ return VIRTUALKEYBOARD_LAYOUT_DEFAULT;
}
- qVirtualKeyboardDebug() << Q_FUNC_INFO << "mode=" << mode;
+ return VIRTUALKEYBOARD_LAYOUT_DEFAULT;
+}
+
+virtualkeyboard_enter_t QQnxVirtualKeyboardBps::enterKey() const
+{
+ switch (enterKeyType()) {
+ case Connect:
+ return VIRTUALKEYBOARD_ENTER_CONNECT;
+ case Done:
+ return VIRTUALKEYBOARD_ENTER_DONE;
+ case Go:
+ return VIRTUALKEYBOARD_ENTER_GO;
+ case Join:
+ return VIRTUALKEYBOARD_ENTER_JOIN;
+ case Next:
+ return VIRTUALKEYBOARD_ENTER_NEXT;
+ case Search:
+ return VIRTUALKEYBOARD_ENTER_SEARCH;
+ case Send:
+ return VIRTUALKEYBOARD_ENTER_SEND;
+ case Submit:
+ return VIRTUALKEYBOARD_ENTER_SUBMIT;
+ case Default: // fall through
+ default:
+ return VIRTUALKEYBOARD_ENTER_DEFAULT;
+ }
- virtualkeyboard_change_options(layout, VIRTUALKEYBOARD_ENTER_DEFAULT);
+ return VIRTUALKEYBOARD_ENTER_DEFAULT;
}
bool QQnxVirtualKeyboardBps::handleLocaleEvent(bps_event_t *event)