--- /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