diff -r 000000000000 -r 05e9090e2422 skins/AknSkins/rlplugininc/AknsRlEffectPluginApplyGfx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/skins/AknSkins/rlplugininc/AknsRlEffectPluginApplyGfx.h Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,165 @@ +/* +* Copyright (c) 2004-2008 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: Effect that applies the given bitmap or SVG icon to the layer. +* +*/ + + +#ifndef AKNSRLEFFECTPLUGINAPPLYGFX_H +#define AKNSRLEFFECTPLUGINAPPLYGFX_H + +// INCLUDES +#include "AknsRlEffectPlugin.h" + +/** +* Effect that applies the given bitmap or SVG icon to the layer. +* +* Supported effect parameters: +* - "f" (graphics) Fully qualified filename and indices of the graphics. +* Mandatory. Mask index may be -1 if unused. "Mask-only" operations +* must be done using bitmap index. +* - "ms" (number, 0..1) Scaling mode. Must be one of the following values: +* - 0: Stretch preserving aspect ration. Stretch to fill the +* target area size preserving the aspect ratio. Exceeding parts +* are cropped. +* - 1: Stretch. Stretch to target area size. +* Optional. If missing, default value 1 is used. +* - "tx" (number, 1..) Horizontal number of tiles. The target area +* x-axis is divided in the number of tiles specified by this parameter. +* Optional. If given, enables tiling. Default value is 1. +* - "ty" (number, 1..) Vertical number of tiles. The target area y-axis +* is divided in the number of tiles specified by this parameter. +* Optional. If given, enables tiling. Default value is 1. +* - "tw" (number, 1..) Width of a tile in pixels. +* Optional and mutually exclusive with "tx". If given, enables tiling. +* - "th" (number, 1..) Height of a tile in pixels. +* Optional and mutually exclusive with "tx". If given, enables tiling. +* - "alt" (number, 1..) +* Effect is applied only if aspect ratio of the layer is less than +* the given value. Number 256 represents aspect ratio 1:1. +* - "agt" (number, 1..) +* Effect is applied only if aspect ratio of the layer is greater than +* the given value. +* Tiling is enabled if at least one parameter indicating tiling is given. +* +* Supported layer combinations: +* - Input layer A is supported, but optional. Supported only for interface +* completeness, and does not affect the actual operation. +* - Output layer RGB, A, and RGBA configurations are supported. If the output +* layer is previously unused, the usual initialization rules apply. +* If the output layer already exists, only the specified channels are +* modified (and the entire layer size is always covered for them). +* If A is requested and no mask parameter is given, the bitmap is outputted +* to alpha channel only (to allow mask-only application). +* If RGBA is requested and no mask parameter is given, the alpha channel +* is cleared with white color. +* +* @since 2.8 +*/ +NONSHARABLE_CLASS(CAknsRlEffectPluginApplyGfx) : + public CAknsRlEffectPlugin, public MAknsRlEffect + { + public: // Constructors and destructor + + /** + * Default constructor. + * + * @since 2.8 + */ + CAknsRlEffectPluginApplyGfx(); + + /** + * Destructor. + * + * @since 2.8 + */ + virtual ~CAknsRlEffectPluginApplyGfx(); + + public: // From CAknsRlEffectPlugin + + /** + * @copydoc CAknsRlEffectPlugin::EffectUid + */ + TUid EffectUid() const; + + /** + * @copydoc CAknsRlEffectPlugin::Effect + */ + MAknsRlEffect* Effect( const TInt aInterface ); + + public: // From MAknsRlEffect + + /** + * @copydoc MAknsRlEffect::InitializeL + */ + void InitializeL(); + + /** + * @copydoc MAknsRlEffect::Release + */ + void Release(); + + /** + * @copydoc MAknsRlEffect::ActivateL + */ + void ActivateL( MAknsRlEffectContext* aContext ); + + /** + * @copydoc MAknsRlEffect::Deactivate + */ + void Deactivate(); + + /** + * @copydoc MAknsRlEffect::SetParametersL + */ + void SetParametersL( + MAknsRlParameterIterator& aParameters ); + + /** + * @copydoc MAknsRlEffect::GetCapabilities + */ + void GetCapabilities( TAknsRlEffectCaps& aCaps ); + + /** + * @copydoc MAknsRlEffect::Render + */ + TInt Render( const TAknsRlRenderOpParam& aParam ); + + private: // New methods + + void DoRenderL( const TAknsRlRenderOpParam& aParam ); + + private: // Data + MAknsRlEffectContext* iContext; + + HBufC16* iFilename; + TInt iBmpIndex; + TInt iMaskIndex; + + TInt iScaleMode; + + TBool iTiled; + TInt iTilesX; + TInt iTilesY; + TInt iTileW; + TInt iTileH; + + TInt iMaxAspect; + TInt iMinAspect; + TInt iGenericImage; + }; + +#endif // AKNSRLEFFECTPLUGINAPPLYGFX_H + +// End of File