uigraphics/AknIcon/srvinc/AknIconSrvUtils.h
changeset 0 05e9090e2422
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/srvinc/AknIconSrvUtils.h	Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,138 @@
+/*
+* Copyright (c) 2002 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:  
+*
+*
+*/
+
+
+#ifndef AKN_ICON_SRV_UTILS_H
+#define AKN_ICON_SRV_UTILS_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <gdi.h>
+#include "AknIconUtils.h"
+
+// CONSTANTS
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class MAknIconFormatHandler;
+class CAknIconLoader;
+struct TAknIconParams;
+// CLASS DECLARATION
+
+/**
+* A static utility class.
+*/
+class AknIconSrvUtils
+    { 
+    public:
+
+        /**
+        * Loads icon data and initializes icon format handler,
+        * stores Handler in the handler list
+        */
+        static TPtrC8 InitIconDataAndHandlerLC(
+            CAknIconLoader* aLoader,
+            RPointerArray<MAknIconFormatHandler>& aHandlerList,
+            MAknIconFormatHandler*& aHandler,
+            const TAknIconParams& aParams,
+            TBool aAnimated );
+
+        /**
+        * Loads icon data and initializes icon format handler.
+        */
+        static TPtrC8 InitIconDataAndHandlerLC(
+            CAknIconLoader* aLoader,
+            MAknIconFormatHandler*& aHandler,
+            TInt aIconId,
+            TBool aAnimated );
+
+        /**
+        * Renders a prepared MIF icon according to the given parameters.
+        * @ret Content dimensions of the icon.
+        */
+        static TAknContentDimensions RenderPreparedIconL(
+            MAknIconFormatHandler& aHandler,
+            CFbsBitmap* aBitmap,
+            CFbsBitmap* aMask, // may be NULL
+            TDisplayMode aBitmapDepth,
+            TDisplayMode aPreferredDepth,
+            const TSize& aSize,
+            TScaleMode aMode,
+            TInt aRotationAngle = 0,
+            TRgb aColor = TRgb(0,0,0),
+            TInt aBitmapId = 0,
+            TInt aMaskId = 0,
+            TBool aIsAppIcon = EFalse);
+
+        /**
+        * Modifies given size so that the given aspect ratio is preserved.
+        */
+        static void GetAspectRatioPreservedSize(
+            const TAknContentDimensions& aDimensions,
+            TSize& aSize );
+            
+        /**
+        * Modifies given size so that the given aspect ratio is preserved.
+        * This is a version optimised for using integer numbers as
+        * content dimensions.        
+        */
+        static void GetAspectRatioPreservedSize(
+            const TSize& aDimensions,
+            TSize& aSize,
+            TBool aFitToOriginalSize );            
+
+        /**
+        * Scales bitmap icon.
+        */
+        static TBool ScaleBitmapIconL(
+            const TSize& aSize,
+            const TScaleMode aMode,
+            const TInt aAngle,
+            const TRgb aColor,
+            CFbsBitmap* aSourceBitmap,
+            CFbsBitmap* aSourceMask,
+            CFbsBitmap* aTargetBitmap,
+            CFbsBitmap* aTargetMask );
+
+				/**
+        * Checks the transparency on the bitmap and if required scale the bitmap/mask
+        * to give 12% at the bottom of the image/mask bitmap
+        */
+        static void EnsureValidSizeL(
+            CFbsBitmap* aBitmap,
+            CFbsBitmap* aMask );
+        
+        /**
+        * Checks the transparency on the bitmap and returns the valid height possible
+        * on the bitmap. Valid height means 12% of transparent pixel at the bottom
+        */    
+        static TInt CheckMaskTransparencyL(const CFbsBitmap* aBmp);
+        
+        /**
+        * Checks the transparency on the bitmap and returns the valid height possible
+        * on the bitmap. Valid height means 12% of transparent pixel at the bottom
+        */    
+        static TInt CheckAlphaTransparencyL(const CFbsBitmap* aBmp);
+    private: // Private constructor
+        AknIconSrvUtils();
+    };
+
+#endif // AKN_ICON_SRV_UTILS_H
+
+// Enf of File