emailuis/uicomponents/inc/fslayoutmanager.h
changeset 0 8466d47a6819
child 16 4ce476e64c59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/uicomponents/inc/fslayoutmanager.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,300 @@
+/*
+* Copyright (c) 2007 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: This file defines class CFsLayoutManager.
+*
+*/
+
+
+
+#ifndef C_FSLAYOUTMANAGER_H
+#define C_FSLAYOUTMANAGER_H
+
+#include <gdi.h>
+
+// <cmail> S60 UID update
+const TInt KFsMessageLayoutChange( 0x2001E278 );
+// </cmail> S60 UID update
+
+//<cmail>
+//A lot of stuff removed, dependencies to FSLayout REMOVED!!
+//</cmail>
+
+/**
+ *  This class knows the specification's coordinate data format and ensures
+ *  that different types of controls are positioned and setup correctly.
+ *  Methods in this class are designed to be called from your control's
+ *  SizeChanged() method!
+ *
+ *  @code
+ *
+ *   TRect parentRect;
+ *   TRect layoutRect;
+ *   // Request screen size from layout manager.
+ *   // When requesting screen size parentRect is only needed by the
+ *   // interface.
+ *   CFsLayoutManager::LayoutMetricsRect( parentRect,
+ *       CFsLayoutManager::EFsLmScreen, layoutRect );
+ *   // Set parentRect to be the requested screen rect.
+ *   parentRect = layoutRect;
+ *   // Request position and size of application window.
+ *   CFsLayoutManager::LayoutMetricsRect( parentRect,
+ *       CFsLayoutManager::EFsLmApplicationWindow, layoutRect );
+ *   // Corresponding value need to be set in parentRect when requesting it's
+ *   // child pane.
+ *   parentRect = layoutRect;
+ *   // Request area top pane layout data.
+ *   // Assume that landscape mode is in use. Check the variety values from
+ *   // layout documents.
+ *   CFsLayoutManager::LayoutMetricsRect( parentRect,
+ *       CFsLayoutManager::EFsLmAreaTopPane, layoutRect, 1 );
+ *
+ *  @endcode
+ *
+ *  @lib ?library
+ *  @since S60 ?S60_version *** for example, S60 v3.0
+ */
+class CFsLayoutManager : public CBase
+	{
+
+public:
+
+    /**  Layout Metrics. */
+    enum TFsLayoutMetrics
+        {
+        //<CMAIL>
+        EFsLmApplicationWindow,
+        EFsLmAreaTopPane,
+        EFsLmBgSpFsCtrlbarPane,
+        EFsLmFolderListMediumLineG1, // Folder view layout
+		EFsLmFolderListMediumLineT1, // Folder view layout
+        EFsLmListMediumLineG1,
+        EFsLmListMediumLineG2G1,
+        EFsLmListMediumLineG2G2,
+        EFsLmListMediumLineG2T1,
+        EFsLmListMediumLineG3G1,
+        EFsLmListMediumLineG3G2,
+        EFsLmListMediumLineG3G3,
+        EFsLmListMediumLineG3T1,
+        EFsLmListMediumLinePlainT1,
+        EFsLmListMediumLinePlainT2T1,
+        EFsLmListMediumLinePlainT2T2,
+        EFsLmListMediumLinePlainT3T1,
+        EFsLmListMediumLinePlainT3T2,
+        EFsLmListMediumLinePlainT3T3,
+        EFsLmListMediumLineRightIconG1,
+        EFsLmListMediumLineRightIconT1,
+        EFsLmListMediumLineRightIconx2G1,
+        EFsLmListMediumLineRightIconx2G2,
+        EFsLmListMediumLineRightIconx2T1,
+        EFsLmListMediumLineT1,
+        EFsLmListMediumLineT2G1,
+        EFsLmListMediumLineT2G2G1,
+        EFsLmListMediumLineT2G2G2,
+        EFsLmListMediumLineT2G2T1,
+        EFsLmListMediumLineT2G2T2,
+        EFsLmListMediumLineT2G3G1,
+        EFsLmListMediumLineT2G3G2,
+        EFsLmListMediumLineT2G3G3,
+        EFsLmListMediumLineT2G3T1,
+        EFsLmListMediumLineT2G3T2,
+        EFsLmListMediumLineT2RightIconG1,
+        EFsLmListMediumLineT2RightIconT1,
+        EFsLmListMediumLineT2RightIconT2,
+        EFsLmListMediumLineT2RightIconx2G1,
+        EFsLmListMediumLineT2RightIconx2G2,
+        EFsLmListMediumLineT2RightIconx2T1,
+        EFsLmListMediumLineT2RightIconx2T2,
+        EFsLmListMediumLineT2T1,
+        EFsLmListMediumLineT2T2,
+        EFsLmListMediumLineT32RightIconT2,
+        EFsLmListMediumLineT3G1,
+        EFsLmListMediumLineT3G2G1,
+        EFsLmListMediumLineT3G2G2,
+        EFsLmListMediumLineT3G2T1,
+        EFsLmListMediumLineT3G2T2,
+        EFsLmListMediumLineT3G2T3,
+        EFsLmListMediumLineT3G3G1,
+        EFsLmListMediumLineT3G3G2,
+        EFsLmListMediumLineT3G3G3,
+        EFsLmListMediumLineT3G3T1,
+        EFsLmListMediumLineT3G3T2,
+        EFsLmListMediumLineT3G3T3,
+        EFsLmListMediumLineT3RightIconG1,
+        EFsLmListMediumLineT3RightIconT1,
+        EFsLmListMediumLineT3RightIconT2,
+        EFsLmListMediumLineT3RightIconx2G1,
+        EFsLmListMediumLineT3RightIconx2G2,
+        EFsLmListMediumLineT3RightIconx2T1,
+        EFsLmListMediumLineT3RightIconx2T2,
+        EFsLmListMediumLineT3RightIconx2T3,
+        EFsLmListMediumLineT3T1,
+        EFsLmListMediumLineT3T2,
+        EFsLmListMediumLineT3T3,
+        EFsLmListMediumLineT4G4T3,
+        EFsLmListMediumLineX2,
+        EFsLmListMediumLineX2G1,
+        EFsLmListMediumLineX2T2G2T1,
+        EFsLmListMediumLineX2T2G3T1,
+        EFsLmListMediumLineX2T2G4T1,
+        EFsLmListMediumLineX2T3G2T1,
+        EFsLmListMediumLineX2T3G2T2,
+        EFsLmListMediumLineX2T3G3G1,
+        EFsLmListMediumLineX2T3G3G2,
+        EFsLmListMediumLineX2T3G3G3,
+        EFsLmListMediumLineX2T3G3T1,
+        EFsLmListMediumLineX2T3G3T2,
+        EFsLmListMediumLineX2T3G4G1,
+        EFsLmListMediumLineX2T3G4G2,
+        EFsLmListMediumLineX2T3G4G3,
+        EFsLmListMediumLineX2T3G4T1,
+        EFsLmListMediumLineX2T3G4T2,
+        EFsLmListMediumLineX2T3G4T3,
+        EFsLmListMediumLineX2T3T3,
+        EFsLmListMediumLineX2T4G4G4,
+        EFsLmListMediumLineX3,
+        EFsLmListMediumLineX3T4G4G4,
+        EFsLmListMediumLineX3T4G4T2,
+        EFsLmListMediumLineX3T4G4T3,
+        EFsLmListMediumLineX3T4G4T4,
+        EFsLmListSingleDycRowPane,
+        EFsLmListSingleDycRowPaneG1,
+        EFsLmListSingleDycRowPaneG2,
+        EFsLmListSingleDycRowPaneG3,
+        EFsLmListSingleDycRowPaneG4,
+        EFsLmListSingleDycRowTextPane,
+        EFsLmListSingleDycRowTextPaneT1,
+        EFsLmListSingleDycRowTextPaneT2,
+        EFsLmListSingleDycRowTextPaneT3,
+        EFsLmListSingleFsDycPane,
+        EFsLmMainPane,
+        EFsLmMainSpFsCtrlbarButtonPaneCp01,
+        EFsLmMainSpFsCtrlbarDdmenuPane,
+        EFsLmMainSpFsCtrlbarDdmenuPaneG1,
+        EFsLmMainSpFsCtrlbarDdmenuPaneG2,
+        EFsLmMainSpFsCtrlbarDdmenuPaneT1,
+        EFsLmMainSpFsCtrlbarPane,
+        EFsLmMainSpFsCtrlbarPaneG1,
+        EFsLmMainSpFsCtrlbarPaneG2,
+        EFsLmMainSpFsListPane,
+        EFsLmMainSpFsListscrollPaneTe,
+        EFsLmPopupSpFsActionMenuPane,
+        EFsLmScreen,
+        EFsLmSpFsScrollPane,
+        EFsLmSpFsActionMenuListGenePaneG1,
+        EFsLmSpFsActionMenuListGenePaneT1        
+        //</CMAIL>
+        };
+
+    /**  Collection of data of text position and font. */
+    struct TFsText
+        {
+        TRect iTextRect;
+        const CFont *iFont; // not owned
+        //TRgb iColor;
+        TInt iOffset;
+        CGraphicsContext::TTextAlign iAlign;
+        };
+
+    IMPORT_C CFsLayoutManager();
+
+    /**
+	 * Determine if the mirroring is in use.
+	 *
+     * @return ETrue If mirroring is in use. EFalse Otherwise.
+     */
+    IMPORT_C static TBool IsMirrored();
+
+    /**
+	 * Fills given TRect with rectangle for given layout component. Returns
+	 * EFalse for status pane descendants if requested layout component is not
+	 * available in current layout. For other components returns always ETrue
+	 * (returned rectangle is from layout definition).
+     *
+     * @param aParent Rect of the parent layout.
+     * @param aParam Layout component to be queried.
+     * @param aRect Resulting rectangle.
+     * @param aVariety Defines items variety value. Check this from layout
+     * documents.
+     * @param aRow Possible row value for queried item.
+     * @param aCol Possible column value for queried item.
+     * @return ETrue If requested value was available. EFalse Otherwise.
+     */
+	IMPORT_C static TBool LayoutMetricsRect(
+        const TRect &aParent, TFsLayoutMetrics aParam, TRect& aRect,
+        TInt aVariety = 0, TInt aRow = 0, TInt aCol = 0 );
+
+    /**
+	 * This method returns size of rectangle for given layout component.
+	 * Returns EFalse for status pane descendants if requested layout
+	 * component is not available in current layout. For other components
+	 * returns always ETrue (returned size is from layout definition).
+     *
+     * @param aParent Rect of the parent layout.
+     * @param aParam Layout component to be queried.
+     * @param aSize Resulting size.
+     * @param aVariety Defines items variety value. Check this from layout
+     * documents.
+     * @param aRow Possible row value for queried item.
+     * @param aCol Possible column value for queried item.
+     * @return ETrue If requested value was available. EFalse Otherwise.
+     */
+    IMPORT_C static TBool LayoutMetricsSize(
+        const TRect &aParent, TFsLayoutMetrics aParam, TSize& aSize,
+        TInt aVariety = 0, TInt aRow = 0, TInt aCol = 0 );
+
+    /**
+	 * This method returns position of top left corner for given layout
+	 * component. Returns EFalse for status pane descendants if requested
+	 * layout component is not available in current layout. For other
+	 * components returns always ETrue (returned position is from layout
+	 * definition).
+     *
+     * @param aParent Rect of the parent layout.
+     * @param aParam Layout component to be queried.
+     * @param aPos Resulting position.
+     * @param aVariety Defines items variety value. Check this from layout
+     * documents.
+     * @param aRow Possible row value for queried item.
+     * @param aCol Possible column value for queried item.
+     * @return ETrue If requested value was available. EFalse Otherwise.
+     */
+    IMPORT_C static TBool LayoutMetricsPosition(
+        const TRect &aParent, TFsLayoutMetrics aParan, TPoint& aPos,
+        TInt aVariety = 0, TInt aRow = 0, TInt aCol = 0 );
+
+    /**
+     * This method returns text position and font information of given layout
+     * component. Returns EFalse for status pane descendants if requested
+     * layout component is not available in current layout. For other
+     * components returns always ETrue (returned position is from layout
+     * definition).
+     *
+     * @param aParent Rect of the parent layout.
+     * @param aParam Layout component to be queried.
+     * @param aText Resulting text information.
+     * @param aVariety Defines items variety value. Check this from layout
+     * documents.
+     * @param aRow Possible row value for queried item.
+     * @return ETrue If requested value was available. EFalse Otherwise.
+     */
+    IMPORT_C static TBool LayoutMetricsText(
+        const TRect &aParent, TFsLayoutMetrics aParam, TFsText& aText,
+        TInt aVariety = 0, TInt aRow = 0 );
+
+private: // data
+
+	};
+
+
+#endif // C_FSLAYOUTMANAGER_H