diff -r 000000000000 -r eb1f2e154e89 textinput/peninputarc/gsplugin/gspeninputplugin/inc/gspeninputmodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputarc/gsplugin/gspeninputplugin/inc/gspeninputmodel.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,714 @@ +/* +* Copyright (c) 2002-2005 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: Model for gspeninputplugin. +* +*/ + + +#ifndef C_GSPENINPUTMODEL_H +#define C_GSPENINPUTMODEL_H + +// INCLUDES +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gspeninputplugin.hrh" + +_LIT(HLP_GS_PEN_INPUT, "CP_HLP_PEN_INPUT"); // temp fix for helps integration build break replace KCP_HLP_PEN_INPUT in cp.hlp.hrh; + +// FORWARD DECLARATION +class CGSPenInputContainer; +class CPtiEngine; +class MGsCenRepNotifyHandlerCallback; + +// CONSTANTS +const TInt KGSBufSize = 128; + +/** + * GSPenInputPlugin Repository Watcher class + * + * This class provides a callback function for watchering repository key. + * + * @lib gspeninputplugin.dll + * @since S60 v3.2 + */ +class CGSRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback + { + +public: + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @param aCallBack Call back function + * @param aRepository Repository for watchering + * @param aRepositoryUid The repository for each key + * @return Pointer to created CGSRepositoryWatcher object + */ + static CGSRepositoryWatcher* NewL(MGsCenRepNotifyHandlerCallback* aOwner, + CRepository* aRepository, + TUid aRepositoryUid ); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None + */ + virtual ~CGSRepositoryWatcher(); + +// From MCenRepNotifyHandlerCallback + + /** + * From MCenRepNotifyHandlerCallback + * Notify call back function + * + * @since S60 v3.2 + * @param aKey Repository UID + * @param aNewValue Changed value + * @return None + */ + void HandleNotifyInt(TUint32 aKey, TInt aNewValue); + + void HandleNotifyGeneric(TUint32 aId); + +private: + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @param aCallBack Call back function + * @param aRepository Repository for watchering + * @param aRepositoryUid The reposotory uid for each key + * @return None + */ + CGSRepositoryWatcher(MGsCenRepNotifyHandlerCallback* aOwner, + CRepository* aRepository, + TUid aRepositoryUid ); + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @return None + */ + void ConstructL(); + +private: + + /** + * Owner pointer for call back + */ + MGsCenRepNotifyHandlerCallback* iOwner; + + /** + * The Repository for watchering (Not own) + */ + CRepository* iRepository; + + /** + * The handle of Repository notify (Own) + */ + CCenRepNotifyHandler* iNotifyHandler; + + /** + * The reposotory uid + */ + TUid iRepositoryUid; + + }; + +/** + * GSPenInputPlugin model class + * + * This class is GSPenInputPlugin model class. It handle GSPenInputPlugin + * data and store value to Repository. + * + * @lib gspeninputplugin.dll + * @since S60 v3.2 + */ +class CGSPenInputModel : public CBase + { + +public: + + /** DPI type for pen trail width */ + enum TDPIType + { + EDPILow = 150, // low DPI + EDPIMiddle = 200, // middle DPI + EDPIHigh = 250 // high DPI + }; + + /** List box item array length */ + enum TPenInputArray + { + EWritingSpeedArrayLength = 5, + ETrailWidthArrayLength = 3, + }; + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @param aOwner Pointer to owner + * @return Pointer to created CGSPenInputModel object + */ + static CGSPenInputModel* NewL(MGsCenRepNotifyHandlerCallback* aOwner); + + /** + * Symbian constructor + * + * @since S60 v3.2 + * @return Pointer to created CGSPenInputModel object + */ + static CGSPenInputModel* NewL(); + + /** + * Set owner for call back + * + * @since S60 v3.2 + * @param aOwner Pointer to owner + * @return None + */ + inline void SetOwner(MGsCenRepNotifyHandlerCallback* aOwner); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None + */ + virtual ~CGSPenInputModel(); + + /** + * Get current input language index in list box item + * + * @since S60 v3.2 + * @return The index of input language setting page + */ + inline TInt InputLanguageIndex() const; + + /** + * Set current input language index in list box item + * + * @since S60 v3.2 + * @param aIndex Language index in input language setting page + * @return None + */ + inline void SetInputLanguageIndex(TInt aIndex); + + /** + * Current input language name in list box item + * + * @since S60 v3.2 + * @param aLanguage Reference to current input language name + * @return None + */ + void InputLanguage(TDes& aLanguage); + + /** + * Current input language ID + * + * @since S60 v3.2 + * @return Language ID + */ + TInt InputLanguage(); + + /** + * Get languages from ptiengine + * + * @since S60 v3.2 + * @param aLanguageNames Poniter to language name array from ptiengine + * @param aISOCode ETrue language name with ISO code. + * @return None + */ + void GetLanguagesFromPtiL(TBool aISOCode,CDesCArray* aLanguageNames); + + /** + * Get Popup Query languages from ptiengine + * + * @since S60 v3.2 + * @param aLanguageNames Poniter to language name array from ptiengine + * @return None + */ + void GetPopupQuerylanguagesFromPtiL(CDesCArray* aLanguageNames); + + /** + * Store input language to Repository + * + * @since S60 v3.2 + * @return None + */ + void SetInputLanguageL(); + + /** + * Current writing speed index in list box item + * + * @since S60 v3.2 + * @return None + */ + TInt WritingSpeed(); + + /** + * Store writing speed to Repository + * + * @since S60 v3.2 + * @param aSpeed Index in list box item + * @return None + */ + void SetWritingSpeed(const TInt aSpeed); + + /** + * Store guid line to Repository + * + * @since S60 v3.2 + * @return ETrue for guid line on; otherwise EFalse + */ + void SetGuideLine(TInt aGuideLine); + void SetRecognitionWithDictionary(TInt aRecognitionWithDictionary); + + /** + * Get current guide line from Repository + * + * @since S60 v3.2 + * @return ETrue for guid line on; otherwise EFalse + */ + TInt GuideLine(); + + TInt RecognitionWithDictionary(); + + /** + * Store input method for find to Repository + * + * @since S60 v5.0 + */ + void SetInputMethodForFind(TInt aInputMethodForFind); + + /** + * Get current input method for find from Repository + * + * @since S60 v5.0 + */ + TInt InputMethodForFind(); + + /** + * Get chinese find method resource id + * + * @since S60 v5.0 + */ + TInt ChineseFindMethodResourceID(); + + /** + * Store chinese find method to Repository + * + * @since S60 v5.0 + */ + void SetChineseFindMethod(TInt aChineseFindMethod); + + /** + * Get chinese find method from Repository + * + * @since S60 v5.0 + */ + TInt ChineseFindMethod(); + + /** + * Current pen trail width index in list box item + * + * @since S60 v3.2 + * @return The index of writing speed item + */ + TInt TrailWidth(); + + /** + * Store pen trail width to Repository + * + * @since S60 v3.2 + * @param aWidth Index in list box item + * @return None + */ + void SetTrailWidth(const TInt aWidth); + + /** + * Current pen trail colour index in list box item + * + * @since S60 v3.2 + * @return The index of trail colour item + */ + TInt TrailColour(); + + /** + * Store pen trail colour to Repository + * + * @since S60 v3.2 + * @param aColour Index in list box item + * @return None + */ + void SetTrailColour(const TInt aColour); + + /** + * Set input mode. + * + * @since S60 v3.2 + * @param aIndex Item idex of setting page. + * @return None + */ + void SetInputModeBySettingPage(const TInt aIndex); + + /** + * Get input mode index in setting page + * + * @since S60 v3.2 + * @return None + */ + TInt InputModeInSettingPage(); + + /** + * Get input mode resource id + * + * @since S60 v3.2 + * @return None + */ + TInt InputModeResourceID(); + + /** + * Current language is chinese language + * + * @since S60 v3.2 + * @return ETrue for chinese language; otherwise EFalse + */ + inline TBool ChineseLanguage(); + + /** + * Current language is chinese and Japanese language + * + * @since S60 v3.2 + * @return ETrue for chinese language; otherwise EFalse + */ + inline TBool JapaneseLanguage(); + + /** + * Reset input mode destription array + * + * @since S60 v3.2 + * @param aIndex Item idex of setting page. + * @return None + */ + void ResetInputModeArray(CDesCArrayFlat* aInputModeItems); + + /** + * Reset input mode to default input mode when language changed + * + * @since S60 v3.2 + * @return None + */ + void ResetDefaultInputMode(); + + /** + * Set FEP default input mode when language changed + * + * @since S60 v3.2 + * @param aInputMode Default input mode. + * @return None + */ + void SetFepInputMode(TInt aInputMode); + + /** + * Get FEP default input mode when language changed + * + * @since S60 v3.2 + * @return Default input mode + */ + TInt GetFepInputMode(); + + /** + * Get input mode from repository + * + * @since S60 v3.2 + * @return Current input mode + */ + TInt InputMode(); + + /** + * Reset Fep input mode based on current input language + * + * @since S60 v3.2 + * @return None + */ + void ResetFepDefaultInputMode(); + + TBool IsSettingItemAvailable( TInt aItemId ); + +private: + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @param aOwner Pointer to owner + * @return None + */ + CGSPenInputModel(MGsCenRepNotifyHandlerCallback* aOwner); + + /** + * C++ default constructor + * + * @since S60 v3.2 + * @return None + */ + CGSPenInputModel(); + + /** + * Symbian second-phase constructor + * + * @since S60 v3.2 + * @return None + */ + void ConstructL(); + + /** + * Initializes Repository + * + * @since S60 v3.2 + * @return None + */ + void InitializeCentralRepositoriesL(); + + /** + * Initializes pen trail width array + * + * @since S60 v3.2 + * @return None + */ + void InitTrailWidthArrayL(); + + /** + * Initializes writing speed array + * + * @since S60 v3.2 + * @return None + */ + void InitWritingSpeedArray(); + + /** + * Initializes low dpi array + * + * @since S60 v3.2 + * @return None + */ + void InitLowDPI(); + + /** + * Initializes middle dpi array + * + * @since S60 v3.2 + * @return None + */ + void InitMiddleDPI(); + + /** + * Initializes high dpi array + * + * @since S60 v3.2 + * @return None + */ + void InitHighDPI(); + + /** + * Set input mode to repository + * + * @since S60 v3.2 + * @param aInputMode Input Mode + * @return None + */ + void SetInputMode(TInt aInputMode); + + /** + * The trail color got from key is available + * + * @since S60 v3.2 + * @return ETrue for Available; otherwise EFalse + */ + inline TBool AvailableTrailColor(TRgb color); + + /** + * Adjust language name + * + * @since S60 v3.2 + * @param aLangId Language Id + * @param aLangName Input/output of language name + * @return None + */ + void AdjustLanguageName(TInt aLangId, TDes& aLangName); + + /** + * Get chinese find method cenrep key id + * + * @since S60 v5.0 + */ + TUint ChineseFindMethodCRKey(); + + /** + * Return current application's uid + * + * @param aWndGrpId Current application's window group id + * @since S60 v5.0 + */ + TUid AppUidFromWndGroupId( TInt aWndGrpId ); + + TUid AppUidFromWndGroupIdL( TInt aWndGrpId ); + TBool IsTruiSupportedLanguage(); + +private: + + /** + * Owner pointer for call back + */ + MGsCenRepNotifyHandlerCallback* iOwner; + + /** + * The personalization repository (Own) + */ + CRepository* iPersonalizationRepository; + + /** + * The fep repository (Own) + */ + CRepository* iAknfepRepository; + + /** + * The avkon repository (Own) + */ + CRepository* iAknRepository; + + /** + * The input language index in setting page + */ + TInt iLanguageIndex; + + /** + * The input language for storing in repository + */ + TInt iInputLanguage; + + /** + * The writhing speed for storing in repository + */ + TInt iSpeed; + + /** + * The pen input width for storing in repository + */ + TInt iWidth; + + /** + * The pen color for storing in repository + */ + TInt iColor; + + /** + * The input method for find for storing in repository + */ + TInt iInputMethodForFind; + + /** + * The input method for find for storing in repository + */ + TInt iChineseFindMethod; + + /** + * The last used chinese find method item, + * -1 == not queried from repo + * 0 == not used + * >0 == cenrep key id + */ + TInt iLastChineseFindMethodItem; + + /** + * The guid line for storing in repository + */ + TInt iGuideLine; + /** + * Indicate HwrTraining is aviliable or not + */ + TInt iIsRecognitionWithDictionary; + + /** + * The default input mode + */ + TInt iInputMode; + + /** + * The icon array of list box item + */ + TInt iTrailWidthValue[ETrailWidthArrayLength]; + + /** + * The icon array of list box item + */ + TInt iWritingSpeedValue[EWritingSpeedArrayLength]; + + /** + * The personalization watcher (Own) + */ + CGSRepositoryWatcher* iPersonalizationWatcher; + + + /** + * The Aknfep watcher (Own) + */ + CGSRepositoryWatcher* iAknfepWatcher; + + /** + * The Akn watcher (Own) + */ + CGSRepositoryWatcher* iAknWatcher; + + /** + * Pti Engine (Own) + */ + CPtiEngine* iPtiEngine; + + /** + * Indicate HwrTraining is aviliable or not + */ + TBool iIsHwrTrainingAviliable; + + /** + * PeninputServer Client + */ + RPeninputServer iPenInputServer; + + /** + * PeninputServer connect error + */ + TInt iConnectErr; + + }; + +#include "gspeninputmodel.inl" + +#endif // C_GSPENINPUTMODEL_H + +// End Of File