diff -r 000000000000 -r 79c6a41cd166 idlefw/plugins/wsplugin/inc/keylockhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/plugins/wsplugin/inc/keylockhandler.h Thu Dec 17 08:54:17 2009 +0200 @@ -0,0 +1,149 @@ +/* +* 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: Keylock handler for Active Idle WS Plug-in. +* +*/ + + +#ifndef C_AIWSPLUGIN_KEYLOCKHANDLER_H +#define C_AIWSPLUGIN_KEYLOCKHANDLER_H + +#include "eventhandler.h" +#include "keylockcontrol.h" +#include "keypadsettings.h" +#include "keyhandlertimer.h" + +class CKeyLockPolicyApi; +namespace AiWsPlugin { + +class TKeylockState; + +/** + * @ingroup group_wsplugin + * + * Keylock handler for Active Idle WS Plug-in. + * + * Monitors key presses that activate keyboard lock on the device. + * + * @since S60 3.2 + */ +class CKeyLockHandler : + public CEventHandler, + public MKeyLockHandlerControl, + public MHandlerTimer + { +public: + + static CKeyLockHandler* NewLC(); + + ~CKeyLockHandler(); + +// from MHandlerTimer + + void TimerDone(); + +private: + +// from base class CEventHandler + + void SetUiStateQuery( MUiState& aUiState ); + + void FocusChanged( TBool aState ); + + TBool OfferRawEvent(const TRawEvent& aRawEvent); + +// from base class MKeyLockHandlerControl + + const TKeypadSettings& Settings() const; + + void StartTimeoutTimer( TInt aTimeout ); + + void StopTimeoutTimer(); + + void ActivateKeypadLock(); + + void CancelKeypadLock(); + + void KeypadLockTimeout(); + + void SetNextState( const TKeylockState& aState ); + + void ActivateNextState(); + + void SetLastLockKeyScanCode( TInt aScanCode ); + + TInt LastLockKeyScanCode() const; + + TBool HasFocus(); + + TBool TimeoutTimerActive(); + +// construction + + CKeyLockHandler(); + + void ConstructL(); + + static TInt TimerElapsed( TAny* aSelf ); + + TBool IsFirstLockKey( TInt aScanCode ); + + TBool IsSecondLockKey( TInt aScanCode ); + +private: // data + /** + * Current state of this object. + * Not owned. + */ + const TKeylockState* iCurrentState; + + /** + * Next state of this object. + * Not owned. + */ + const TKeylockState* iNextState; + + /** + * Timeout timer for keypad lock. + * Own. + */ + CPeriodic* iKeypadLockTimer; + + /** + * Key lock settings. + */ + TKeypadSettings iSettings; + + /** + * Last value of SetLastLockKeyScanCode( TInt aScanCode). + */ + TInt iLastLockKeyScanCode; + + /** + * Pointer to ui state. + * Not owned. + */ + MUiState* iUiState; + + /** + * For checking keylock buttons + * Own + */ + CKeyLockPolicyApi *iKeylockApi; + }; + +} // namespace AiWsPlugin + + +#endif // C_AIWSPLUGIN_KEYLOCKHANDLER_H