--- /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 <backgroundimage.h>
+#include <badesca.h>
+#include <bldvariant.hrh>
+#include <centralrepository.h>
+#include <e32base.h>
+#include <generalsettingsvariant.hrh>
+#include <e32property.h>
+#include <cenrepnotifyhandler.h>
+#include <peninputclient.h>
+
+#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