uiacceltk/hitchcock/coretoolkit/src/HuiFxFilter.cpp
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxFilter.cpp	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,162 @@
+/*
+* 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:   
+*
+*/
+
+
+
+#include "HuiFxFilter.h"
+#include "HuiFxScalarParameter.h"
+#include "HuiFxColorParameter.h"
+#include "HuiFxParameterManager.h"
+#include "HuiFxConstants.h"
+
+
+EXPORT_C void CHuiFxFilter::ConstructL()
+    {
+#ifdef HUIFX_TRACE    
+    RDebug::Print(_L("CHuiFxFilter::ConstructL - 0x%x "), this);
+#endif
+    iMargin = TSize(0, 0);
+    iIsFreeForm = EFalse;
+    iOpacity = 1.0f;
+    iParameterChanged = EFalse;
+    iFirstParameterCheck = ETrue;
+    iFrameCount = ETrue;
+    iParameterManager = CHuiFxParameterManager::NewL();
+    RegisterParameterL(KLitOpacityParameter, &iOpacity);
+    }
+
+EXPORT_C void CHuiFxFilter::CopyFromL(const CHuiFxFilter *aOldFilter)
+    {
+    iMargin = aOldFilter->iMargin;
+    iIsFreeForm = aOldFilter->iIsFreeForm;
+    iOpacity = aOldFilter->iOpacity;
+    iParameterChanged = aOldFilter->iParameterChanged;
+    iFirstParameterCheck = aOldFilter->iFirstParameterCheck;
+    iFrameCount = aOldFilter->iFrameCount;
+    iParameterManager = aOldFilter->iParameterManager->CloneL();
+    CopyParameterL(KLitOpacityParameter, &iOpacity, aOldFilter);
+    }
+
+EXPORT_C CHuiFxFilter::~CHuiFxFilter()
+    {
+    delete iParameterManager;
+    iParameterManager = NULL;
+#ifdef HUIFX_TRACE    
+    RDebug::Print(_L("CHuiFxFilter::~CHuiFxFilter - 0x%x "), this);
+#endif
+    }
+
+EXPORT_C TBool CHuiFxFilter::Changed() const
+    {
+    return iParameterManager->HasAnimatedParameters();
+    }
+
+EXPORT_C TBool CHuiFxFilter::PrepareDrawL(CHuiFxEngine& aEngine)
+    {
+#ifdef HUIFX_TRACE    
+    RDebug::Print(_L("CHuiFxFilter::PrepareDrawL - 0x%x "), this);
+#endif
+    iFrameCount++;
+    iParameterChanged = iParameterManager->Update(aEngine, VisualRect());
+    return ETrue;
+    }
+EXPORT_C void CHuiFxFilter::CalculateMargin(TMargins &aMargin) const
+    {
+    aMargin.iLeft = 0;
+    aMargin.iRight = 0;
+    aMargin.iTop = 0;
+    aMargin.iBottom = 0;
+    }
+
+EXPORT_C void CHuiFxFilter::AdvanceTime(TReal32 aElapsedTime)
+    {
+    iParameterManager->AdvanceTime(aElapsedTime);
+    }
+
+EXPORT_C void CHuiFxFilter::SetMargin(const TSize& aMargin)
+    {
+    iMargin = aMargin;
+    }
+
+EXPORT_C const TSize& CHuiFxFilter::Margin() const
+    {
+    return iMargin;
+    }
+EXPORT_C const TMargins &CHuiFxFilter::Margin2() const
+    {
+    CalculateMargin(iMargin2);
+    return iMargin2;
+    }
+
+EXPORT_C void CHuiFxFilter::SetFreeForm(TBool aEnable)
+    {
+    iIsFreeForm = aEnable;
+    }
+
+EXPORT_C TBool CHuiFxFilter::IsFreeForm() const
+    {
+    return iIsFreeForm;
+    }
+
+EXPORT_C MHuiFxParameter* CHuiFxFilter::Parameter(const TDesC& aName)
+    {
+    return iParameterManager->Parameter(aName);
+    }
+
+EXPORT_C void CHuiFxFilter::RegisterParameterL(const TDesC& aName, TReal32* aValue)
+    {
+    iParameterManager->RegisterParameterL(aName, aValue);
+    }
+
+EXPORT_C void CHuiFxFilter::RegisterParameterL(const TDesC& aName, TRgb* aValue)
+    {
+    iParameterManager->RegisterParameterL(aName, aValue);
+    }
+EXPORT_C void CHuiFxFilter::CopyParameterL(const TDesC& aName, TRgb* aValue, const CHuiFxFilter *aOldFilter)
+    {
+    iParameterManager->CopyParameterL(aName, aValue, aOldFilter->iParameterManager);
+    }
+EXPORT_C void CHuiFxFilter::CopyParameterL(const TDesC& aName, TReal32* aValue, const CHuiFxFilter *aOldFilter)
+    {
+    iParameterManager->CopyParameterL(aName, aValue, aOldFilter->iParameterManager);    
+    }
+
+EXPORT_C TBool CHuiFxFilter::ParameterChanged()
+    {
+    if(iFirstParameterCheck)
+        {
+        iFirstParameterCheck = EFalse;
+        return ETrue;
+        }
+    else
+        {
+        return iParameterChanged || (iFrameCount <= 1);
+        }
+    }
+
+EXPORT_C void CHuiFxFilter::SetVisualRect(const TRect& aRect)
+    {
+#ifdef HUIFX_TRACE    
+    RDebug::Print(_L("CHuiFxFilter::SetVisualRect - 0x%x (%d,%d,%d,%d))"), this, aRect.iTl.iX, aRect.iTl.iY, aRect.iBr.iX, aRect.iBr.iY);
+#endif
+    iVisualRect = aRect;
+    }
+
+EXPORT_C const TRect& CHuiFxFilter::VisualRect() const
+    {
+    return iVisualRect;
+    }