textinput/peninputgenerichwr/inc/peninputgenerichwrlafdatamgr.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputgenerichwr/inc/peninputgenerichwrlafdatamgr.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,162 @@
+/*
+* 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:  peninput vkb laf manager
+*
+*/
+
+
+#ifndef C_CPENINPUTGENERICHWRLAFDATAMGR_H
+#define C_CPENINPUTGENERICHWRLAFDATAMGR_H
+
+// System includes
+#include <e32base.h>
+#include <w32std.h>
+#include <AknFepGlobalEnums.h>
+// User includes
+
+// Forward decalaration
+
+// laf type definition
+enum TPeninputHwrLayoutType
+	{
+	ELayoutNone 	= -1,
+	ELayoutLatin,
+	ELayoutNonLatin 
+	};
+
+struct TPeninputHwrButtonLayoutData
+	{
+	TRect iRect;
+	TRect iInnerRect;
+	};
+	
+struct TPeninputHwrEntryLayoutData
+	{
+	TRect iRect;
+	//const CFont* iPromptTextFont;
+	const CFont* iTextFont;
+	};
+
+struct TPeninputHwrRangeBarLayoutData
+	{
+	TRect iRect;
+	TPeninputHwrButtonLayoutData 	iAlphaButton;
+	TPeninputHwrButtonLayoutData 	iNumberButton;	
+	TPeninputHwrButtonLayoutData 	iSymbolButton;
+
+	};
+
+class CPeninputHwrLayoutDataInfo : public CBase
+	{
+public:
+	static CPeninputHwrLayoutDataInfo* NewLC();
+	TRect iHwrWndRect;
+	TRect iWriteAreaRect;
+	TPeninputHwrButtonLayoutData 	iCloseButton;
+	TPeninputHwrButtonLayoutData 	iOptionButton;
+	TPeninputHwrEntryLayoutData  	iICF;
+	TPeninputHwrButtonLayoutData	iMoveButton;	
+	TPeninputHwrRangeBarLayoutData	iRangbar;
+	TPeninputHwrButtonLayoutData	iLanguageButton;
+	TPeninputHwrButtonLayoutData	iSwitchButton;
+	};
+	
+/**
+ *  Peninput HWR data management class
+ *  This class manager the data of HWR
+ *  
+ *  @lib peninputgenerichwr.lib
+ *  @since S60 v3.2
+ */
+class CPeninputGenericHwrLafMgr : public CBase 
+    {   
+public:
+
+    /**
+     * Two-phased constructor
+     *
+     * @since S60 v3.2
+     * @return The pointer to CPeninputGenericVkbLafMgr object
+     */
+    static CPeninputGenericHwrLafMgr* NewL(TPeninputHwrLayoutType aLayoutType);
+
+    /**
+     * Two-phased constructor
+     *
+     * @since S60 v3.2
+     * @return The pointer to CPeninputGenericHwrLafMgr object
+     */
+    static CPeninputGenericHwrLafMgr* NewLC(TPeninputHwrLayoutType aLayoutType);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+    virtual ~CPeninputGenericHwrLafMgr();
+
+  	/**
+     * ConstructL
+     *
+     * @since S60 v3.2
+     * @return None
+     */
+	void ConstructL();
+
+	/**
+     * Set current layout type;
+     * @param aLayoutType  Hwr layout type( latin or non lation )
+     * @since S60 v3.2
+     * @return None
+     */
+	inline void SetLayoutType(TPeninputHwrLayoutType aLayoutType);	
+	inline TPeninputHwrLayoutType LayoutType() const;
+	
+	/**
+     * Get button laf data
+     *
+     * @since S60 v3.2
+     * @param aButtonID 	button id
+     * @param aOutterRect	button rect
+     * @param aInnerRect	button forground rect
+     * @return None
+     */	
+	void GetButtonRect( TPeninputCommonCtrlID aButtonID, 
+						TRect& aOutterRect,
+						TRect& aInnerRect );
+	
+	inline const TRect& EntirePaneRect() const;						
+	inline const TRect& RangbarRect() const;
+	inline const TRect& TextAreaRect() const;
+	inline const TRect& WriteAreaRect() const;						
+
+protected:
+	
+	CPeninputGenericHwrLafMgr(TPeninputHwrLayoutType aLayoutType);
+	
+	void ReadLafInfoL();
+	
+	void GetHwrLayoutDataInfo( const TRect& aParentWndRect, 
+							   TInt aLayoutType, 
+							   CPeninputHwrLayoutDataInfo& aDataInfo );
+	
+	inline TBool IsValid() const;
+private:
+	TPeninputHwrLayoutType iCurLayoutType;
+	TBool iIsValid;
+	RPointerArray<CPeninputHwrLayoutDataInfo> iLayoutData;
+    };
+
+#endif //C_CPENINPUTGENERICHWRLAFDATAMGR_H
\ No newline at end of file