textinput/peninputcommonlayout/inc/peninputdatamgr.h
changeset 0 eb1f2e154e89
--- /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