diff -r 000000000000 -r eb1f2e154e89 textinput/peninputvkbcn/inc/peninputvkbdatamgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputvkbcn/inc/peninputvkbdatamgr.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,834 @@ +/* +* 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: Interface of vkb ui state +* +*/ + + +#ifndef C_AKNFEPVKBDATAMGR_H +#define C_AKNFEPVKBDATAMGR_H + +// System includes +#include +#include + +// User includes +#include "peninputvkbdataprovider.h" +#include + +// The max length for language string +const TInt KMaxLangStringLength = 30; + +// The max length for language string +const TInt KMaxLengthCompFieldElemCount = 50; +const TInt KMaxLengthPredictiveString = KMaxLengthCompFieldElemCount + + KMaxLengthCompFieldElemCount; + +const TInt KMaxPredictCandCnt = 250; + +/** class forward decalaration */ +class CPtiEngine; +class MAknFepVkbLayoutContext; +class CRepository; + +// class declarations +/** + * Data manager class + * + * @lib peninputvkbcn.lib + * @since S60 v3.2 + */ +class CAknFepVkbDataMgr: public CBase, + public MAknFepVkbDataProvider + { +public: + /** + * struct SLanguageItem + * Language item struct + * + */ + //struct SLanguageItem + // { + /* + * the language id(Symbian) + */ + // TInt iLangId; + + /* + * the display text for the language corresponding + */ + // TBuf iDisplayText; + // }; + +public: + + /** + * Create one CAknFepVkbWindow object + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The CFepCtrlDropdownList object. + */ + static CAknFepVkbDataMgr* NewL(MAknFepVkbLayoutContext* aContext, + CPtiEngine* aPtiEngine = NULL); + + /** + * Create one CAknFepVkbWindow object + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The CFepCtrlDropdownList object. + */ + static CAknFepVkbDataMgr* NewLC(MAknFepVkbLayoutContext* aContext, + CPtiEngine* aPtiEngine = NULL); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None. + */ + virtual ~CAknFepVkbDataMgr(); + + /** + * Reset data in manager + * + * @since S60 v3.2 + * @return None. + */ + void Reset(); + + /** + * Get candidates + * + * @since S60 v3.2 + * @return candidates list. + */ + RPointerArray Candidates(); + + /** + * Notify engine to generate candidates + * + * @since S60 v3.2 + * @param aInputString The string sent to engine + * @param aIsPredictive The predictive flag, if true, tell engine to predict, + * @param aForNextPage Is it for next page candidate + * @return The count of candidates + */ + TInt GetCandidatesL(const TDesC& aInputString, + const TBool aIsPredictive, + TBool aForNextPage = EFalse); + + /** + * Notify engine to generate candidates + * + * @since S60 v3.2 + * @param aTriggerStr The string sent to engine + * @param aPredictives The predictive + * @return None + */ + void DoPredictive(const TDesC& aTriggerStr, + RPointerArray& aPredictives); + + /** + * Clear trigger string + * + * @since S60 v3.2 + * @return None + */ + void ClearTriggerString(); + + /** + * Get the count of candidates + * + * @since S60 v3.2 + * @return Candidates count. + */ + TInt CandidatesCount(); + + /** + * Get case + * + * @since S60 v3.2 + * @return Case. + */ + TInt Case(); + + /** + * Get peninput language + * + * @since S60 v3.2 + * @return Peninput language. + */ + TInt InputLanguage(); + + /** + * Get permitted range + * + * @since S60 v3.2 + * @return Permitted range. + */ + TInt PermittedRange(); + + /** + * Get current range + * + * @since S60 v3.2 + * @return Current range. + */ + TInt CurrentRange(); + + /** + * Get current accent + * + * @since S60 v3.2 + * @return The current accent. + */ + TInt CurrentAccent(); + + /** + * Get editor numeric keymap + * + * @since S60 v3.2 + * @return The editor numeric keymap. + */ + TInt EditorNumericKeymap(); + + /** + * Get input method layout + * + * @since S60 v3.2 + * @return The input method layout. + */ + TInt IMLayout(); + + /** + * Get shift down flag + * + * @since S60 v3.2 + * @return The shift down flag. + */ + TBool ShiftDown(); + + /** + * Get capslock down flag + * + * @since S60 v3.2 + * @return The capslock down flag. + */ + TBool CapslockDown(); + + /** + * Get length in composition field when button down on backspace button + * + * @since S60 v3.2 + * @return The length in composition field when button down on backspace button. + */ + TInt LengthWhenButtondownOnBack(); + + /** + * Get window position + * + * @since S60 v3.2 + * @return The window position. + */ + TInt WindowPosition(); + + /** + * Set window position + * + * @since S60 v3.2 + * @param aPosition The new value + * @return None. + */ + void SetWindowPosition(TInt aPosition); + + /** + * Set candidate count + * + * @since S60 v3.2 + * @param aCandidatesCount The new value + * @return None. + */ + void SetCandidatesCount(TInt aCandidatesCount); + + /** + * Set case + * + * @since S60 v3.2 + * @param aCase The new value + * @return None. + */ + void SetCase(TInt aCase); + void SetPermittedCase(TInt aCase); + TInt PermittedCase(); + + /** + * Set peninput language + * + * @since S60 v3.2 + * @param aInputLanguage The new value + * @return Display language shown on switch button + */ + TInt SetInputLanguage(TInt aInputLanguage = -1); + + /** + * Set permitted range + * + * @since S60 v3.2 + * @param aRange The new value + * @return None. + */ + void SetPermittedRange(TInt aRange); + + /** + * Set current range + * + * @since S60 v3.2 + * @param aPosition The new value + * @return None. + */ + void SetCurrentRange(TInt aRange); + + /** + * Set data query rect + * + * @since S60 v3.2 + * @param aRect The rect of data query + * @return None. + */ + void SetDataQueryRect(const TRect& aRect); + + /** + * Set current accent + * + * @since S60 v3.2 + * @param aAccent The new value + * @return None. + */ + void SetCurrentAccent(TInt aAccent); + + /** + * Set editor numbric keymap + * + * @since S60 v3.2 + * @param aEditorNumericKeymap The new value + * @return None. + */ + void SetEditorNumericKeymap(TInt aEditorNumericKeymap); + + /** + * Set input method layout + * + * @since S60 v3.2 + * @param aImLayout The new value + * @return None. + */ + void SetImLayout(TInt aImLayout); + + /** + * Change shift down flag + * + * @since S60 v3.2 + * @return New case. + */ + TInt ChangeShiftDown(); + + /** + * Change capslock down flag + * + * @since S60 v3.2 + * @return New case. + */ + TInt ChangeCapslockDown(); + + /** + * Set shift down flag + * + * @since S60 v3.2 + * @param aFlag The new value + * @return None. + */ + void SetShiftDown(TBool aFlag); + + /** + * Set capslock down flag + * + * @since S60 v3.2 + * @param aFlag The new value + * @return None. + */ + void SetCapslockDown(TBool aFlag); + + /** + * Set length when button down on backspace button + * + * @since S60 v3.2 + * @param aLength The new value + * @return None. + */ + void SetLengthWhenButtondownOnBack(TInt aLength); + + /** + * Shift button permit or not + * + * @since S60 v3.2 + * @return ETrue if shift button permit, or EFalse. + */ + TBool IsShiftPermitted(); + TBool IsCapsLockPermitted(); + /** + * Set screen mode + * + * @since S60 v3.2 + * @param aScreenMode The new value + * @return None. + */ + void SetScreenMode(const TPixelsTwipsAndRotation& aScreenMode); + + /** + * Save window position + * + * @since S60 v3.2 + * @param aBr The new value + * @return None. + */ + void SaveWindowPos(const TPoint& aBr); + + /** + * Save range + * + * @since S60 v3.2 + * @param aRange The new value + * @return None. + */ + void SaveRange(TInt aRange); + + /** + * Handle notification from CenRep monitor + * + * @since S60 v3.2 + * @param aPtr The data manager self + * @return None. + */ + static TInt HandleFepRepositoryCallBack(TAny* aPtr); + + /** + * Handle notification from CenRep monitor + * + * @since S60 v3.2 + * @param aPosition The data manager self + * @return None. + */ + static TInt HandleGSRepositoryCallBack(TAny* aPtr); + + /** + * Write window position + * + * @since S60 v3.2 + * @param aPosition The new value + * @return None. + */ + void WriteWindowPostion(TInt aPosition); + + /** + * Write last used range into CenRep + * + * @since S60 v3.2 + * @param aLastUsedRange The new value + * @return None. + */ + void WriteLastUsedRange(TInt aLastUsedRange); + +// From class MAknFepVkbDataProvider + + /** + * Request data according to the data type + * + * @since S60 v3.2 + * @param aDataType The data type need to get + * @return candidates list. + */ + TInt RequestData(TAknFepDataType aDataType); + + /** + * Set data according to the data type + * + * @since S60 v3.2 + * @param aDataType The data type need to set + * @param aData The new data + * @return candidates list. + */ + void SetData(TAknFepDataType aDataType,TInt aData); + + /** + * Read unit size and shadow from scalable data + * + * @since S60 v3.2 + * @return None. + */ + void ReadUnitShadowSize(); + + /** + * Get info of whether it is size changing + * + * @since S60 v3.2 + * @return ETrue if size is changing, otherwise EFalse + */ + TBool SizeChanging(); + + /** + * Get info of whether unit and shadow size have been read + * + * @since S60 v3.2 + * @return Flag to indicate whether unit and shadow size + * have been read + */ + TBool UnitShadowSizeSet(); + + /** + * Judge if next candidate after current page exist + * + * @since S60 v3.2 + * @return ETrue if candidate exist, otherwise EFalse + */ + TBool NextCandidateExist(); + + /** + * Reset unit size by current im layout + * + * @since S60 v3.2 + * @return None. + */ + void ResetUnitSize(); + + /** + * Set flag to indicate whether it is size changing + * + * @since S60 v3.2 + * @param aFlag Whether it is size changing + * @return None. + */ + void SetSizeChanging(TBool aFlag); + +protected: + + /** + * Constructor + * + * @since S60 v3.2 + * @param aContext The layout context + * @return None. + */ + CAknFepVkbDataMgr(MAknFepVkbLayoutContext* aContext); + + /** + * 2nd constructor function + * + * @since S60 v3.2 + * @return None. + */ + void ConstructL(CPtiEngine* aPtiEngine); + + /** + * Get language item according to the id + * + * @since S60 v3.2 + * @param aLangId The language id + * @return The language item. + */ + //const SLanguageItem* GetItemByLangId(TInt aLangId); + + /** + * notification function when the window position is changed in CenRep + * + * @since S60 v3.2 + * @return The deal result. + */ + TInt PositionChangeNotification(); + + /** + * notification function when the default mode is changed in CenRep + * + * @since S60 v3.2 + * @return The deal result. + */ + TInt DefaultModeChangeNotification(); + + /** + * notification function when the peninput language is changed in CenRep + * + * @since S60 v3.2 + * @return The deal result. + */ + TInt PeninputlanguageChangeNotification(); + + /** + * Calculate case according to shiftdown and capslock down + * + * @since S60 v3.2 + * @return New case. + */ + TInt CalculateCase(); + + /** + * Judge if given language is Chinese + * + * @since S60 v3.2 + * @param aLang Given language code + * @return ETrue if given language is Chinese, otherwise EFalse + */ + TBool LanguageIsChinese(TInt aLang); + + /** + * Set engine language to given language + * + * @since S60 v3.2 + * @param aLang Given language code + * @return None + */ + void SetEngineLanguage(TInt aLang); + +private: // Data + + /** + * The case + * Own + */ + TInt iCase; + + /** + * The last used range + * Own + */ + TInt iLastUsedRange; + + /** + * The peninput language + * Own + */ + TInt iInputLanguage; + + /** + * The permitted range + * Own + */ + TInt iPermittedRange; + TInt iPermittedCase; + + /** + * The candidate count + * Own + */ + TInt iCandidatesCount; + + /** + * The current range + * Own + */ + TInt iCurrentRange; + + /** + * The current accent + * Own + */ + TInt iCurrentAccent; + + /** + * The unit width + * Own + */ + TInt iUnitWidth; + + /** + * The unit height + * Own + */ + TInt iUnitHeight; + + /** + * The im layout + * Own + */ + TInt iImLayout; + + /** + * The default im layout for HK + * Own + */ + TInt iDefaultImLayout4HK; + + /** + * The default im layout for PRC + * Own + */ + TInt iDefaultImLayout4PRC; + + /** + * The default im layout for TW + * Own + */ + TInt iDefaultImLayout4TW; + + //TAknEditorNumericKeymap iEditorNumericKeymap; + /** + * The editor numeric key map + * Own + */ + TInt iEditorNumericKeymap; + + /** + * The flag of shift down + * Own + */ + TBool iShiftDown; + + /** + * The flag of capslock down + * Own + */ + TBool iCapslockDown; + + /** + * The string length in composition field when mouse down on back button + * Own + */ + TInt iLengthWhenButtondownOnBack; + + /** + * The candidate list + * Own + */ + RPointerArray iCandidates; + + /** + * The pti engine + * Ownership is deternimed by + */ + CPtiEngine* iPtiEngine; + + /** + * The pti engine ownership flag + */ + TBool iOwnPtiEngine; + + /** + * The layout context + * Not wwn + */ + MAknFepVkbLayoutContext* iContext; + + /** + * The language string list + * Own + */ + //RPointerArray iLangStringList; + + /** + * The fep repository (Own); + */ + CRepository* iFepRepository; + + /** + * The repository watcher + * Own + */ + CAknFepRepositoryWatcher* iFepRepositoryWatcher; + + /** + * The gs repository + * Own + */ + CRepository* iGSRepository; + + /** + * The repository watcher + * Own + */ + CAknFepRepositoryWatcher* iGSRepositoryWatcher; + + /** + * The position setting id + * Own + */ + TInt iPositionSettingId; + + /** + * The window position + * Own + */ + TInt iWindowPosition; + + /** + * The screen mode + * Own + */ + TPixelsTwipsAndRotation iScreenMode; + + /** + * The rect of data query dialog + * Own + */ + TRect iDataQueryRect; + + /** + * The user defined resource for number + * Own + */ + HBufC* iUserDefinedResource; + + /** + * The predictive buffer + * Own + */ + TBuf iPredictiveBuf; + + /** + * The array of units size + * Own + */ + RArray iUnits; + + /** + * Flag of size changing + */ + TBool iSizeChanging; + + /** + * The size of top left shadow corner + */ + TSize iShadowTl; + + /** + * The size of bottom right shadow corner + */ + TSize iShadowBr; + + /** + * The rect of main pane + */ + TRect iMainPaneRect; + + /** + * Indicate whether unit, shadow size have been read + */ + TBool iUnitShadowSizeRead; + + TBool iNeedBrJustify; + }; + +#endif // C_AKNFEPVKBDATAMGR_H + +// End Of File + \ No newline at end of file