diff -r 000000000000 -r eb1f2e154e89 textinput/peninputhwrfscn/inc/peninputhwrfscndatastore.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputhwrfscn/inc/peninputhwrfscndatastore.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,696 @@ +/* +* Copyright (c) 2005-2006 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: Implementation for chinese peninput full screen hwr +* +*/ + + +#ifndef __PENINPUTHWRFSCNDATASTORE_H__ +#define __PENINPUTHWRFSCNDATASTORE_H__ + +//SYSTEM INCLUDES +#include +#include +#include +#include +#include + +//FEP INCLUDES +#include +#include + +//USER INCLUDES +#include "peninputhwrfscnpropertysubscriber.h" + +//CONSTANTS +const TInt KLanguageStringLength = 10; + +//FOWWARD CLASS +class CAknFepHwrTriggerStr; +class CRepository; +class CAknFepHwrEngine; +class CPtiEngine; + +/** + * CPeninputHwrfscnDataStore + * + * @lib peninputhwrfscn.lib + * @since S60 v5.0 + */ +class CPeninputHwrfscnDataStore : public CBase + { +public: + + /** + * Symbian constructor. + * + * @since S60 v5.0 + * @return Pointer to created CPeninputHwrfscnDataStore object + */ + static CPeninputHwrfscnDataStore* NewL( CPtiEngine* aPtiEngine ); + + /** + * destructor + * + * @since S60 v5.0 + * @return None + */ + virtual ~CPeninputHwrfscnDataStore(); + +public: + /** + * The writing speed. + * + *@since Series 60 5.0 + */ + enum TWritingSpeed + { + EWritingSpeedVeryFast = 1, + EWritingSpeedFast, + EWritingSpeedNormal, + EWritingSpeedSlow, + EWritingSpeedVerySlow + }; + +public: + /** + * Is candidate in Chinese range + * + * @since S60 v5.0 + * @param aCandidateIndex The index the candidate in list. + * @return ETrue if candidate is in Chinese range; otherwise EFalse + */ + TBool IsChinese( TInt aCandidateIndex ) const; + + TBool IsValid( TInt aCandidateIndex ) const; + /** + * Do recoginize by engine + * + * @since S60 v5.0 + * @param aTraceData The trace data. + * @return None + */ + void DoRecognizeL( const RArray& aTraceData ); + + /** + * Do predictive using trigger string + * + * @since S60 v5.0 + * @return None + */ + void DoPredictiveL(); + + /** + * Do homophonic using trigger string + * + * @since S60 v5.0 + * @return None + */ + void DoHomophonicL( const TDesC& aString ); + + /** + * Get the predictive count + * + * @since S60 v5.0 + * @return The count of predictives + */ + TInt PredictiveCount() const; + + /** + * Add property subscriber + * + * @since S60 v5.0 + * @param aSubscriber The property subscriber. + * @return None + */ + void AddSubscriber( MPeninputHwrfscnPropertySubscriber* aSubscriber ); + + /** + * Get the trigger string + * + * @since S60 v5.0 + * @return Pointer to CAknFepHwrTriggerStr object + */ + CAknFepHwrTriggerStr* TriggerStr() const; + + /** + * Set permitted ranges + * + * @since S60 v5.0 + * @param aPermittedRanges The permitted ranges. + * @return None + */ + void SetPermittedRanges( TInt aPermittedRanges ); + + /** + * Get the permitted ranges count + * + * @since S60 v5.0 + * @return The permitted ranges array. + */ + const RArray& PermittedRanges() const; + + /** + * Set Primary range + * + * @since S60 v5.0 + * @param aPrimaryRange The Primary range + * @return None + */ + void SetPrimaryRange( TInt aPrimaryRange ); + + /** + * Get Primary range + * + * @since S60 v5.0 + * @return Primary range. + */ + TInt PrimaryRange(); + + /** + * Check if the primary range is chinese + * + * @since S60 v5.0 + * @return ETrue if the primary range is chinese, EFalse if otherwise + */ + TBool IsChinesePrimaryRange(); + + /** + * Set case + * + * @since S60 v5.0 + * @param aCase The case + * @return None + */ + void SetCase( TInt aCase ); + + /** + * Set language + * + * @since S60 v5.0 + * @param aLanguage The language + * @return None + */ + void SetLanguageL( TInt aLanguage ); + + /** + * Get language + * + * @since S60 v5.0 + * @return Current Language + */ + TInt CurLanguage(); + + /** + * Set writting speed. + * + * @since S60 v5.0 + * @param aCharDelay The submit character timer in micro seconds + * @return None + */ + void SetWritingSpeed( TInt aWritingSpeed ); + + /** + * Get writting speed. + * + * @since S60 v5.0 + * @return The writing speed + */ + TTimeIntervalMicroSeconds32 WritingSpeed(); + + /** + * Set trail drawing pen size. + * + * @since S60 v5.0 + * @param aSize New pen size + * @return None + */ + void SetBoxPenSize( const TSize& aSize ); + + /** + * Get trail drawing pen size. + * + * @since S60 v5.0 + * @return Pen size. + */ + TSize PenSize(); + + /** + * Set trail drawing pen color. + * + * @since S60 v5.0 + * @param aCol New pen color + * @return None + */ + void SetBoxPenColor( const TRgb& aCol ); + + /** + * Get trail drawing pen color. + * + * @since S60 v5.0 + * @return The pen color + */ + TRgb& PenColor(); + + /** + * Set the candidate list. + * + * @since S60 v5.0 + * @return None + */ + void SetCandidatesL(); + + /** + * Set homephonic candidates. + * + * + */ + void SetHomephonicCandidatesL(); + + /** + * Set the predictive list. + * + * @since S60 v5.0 + * @return None + */ + void SetPredictives(); + + /** + * Add new predictives to list + * + * @since S60 v5.0 + * @return None + */ + void AddPredictives(); + + /** + * Get the candidate. + * + * @since S60 v5.0 + * @param aIndex The index of candidate + * @param aCharCode The result candidate + * @return Candidate char code + */ + const RPointerArray& Candidate(); + + /** + * Get the predictive. + * + * @since S60 v5.0 + * @param aIndex The index of predictive + * @param aCharCode The result predictive + * @return Predictive char code + */ + const RPointerArray& Predictive(); + + /** + * Set number mode + * + * @since S60 v5.0 + * @param aNumberMode Given number mode + * @return None + */ + void SetNumberMode( const TAknEditorNumericKeymap aNumberMode ); + + /** + * Set number mode + * + * @since S60 v5.0 + * @param aCustomMode The customized number key mapping, 0-9 + * are not included. + * @return None + */ + void SetNumberModeL( const TDesC& aCustomMode ); + + /** + * Load and publish default repository values + * + * @since S60 v5.0 + * @return None + */ + void LoadAndPublishDefaultL(); + + /** + * Set the screen mode. + * + * @since S60 v5.0 + * @param aRange The range + * @return None + */ + void SaveRange( TInt aRange ); + + /** + * Callback method to notify client about change. + * + * @since S60 v5.0 + * @param aPtr The callback data + * @return None + */ + static TInt HandleGSRepositoryCallBack( TAny* aPtr ); + + /** + * Set permitted ranges + * + * @since S60 v5.0 + * @param aPermittedRanges The permitted ranges. + * @return None + */ + void SetPermittedCases( TInt aPermittedCases ); + + /** + * Get next predictive page + * + * @since S60 v5.0 + * @return None + */ + void GetNextPredictivePageL(); + + /** + * Judge if next predictive candidate exist + * + * @since S60 v5.0 + * @return ETrue if candidate exist, otherwise EFalse; + */ + TBool PredictiveCandidateExisted(); + + /** + * Set stroke end mark to stroke end mark control + * + * @since S60 v5.0 + * @return None + */ + void SetStrokeEndMark(); + + /** + * Get the stroke end mark. + * + * @since S60 v5.0 + * @return TPoint + */ + TPoint StrokeEndMark(); + + /** + * Get stroke end mark from control which handle it + * + * @since S60 v5.0 + * @return None + */ + TPoint StrokeEndMarkFromControl(); + + /** + * Judge if current permitted range is only number range + * + * @since S60 v5.0 + * @return ETrue f current permitted range is only number range + */ + TBool IsNumberOnly(); + + /** + * Judge if a language is TW language or PRC language + * + * @since S60 v5.0 + * @return ETrue if aLanguage is TW or PRC, otherwise EFalse + */ + TBool IsHomephonicLanguage(); + + /** + * Get number keymapping string + * + * @since S60 v5.0 + * @param aKeyMappingId Keymapping id + * @return Pointer to keymapping string + */ + HBufC* KeyMappingStringL() const; + + /** + * Check if the char is the special display char + * + * @since S60 v5.0 + * @param aChar The checked char + * @return TBool Wheater or not the input char is the special display char + */ + TBool IsSpecialDisplayChars( const TDesC& aChar ); + + /** + * Check if the char is need to be sent to app directly which not need to be shown in candidate window. + * + * @since S60 v5.0 + * @param aChar The checked char + * @return TBool Wheater or not the input char is the directly sent char + */ + TBool IsDirectlySentCandidate( const TDesC& aChar ); + + /** + * Convert the special display char to the keycode. + * + * @since S60 v5.0 + * @param aChar The special display char. + * @return HBufC* The converted keycode char. + */ + HBufC* ConvertDisplayChars( const TDesC& aChar ); + + /** + * Get language show text + * + * @since S60 v5.0 + * @return TDesC* language show text. + */ + const TDesC& LanguageShowText(); + + /** + * Get pen trail color + * + * @since S60 v5.0 + * @return TDesC* language show text. + */ + TInt GetPenTrailColor(); + TInt SetInputAreaSize(TSize& aSize); + TInt SetScreenSize(TSize& aSize); +private: + + /** + * C++ constructor + * + * @since S60 v5.0 + * @return None + */ + CPeninputHwrfscnDataStore(); + + /** + * Second phase constructor + * + * @since S60 v5.0 + * @return None + */ + void ConstructL( CPtiEngine* aPtiEngine ); + + /** + * Initialize the key mapping list + * + * @since S60 v5.0 + * @return None + */ + void InitKeyMappingListL(); + + /** + * Notify subscriber + * + * @since S60 v5.0 + * @param aPropertyName The property name + * @param aValue The new value + * @return None + */ + void NotifySubscriber( MPeninputHwrfscnPropertySubscriber:: + TPeninputHwrfscnProperty aPropertyName ); + + /** + * Get new value from cenrep of aId. + * + * @since S60 v5.0 + * @param aWatcher The watcher to read + * @param aId The Uid + * @return None + */ + TInt GetNewValue( CAknFepRepositoryWatcher* aWatcher, TInt aId ); + + /** + * Judge if a language is Chinese + * + * @since S60 v5.0 + * @param aLanguage Given language code + * @return ETrue if aLanguage is Chinese, otherwise EFalse + */ + TBool LanguageIsChinese( TInt aLanguage ); + + /** + * Set engine language + * + * @since S60 v5.0 + * @param aLanguage Given language code + * @return None + */ + void SetEngineLanguageL( TInt aLanguage ); + + /** + * Set language show text + * + * @since S60 v5.0 + * @param aLanguage language code + * @return None + */ + void SetLanguageShowText( TInt aLanguage ); + + /** + * Get predictives when the primary range is chinese + * + * @since S60 v5.0 + * + */ + void GetPredictivesOfPriRangeAsChineseL(); + + /** + * Get predictives when the primary range is number + * + * @since S60 v5.0 + * + */ + void GetPredictivesOfPriRangeAsNumberL(); + + /** + * Get predictives when the primary range is english + * + * @since S60 v5.0 + */ + void GetPredictivesOfPriRangeAsEnglishL(); + +private:// data + + /** + * Subscriber List + */ + RPointerArray iSubscriberList; + + /** + * Trigger string (Own) + */ + CAknFepHwrTriggerStr* iTriggerStr; + + /** + * predictive list + */ + RPointerArray iPredictives; + + /** + * candidate list + */ + RPointerArray iCandidates; + + /** + * The candidate range start index + */ + RArray iRangeStartPos; + + /** + * Permitted ranges + */ + RArray iPermittedRanges; + + /** + * Permitted range in int format + */ + TInt iIntRange; + + /** + * Current case + */ + TInt iCase; + + /** + * Current language + */ + TInt iLanguage; + + /** + * Writing speed + */ + TInt iWritingSpeed; + + /** + * Pen size + */ + TSize iPenSize; + + /** + * Pen color + */ + TRgb iPenColor; + + /** + * The repository (Own); + */ + CRepository* iRepositoryFep; + + /** + * The repository (Own); + */ + CRepository* iRepositorySetting; + + /** + * The engine (Own); + */ + CAknFepHwrEngine* iHwrEngine; + + /** + * The repository watcher(Own); + */ + CAknFepRepositoryWatcher* iGSRepositoryWatcher; + + /** + * The permited cases + */ + TInt iPermittedCases; + + /** + * The storke control + */ + MPeninputHwrfscnPropertySubscriber* iStrokeControl; + + /** + * The current number key map + */ + TAknEditorNumericKeymap iCurrentNumberMode; + + /** + * Keymapping id array + */ + RArray iKeyMappingIdList; + + /** + * Keymapping string array + */ + RPointerArray iKeyMappingStringList; + + /** + * Language show text + */ + TBuf iLanguageShowText; + + /** + * User defined key mapping (Own) + */ + HBufC* iUserDefinedResource; + }; + + +#endif //__PENINPUTHWRFSCNDATASTORE_H__ \ No newline at end of file