diff -r 000000000000 -r eb1f2e154e89 fep/aknfep/inc/AknFepFnKeyManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fep/aknfep/inc/AknFepFnKeyManager.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,128 @@ +/* +* Copyright (c) 2002-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: Provides CAknFepManager definition +* +*/ + + + + + + + + + + + + +#ifndef _AKNFEP_FNKEY_MANAGER_H__ +#define _AKNFEP_FNKEY_MANAGER_H__ + + +#include +#include +#include +#include //TCoeInputCapabilities + +#include + +#include "AknFepGlobalEnums.h" +#include "AknFepSharedDataInterface.h" + + +class CAknFepManager; +class CAknIndicatorContainer; + +/** + * FnKey State machine + * + * @since S60 v3.2 + */ +class CAknFepFnKeyManager : public CBase + { + +public: + + /** Fn key states */ + enum TFnKeyState + { + EFnKeyNone, + EFnKeyPressed, + EFnKeyDown, + EFnKeyNext, + EFnKeyPressedAgain, + EFnKeyLock, + EFnKeyForced, + EFnKeyReversePressed, + EFnKeyReverse + }; + +public: + static CAknFepFnKeyManager* NewL( CAknFepManager& aFepMan,CAknFepSharedDataInterface* + aSharedDataInterface ); + ~CAknFepFnKeyManager(); + +public: + /* + * Resets the Function Key State + */ + void ClearFnKeyState(); + + void SetQwertyInputMode(TBool aQwertyState); + + /* + * Handles the Fn key event to change the state appropriately. + */ + TKeyResponse CAknFepFnKeyManager::HandleFnKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aEventCode, + TCoeInputCapabilities aInputCapabilities + ); + + void SetCase( TCase aCase ); + + TFnKeyState FnKeyState(); + void SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState); +private: + + CAknFepFnKeyManager( CAknFepManager& aFepMan, + CAknFepSharedDataInterface* aSharedDataInterface); + void ConstructL(); + + // For Shift Key handling. + void UpdatePreviousCase(); + + +private: // data + CAknFepManager &iFepMan; //not own + TCoeInputCapabilities iInputCapabilities; + TFnKeyState iFnKeyState; + TBool iIsQwertyMode; + + /** + * Pointer to the Indicator Container object containing editor indicators. + * Not own. + */ + CAknIndicatorContainer* iIndicatorContainer; + CAknFepSharedDataInterface* iSharedDataInterface; + + // For Shift key handling. + TInt iPreviousCase; + TBool iShiftKeyPressed; + + // For QWERTY Predictive + TBool iWasPreviousModePredictive; + TBool iPreviousKeyWasFnKey; + }; + +#endif // ? _AKNFEP_FNKEY_MANAGER_H__