1
/* vim:set noet ts=4: */
5
* Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this program; if not, write to the
19
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20
* Boston, MA 02111-1307 USA
24
#include <QInputContextPlugin>
25
#include "ibus-client.h"
29
#define IBUS_IDENTIFIER_NAME "ibus"
31
static IBusClient *client;
33
/* The class Definition */
34
class IBusInputContextPlugin: public QInputContextPlugin
39
* The language list for SCIM.
41
static QStringList ibus_languages;
45
IBusInputContextPlugin (QObject *parent = 0);
47
~IBusInputContextPlugin ();
49
QStringList keys () const;
51
QStringList languages (const QString &key);
53
QString description (const QString &key);
55
QInputContext *create (const QString &key);
57
QString displayName (const QString &key);
63
QStringList IBusInputContextPlugin::ibus_languages;
66
IBusInputContextPlugin::IBusInputContextPlugin (QObject *parent)
67
:QInputContextPlugin (parent)
72
IBusInputContextPlugin::~IBusInputContextPlugin ()
81
IBusInputContextPlugin::keys () const
83
QStringList identifiers;
84
identifiers.push_back (IBUS_IDENTIFIER_NAME);
90
IBusInputContextPlugin::languages (const QString & key)
92
if (key.toLower () != IBUS_IDENTIFIER_NAME) {
93
return QStringList ();
96
if (ibus_languages.empty ()) {
97
ibus_languages.push_back ("zh_CN");
98
ibus_languages.push_back ("zh_TW");
99
ibus_languages.push_back ("zh_HK");
100
ibus_languages.push_back ("ja");
101
ibus_languages.push_back ("ko");
103
return ibus_languages;
108
IBusInputContextPlugin::description (const QString &key)
110
if (key.toLower () != IBUS_IDENTIFIER_NAME) {
114
return QString::fromUtf8 ("Qt immodule plugin for IBus");
119
IBusInputContextPlugin::create (const QString &key)
121
if (key.toLower () != IBUS_IDENTIFIER_NAME) {
124
if (client == NULL) {
125
client = new IBusClient ();
127
return client->createInputContext ();
132
QString IBusInputContextPlugin::displayName (const QString &key)
137
Q_EXPORT_PLUGIN2 (IBusInputContextPlugin, IBusInputContextPlugin)