From 92740638df5b329e5f052700327ac4a1cdfead1f Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 18 Oct 2011 14:51:53 +0200 Subject: Initial support for MeeGo's input method server This platform input context plugin is based on the dbus protocol used in MeeGo 1.2 Harmattan's input method server. It supports composition, mouse-click-on-preedit as well as basic input method hints. Missing are: Copy & paste, preedit injection, key redirection as well as a bunch of other smaller MeeGoTouch specific features. Change-Id: Ic3a8741f7a5ed18b379985e316cb137f7b8f6a8e Reviewed-by: Lars Knoll Reviewed-by: Simon Hausmann Reviewed-by: Kenneth Rohde Christiansen --- .../platforminputcontexts/meego/serverproxy.h | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/plugins/platforminputcontexts/meego/serverproxy.h (limited to 'src/plugins/platforminputcontexts/meego/serverproxy.h') diff --git a/src/plugins/platforminputcontexts/meego/serverproxy.h b/src/plugins/platforminputcontexts/meego/serverproxy.h new file mode 100644 index 0000000000..3ad589409c --- /dev/null +++ b/src/plugins/platforminputcontexts/meego/serverproxy.h @@ -0,0 +1,166 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the plugins of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef SERVER_H_1318935108 +#define SERVER_H_1318935108 + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Proxy class for interface com.meego.inputmethod.uiserver1 + */ +class ComMeegoInputmethodUiserver1Interface: public QDBusAbstractInterface +{ + Q_OBJECT +public: + static inline const char *staticInterfaceName() + { return "com.meego.inputmethod.uiserver1"; } + +public: + ComMeegoInputmethodUiserver1Interface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); + + ~ComMeegoInputmethodUiserver1Interface(); + +public Q_SLOTS: // METHODS + inline QDBusPendingReply<> activateContext() + { + QList argumentList; + return asyncCallWithArgumentList(QLatin1String("activateContext"), argumentList); + } + + inline QDBusPendingReply<> appOrientationAboutToChange(int in0) + { + QList argumentList; + argumentList << QVariant::fromValue(in0); + return asyncCallWithArgumentList(QLatin1String("appOrientationAboutToChange"), argumentList); + } + + inline QDBusPendingReply<> appOrientationChanged(int in0) + { + QList argumentList; + argumentList << QVariant::fromValue(in0); + return asyncCallWithArgumentList(QLatin1String("appOrientationChanged"), argumentList); + } + + inline QDBusPendingReply<> hideInputMethod() + { + QList argumentList; + return asyncCallWithArgumentList(QLatin1String("hideInputMethod"), argumentList); + } + + inline QDBusPendingReply<> mouseClickedOnPreedit(int in0, int in1, int in2, int in3, int in4, int in5) + { + QList argumentList; + argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3) << QVariant::fromValue(in4) << QVariant::fromValue(in5); + return asyncCallWithArgumentList(QLatin1String("mouseClickedOnPreedit"), argumentList); + } + + inline QDBusPendingReply<> processKeyEvent(int in0, int in1, int in2, const QString &in3, bool in4, int in5, uint in6, uint in7, uint in8) + { + QList argumentList; + argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3) << QVariant::fromValue(in4) << QVariant::fromValue(in5) << QVariant::fromValue(in6) << QVariant::fromValue(in7) << QVariant::fromValue(in8); + return asyncCallWithArgumentList(QLatin1String("processKeyEvent"), argumentList); + } + + inline QDBusPendingReply<> setPreedit(const QString &in0, int in1) + { + QList argumentList; + argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1); + return asyncCallWithArgumentList(QLatin1String("setPreedit"), argumentList); + } + + inline QDBusPendingReply<> showInputMethod() + { + QList argumentList; + return asyncCallWithArgumentList(QLatin1String("showInputMethod"), argumentList); + } + + inline QDBusPendingReply<> updateWidgetInformation(const QMap &stateInformation, bool focusChanged) + { + QDBusMessage msg = QDBusMessage::createMethodCall(service(), path(), interface(), "updateWidgetInformation"); + + QDBusArgument map; + map.beginMap(QVariant::String, qMetaTypeId()); + for (QMap::ConstIterator it = stateInformation.constBegin(), end = stateInformation.constEnd(); + it != end; ++it) { + map.beginMapEntry(); + map << it.key(); + map << QDBusVariant(it.value()); + map.endMapEntry(); + } + map.endMap(); + + QList args; + args << QVariant::fromValue(map) << QVariant(focusChanged); + msg.setArguments(args); + return connection().asyncCall(msg); + } + + inline QDBusPendingReply<> reset() + { + return asyncCall(QLatin1String("reset")); + } + + inline QDBusPendingReply<> setCopyPasteState(bool in0, bool in1) + { + QList argumentList; + argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1); + return asyncCallWithArgumentList(QLatin1String("setCopyPasteState"), argumentList); + } + +Q_SIGNALS: // SIGNALS +}; + +namespace com { + namespace meego { + namespace inputmethod { + typedef ::ComMeegoInputmethodUiserver1Interface uiserver1; + } + } +} +#endif -- cgit v1.2.3