diff -r 000000000000 -r 05e9090e2422 skins/AknSkins/inc/AknsScalabilityUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/skins/AknSkins/inc/AknsScalabilityUtils.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2004-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: Internal utility class to handle scalability-related + operations. +* +*/ + + +#ifndef AKNSSCALABILITYUTILS_H +#define AKNSSCALABILITYUTILS_H + +// INCLUDES +#include +#include "AknsAppSkinInstance.h" + +// FORWARD DECLARATIONS +class MAknsSkinInstance; +class CBitmapContext; +class CAknsItemDef; +class CAknsRlMasterLayout; +class TAknsBackground; + +// CLASS DECLARATION + +/** +* Internal utility class for scalability-related operations. +* +* @since 2.8 +* +* @internal +*/ +NONSHARABLE_CLASS(AknsScalabilityUtils) + { + + public: // New methods + + /** + * Performs scalability-aware drawing of a bitmap. + * @internal + * @since 2.8 + */ + static TBool DrawPartialCachedImage( + MAknsSkinInstance* aSkin, CBitmapContext& aGc, + const TRect& aTrgLayoutRect, const TRect& aTrgDrawRect, + CAknsImageItemData* aImgData, const TAknsItemID& aIID, + const TAknsImageAttributeData* aAttr, + const TInt aDrawParam ); + + /** + * Processes (and re-ceates if necessary) an item def. + * + * @internal + * + * @since 2.8 + */ + static CAknsItemDef* ProcessDefL( CAknsItemDef* aDef ); + + /** + * Converts the given effect queue item to a rendered bitmap + * item, if possible. + * + * @internal + * + * @since 2.8 + * + * @return Cached pointer to the bitmap item data, or @c NULL. + * No ownership is transferred. + */ + static CAknsImageItemData* ConvertToBitmap( + CAknsAppSkinInstance* aSkin, const TAknsItemID aIID, + const TAknsBackground* aLayout ); + + /** + * Gets the concrete item ID of a scalable item: + * + * @since 2.8 + * + * @internal + */ + static TAknsItemID ConcreteEffectQueue( CAknsAppSkinInstance* aSkin, + const TAknsItemID& aIID ); + + /** + * Gets the backward-compatibility adjusted skin color. + * + * @since 2.8 + * + * @internal + * + * @return @c ETrue if color assigned, @c EFalse otherwise. + */ + static TBool GetBackwardCompatibilityColor( + MAknsSkinInstance* aInstance, TRgb& aRgb, + const TAknsItemID& aID, const TInt aIndex ); + + protected: // New methods + + /** + * Renders the given item recursively, placing the resulting + * bitmaps back to the cached content. + * + * @internal + * + * @since 2.8 + * + * @return Rendered bitmap, no ownership transferred. + */ + static CAknsImageItemData* RecursiveCacheRenderL( + CAknsAppSkinInstance* aSkin, + const TAknsItemID aIID, const TInt aLayoutType, + CAknsRlMasterLayout& aLayoutMaster, + const TSize& aLayoutSize, TRect& aRectOut, TBool& aMorphingOut, + TBool& aEmpty ); + + private: // Construction and destruction + + AknsScalabilityUtils(); + ~AknsScalabilityUtils(); + + }; + +#endif // AKNSSCALABILITYUTILS_H + +// End of File