author | zecke <zecke> | 2003-08-28 14:34:45 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-08-28 14:34:45 (UTC) |
commit | 3f829e499bac92d52a9bbb1ad6b31bb74734287f (patch) (side-by-side diff) | |
tree | 7d757842147e15076308d3bad0c852f36f8076e7 /core/launcher/inputmethods.h | |
parent | d9f3423c2e2aca46ab10f08152450b3ebf5221cf (diff) | |
download | opie-3f829e499bac92d52a9bbb1ad6b31bb74734287f.zip opie-3f829e499bac92d52a9bbb1ad6b31bb74734287f.tar.gz opie-3f829e499bac92d52a9bbb1ad6b31bb74734287f.tar.bz2 |
Use QLibrary directly ( make it compile with Opie )
Save the last used InputMethod
Diffstat (limited to 'core/launcher/inputmethods.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/launcher/inputmethods.h | 50 |
1 files changed, 42 insertions, 8 deletions
diff --git a/core/launcher/inputmethods.h b/core/launcher/inputmethods.h index 286a818..93b69de 100644 --- a/core/launcher/inputmethods.h +++ b/core/launcher/inputmethods.h @@ -1,10 +1,10 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** ** 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. ** @@ -18,59 +18,93 @@ ** **********************************************************************/ #ifndef __INPUT_METHODS_H__ #define __INPUT_METHODS_H__ - -#include <qpe/inputmethodinterface.h> +#include <qtopia/qlibrary.h> +#include <qtopia/inputmethodinterface.h> #include <qwidget.h> #include <qvaluelist.h> class QToolButton; -class QLibrary; +class QWidgetStack; struct InputMethod { #ifndef QT_NO_COMPONENT QLibrary *library; #endif QWidget *widget; - InputMethodInterface *interface; + QString libName; + bool newIM; + union { + InputMethodInterface *interface; + ExtInputMethodInterface *extInterface; + }; + + inline void releaseInterface() { + newIM ? (void)extInterface->release() : (void)interface->release(); + library->unload(); + delete library; library = 0l; + } + inline QString name() const { return newIM ? extInterface->name() : interface->name(); } + inline QPixmap *icon() const { return newIM ? extInterface->icon() : interface->icon(); } + inline QUnknownInterface *iface() { return newIM ? (QUnknownInterface *)extInterface : (QUnknownInterface *)interface; } + inline void resetState() { if ( !newIM ) interface->resetState(); } + + int operator <(const InputMethod& o) const; + int operator >(const InputMethod& o) const; + int operator <=(const InputMethod& o) const; }; class InputMethods : public QWidget { Q_OBJECT public: InputMethods( QWidget * ); ~InputMethods(); - + QRect inputRect() const; bool shown() const; QString currentShown() const; // name of interface void showInputMethod(const QString& id); void showInputMethod(); void hideInputMethod(); + void unloadInputMethods(); void loadInputMethods(); signals: void inputToggled( bool on ); private slots: void chooseKbd(); + void chooseIm(); void showKbd( bool ); void resetStates(); void sendKey( ushort unicode, ushort scancode, ushort modifiers, bool, bool ); + void qcopReceive( const QCString &msg, const QByteArray &data ); private: + void setPreferedHandlers(); + /*static */QStringList plugins()const; + /*static */void installTranslator( const QString& ); + void unloadMethod( QValueList<InputMethod>& ); void chooseMethod(InputMethod* im); + void chooseKeyboard(InputMethod* im); + void updateKeyboards(InputMethod *im); + +private: QToolButton *kbdButton; QToolButton *kbdChoice; - InputMethod *method; + QWidgetStack *imButton; // later will be widget stack + QToolButton *imChoice; + InputMethod *mkeyboard; + InputMethod *imethod; QValueList<InputMethod> inputMethodList; + QValueList<InputMethod> inputModifierList; }; #endif // __INPUT_METHODS_H__ |