idlefw/plugins/wsplugin/inc/keylockhandler.h
changeset 0 79c6a41cd166
--- /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