--- /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 <e32base.h>
+#include <w32std.h>
+#include <peninputpluginutils.h>
+#include <coemain.h>
+
+// 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