1 #include <cassert>
2 
3 #include <Qt>
4 #include <QInputContextPlugin>
5 
6 using namespace Qt;
7 
8 #include "gcin-qt.h"
9 #include "gcin-imcontext-qt.h"
10 
11 /* Static Variables */
12 // static GCINClientQt *client = NULL;
13 
14 /* The class Definition */
15 class GCINInputContextPlugin: public QInputContextPlugin
16 {
17 
18     private:
19 
20         static QStringList gcin_languages;
21 
22     public:
23 
24         GCINInputContextPlugin ();
25 
26         ~GCINInputContextPlugin ();
27 
28         QStringList keys () const;
29 
30         QStringList languages (const QString &key);
31 
32         QString description (const QString &key);
33 
34         QInputContext *create (const QString &key);
35 
36         QString displayName (const QString &key);
37 
38 };
39 
40 
41 /* Implementations */
42 QStringList GCINInputContextPlugin::gcin_languages;
43 
44 
GCINInputContextPlugin()45 GCINInputContextPlugin::GCINInputContextPlugin ()
46 {
47 }
48 
49 
~GCINInputContextPlugin()50 GCINInputContextPlugin::~GCINInputContextPlugin ()
51 {
52 #if 0
53     delete client;
54     client = NULL;
55 #endif
56 }
57 
keys() const58 QStringList GCINInputContextPlugin::keys () const {
59     QStringList identifiers;
60     identifiers.push_back (GCIN_IDENTIFIER_NAME);
61     return identifiers;
62 }
63 
64 
languages(const QString & key)65 QStringList GCINInputContextPlugin::languages (const QString &key)
66 {
67     if (gcin_languages.empty ()) {
68         gcin_languages.push_back ("zh_TW");
69         gcin_languages.push_back ("zh_HK");
70         gcin_languages.push_back ("zh_CN");
71         gcin_languages.push_back ("ja");
72     }
73     return gcin_languages;
74 }
75 
76 
description(const QString & key)77 QString GCINInputContextPlugin::description (const QString &key)
78 {
79     return QString::fromUtf8 ("Qt immodule plugin for gcin");
80 }
81 
82 
create(const QString & key)83 QInputContext *GCINInputContextPlugin::create (const QString &key)
84 {
85     if (key.toLower () != GCIN_IDENTIFIER_NAME) {
86         return NULL;
87     } else {
88         return new GCINIMContext;
89     }
90 }
91 
92 
displayName(const QString & key)93 QString GCINInputContextPlugin::displayName (const QString &key)
94 {
95     return key;
96 }
97 
98 Q_EXPORT_PLUGIN2 (GCINInputContextPlugin, GCINInputContextPlugin)
99