summaryrefslogtreecommitdiffstats
path: root/src/inputmethod/qinputcontextplugin.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:24:15 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-07-10 15:24:15 -0500
commitbd0f3345a938b35ce6a12f6150373b0955b8dd12 (patch)
tree7a520322212d48ebcb9fbe1087e7fca28b76185c /src/inputmethod/qinputcontextplugin.cpp
downloadqt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.tar.gz
qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.zip
Add Qt3 development HEAD version
Diffstat (limited to 'src/inputmethod/qinputcontextplugin.cpp')
-rw-r--r--src/inputmethod/qinputcontextplugin.cpp231
1 files changed, 231 insertions, 0 deletions
diff --git a/src/inputmethod/qinputcontextplugin.cpp b/src/inputmethod/qinputcontextplugin.cpp
new file mode 100644
index 0000000..3d16717
--- /dev/null
+++ b/src/inputmethod/qinputcontextplugin.cpp
@@ -0,0 +1,231 @@
+/****************************************************************************
+** $Id: qinputcontextplugin.cpp,v 1.2 2004/06/20 18:43:11 daisuke Exp $
+**
+** Implementation of QInputContextPlugin class
+**
+** Created : 010920
+**
+** Copyright (C) 2001 Trolltech AS. All rights reserved.
+**
+** This file is part of the widgets module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+** information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#include "qinputcontextplugin.h"
+
+#ifndef QT_NO_IM
+#ifndef QT_NO_COMPONENT
+
+#include "qinputcontextinterface_p.h"
+
+/*!
+ \class QInputContextPlugin qinputcontextplugin.h
+ \brief The QInputContextPlugin class provides an abstract base for custom QInputContext plugins.
+ \reentrant
+ \ingroup plugins
+
+ The input context plugin is a simple plugin interface that makes it
+ easy to create custom input contexts that can be loaded dynamically
+ into applications.
+
+ Writing a input context plugin is achieved by subclassing this
+ base class, reimplementing the pure virtual functions keys(),
+ create(), languages(), displayName() description() and exporting
+ the class with the \c Q_EXPORT_PLUGIN macro. See the \link
+ plugins-howto.html Qt Plugins documentation \endlink for details.
+
+ \sa QInputContext
+*/
+
+/*!
+ \fn QStringList QInputContextPlugin::keys() const
+
+ Returns the list of QInputContext keys this plugin provides.
+
+ These keys are usually the class names of the custom input context
+ that are implemented in the plugin.
+
+ Return value is the names to identify and specify input methods
+ for the input method switching mechanism and so on. The names have
+ to be consistent with QInputContext::identifierName(). The names
+ have to consist of ASCII characters only. See also
+ QInputContext::identifierName() for further information.
+
+ \sa create(), displayName(), QInputContext::identifierName()
+*/
+
+/*!
+ \fn QInputContext* QInputContextPlugin::create( const QString& key )
+
+ Creates and returns a QInputContext instance for the input context key \a key.
+ The input context key is usually the class name of the required input method.
+
+ \sa keys()
+*/
+
+/*!
+ \fn QStringList languages( const QString &key )
+
+ Returns what languages are supported by the QInputContext instance
+ specified by \a key.
+
+ The languages are expressed as language code (e.g. "zh_CN",
+ "zh_TW", "zh_HK", "ja", "ko", ...). An input context that suports
+ multiple languages can return all supported languages as
+ QStringList. The name has to be consistent with
+ QInputContextPlugin::language().
+
+ This information may be used to optimize user interface.
+
+ \sa QInputContext::language()
+*/
+
+/*!
+ \fn QString displayName( const QString &key )
+
+ Returns a user friendly i18n-ized name of the QInputContext
+ instance specified by \a key. This string may be appeared in a
+ menu and so on for users.
+
+ There are two different names with different responsibility in the
+ input method domain. This function returns one of them. Another
+ name is called 'identifier name' to identify and specify input
+ methods for the input method switching mechanism and so on.
+
+ Although tr( identifierName ) can provide user friendly i18n-ized
+ name without this function, the message catalog have to be managed
+ by Qt in the case. However, some sophisticated input method
+ framework manages their own message catalogs to provide this
+ i18n-ized name string. So we need this function rather than just
+ call tr() for identifier name.
+
+ \sa keys(), QInputContext::identifierName()
+*/
+
+/*!
+ \fn QString description( const QString &key )
+
+ Returns a i18n-ized brief description of the QInputContext
+ instance specified by \a key. This string may be appeared in some
+ user interfaces.
+*/
+
+
+
+class QInputContextPluginPrivate : public QInputContextFactoryInterface
+{
+public:
+ QInputContextPluginPrivate( QInputContextPlugin *p )
+ : plugin( p )
+ {
+ }
+
+ virtual ~QInputContextPluginPrivate();
+
+ QRESULT queryInterface( const QUuid &iid, QUnknownInterface **iface );
+ Q_REFCOUNT;
+
+ QStringList featureList() const;
+ QInputContext *create( const QString &key );
+ QStringList languages( const QString &key );
+ QString displayName( const QString &key );
+ QString description( const QString &key );
+
+private:
+ QInputContextPlugin *plugin;
+};
+
+QRESULT QInputContextPluginPrivate::queryInterface( const QUuid &iid, QUnknownInterface **iface )
+{
+ *iface = 0;
+
+ if ( iid == IID_QUnknown )
+ *iface = this;
+ else if ( iid == IID_QFeatureList )
+ *iface = this;
+ else if ( iid == IID_QInputContextFactory )
+ *iface = this;
+ else
+ return QE_NOINTERFACE;
+
+ (*iface)->addRef();
+ return QS_OK;
+}
+
+QInputContextPluginPrivate::~QInputContextPluginPrivate()
+{
+ delete plugin;
+}
+
+QStringList QInputContextPluginPrivate::featureList() const
+{
+ return plugin->keys();
+}
+
+QInputContext *QInputContextPluginPrivate::create( const QString &key )
+{
+ return plugin->create( key );
+}
+
+QStringList QInputContextPluginPrivate::languages( const QString &key )
+{
+ return plugin->languages( key );
+}
+
+QString QInputContextPluginPrivate::displayName( const QString &key )
+{
+ return plugin->displayName( key );
+}
+
+QString QInputContextPluginPrivate::description( const QString &key )
+{
+ return plugin->description( key );
+}
+
+
+/*!
+ Constructs a input context plugin. This is invoked automatically by the
+ \c Q_EXPORT_PLUGIN macro.
+*/
+QInputContextPlugin::QInputContextPlugin()
+ : QGPlugin( d = new QInputContextPluginPrivate( this ) )
+{
+}
+
+/*!
+ Destroys the input context plugin.
+
+ You never have to call this explicitly. Qt destroys a plugin
+ automatically when it is no longer used.
+*/
+QInputContextPlugin::~QInputContextPlugin()
+{
+ // don't delete d, as this is deleted by d
+}
+
+#endif // QT_NO_COMPONENT
+#endif // QT_NO_IM