diff -r 000000000000 -r eb1f2e154e89 fep/aknfep/inc/aknfepzhuyinkeyhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fep/aknfep/inc/aknfepzhuyinkeyhandler.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,240 @@ +/* +* Copyright (c) 2009 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: +* +*/ + + + +#ifndef C_AKNFEPZHUYINKEYHANDLER_H +#define C_AKNFEPZHUYINKEYHANDLER_H + +#include // For CActive, link against: euser.lib +#include // For RTimer, link against: euser.lib +#include +#include "aknfepzhuyinkeyhandlerinterface.h" + +class ZhuyinKeyTable + { +public: + /** + * C++ constructor. + * + * @return state. + */ + ZhuyinKeyTable(); + + /** + * Cancel and destroy + * + * @return state. + */ + ~ZhuyinKeyTable(); + + /** + * Get butten loop length. + * + * @parameter aKey the input key. + * @return loop length. + */ + static TInt GetBtLoopLength( TPtiKey aKey ); + + /** + * Get zhuyin symbol. + * + * @parameter aKey the input key + * @parameter aClkCount input key count + * @parameter aOutput the zhuyin symbol + * @return state. + */ + static TBool GetUnicode( TPtiKey aKey, TInt aClkCount, TDes& aOutput ); + + }; + +class CZhuyinKeyHandler : public CActive, public MZhuyinKeyHandler + { +public: + + /** + * Cancel and destroy + * + * @return state. + */ + ~CZhuyinKeyHandler(); + + /** + * Two-phased constructor. + * + * @return state. + */ + static CZhuyinKeyHandler* NewL(); + + /** + * Two-phased constructor. + * + * @return state. + */ + static CZhuyinKeyHandler* NewLC(); + +public: + + /** + * Function for making the initial request. + * + * @return state. + */ + void Start(); + + /** + * Get Zhuyin symbol according to the input key. + * + * @param aKey. the input key. + * @param aOutBuf. an output parameter which will receive the zhuyin symbol unicode. + * @return 0 identify the output should replace the old symbol. + * 1 identify the output is a new symbol. + * -1 identify error + */ + TInt GetZhuyinSymbol( TPtiKey aKey, TDes& aOutBuf ); + + /** + * Reset all the member variables. + * @param None. + * @return None. + */ + void Reset(); + + /** + * Get tonemark according to symbol in front of cursor. + * + * @param. aBaseSymbol is the symbol in front of cursor. + * @param. aOutBuf is the output buffer for rcving tonemark. + * @return. 0 identify the output should replace symbol in front of cursor + * 1 identify the output should be added. + * -1 identify error + */ + TInt GetToneMark( const TDes& aBaseSymbol, TDes& aOutBuf ); + + /** + * Set whether state change from entry to spelling editing is automatical. + * + * @param aState.1 for automatical, 0 for manual. + * @return None. + */ + void SetState( TInt aState ); + + /** + * Get state change states. + * + * @return state. + */ + TInt GetState(); + + /** + * Set status change flag. + * this function is used to deal with long press on Down key or Clear key. + * + * @param aChgFlag. + * @return None. + */ + void SetStatusChgFlag( TStatusChgFlag aChgFlag ); + + /** + * Get the status change flag. + * @prama None. + * @return. + */ + TStatusChgFlag GetStatusChgFlag(); + +private: + + /** + * C++ constructor. + * @prama None. + * @return. + */ + CZhuyinKeyHandler(); + + /** + * Second-phase constructor. + * @prama None. + * @return. + */ + void ConstructL(); + +private: + + /** + * From CActive Handle completion. + * @prama None. + * @return. + */ + void RunL(); + + /** + * How to cancel me. + * @prama None. + * @return. + */ + void DoCancel(); + + /** + * Override to handle leaves from RunL(). Default implementation causes. + * the active scheduler to panic. + * @prama None. + * @return. + */ + TInt RunError( TInt aError ); + +private: + + /** + * Provides async timing service + */ + RTimer iTimer; + + /** + * Last pressed key. + */ + TPtiKey iLastKey; + + /** + * if ETrue, it identify you don't touch any key in the specified time. + */ + TBool iTimeOut; + /** + * the times you pressed current key. + */ + TInt iBtClickNum; + + /** + * the max loop length for pressed key. + */ + TInt iBtLoopLength; + + /** + * whether the state change from entry to spelling editing is automatical. + */ + TInt iState; + + /** + * state change flag.used to handle long press on down key and clear key currently. + */ + TStatusChgFlag iStatusChgFlag; + + }; + +#endif // C_AKNFEPZHUYINKEYHANDLER_H + +// End of file +