From 39f8a475b4ec5c87a11a7e9300a30ef1c5b4a7e1 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sat, 31 Aug 2024 19:56:49 +0900 Subject: Rename remaining ntq[i-l]* related files to equivalent tq* Signed-off-by: Michele Calgaro --- src/inputmethod/ntqinputcontextfactory.h | 59 ------- src/inputmethod/ntqinputcontextplugin.h | 67 -------- src/inputmethod/qinputcontextfactory.cpp | 186 ---------------------- src/inputmethod/qinputcontextinterface_p.h | 87 ----------- src/inputmethod/qinputcontextplugin.cpp | 231 ---------------------------- src/inputmethod/qt_inputmethod.pri | 10 +- src/inputmethod/tqinputcontextfactory.cpp | 186 ++++++++++++++++++++++ src/inputmethod/tqinputcontextfactory.h | 59 +++++++ src/inputmethod/tqinputcontextinterface_p.h | 87 +++++++++++ src/inputmethod/tqinputcontextplugin.cpp | 231 ++++++++++++++++++++++++++++ src/inputmethod/tqinputcontextplugin.h | 67 ++++++++ 11 files changed, 635 insertions(+), 635 deletions(-) delete mode 100644 src/inputmethod/ntqinputcontextfactory.h delete mode 100644 src/inputmethod/ntqinputcontextplugin.h delete mode 100644 src/inputmethod/qinputcontextfactory.cpp delete mode 100644 src/inputmethod/qinputcontextinterface_p.h delete mode 100644 src/inputmethod/qinputcontextplugin.cpp create mode 100644 src/inputmethod/tqinputcontextfactory.cpp create mode 100644 src/inputmethod/tqinputcontextfactory.h create mode 100644 src/inputmethod/tqinputcontextinterface_p.h create mode 100644 src/inputmethod/tqinputcontextplugin.cpp create mode 100644 src/inputmethod/tqinputcontextplugin.h (limited to 'src/inputmethod') diff --git a/src/inputmethod/ntqinputcontextfactory.h b/src/inputmethod/ntqinputcontextfactory.h deleted file mode 100644 index ddebf25b8..000000000 --- a/src/inputmethod/ntqinputcontextfactory.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** -** $Id: ntqinputcontextfactory.h,v 1.1.1.1 2004/05/11 11:16:49 daisuke Exp $ -** -** Definition of TQInputContextFactory class -** -** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. -** -** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition -** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. -** See http://www.trolltech.com/qpl/ for TQPL 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. -** -**********************************************************************/ - -#ifndef TQINPUTCONTEXTFACTORY_H -#define TQINPUTCONTEXTFACTORY_H - -#ifndef QT_H -#include "tqstringlist.h" -#endif // QT_H - -#ifndef TQT_NO_IM - -class TQInputContext; -class TQWidget; - -class TQ_EXPORT TQInputContextFactory -{ -public: - static TQStringList keys(); - static TQInputContext *create( const TQString &key, TQWidget *widget ); // should be a toplevel widget - static TQStringList languages( const TQString &key ); - static TQString displayName( const TQString &key ); - static TQString description( const TQString &key ); -}; -#endif //TQT_NO_IM - -#endif //TQINPUTCONTEXTFACTORY_H diff --git a/src/inputmethod/ntqinputcontextplugin.h b/src/inputmethod/ntqinputcontextplugin.h deleted file mode 100644 index a67d0b26a..000000000 --- a/src/inputmethod/ntqinputcontextplugin.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** $Id: ntqinputcontextplugin.h,v 1.2 2004/06/20 18:43:11 daisuke Exp $ -** -** Definition of TQInputContextPlugin class -** -** Created : 010920 -** -** Copyright (C) 2001 Trolltech AS. All rights reserved. -** -** This file is part of the tools module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition -** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. -** See http://www.trolltech.com/qpl/ for TQPL 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. -** -**********************************************************************/ - -#ifndef TQINPUTCONTEXTPLUGIN_H -#define TQINPUTCONTEXTPLUGIN_H - -#ifndef QT_H -#include "tqgplugin.h" -#include "tqstringlist.h" -#endif // QT_H - -#ifndef TQT_NO_IM -class TQInputContext; -class TQInputContextPluginPrivate; - -class TQ_EXPORT TQInputContextPlugin : public TQGPlugin -{ - TQ_OBJECT -public: - TQInputContextPlugin(); - ~TQInputContextPlugin(); - - virtual TQStringList keys() const = 0; - virtual TQInputContext *create( const TQString &key ) = 0; - virtual TQStringList languages( const TQString &key ) = 0; - virtual TQString displayName( const TQString &key ) = 0; - virtual TQString description( const TQString &key ) = 0; - -private: - TQInputContextPluginPrivate *d; -}; -#endif // TQT_NO_IM -#endif // TQINPUTCONTEXTPLUGIN_H diff --git a/src/inputmethod/qinputcontextfactory.cpp b/src/inputmethod/qinputcontextfactory.cpp deleted file mode 100644 index 63aff8375..000000000 --- a/src/inputmethod/qinputcontextfactory.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/**************************************************************************** -** $Id: qinputcontextfactory.cpp,v 1.2 2004/06/20 18:43:11 daisuke Exp $ -** -** Implementation of TQInputContextFactory class -** -** Created : 001103 -** -** Copyright (C) 1992-2002 Trolltech AS. All rights reserved. -** -** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition licenses may use this -** file in accordance with the TQt 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 TQt Commercial License Agreements. -** See http://www.trolltech.com/qpl/ for TQPL 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 "qinputcontextinterface_p.h" // up here for GCC 2.7.* compatibility -#include "ntqinputcontextfactory.h" -#include "ntqinputcontext.h" - -#ifndef TQT_NO_IM - -#include "ntqapplication.h" - -#ifdef TQT_THREAD_SUPPORT -#include -#endif // TQT_THREAD_SUPPORT - -#include - -#include "tqcleanuphandler.h" -#include -#ifndef TQT_NO_COMPONENT - - -static TQPluginManager *manager = 0; -static TQSingleCleanupHandler< TQPluginManager > cleanup_manager; - -static void create_manager() -{ - if( manager ) // already created - return; - -#ifdef TQT_THREAD_SUPPORT - // protect manager creation - TQMutexLocker locker( tqt_global_mutexpool ? - tqt_global_mutexpool->get( &manager ) : 0); - - // we check the manager pointer again to make sure that another thread - // has not created the manager before us. - - if ( manager ) // already created - return; -#endif - - manager = new TQPluginManager( IID_QInputContextFactory, TQApplication::libraryPaths(), "/inputmethods", FALSE ); - - TQ_CHECK_PTR( manager ); - cleanup_manager.set( &manager ); -} - -#endif //TQT_NO_COMPONENT - - -/*! - This function generates the input context that has the identifier - name which is in agreement with \a key. \a widget is the client - widget of TQInputContext. \a widget may be null. -*/ -TQInputContext *TQInputContextFactory::create( const TQString& key, TQWidget *widget ) -{ - TQInputContext *ret = 0; - TQString inputcontext = key; -#ifndef TQT_NO_COMPONENT - // make sure the manager is created - create_manager(); - - TQInterfacePtr iface; - manager->queryInterface( inputcontext, &iface ); - - if ( iface ) { - ret = iface->create( inputcontext ); -#ifdef TQ_WS_X11 - if ( ret ) - ret->setHolderWidget( widget ); -#endif - } -#endif - return ret; -} - - -/*! - This function returns the list of the names input methods. - Only input methods included in default and placed under - $TQTDIR/plugins/inputmethods are listed. -*/ -TQStringList TQInputContextFactory::keys() -{ - TQStringList list; -#ifndef TQT_NO_COMPONENT - // make sure the manager is created - create_manager(); - - list = manager->featureList(); -#endif //TQT_NO_COMPONENT - - return list; -} - - -TQStringList TQInputContextFactory::languages( const TQString &key ) -{ - TQStringList result; -#ifndef TQT_NO_COMPONENT - // make sure the manager is created - create_manager(); - - TQInterfacePtr iface; - manager->queryInterface( key, &iface ); - - if ( iface ) - result = iface->languages( key ); -#endif //TQT_NO_COMPONENT - - return result; -} - - -TQString TQInputContextFactory::displayName( const TQString &key ) -{ - TQString result( "" ); -#ifndef TQT_NO_COMPONENT - // make sure the manager is created - create_manager(); - - TQInterfacePtr iface; - manager->queryInterface( key, &iface ); - - if ( iface ) - result = iface->displayName( key ); -#endif //TQT_NO_COMPONENT - - return result; -} - - -TQString TQInputContextFactory::description( const TQString &key ) -{ - TQString result( "" ); -#ifndef TQT_NO_COMPONENT - // make sure the manager is created - create_manager(); - - TQInterfacePtr iface; - manager->queryInterface( key, &iface ); - - if ( iface ) - result = iface->description( key ); -#endif //TQT_NO_COMPONENT - - return result; -} - -#endif // TQT_NO_IM diff --git a/src/inputmethod/qinputcontextinterface_p.h b/src/inputmethod/qinputcontextinterface_p.h deleted file mode 100644 index d42f81c50..000000000 --- a/src/inputmethod/qinputcontextinterface_p.h +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** -** $Id: qinputcontextinterface_p.h,v 1.2 2004/06/20 18:43:11 daisuke Exp $ -** -** ... -** -** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. -** -** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition -** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. -** See http://www.trolltech.com/qpl/ for TQPL 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. -** -**********************************************************************/ - -#ifndef TQINPUTCONTEXTINTERFACE_P_H -#define TQINPUTCONTEXTINTERFACE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the TQt API. This header file may -// change from version to version without notice, or even be -// removed. -// -// We mean it. -// -// - -#ifndef QT_H -#include -#endif // QT_H - -#ifndef TQT_NO_IM -#ifndef TQT_NO_COMPONENT - -class TQWidget; -class TQInputContext; - -// old version interface in qt-x11-immodule-bc-qt3.3.2-20040623.diff: -// {6C2B9EDE-B63C-14c9-A729-3C7643739C4C} -// -// new version interface: -// {a5f5c63d-e044-11d8-9718-000d6077a78d} -// {b0bf3e59-e526-11d8-80da-000d6077a78d} -// {9ef05c7f-0272-11d9-846c-000d6077a78d} - -#ifndef IID_QInputContextFactory -//#define IID_QInputContextFactory TQUuid(0x6c2b9ede, 0xb63c, 0x14c9, 0xa7, 0x29, 0x3c, 0x76, 0x43, 0x73, 0x9c, 0x4c) -//#define IID_QInputContextFactory TQUuid(0xa5f5c63d, 0xe044, 0x11d8, 0x97, 0x18, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) -//#define IID_QInputContextFactory TQUuid(0xb0bf3e59, 0xe526, 0x11d8, 0x80, 0xda, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) -#define IID_QInputContextFactory TQUuid(0x9ef05c7f, 0x0272, 0x11d9, 0x84, 0x6c, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) -#endif - -struct TQ_EXPORT TQInputContextFactoryInterface : public TQFeatureListInterface -{ - virtual TQInputContext *create( const TQString &key ) = 0; - virtual TQStringList languages( const TQString &key ) = 0; - virtual TQString displayName( const TQString &key ) = 0; - virtual TQString description( const TQString &key ) = 0; -}; - -#endif //TQT_NO_COMPONENT -#endif //TQT_NO_IM - -#endif //TQINPUTCONTEXTINTERFACE_P_H diff --git a/src/inputmethod/qinputcontextplugin.cpp b/src/inputmethod/qinputcontextplugin.cpp deleted file mode 100644 index 1e2a6701e..000000000 --- a/src/inputmethod/qinputcontextplugin.cpp +++ /dev/null @@ -1,231 +0,0 @@ -/**************************************************************************** -** $Id: qinputcontextplugin.cpp,v 1.2 2004/06/20 18:43:11 daisuke Exp $ -** -** Implementation of TQInputContextPlugin class -** -** Created : 010920 -** -** Copyright (C) 2001 Trolltech AS. All rights reserved. -** -** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition -** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. -** See http://www.trolltech.com/qpl/ for TQPL 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 "ntqinputcontextplugin.h" - -#ifndef TQT_NO_IM -#ifndef TQT_NO_COMPONENT - -#include "qinputcontextinterface_p.h" - -/*! - \class TQInputContextPlugin ntqinputcontextplugin.h - \brief The TQInputContextPlugin class provides an abstract base for custom TQInputContext 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 TQ_EXPORT_PLUGIN macro. See the \link - plugins-howto.html TQt Plugins documentation \endlink for details. - - \sa TQInputContext -*/ - -/*! - \fn TQStringList TQInputContextPlugin::keys() const - - Returns the list of TQInputContext 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 TQInputContext::identifierName(). The names - have to consist of ASCII characters only. See also - TQInputContext::identifierName() for further information. - - \sa create(), displayName(), TQInputContext::identifierName() -*/ - -/*! - \fn TQInputContext* TQInputContextPlugin::create( const TQString& key ) - - Creates and returns a TQInputContext 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 TQStringList languages( const TQString &key ) - - Returns what languages are supported by the TQInputContext 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 - TQStringList. The name has to be consistent with - TQInputContextPlugin::language(). - - This information may be used to optimize user interface. - - \sa TQInputContext::language() -*/ - -/*! - \fn TQString displayName( const TQString &key ) - - Returns a user friendly i18n-ized name of the TQInputContext - 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 TQt 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(), TQInputContext::identifierName() -*/ - -/*! - \fn TQString description( const TQString &key ) - - Returns a i18n-ized brief description of the TQInputContext - instance specified by \a key. This string may be appeared in some - user interfaces. -*/ - - - -class TQInputContextPluginPrivate : public TQInputContextFactoryInterface -{ -public: - TQInputContextPluginPrivate( TQInputContextPlugin *p ) - : plugin( p ) - { - } - - virtual ~TQInputContextPluginPrivate(); - - TQRESULT queryInterface( const TQUuid &iid, TQUnknownInterface **iface ); - TQ_REFCOUNT; - - TQStringList featureList() const; - TQInputContext *create( const TQString &key ); - TQStringList languages( const TQString &key ); - TQString displayName( const TQString &key ); - TQString description( const TQString &key ); - -private: - TQInputContextPlugin *plugin; -}; - -TQRESULT TQInputContextPluginPrivate::queryInterface( const TQUuid &iid, TQUnknownInterface **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 TQE_NOINTERFACE; - - (*iface)->addRef(); - return TQS_OK; -} - -TQInputContextPluginPrivate::~TQInputContextPluginPrivate() -{ - delete plugin; -} - -TQStringList TQInputContextPluginPrivate::featureList() const -{ - return plugin->keys(); -} - -TQInputContext *TQInputContextPluginPrivate::create( const TQString &key ) -{ - return plugin->create( key ); -} - -TQStringList TQInputContextPluginPrivate::languages( const TQString &key ) -{ - return plugin->languages( key ); -} - -TQString TQInputContextPluginPrivate::displayName( const TQString &key ) -{ - return plugin->displayName( key ); -} - -TQString TQInputContextPluginPrivate::description( const TQString &key ) -{ - return plugin->description( key ); -} - - -/*! - Constructs a input context plugin. This is invoked automatically by the - \c TQ_EXPORT_PLUGIN macro. -*/ -TQInputContextPlugin::TQInputContextPlugin() - : TQGPlugin( d = new TQInputContextPluginPrivate( this ) ) -{ -} - -/*! - Destroys the input context plugin. - - You never have to call this explicitly. TQt destroys a plugin - automatically when it is no longer used. -*/ -TQInputContextPlugin::~TQInputContextPlugin() -{ - // don't delete d, as this is deleted by d -} - -#endif // TQT_NO_COMPONENT -#endif // TQT_NO_IM diff --git a/src/inputmethod/qt_inputmethod.pri b/src/inputmethod/qt_inputmethod.pri index b4f719350..59ccd37c5 100644 --- a/src/inputmethod/qt_inputmethod.pri +++ b/src/inputmethod/qt_inputmethod.pri @@ -2,9 +2,9 @@ inputmethod { INPUTMETHOD_P = inputmethod - HEADERS +=$$INPUTMETHOD_H/ntqinputcontextfactory.h \ - $$INPUTMETHOD_P/qinputcontextinterface_p.h \ - $$INPUTMETHOD_H/ntqinputcontextplugin.h - SOURCES +=$$INPUTMETHOD_CPP/qinputcontextfactory.cpp \ - $$INPUTMETHOD_CPP/qinputcontextplugin.cpp + HEADERS +=$$INPUTMETHOD_H/tqinputcontextfactory.h \ + $$INPUTMETHOD_P/tqinputcontextinterface_p.h \ + $$INPUTMETHOD_H/tqinputcontextplugin.h + SOURCES +=$$INPUTMETHOD_CPP/tqinputcontextfactory.cpp \ + $$INPUTMETHOD_CPP/tqinputcontextplugin.cpp } diff --git a/src/inputmethod/tqinputcontextfactory.cpp b/src/inputmethod/tqinputcontextfactory.cpp new file mode 100644 index 000000000..95fc40766 --- /dev/null +++ b/src/inputmethod/tqinputcontextfactory.cpp @@ -0,0 +1,186 @@ +/**************************************************************************** +** $Id: tqinputcontextfactory.cpp,v 1.2 2004/06/20 18:43:11 daisuke Exp $ +** +** Implementation of TQInputContextFactory class +** +** Created : 001103 +** +** Copyright (C) 1992-2002 Trolltech AS. All rights reserved. +** +** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition licenses may use this +** file in accordance with the TQt 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 TQt Commercial License Agreements. +** See http://www.trolltech.com/qpl/ for TQPL 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 "tqinputcontextinterface_p.h" // up here for GCC 2.7.* compatibility +#include "tqinputcontextfactory.h" +#include "tqinputcontext.h" + +#ifndef TQT_NO_IM + +#include "ntqapplication.h" + +#ifdef TQT_THREAD_SUPPORT +#include +#endif // TQT_THREAD_SUPPORT + +#include + +#include "tqcleanuphandler.h" +#include +#ifndef TQT_NO_COMPONENT + + +static TQPluginManager *manager = 0; +static TQSingleCleanupHandler< TQPluginManager > cleanup_manager; + +static void create_manager() +{ + if( manager ) // already created + return; + +#ifdef TQT_THREAD_SUPPORT + // protect manager creation + TQMutexLocker locker( tqt_global_mutexpool ? + tqt_global_mutexpool->get( &manager ) : 0); + + // we check the manager pointer again to make sure that another thread + // has not created the manager before us. + + if ( manager ) // already created + return; +#endif + + manager = new TQPluginManager( IID_QInputContextFactory, TQApplication::libraryPaths(), "/inputmethods", FALSE ); + + TQ_CHECK_PTR( manager ); + cleanup_manager.set( &manager ); +} + +#endif //TQT_NO_COMPONENT + + +/*! + This function generates the input context that has the identifier + name which is in agreement with \a key. \a widget is the client + widget of TQInputContext. \a widget may be null. +*/ +TQInputContext *TQInputContextFactory::create( const TQString& key, TQWidget *widget ) +{ + TQInputContext *ret = 0; + TQString inputcontext = key; +#ifndef TQT_NO_COMPONENT + // make sure the manager is created + create_manager(); + + TQInterfacePtr iface; + manager->queryInterface( inputcontext, &iface ); + + if ( iface ) { + ret = iface->create( inputcontext ); +#ifdef TQ_WS_X11 + if ( ret ) + ret->setHolderWidget( widget ); +#endif + } +#endif + return ret; +} + + +/*! + This function returns the list of the names input methods. + Only input methods included in default and placed under + $TQTDIR/plugins/inputmethods are listed. +*/ +TQStringList TQInputContextFactory::keys() +{ + TQStringList list; +#ifndef TQT_NO_COMPONENT + // make sure the manager is created + create_manager(); + + list = manager->featureList(); +#endif //TQT_NO_COMPONENT + + return list; +} + + +TQStringList TQInputContextFactory::languages( const TQString &key ) +{ + TQStringList result; +#ifndef TQT_NO_COMPONENT + // make sure the manager is created + create_manager(); + + TQInterfacePtr iface; + manager->queryInterface( key, &iface ); + + if ( iface ) + result = iface->languages( key ); +#endif //TQT_NO_COMPONENT + + return result; +} + + +TQString TQInputContextFactory::displayName( const TQString &key ) +{ + TQString result( "" ); +#ifndef TQT_NO_COMPONENT + // make sure the manager is created + create_manager(); + + TQInterfacePtr iface; + manager->queryInterface( key, &iface ); + + if ( iface ) + result = iface->displayName( key ); +#endif //TQT_NO_COMPONENT + + return result; +} + + +TQString TQInputContextFactory::description( const TQString &key ) +{ + TQString result( "" ); +#ifndef TQT_NO_COMPONENT + // make sure the manager is created + create_manager(); + + TQInterfacePtr iface; + manager->queryInterface( key, &iface ); + + if ( iface ) + result = iface->description( key ); +#endif //TQT_NO_COMPONENT + + return result; +} + +#endif // TQT_NO_IM diff --git a/src/inputmethod/tqinputcontextfactory.h b/src/inputmethod/tqinputcontextfactory.h new file mode 100644 index 000000000..84c3cae85 --- /dev/null +++ b/src/inputmethod/tqinputcontextfactory.h @@ -0,0 +1,59 @@ +/**************************************************************************** +** $Id: tqinputcontextfactory.h,v 1.1.1.1 2004/05/11 11:16:49 daisuke Exp $ +** +** Definition of TQInputContextFactory class +** +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. +** +** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. +** See http://www.trolltech.com/qpl/ for TQPL 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. +** +**********************************************************************/ + +#ifndef TQINPUTCONTEXTFACTORY_H +#define TQINPUTCONTEXTFACTORY_H + +#ifndef QT_H +#include "tqstringlist.h" +#endif // QT_H + +#ifndef TQT_NO_IM + +class TQInputContext; +class TQWidget; + +class TQ_EXPORT TQInputContextFactory +{ +public: + static TQStringList keys(); + static TQInputContext *create( const TQString &key, TQWidget *widget ); // should be a toplevel widget + static TQStringList languages( const TQString &key ); + static TQString displayName( const TQString &key ); + static TQString description( const TQString &key ); +}; +#endif //TQT_NO_IM + +#endif //TQINPUTCONTEXTFACTORY_H diff --git a/src/inputmethod/tqinputcontextinterface_p.h b/src/inputmethod/tqinputcontextinterface_p.h new file mode 100644 index 000000000..195be7fe9 --- /dev/null +++ b/src/inputmethod/tqinputcontextinterface_p.h @@ -0,0 +1,87 @@ +/**************************************************************************** +** $Id: tqinputcontextinterface_p.h,v 1.2 2004/06/20 18:43:11 daisuke Exp $ +** +** ... +** +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. +** +** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. +** See http://www.trolltech.com/qpl/ for TQPL 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. +** +**********************************************************************/ + +#ifndef TQINPUTCONTEXTINTERFACE_P_H +#define TQINPUTCONTEXTINTERFACE_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the TQt API. This header file may +// change from version to version without notice, or even be +// removed. +// +// We mean it. +// +// + +#ifndef QT_H +#include +#endif // QT_H + +#ifndef TQT_NO_IM +#ifndef TQT_NO_COMPONENT + +class TQWidget; +class TQInputContext; + +// old version interface in qt-x11-immodule-bc-qt3.3.2-20040623.diff: +// {6C2B9EDE-B63C-14c9-A729-3C7643739C4C} +// +// new version interface: +// {a5f5c63d-e044-11d8-9718-000d6077a78d} +// {b0bf3e59-e526-11d8-80da-000d6077a78d} +// {9ef05c7f-0272-11d9-846c-000d6077a78d} + +#ifndef IID_QInputContextFactory +//#define IID_QInputContextFactory TQUuid(0x6c2b9ede, 0xb63c, 0x14c9, 0xa7, 0x29, 0x3c, 0x76, 0x43, 0x73, 0x9c, 0x4c) +//#define IID_QInputContextFactory TQUuid(0xa5f5c63d, 0xe044, 0x11d8, 0x97, 0x18, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) +//#define IID_QInputContextFactory TQUuid(0xb0bf3e59, 0xe526, 0x11d8, 0x80, 0xda, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) +#define IID_QInputContextFactory TQUuid(0x9ef05c7f, 0x0272, 0x11d9, 0x84, 0x6c, 0x00, 0x0d, 0x60, 0x77, 0xa7, 0x8d) +#endif + +struct TQ_EXPORT TQInputContextFactoryInterface : public TQFeatureListInterface +{ + virtual TQInputContext *create( const TQString &key ) = 0; + virtual TQStringList languages( const TQString &key ) = 0; + virtual TQString displayName( const TQString &key ) = 0; + virtual TQString description( const TQString &key ) = 0; +}; + +#endif //TQT_NO_COMPONENT +#endif //TQT_NO_IM + +#endif //TQINPUTCONTEXTINTERFACE_P_H diff --git a/src/inputmethod/tqinputcontextplugin.cpp b/src/inputmethod/tqinputcontextplugin.cpp new file mode 100644 index 000000000..7acdc9300 --- /dev/null +++ b/src/inputmethod/tqinputcontextplugin.cpp @@ -0,0 +1,231 @@ +/**************************************************************************** +** $Id: tqinputcontextplugin.cpp,v 1.2 2004/06/20 18:43:11 daisuke Exp $ +** +** Implementation of TQInputContextPlugin class +** +** Created : 010920 +** +** Copyright (C) 2001 Trolltech AS. All rights reserved. +** +** This file is part of the widgets module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. +** See http://www.trolltech.com/qpl/ for TQPL 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 "tqinputcontextplugin.h" + +#ifndef TQT_NO_IM +#ifndef TQT_NO_COMPONENT + +#include "tqinputcontextinterface_p.h" + +/*! + \class TQInputContextPlugin tqinputcontextplugin.h + \brief The TQInputContextPlugin class provides an abstract base for custom TQInputContext 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 TQ_EXPORT_PLUGIN macro. See the \link + plugins-howto.html TQt Plugins documentation \endlink for details. + + \sa TQInputContext +*/ + +/*! + \fn TQStringList TQInputContextPlugin::keys() const + + Returns the list of TQInputContext 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 TQInputContext::identifierName(). The names + have to consist of ASCII characters only. See also + TQInputContext::identifierName() for further information. + + \sa create(), displayName(), TQInputContext::identifierName() +*/ + +/*! + \fn TQInputContext* TQInputContextPlugin::create( const TQString& key ) + + Creates and returns a TQInputContext 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 TQStringList languages( const TQString &key ) + + Returns what languages are supported by the TQInputContext 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 + TQStringList. The name has to be consistent with + TQInputContextPlugin::language(). + + This information may be used to optimize user interface. + + \sa TQInputContext::language() +*/ + +/*! + \fn TQString displayName( const TQString &key ) + + Returns a user friendly i18n-ized name of the TQInputContext + 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 TQt 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(), TQInputContext::identifierName() +*/ + +/*! + \fn TQString description( const TQString &key ) + + Returns a i18n-ized brief description of the TQInputContext + instance specified by \a key. This string may be appeared in some + user interfaces. +*/ + + + +class TQInputContextPluginPrivate : public TQInputContextFactoryInterface +{ +public: + TQInputContextPluginPrivate( TQInputContextPlugin *p ) + : plugin( p ) + { + } + + virtual ~TQInputContextPluginPrivate(); + + TQRESULT queryInterface( const TQUuid &iid, TQUnknownInterface **iface ); + TQ_REFCOUNT; + + TQStringList featureList() const; + TQInputContext *create( const TQString &key ); + TQStringList languages( const TQString &key ); + TQString displayName( const TQString &key ); + TQString description( const TQString &key ); + +private: + TQInputContextPlugin *plugin; +}; + +TQRESULT TQInputContextPluginPrivate::queryInterface( const TQUuid &iid, TQUnknownInterface **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 TQE_NOINTERFACE; + + (*iface)->addRef(); + return TQS_OK; +} + +TQInputContextPluginPrivate::~TQInputContextPluginPrivate() +{ + delete plugin; +} + +TQStringList TQInputContextPluginPrivate::featureList() const +{ + return plugin->keys(); +} + +TQInputContext *TQInputContextPluginPrivate::create( const TQString &key ) +{ + return plugin->create( key ); +} + +TQStringList TQInputContextPluginPrivate::languages( const TQString &key ) +{ + return plugin->languages( key ); +} + +TQString TQInputContextPluginPrivate::displayName( const TQString &key ) +{ + return plugin->displayName( key ); +} + +TQString TQInputContextPluginPrivate::description( const TQString &key ) +{ + return plugin->description( key ); +} + + +/*! + Constructs a input context plugin. This is invoked automatically by the + \c TQ_EXPORT_PLUGIN macro. +*/ +TQInputContextPlugin::TQInputContextPlugin() + : TQGPlugin( d = new TQInputContextPluginPrivate( this ) ) +{ +} + +/*! + Destroys the input context plugin. + + You never have to call this explicitly. TQt destroys a plugin + automatically when it is no longer used. +*/ +TQInputContextPlugin::~TQInputContextPlugin() +{ + // don't delete d, as this is deleted by d +} + +#endif // TQT_NO_COMPONENT +#endif // TQT_NO_IM diff --git a/src/inputmethod/tqinputcontextplugin.h b/src/inputmethod/tqinputcontextplugin.h new file mode 100644 index 000000000..bacea5968 --- /dev/null +++ b/src/inputmethod/tqinputcontextplugin.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** $Id: tqinputcontextplugin.h,v 1.2 2004/06/20 18:43:11 daisuke Exp $ +** +** Definition of TQInputContextPlugin class +** +** Created : 010920 +** +** Copyright (C) 2001 Trolltech AS. All rights reserved. +** +** This file is part of the tools module of the TQt 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.TQPL 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 TQt Enterprise Edition or TQt Professional Edition +** licenses may use this file in accordance with the TQt 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 TQt Commercial License Agreements. +** See http://www.trolltech.com/qpl/ for TQPL 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. +** +**********************************************************************/ + +#ifndef TQINPUTCONTEXTPLUGIN_H +#define TQINPUTCONTEXTPLUGIN_H + +#ifndef QT_H +#include "tqgplugin.h" +#include "tqstringlist.h" +#endif // QT_H + +#ifndef TQT_NO_IM +class TQInputContext; +class TQInputContextPluginPrivate; + +class TQ_EXPORT TQInputContextPlugin : public TQGPlugin +{ + TQ_OBJECT +public: + TQInputContextPlugin(); + ~TQInputContextPlugin(); + + virtual TQStringList keys() const = 0; + virtual TQInputContext *create( const TQString &key ) = 0; + virtual TQStringList languages( const TQString &key ) = 0; + virtual TQString displayName( const TQString &key ) = 0; + virtual TQString description( const TQString &key ) = 0; + +private: + TQInputContextPluginPrivate *d; +}; +#endif // TQT_NO_IM +#endif // TQINPUTCONTEXTPLUGIN_H -- cgit v1.2.3