diff -r 000000000000 -r 05e9090e2422 uigraphics/AknIcon/srvinc/AknIconSrvUtils.h --- /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 +#include +#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& 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