4
* Copyright (c) 2006 Ryo Dairiki <ryo-dairiki@users.sourceforge.net>
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 and
10
* appearing in the file LICENSE.LGPL included in the package of this file.
11
* You can also redistribute it and/or modify it under the terms of
12
* the GNU General Public License as published by the Free Software Foundation and
13
* appearing in the file LICENSE.GPL included in the package of this file.
15
* This library is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24
#include <QInputContextPlugin>
28
#include <qinputcontextplugin.h>
31
#include "scim-bridge.h"
32
#include "scim-bridge-client-common-qt.h"
33
#include "scim-bridge-client-imcontext-qt.h"
34
#include "scim-bridge-client-qt.h"
36
/* Static Variables */
37
static ScimBridgeClientQt *client = NULL;
39
/* The class Definition */
40
class ScimBridgeInputContextPlugin: public QInputContextPlugin
46
* The language list for SCIM.
48
static QStringList scim_languages;
52
ScimBridgeInputContextPlugin ();
54
~ScimBridgeInputContextPlugin ();
56
QStringList keys () const;
58
QStringList languages (const QString &key);
60
QString description (const QString &key);
62
QInputContext *create (const QString &key);
64
QString displayName (const QString &key);
70
QStringList ScimBridgeInputContextPlugin::scim_languages;
73
ScimBridgeInputContextPlugin::ScimBridgeInputContextPlugin ()
78
ScimBridgeInputContextPlugin::~ScimBridgeInputContextPlugin ()
84
QStringList ScimBridgeInputContextPlugin::keys () const {
85
QStringList identifiers;
86
identifiers.push_back (SCIM_BRIDGE_IDENTIFIER_NAME);
91
QStringList ScimBridgeInputContextPlugin::languages (const QString &key)
93
if (scim_languages.empty ()) {
94
scim_languages.push_back ("zh_CN");
95
scim_languages.push_back ("zh_TW");
96
scim_languages.push_back ("zh_HK");
97
scim_languages.push_back ("ja");
98
scim_languages.push_back ("ko");
100
return scim_languages;
104
QString ScimBridgeInputContextPlugin::description (const QString &key)
106
return QString::fromUtf8 ("Qt immodule plugin for SCIM Bridge");
110
QInputContext *ScimBridgeInputContextPlugin::create (const QString &key)
113
if (key.toLower () != SCIM_BRIDGE_IDENTIFIER_NAME) {
115
if (key.lower () != SCIM_BRIDGE_IDENTIFIER_NAME) {
119
if (client == NULL) client = new ScimBridgeClientQt ();
120
return ScimBridgeClientIMContext::alloc ();
125
QString ScimBridgeInputContextPlugin::displayName (const QString &key)
131
Q_EXPORT_PLUGIN2 (ScimBridgeInputContextPlugin, ScimBridgeInputContextPlugin)
133
Q_EXPORT_PLUGIN (ScimBridgeInputContextPlugin)