diff -r 000000000000 -r 164170e6151a secsrv_plat/keylock_policy_api/inc/keylockpolicyapi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secsrv_plat/keylock_policy_api/inc/keylockpolicyapi.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,169 @@ +/* +* 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: Keylock policy component offers a configuration support for keyguard +* +*/ + + +#ifndef ___CKEYLOCKPOLICYAPI__ +#define ___CKEYLOCKPOLICYAPI__ + +#include +#include + +/** + * Keylock policy component supports three policy types: + * + * EPolicyActivateKeyguard keys used for keyguard locking + * EPolicyDeactivateKeyguard keys used for keyguard unlocking + * EPolicyDevicelockQuery keys used for showing devicelock query + */ +enum TLockPolicyType + { + EPolicyActivateKeyguard = 1, + EPolicyDeactivateKeyguard, + EPolicyDevicelockQuery, + }; + +// FORWARD DECLARATIONS +class CKeyLockPolicyApiImpl; + +/** + * CKeyLockPolicyApi. Trough CKeyLockPolicyApi users can + * + * @lib keylockpolicy.lib + * @since 3.2 + */ +class CKeyLockPolicyApi : public CBase + { +public: + + /** + * Use this to create keylock policy + * @param TLockPolicyType aType the policy used + */ + IMPORT_C static CKeyLockPolicyApi* NewL( TLockPolicyType aType ); + + /** + * Destructor. + */ + IMPORT_C ~CKeyLockPolicyApi(); + + /** + * If no policy has been defined for the type it cannot be used. + * @return ETrue if has succesfully loaded policy + */ + IMPORT_C TBool HasConfiguration(); + + /** + * Activates support for keyguard feature so the phone keys cannot + * be locked with keyguard. Does not affect the devicelock. + * @return standard Symbian error code + */ + IMPORT_C TInt EnableKeyguardFeature(); + + /** + * Disables support for keyguard feature so the phone keys cannot + * be locked with keyguard. Does not affect the devicelock. + * @return standard Symbian error code + */ + IMPORT_C TInt DisableKeyguardFeature(); + + /** + * Whether keyguard feature is currently enabled or disabled. + * @return ETrue if keyguard can be locked. + */ + IMPORT_C TBool static KeyguardAllowed(); + + /** + * Adds a key combination for the policy type defined in the construction. + * + * @param TUint scan code for primary key + * @param TUint scan code for secondary key + * @return standard Symbian error code + */ + IMPORT_C TInt AddKeyCombination(TUint32 aPrimaryKey, TUint32 aSecondaryKey); + + /** + * Removes a key combination for the policy type defined in the construction. + * + * @param TUint scan code for primary key + * @param TUint scan code for secondary key + * @return standard Symbian error code + */ + IMPORT_C TInt RemoveKeyCombination(TUint32 aPrimaryKey, TUint32 aSecondaryKey); + + /** + * Retrieve a key combination on the given index. + * + * @param TInt aIndex index on the list that stores key combinations + * @param TUint key code for primary key + * @param TUint key code for secondary key + * @return standard Symbian error code + */ + IMPORT_C TInt GetKeyCombination(TInt aIndex, TUint32 &aPrimaryKey, TUint32 &aSecondaryKey); + + /** + * Clears all the defined key combinations from the policy. + * + * @return standard Symbian error code + */ + IMPORT_C TInt ClearKeycombinations(); + + /** + * Handles Key events, returns ETrue the key events match any of the + * defined key combinations. Only uses scancodes with type EEventKeyDown. + * + * @param TKeyEvent aKeyEvent the actual key event + * @param TEventCode aType the type of the received key event + * @return ETrue if a match was found. + */ + IMPORT_C TBool HandleKeyEventL(const TKeyEvent& aKeyEvent, const TEventCode aType ); + + /** + * Returns true if primary button is pressed and note should be shown. + * @return boolean true if primary key is pressed. + */ + IMPORT_C TBool PrimaryKeyPressed(); + + /** + * Returns Primary key scan code that has been pressed last. + * @return scan code value of the primary key if found, NULL if not + */ + IMPORT_C TUint GetLastPrimaryKey(); + +private: + + /** + * C++ default constructor (private so cannot be derived). + */ + CKeyLockPolicyApi( ); + + /** + * Second constructor initializes the policy + * @param TLockPolicyType aType the policy (TLockPolicyType) used + */ + void ConstructL( TLockPolicyType aType ); + +private: + + /** + * Actual implemetation. + */ + CKeyLockPolicyApiImpl* iKeylockpolicyImplementation; + + }; + +#endif // ___CKEYLOCKPOLICYAPI__ +