diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/coretoolkit/inc/HuiFxLayer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/coretoolkit/inc/HuiFxLayer.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,100 @@ +/* +* Copyright (c) 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: +* +*/ + + + +#ifndef HUIFXLAYER_ +#define HUIFXLAYER_ + +#include "HuiFxEngine.h" +#include "HuiFxRenderbuffer.h" + +//FORWARD DECLARATIONS +class MHuiEffectable; + +class CHuiFxLayer: public CBase + { +public: + IMPORT_C virtual ~CHuiFxLayer(); + + IMPORT_C virtual TBool PrepareDrawL(CHuiFxEngine& aEngine); + virtual void Draw(CHuiFxEngine& aEngine, CHuiGc& aGc, CHuiFxRenderbuffer& aTarget, CHuiFxRenderbuffer& aSource) = 0; + IMPORT_C virtual TBool VisualArea(TRect& aRect); + IMPORT_C virtual TBool Margin( TMargins &m ); + IMPORT_C virtual void AdvanceTime(TReal32 aElapsedTime); + IMPORT_C virtual TBool Changed() const; + + IMPORT_C THuiFxLayerType Type(); + + IMPORT_C void SetBlendingMode(THuiFxBlendingMode aOp); + IMPORT_C THuiFxBlendingMode BlendingMode() const; + + IMPORT_C void SetDisplayArea(const TRect& aRect); + IMPORT_C void SetSourceRect(const TRect& aRect); + IMPORT_C void SetTargetRect(const TRect& aRect); + IMPORT_C void SetVisualRect(const TRect& aRect); + + IMPORT_C const TRect& SourceRect() const; + IMPORT_C const TRect& TargetRect() const; + IMPORT_C const TRect& VisualRect() const; +public: // effect cache + IMPORT_C virtual CHuiFxLayer *CloneL() const=0; + IMPORT_C virtual void SetExtRect( TRect *aExtRect )=0; + IMPORT_C virtual void SetVisual( CHuiVisual *aVisual )=0; + IMPORT_C virtual void SetVisual( MHuiEffectable *aVisual )=0; + IMPORT_C void CopyFromL(const CHuiFxLayer *aOldLayer); + + + // Internal flag to tell wheter layer is animated + virtual TBool IsAnimated() const; + void SetAnimated(TBool aAnimated); + + // Internal flag to tell wheter layer is transformed + virtual TBool IsTransformed() const; + void SetTransformed(TBool aTransformed); + + // Internal flag to tell wheter layer is filtered + virtual TBool IsFiltered() const; + + // Internal flag to tell wheter margin is enabled + void EnableMargin(TBool aEnable); + virtual void EnableMarginApplyChildren(TBool aEnable); + TBool IsMarginEnabled() const; + + // Internal flag to tell wheter transparency is enabled + virtual TBool IsSemitransparent() const; + + virtual void FxmlVisualInputs(RArray &aArray) { } +protected: + IMPORT_C CHuiFxLayer(); + IMPORT_C void ConstructL( THuiFxLayerType aType ); + +protected: + TRect iDisplayArea; // used for clipping the effects to the real display area + +private: + THuiFxBlendingMode iBlendingOp; + THuiFxLayerType iLayerType; + TRect iSourceRect; + TRect iTargetRect; + TRect iVisualRect; + TBool iAnimated; + TBool iTransformed; + TBool iMarginEnabled; + }; + +#endif /*HUIFXLAYER_*/