diff -r b63e8c2d8cff -r 604cd42065d1 securitydialogs/lockapp/inc/lockappkeypattern.h --- a/securitydialogs/lockapp/inc/lockappkeypattern.h Thu Jun 17 12:11:51 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* -* Copyright (c) 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: Key pattern matching component. - * -*/ - - -#ifndef __LOCKAPPKEYPATTERN__ -#define __LOCKAPPKEYPATTERN__ - -// INCLUDES -#include -#include - -enum TPatternState - { - EPatternNotInitialized = 1, - EPatternNotEnabled, - EPatternNoMatch, - EPatternPrimaryMatch, - EPatternSecondaryMatch, - }; - -/** - * CLockAppKeyPattern class implements a 2-key pattern matcher. - * Can be used for both iCodes and iScancodes, as it matches integer numbers. - * The caller's responsability is to make sense what is beeing matched. - * Multiple patterns can be defined. - * - * @lib lockapp - * @since 5.0 - * @author Tamas Koteles - */ -class CLockAppKeyPattern : public CBase - { - public: - - /** - * Two phased constructor. - */ - static CLockAppKeyPattern* NewL( ); - - /** - * Destructor. - */ - ~CLockAppKeyPattern( ); - - /** - * If no patterns have been defined it cannot be used. - * @return ETrue if has succesfully loaded policy - */ - TBool HasPatterns( ); - - /** - * Gets the enabled state. - * - * @return true if the patterns are enabled, false othewise - */ - TBool IsEnabled( ); - - /** - * Sets the enabled state. - */ - void SetEnabled( TBool aEnabled ); - - /** - * Gets the primary key timeout. - * - * @return the timeout in miliseconds - */ - TUint GetKeyTimeOut( ); - - /** - * Sets the primary key timeout. - * - */ - void SetKeyTimeOut( TUint aTimeOut ); - - /** - * Adds a key combination. - * - * @param aPrimaryKey code for primary key - * @param aSecondaryKey code for secondary key - * @return standard Symbian error code - */ - TInt AddPattern( TUint32 aPrimaryKey, TUint32 aSecondaryKey ); - - /** - * Gets a key combination. - * - * @param aIndex index of the key combination - * @param aPrimaryKey primary key code if found - * @param aSecondaryKey secondary key code if found - * @return standard Symbian error code - */ - TInt GetPattern( TInt aIndex, TUint32& aPrimaryKey, TUint32& aSecondaryKey ); - - /** - * Clears all the defined key combinations. - * - * @return standard Symbian error code - */ - TInt ClearPatterns( ); - - /** - * Handles Key events. Result of the event is returned in the pattern state. - * - * @param aKey the actual key event (code or scancode) - * @return TPatternState caused by the event. - */ - TPatternState HandleKeyEvent( TUint32 aKey ); - - protected: - - /** - * C++ default constructor (private so cannot be derived). - */ - CLockAppKeyPattern( ); - - /** - * Second constructor initializes the policy - */ - void ConstructL( ); - - private: - - /** - * A primary key has been received, set primary-match state. - */ - void HandlePrimaryKeyEvent( TUint32 aKey ); - - /** - * A secondary key has been received, set secondary-match state. - */ - void HandleSecondaryKeyEvent( ); - - /** - * Any other key has been received, set no-match state. - */ - void HandleOtherKeyEvent( ); - - /** - * A call back to the keylock timer - * param TAny aSelf a pointer to the parent class - */ - static TInt HandleKeyTimerTimeout( TAny* aSelf ); - - private: - - // defined configurations - RArray iPrimaryKeys; - RArray iSecondaryKeys; - RArray iWaitingKeys; - - // defined timeout - TUint iKeyTimeOut; - - // first key pressed - TPatternState iState; - - // if the keypatterns are enabled - TBool iEnabled; - - // if the keylock policy exists - TBool iHasPatterns; - - // timer used between primary and secondary keys - CPeriodic* iKeyTimer; - - }; - -#endif // __LOCKAPPKEYPATTERN__