diff -r 000000000000 -r 79c6a41cd166 idlefw/plugins/wsplugin/inc/numerickeyhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/plugins/wsplugin/inc/numerickeyhandler.h Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,126 @@ +/* +* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Numeric key forwarding handler for Active Idle WS Plug-in. +* +*/ + + +#ifndef C_AIWSPLUGIN_NUMERICKEYHANDLER_H +#define C_AIWSPLUGIN_NUMERICKEYHANDLER_H + +#include "eventhandler.h" +#include +#include + +class MAnimGeneralFunctionsWindowExtension; +class MAiPSPropertyObserver; + +namespace AiWsPlugin { + +class MUiState; + +/** + * @ingroup group_wsplugin + * + * Numeric key forwarding handler for Active Idle WS Plug-in. + * + * Monitors and forwards numeric key presses that should be handled by Phone + * application. + * + * @since S60 3.2 + */ +class CNumericKeyHandler : + public CEventHandler, + private MCenRepNotifyHandlerCallback + { +public: + /** + * Creates a new instance of this class. + * + * @param aTargetWgId Window Group id of the target application where + * numeric key events are forwarded. + * @return A new object of this class. The returned object is left on the + * cleanup stack. + */ + static CNumericKeyHandler* NewLC + ( TInt aTargetWgId, MAnimGeneralFunctionsWindowExtension* aWindowExt ); + + ~CNumericKeyHandler(); + +private: +// from base class CEventHandler + void SetUiStateQuery( MUiState& aUiState ); + + void FocusChanged( TBool aState ); + + TBool OfferRawEvent(const TRawEvent& aRawEvent); + +// new methods + CNumericKeyHandler + ( TInt aTargetWgId, MAnimGeneralFunctionsWindowExtension* aWindowExt ); + + void ConstructL(); + + TBool CheckPostToTarget( const TRawEvent& aRawEvent ) const; + + void LoadInputLanguageKeyBindings( TInt aLanguage ); + + static TInt HandleQwertyModeChanged( TAny *aPtr ); + + TInt HandleInputLanguageChanged( TInt aNewValue ); + + void SetQwertyMode( TInt aValue ); + + void SetInputLanguage( TInt aValue ); + +// from base class MCenRepNotifyHandlerCallback + + void HandleNotifyGeneric(TUint32 aKey); + + void HandleNotifyError(TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler); + +private: // data + + /// Target window group id + TInt iTargetWgId; + + /// Anim extension. Not own. + MAnimGeneralFunctionsWindowExtension* iWindowExt; + + /// Pointer ot state. Not own. + MUiState* iUiState; + + /// Qwerty ps observer. Owned. + MAiPSPropertyObserver* iQwertyObserver; + + /// Input language observer. Owned. + CCenRepNotifyHandler* iInputLanguageObserver; + + /// Input language repository. Owned. + CRepository* iInputLanguageRepository; + + /// Numeric keys array. + RArray iNumericKeys; + + /// Qwerty mode indicator. + TInt iQwertyMode; + + /// Input language indicator. + TInt iInputLanguage; + }; + +} // namespace AiWsPlugin + + +#endif // C_AIWSPLUGIN_KEYLOCKHANDLER_H