uiaccelerator_plat/alf_visual_api/inc/alf/alfframebrush.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_visual_api/inc/alf/alfframebrush.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,182 @@
+/*
+* Copyright (c) 2006 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:   Frame brush definition
+*
+*/
+
+
+
+#ifndef C_ALFFRAMEBRUSH_H
+#define C_ALFFRAMEBRUSH_H
+
+#include <AknsItemID.h>
+#include <alf/alfbrush.h>
+
+struct TAlfXYMetric;
+class TAlfImage;
+
+/**
+ * Frame brush.
+ * FrameBrush draws a 1-part or 9-part frame around a visual using bitmaps provided by the
+ * theme. The constructor takes a theme item identifier as a parameter. The bitmaps are rasterized
+ * when CAlfFrameBrush::SetFrameRects() is called. 
+ * Develper must call this method and specify the dimensions of the frame before the frame can be drawn.
+ * 
+ *  Usage:
+ *  @code
+ *  //Create framebrush instance
+ *  CAlfFrameBrush* frameBrush = CAlfFrameBrush::NewL( *iEnv, *image, TAlfXYMetric( TAlfMetric( 5 ) ) );
+ * 
+ *  //Create rect to set for framebrush
+ *  TRect innerRect( TPoint( 10, 10 ), TPoint( 20, 20 ) );
+ *  TRect outerRect( TPoint( 0, 0 ), TPoint( 30, 30 ) );
+ * 
+ *  //Set dimentions for framebrush
+ * 	frameBrush->SetFrameRects( innerRect, outerRect );
+ * 
+ *  @endcode
+ *  @lib alfclient.lib
+ *  @since S60 v3.2
+ */
+
+NONSHARABLE_CLASS( CAlfFrameBrush ): public CAlfBrush
+    {
+public:
+
+    enum TFrameParts
+        {
+        EFramePartCornerTl = 0,
+        EFramePartCornerTr,
+        EFramePartCornerBl, 
+        EFramePartCornerBr,
+        EFramePartSideT,
+        EFramePartSideB,
+        EFramePartSideL,
+        EFramePartSideR,
+        EFramePartCenter
+        };
+
+    /**
+     * Constructor. 
+     * @param aEnv Environmnet
+     * @param aImage Image for the frame. Image will be used as such, 
+     * framerects (if set) are ignored.
+     * @param aEdgeOffset Coordinates of the offset in metric units.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset);
+    
+    /**
+     * Constructor. The new brush is left on the cleanup stack.
+     * @param aEnv Environmnet
+     * @param aImage Image for the frame. Image will be used as such, 
+     * framerects (if set) are ignored.
+     * @param aEdgeOffset Coordinates of the offset in metric units.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewLC(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset);
+
+    /**
+     * Constructor. 
+     * @param aEnv Environmnet
+     * @param aIID Skin ID for the frame.
+     * @param aEdgeOffset Coordinates of the offset in metric units.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewL(CAlfEnv& aEnv, const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset);
+    
+    /**
+     * Constructor. The new brush is left on the cleanup stack.
+     * @param aEnv Environmnet
+     * @param aIID Skin ID for the frame.
+     * @param aEdgeOffset Coordinates of the offset in metric units.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewLC(CAlfEnv& aEnv, const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset);
+
+    /**
+     * Constructor. 
+     * @deprecated
+     * @param aIID Skin ID for the frame.
+     * @param aEdgeOffsetX X coordinate of the offset in pixels.
+     * @param aEdgeOffsetY Y coordinate of the offset in pixels.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewL(CAlfEnv& aEnv, const TAknsItemID& aIID, TInt aEdgeOffsetX = 0, TInt aEdgeOffsetY = 0);
+    
+    /**
+     * Constructor. The new brush is left on the cleanup stack.
+     * @deprecated
+     * @param aIID Skin ID for the frame.
+     * @param aEdgeOffsetX X coordinate of the offset in pixels.
+     * @param aEdgeOffsetY Y coordinate of the offset in pixels.
+     * @return New instance. Onwership tranferred to the caller.
+     */
+    IMPORT_C static CAlfFrameBrush* NewLC(CAlfEnv& aEnv, const TAknsItemID& aIID, TInt aEdgeOffsetX = 0, TInt aEdgeOffsetY = 0);
+        
+    /**
+     * Sets frame rects.
+     * @param aInnerRect Inner rect of the frame
+     * @param aOuterRect Outer rect of the frame
+     */
+    IMPORT_C void SetFrameRectsL(const TRect& aInnerRect, const TRect& aOuterRect);
+
+    /**
+     * Sets edge offset.
+     * @param aEdgeOffset Coordinates of the offset in metric units.
+     */
+    IMPORT_C void SetEdgeOffset(const TAlfXYMetric& aEdgeOffset);
+
+    /**
+     * Sets whole frame image. Image will be used as such, framerects (if set) are ignored.
+     * @param aImage Image for the frame.
+     */
+    IMPORT_C void SetImage(const TAlfImage& aImage);
+
+    /**
+     * Sets framepart image. Whole frame will be constrcuted from 9 parts, each part has
+     * to be set separately using this method. Genrally using 9-piece frame is not as
+     * efficient as 1-pice frame, so this method should be used only when really needed.
+     * @param aFramePart Frame part to which the image is intended.
+     * @param aImage Image for the frame part.
+     */
+    IMPORT_C void SetImage(TFrameParts aFramePart, const TAlfImage& aImage);
+
+    /**
+     * Destructor. 
+     */
+    virtual ~CAlfFrameBrush();
+
+private:
+
+    CAlfFrameBrush(const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY);
+
+    CAlfFrameBrush(const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset);
+   
+    CAlfFrameBrush();
+   
+    void ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, TInt aEdgeOffsetX, TInt aEdgeOffsetY);
+
+    void ConstructL(CAlfEnv& aEnv, const TAknsItemID& aIID, const TAlfXYMetric& aEdgeOffset);
+
+    void ConstructL(CAlfEnv& aEnv, const TAlfImage& aImage, const TAlfXYMetric& aEdgeOffset);
+
+private:
+
+    // Private data. Owned.
+    struct TFrameBrushPrivateData;
+    TFrameBrushPrivateData* iFrameBrushData;
+    };
+
+#endif 
\ No newline at end of file