diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/coretoolkit/inc/HuiFxParameter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/coretoolkit/inc/HuiFxParameter.h Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,150 @@ +/* +* 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 HUIFXPARAMETER_H_ +#define HUIFXPARAMETER_H_ + +#include +#include + +enum THuiFxParameterType + { + EParameterTypeScalar, + EParameterTypeColor, + }; + +enum THuiFxReferencePoint + { + EReferencePointIdentity, + EReferencePointUndefined, + EReferencePointVisualWidth, + EReferencePointVisualHeight, + EReferencePointVisualTop, + EReferencePointVisualBottom, + EReferencePointVisualLeft, + EReferencePointVisualRight, + EReferencePointDisplayWidth, + EReferencePointDisplayHeight, + EReferencePointDisplayTop, + EReferencePointDisplayBottom, + EReferencePointDisplayLeft, + EReferencePointDisplayRight, + EReferencePointExtRectWidth, + EReferencePointExtRectHeight, + EReferencePointExtRectTop, + EReferencePointExtRectBottom, + EReferencePointExtRectLeft, + EReferencePointExtRectRight, + + }; + +class MHuiFxParameter + { +public: + virtual ~MHuiFxParameter(); + virtual void AdvanceTime(TReal32 aElapsedTime) = 0; + virtual THuiFxParameterType Type() const = 0; + virtual TBool IsAnimated() const = 0; + virtual void Update() = 0; + + virtual void SetReferencePoint(THuiFxReferencePoint aRef) = 0; + virtual THuiFxReferencePoint ReferencePoint() const = 0; + virtual void SetReferenceValue(TReal32 aValue) = 0; + virtual TReal32 ReferenceValue() const = 0; + + virtual void SetStartReference( THuiFxReferencePoint aRef ) = 0; + virtual THuiFxReferencePoint StartReference() const = 0; + virtual void SetStartValue( TReal32 aValue ) = 0; + virtual TReal32 StartValue() const = 0; + virtual void SetStartMultiplier( TReal32 aValue ) = 0; + + virtual void SetEndReference( THuiFxReferencePoint aRef ) = 0; + virtual THuiFxReferencePoint EndReference() const = 0; + virtual void SetEndValue( TReal32 aValue ) = 0; + virtual TReal32 EndValue() const = 0; + virtual void SetEndMultiplier( TReal32 aValue ) = 0; + + virtual MHuiFxParameter *CloneL() const=0; + virtual void ReRef(TReal32 *aValue)=0; + virtual void ReRef(TRgb *aValue)=0; + }; + +template +// This class is not derived from CBase because it is a template class + a mixin class. +// If the class is derived from CBase, the static_cast to actual class points to a wrong place +// All members are zeroed or set to default values in the constructor, so deriving from +// CBase does not really provide any additional functionality. +class CHuiFxGenericParameter: /*public CBase,*/ public MHuiFxParameter + { +public: + typedef TYPE ValueType; + + CHuiFxGenericParameter(TYPE* aValue); + ~CHuiFxGenericParameter(); + void SetTimeLine(TIMELINE_TYPE* aTimeLine); // takes ownership + void AdvanceTime(TReal32 aElapsedTime); + TBool IsAnimated() const; + THuiFxParameterType Type() const; + void SetValue(TYPE aValue); + void Update(); + + void SetReferencePoint(THuiFxReferencePoint aRef); + THuiFxReferencePoint ReferencePoint() const; + void SetReferenceValue(TReal32 aValue); + TReal32 ReferenceValue() const; + + void SetStartReference( THuiFxReferencePoint aRef ); + THuiFxReferencePoint StartReference() const; + void SetStartValue( TReal32 aValue ); + TReal32 StartValue() const; + void SetStartMultiplier( TReal32 aValue ); + void SetEndReference( THuiFxReferencePoint aRef ); + THuiFxReferencePoint EndReference() const; + void SetEndValue( TReal32 aValue ); + TReal32 EndValue() const; + void SetEndMultiplier( TReal32 aValue ); + CHuiFxGenericParameter *CloneL() const; + void ReRef(TReal32 *aValue); + void ReRef(TRgb *aValue); + +private: + // Not implemented, not supported + CHuiFxGenericParameter(const CHuiFxGenericParameter&); + CHuiFxGenericParameter& operator=(const CHuiFxGenericParameter&); + +private: + TIMELINE_TYPE* iTimeLine; + TYPE iRelValue; + TYPE* iValue; + TReal32 iTime; + TBool iAnimationFinished; + TBool iLastFrameDrawn; + THuiFxReferencePoint iRefPoint; + TReal32 iRefValue; + THuiFxReferencePoint iStartRef; + TReal32 iStartValue; + TReal32 iStartMultiplier; + THuiFxReferencePoint iEndRef; + TReal32 iEndValue; + TReal32 iEndMultiplier; + }; + +#include "HuiFxParameter.inl" + +#endif /*HUIFXPARAMETER_H_*/