From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- .../inputmethods/imsw-multi/qmultiinputcontext.h | 124 +++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h (limited to 'plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h') diff --git a/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h b/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h new file mode 100644 index 0000000..05eebe5 --- /dev/null +++ b/plugins/src/inputmethods/imsw-multi/qmultiinputcontext.h @@ -0,0 +1,124 @@ +/**************************************************************************** +** $Id$ +** +** Definition of QMultiInputContext class +** +** Copyright (C) 2004 immodule for Qt Project. All rights reserved. +** +** This file is written to contribute to Trolltech AS under their own +** licence. You may use this file under your Qt license. Following +** description is copied from their original file headers. Contact +** immodule-qt@freedesktop.org if any conditions of this licensing are +** not clear to you. +** +** +** This file is part of the input method 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. +** +**********************************************************************/ + +#ifndef QMULTIINPUTCONTEXT_H +#define QMULTIINPUTCONTEXT_H + +#ifndef QT_NO_IM + +#include +#include +#include +#include +#include + +class QPopupMenu; + +class QMultiInputContext : public QInputContext +{ + Q_OBJECT +public: + QMultiInputContext(); + ~QMultiInputContext(); + + QString identifierName(); + QString language(); + +#if defined(Q_WS_X11) + bool x11FilterEvent( QWidget *keywidget, XEvent *event ); +#endif // Q_WS_X11 + bool filterEvent( const QEvent *event ); + void reset(); + + void setFocus(); + void unsetFocus(); + void setMicroFocus( int x, int y, int w, int h, QFont *f = 0 ); + void mouseHandler( int x, QEvent::Type type, + Qt::ButtonState button, Qt::ButtonState state ); + QFont font() const; + bool isComposing() const; + bool isPreeditRelocationEnabled(); + +#if (QT_VERSION-0 >= 0x040000) + QPtrList *qt4menus(); +#endif + QPtrList *menus(); + QPopupMenu *createImSelPopup(); + +#if defined(Q_WS_X11) + QWidget *focusWidget() const; + QWidget *holderWidget() const; + + void setFocusWidget( QWidget *w ); + void setHolderWidget( QWidget *w ); + void releaseComposingWidget( QWidget *w ); +#endif + +public slots: + virtual void destroyInputContext(); + virtual void postIMEvent( QObject *receiver, QIMEvent *event ); + +protected slots: + void changeInputMethodWithMenuId( int menuid ); + +protected: + QInputContext *slave(); + const QInputContext *slave() const; + + void changeInputMethod( int newIndex ); + void changeInputMethod( QString name ); + + QInputContext *_slave; + int imIndex; + bool cachedFocus; + QWidget *cachedFocusWidget; + QWidget *cachedHolderWidget; + bool beIndirectlyConnected; + + QIntDict keyDict; + QGuardedPtr popup; + QString currentIMKey; +}; + +#endif //Q_NO_IM + +#endif // QMULTIINPUTCONTEXT_H -- cgit v1.2.3