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()45GCINInputContextPlugin::GCINInputContextPlugin () 46 { 47 } 48 49 ~GCINInputContextPlugin()50GCINInputContextPlugin::~GCINInputContextPlugin () 51 { 52 #if 0 53 delete client; 54 client = NULL; 55 #endif 56 } 57 keys() const58QStringList GCINInputContextPlugin::keys () const { 59 QStringList identifiers; 60 identifiers.push_back (GCIN_IDENTIFIER_NAME); 61 return identifiers; 62 } 63 64 languages(const QString & key)65QStringList 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)77QString GCINInputContextPlugin::description (const QString &key) 78 { 79 return QString::fromUtf8 ("Qt immodule plugin for gcin"); 80 } 81 82 create(const QString & key)83QInputContext *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)93QString GCINInputContextPlugin::displayName (const QString &key) 94 { 95 return key; 96 } 97 98 Q_EXPORT_PLUGIN2 (GCINInputContextPlugin, GCINInputContextPlugin) 99