diff -r 000000000000 -r eb1f2e154e89 textinput/peninputcommonlayout/inc/peninputdatamgr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputcommonlayout/inc/peninputdatamgr.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,360 @@ +/* +* 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: Implementation of the common layout data manager +* +*/ + + +#ifndef C_CPENINPUTDATAMGR_H +#define C_CPENINPUTDATAMGR_H + +// System includes +#include +#include +#include +#include + +// User includes +#include "peninputdataprovider.h" + +// Forward decalaration +class MPeninputLayoutContext; +class CRepository; + +/** + * Data manager implementation + * + * @lib peninputcommonlayout.lib + * @since S60 v3.2 + */ +class CPeninputDataMgr : public CBase, + public MPeninputDataProvider + { + +public: + + /** + * Create one CPeninputDataMgr object + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The pointer to CPeninputDataMgr object + */ + IMPORT_C static CPeninputDataMgr* NewL( + MPeninputLayoutContext* aContext ); + + /** + * Create one CPeninputDataMgr object + * + * @since S60 v3.2 + * @param aContext The layout context + * @return The pointer to CPeninputDataMgr object + */ + IMPORT_C static CPeninputDataMgr* NewLC( + MPeninputLayoutContext* aContext ); + + /** + * Destructor + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C virtual ~CPeninputDataMgr(); + + /** + * Other initialization + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C virtual void InitMore(); + + /** + * Call back function, which is called when some key changed + * + * @since S60 v3.2 + * @param aChangedKey The key whose value is changed + * @return None + */ + IMPORT_C virtual void HandleGSRepositoryChange( TInt aChangedKey ); + + /** + * Notify engine that some data changed + * + * @since S60 v3.2 + * @param aType The type of the data to be notified + * @param aData The pointer to the notified data + * @return None + */ + IMPORT_C virtual void NotifyEngine( TPeninputDataType aType, + TAny* aData ); + + IMPORT_C TBool IsShiftPermitted(); + IMPORT_C TBool IsCapsLockPermitted(); + +// From base class MPeninputDataProvider + + /** + * From MPeninputDataProvider + * Request data according to the data type + * + * @since S60 v3.2 + * @param aDataType The data type need to get + * @return The pointer to TAny type required data + */ + IMPORT_C TAny* RequestData( TPeninputDataType aDataType ); + + /** + * From MPeninputDataProvider + * Set data according to the data type + * + * @since S60 v3.2 + * @param aDataType The data type need to set + * @param aData The pointer to the new setting data + * @return None + */ + IMPORT_C void SetData( TPeninputDataType aDataType, TAny* aData ); + + /** + * From MPeninputDataProvider + * Reset data contained in data manager + * + * @since S60 v3.2 + * @return None + */ + IMPORT_C virtual void Reset(); + + /** + * From MPeninputDataProvider + * Save data into AknFepRepository + * + * @since S60 v3.2 + * @param aKey The key name + * @param aValue The key value + * @return None + */ + IMPORT_C virtual void SaveKey( TInt aKey, TInt aValue ); + +protected: + + /** + * Constructor + * + * @since S60 v3.2 + * @param aContext The layout context + * @return None. + */ + IMPORT_C CPeninputDataMgr( MPeninputLayoutContext* aContext ); + + /** + * 2nd constructor function + * + * @since S60 v3.2 + * @return None. + */ + IMPORT_C void ConstructL(); + + /** + * Handle notification from CenRep monitor + * + * @since S60 v3.2 + * @param aPtr The pointer to callback data + * @return The result value. + */ + IMPORT_C static TInt HandleGSRepositoryCallBack( TAny* aPtr ); + +private: + + /** + * Set Screen Mode + * + * @since S60 v3.2 + * @param aScreenMode The reference of the screen mode data + * @return None + */ + void SetScreenMode( const TPixelsTwipsAndRotation& aScreenMode ); + +protected: // Data + + /** + * The case + */ + TInt iCase; + + /** + * The peninput language + */ + TInt iInputLanguage; + + /** + * The permitted range + */ + TInt iPermittedRange; + + /** + * The permitted case + */ + TInt iPermittedCase; + + /** + * The current range + */ + TInt iCurrentRange; + + /** + * The client layout + */ + TInt iClientLayout; + + /** + * The vkb layout + */ + TInt iVkbLayoutId; + + /** + * The editor numeric key map + */ + TInt iEditorNumericKeymap; + + /** + * The editor numeric key map + */ + TBool iEnableSwitchBtn; + + /** + * The flag of shift down + */ + TBool iShiftDown; + + /** + * The flag of capslock down + */ + TBool iCapslockDown; + + /** + * The current accent + */ + TInt iCurrentAccent; + + /** + * The window position + */ + TInt iWindowPosition; + + /** + * The screen mode + */ + TPixelsTwipsAndRotation iScreenMode; + + /** + * The screen size + */ + TSize iScreenSize; + + /** + * The unit width + */ + TInt iUnitWidth; + + /** + * The unit height + */ + TInt iUnitHeight; + + /** + * The setting id for window postion + */ + TInt iPositionSettingId; + + /** + * The rectangle of data query dialog + */ + TRect iDataQueryDlgRect; + + /** + * The layout context + * Not own + */ + MPeninputLayoutContext* iContext; + + /** + * The global setttings repository + * Own + */ + CRepository* iGSRepository; + + /** + * The aknfep repository + * Own + */ + CRepository* iAknFepRepository; + + /** + * The repository watcher, + * which will monitor change of the language and guide line + * Own + */ + CAknFepRepositoryWatcher* iGSRepositoryWatcher; + + /** + * The user defined resource for number + * Own + */ + HBufC* iUserDefinedResource; + + /** + * The reserve data + * not Own + */ + TAny* iReserve_1; + + /** + * The position of the top guide line + */ + TInt iGuideLineTop; + + /** + * The position of the bottom guide line + */ + TInt iGuideLineBottom; + + /** + * Layout size changing flag + */ + TBool iLayoutSizeChanging; + + /** + * Indicate whether unit width has been set + */ + TBool iUnitWidthSet; + + /** + * Indicate whether unit height has been set + */ + TBool iUnitHeightSet; + + /** + * Indicate whether DeadKey has been latched + */ + TBool iLatched; + + /** + * Indicate whether unitsize has been changed + */ + TBool iUnitSizeSet; + + TBool iAllowCaseChange; + }; + +#endif // C_CPENINPUTDATAMGR_H