CAlfCurvePathLayout Class Reference

class CAlfCurvePathLayout : public CAlfLayout

Curve path layout can be used to control size and position properties of a visual using a curve path object. CAlfCurvePathWhen using a curve path layout the user has to specify which properties of a visual should be controlled by the layout. By default the curve path layout does not affect any properties of its child visuals. Mapping function identifier retrieved through CAlfCurvePathLayout::MappingFunctionIdentifier() - method can be used to bind the curve path layout to properties of a visual.

The curve path layout contains a curve path instance that can be used to customize the path that is used to layout the properties of a visual. Reference to the curve path can be acquired through the CAlfCurvePathLayout::CurvePath() - method.

The following code example creates a curve path layout, sets its base unit to normalized (0.0 - 1.0) units, defines a curve path, binds the curve path layouting to image visual's position property and animates the position of the image visual on the curve path from start point of the curve path (0.0) to end point of the curve path (2.0) within 3 seconds. Notice that the curve path layout does not adjust the size of the image visual and because of that the image visual size is explicitly set to (0.25, 0.25). The size of the image visual is defined in base units of it's parent layout.

        // Create a curve path layout
  CAlfCurvePathLayout* layout = CAlfCurvePathLayout::AddNewL(*this);
  layout->SetBaseUnit(TAlfMetric(1.0, EAlfUnitNormalized));
  
  // Define a curve path
  CAlfCurvePath& curvePath = layout->CurvePath();
  curvePath.AppendArcL(TAlfRealPoint(0.5, 0.5), TAlfRealSize(0.5, 0.5), 180.0, 360.0, 2.0);
  
  // Create an image visual
  CAlfImageVisual* imageVisual = CAlfImageVisual::AddNewL(*this, layout);
  imageVisual->SetSize(TAlfRealSize(0.25, 0.25));
  CAlfTextureManager& defaultTexture = aEnv.TextureManager( ); 
  CAlfTexture& texture = defaultTexture.LoadTextureL(_L("album4.jpg"),EAlfTextureFlagDefault,KAlfAutoGeneratedTextureId);
  imageVisual->SetImage(TAlfImage(texture));
  
  // Control the position of the image visual with the curve path
  TAlfTimedPoint pos;
  pos.SetMappingFunctionIdentifier(layout->MappingFunctionIdentifier());
  pos.SetTarget(2.0, 3000);
  imageVisual->SetPos(pos);
       
alfclient.lib
Since
S60 v3.2
Public Member Functions
CAlfCurvePathLayout ()
~CAlfCurvePathLayout ()
IMPORT_C CAlfCurvePathLayout * AddNewL ( CAlfControl &, CAlfLayout *)
IMPORT_C TAlfXYMetric BaseUnit ()
IMPORT_C void ConstructL ( CAlfControl &)
IMPORT_C CAlfCurvePath & CurvePath ()
IMPORT_C CAlfVisual * FindTag (const TDesC8 &)
IMPORT_C TReal32 MapValue ( TReal32 , TInt )
IMPORT_C TInt MappingFunctionIdentifier ()
IMPORT_C void RemoveAndDestroyAllD ()
IMPORT_C void UpdateChildrenLayout ( TInt )
Protected Member Functions
IMPORT_C void DoRemoveAndDestroyAllD ()
IMPORT_C void PropertyOwnerExtension (const TUid &, TAny **)
Inherited Functions
CAlfLayout::Append(CAlfVisual *,TBool,TInt)
CAlfLayout::CAlfLayout()
CAlfLayout::ChildOrdinal(TInt)
CAlfLayout::ChildPos(TInt,TPoint &)
CAlfLayout::ChildSize(TInt,TSize &)
CAlfLayout::Count()const
CAlfLayout::EffectiveLayoutOrdinal(const CAlfVisual &)const
CAlfLayout::EnableScrollingL(TBool)
CAlfLayout::FindVisual(CAlfVisual *)const
CAlfLayout::HorizontalInnerPadding()const
CAlfLayout::InnerPadding()const
CAlfLayout::InnerPaddingAsMetric()const
CAlfLayout::InnerPaddingInBaseUnits()const
CAlfLayout::Insert(CAlfVisual *,TInt)
CAlfLayout::MoveVisualToBack(CAlfVisual &,TInt)
CAlfLayout::MoveVisualToFront(CAlfVisual &,TInt)
CAlfLayout::Remove(CAlfVisual *,TInt)
CAlfLayout::Reorder(CAlfVisual &,TInt,TInt)
CAlfLayout::ScrollOffset()const
CAlfLayout::Scrolling()const
CAlfLayout::SetBaseUnit(const TAlfMetric &)
CAlfLayout::SetBaseUnit(const TAlfXYMetric &)
CAlfLayout::SetInnerPadding(const TAlfXYMetric &)
CAlfLayout::SetInnerPadding(const TPoint &)
CAlfLayout::SetScrollOffset(const TAlfTimedPoint &)
CAlfLayout::SetTransitionTime(TInt)
CAlfLayout::TransitionTime()const
CAlfLayout::VerticalInnerPadding()const
CAlfLayout::VirtualSize()const
CAlfLayout::Visual(TInt)const
CAlfLayout::~CAlfLayout()
CAlfPropertyOwner::CAlfPropertyOwner()
CAlfPropertyOwner::CopyProperty(const CAlfPropertyOwner &,const TDesC8 &)
CAlfPropertyOwner::PropertyClear()
CAlfPropertyOwner::PropertyFindInteger(const TDesC8 &,TInt *)const
CAlfPropertyOwner::PropertyFindString(const TDesC8 &,TDesC **)const
CAlfPropertyOwner::PropertyRemove(const TDesC8 &)
CAlfPropertyOwner::PropertySetIntegerL(const TDesC8 &,TInt,TInt,TInt)
CAlfPropertyOwner::PropertySetStringL(const TDesC8 &,const TDesC &)
CAlfPropertyOwner::~CAlfPropertyOwner()
CAlfVisual::AlignByOrigin(TAlfRealRect &)const
CAlfVisual::Brushes()
CAlfVisual::CAlfVisual()
CAlfVisual::ClearFlag(TAlfVisualFlags)
CAlfVisual::ClearFlags(TUint)
CAlfVisual::Clipping()const
CAlfVisual::Comms()const
CAlfVisual::ConstructL(CAlfControl &,TInt,TInt,const TDesC8 &)
CAlfVisual::CopyValues(const CAlfVisual &,TInt,TInt)
CAlfVisual::DepthOffset()const
CAlfVisual::Display()const
CAlfVisual::DisplayRect()const
CAlfVisual::DisplayRectTarget()const
CAlfVisual::DisplayToLocal(const TAlfRealPoint &)const
CAlfVisual::DisplayToLocal(const TPoint &)const
CAlfVisual::DropShadowHandler()const
CAlfVisual::EffectiveOpacity()const
CAlfVisual::EnableBrushesL(TBool)
CAlfVisual::EnableDropShadowL(TBool)
CAlfVisual::EnableTransformationL(TBool)
CAlfVisual::Env()const
CAlfVisual::Flags()const
CAlfVisual::HasTactileFeedback(TInt)const
CAlfVisual::HorizontalOrigin()const
CAlfVisual::HorizontalPadding()const
CAlfVisual::Identifier()const
CAlfVisual::IsTagged()const
CAlfVisual::Layout()const
CAlfVisual::LocalToDisplay(const TAlfRealPoint &)const
CAlfVisual::LocalToDisplay(const TPoint &)const
CAlfVisual::MaxSize()const
CAlfVisual::MaxSizeInBaseUnits()const
CAlfVisual::Mimic(CAlfVisual &,TInt)
CAlfVisual::MinSize()const
CAlfVisual::MinSizeInBaseUnits()const
CAlfVisual::Move(const TAlfRealPoint &,TInt)
CAlfVisual::Move(const TPoint &,TInt)
CAlfVisual::MoveToFront(TInt)
CAlfVisual::Opacity()const
CAlfVisual::Owner()const
CAlfVisual::Padding()const
CAlfVisual::PaddingAsMetric()const
CAlfVisual::PaddingInPixels()const
CAlfVisual::Pause(TInt)
CAlfVisual::Pos()const
CAlfVisual::RemoveTactileFeedback(TInt)
CAlfVisual::Resume(TInt)
CAlfVisual::SetCenteredPosAndSize(const TAlfRealPoint &,const TAlfRealSize &,TInt)
CAlfVisual::SetCenteredPosAndSize(const TPoint &,const TSize &,TInt)
CAlfVisual::SetClipping(TBool)
CAlfVisual::SetDepthOffset(const TAlfTimedValue &)
CAlfVisual::SetDisplay(CAlfDisplay *)
CAlfVisual::SetEffectL(const TDesC &)
CAlfVisual::SetFlag(TAlfVisualFlags)
CAlfVisual::SetFlags(TUint)
CAlfVisual::SetGroupEffectL(const TDesC &,TInt)
CAlfVisual::SetLayout(CAlfLayout *)
CAlfVisual::SetMaxSize(const TAlfRealSize &)
CAlfVisual::SetMaxSize(const TSize &)
CAlfVisual::SetMinSize(const TAlfRealSize &)
CAlfVisual::SetMinSize(const TSize &)
CAlfVisual::SetOpacity(const TAlfTimedValue &)
CAlfVisual::SetOrigin(TAlfVisualHOrigin,TAlfVisualVOrigin)
CAlfVisual::SetOwner(CAlfControl &)
CAlfVisual::SetPadding(TInt)
CAlfVisual::SetPadding(const TAlfBoxMetric &)
CAlfVisual::SetPadding(const TPoint &)
CAlfVisual::SetPos(const TAlfRealPoint &,TInt)
CAlfVisual::SetPos(const TAlfTimedPoint &)
CAlfVisual::SetRect(const TAlfRealRect &,TInt)
CAlfVisual::SetSize(const TAlfRealSize &,TInt)
CAlfVisual::SetSize(const TAlfTimedPoint &)
CAlfVisual::SetTactileFeedbackL(TInt,TInt)
CAlfVisual::SetTagL(const TDesC8 &)
CAlfVisual::Size()const
CAlfVisual::Tag()const
CAlfVisual::TagMatches(const TDesC8 &)const
CAlfVisual::Transformation()
CAlfVisual::VerticalOrigin()const
CAlfVisual::VerticalPadding()const
CAlfVisual::~CAlfVisual()
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Inherited Enumerations
CAlfLayout:TExpansionFlags
Private Attributes
TCurvePathLayoutPrivateData * iCurvePathLayoutData

Constructor & Destructor Documentation

CAlfCurvePathLayout()

IMPORT_C CAlfCurvePathLayout ( )

Constructor.

~CAlfCurvePathLayout()

IMPORT_C ~CAlfCurvePathLayout ( )

Virtual destructor.

Member Functions Documentation

AddNewL(CAlfControl &, CAlfLayout *)

IMPORT_C CAlfCurvePathLayout * AddNewL ( CAlfControl & aOwner,
CAlfLayout * aParentLayout = 0
) [static]

2-phased constructor which also gives ownedship to control.

Parameters

CAlfControl & aOwner
CAlfLayout * aParentLayout = 0 If given, has the parent layout.

BaseUnit()

IMPORT_C TAlfXYMetric BaseUnit ( ) const [virtual]

ConstructL(CAlfControl &)

IMPORT_C void ConstructL ( CAlfControl & aOwner ) [virtual]

From CAlfLayout . Second-phase constructor.

Parameters

CAlfControl & aOwner

CurvePath()

IMPORT_C CAlfCurvePath & CurvePath ( )

Returns the curve path instance of the layout. The returned instance can be used to modify the curve path that is used to control the properties of a layed out visual. The curve path instance is defined in the base units used by this layout. CAlfCurvePathLayout::BaseUnit() CAlfCurvePathLayout::SetBaseUnit()

DoRemoveAndDestroyAllD()

IMPORT_C void DoRemoveAndDestroyAllD ( ) [protected, virtual]

FindTag(const TDesC8 &)

IMPORT_C CAlfVisual * FindTag ( const TDesC8 & aTag ) [virtual]

CAlfVisual Finds a visual whose tag descriptor contains a specific tag.

CAlfLayout::FindTag() extends the search into child visuals, covering recursively entire visual hierarchies.

Todo: how should several visuals with matching tag to be handled ??

CAlfVisual::Tag() CAlfVisual::SetTagL() CAlfVisual::IsTagged() CAlfVisual::FindTag()

Parameters

const TDesC8 & aTag Tag to look for. If this tag is found as a part of a visual's colon-separated tag descriptor, it is treated as a match and the visual is returned. The tag to look for cannot contain separator characters (:).

MapValue(TReal32, TInt)

IMPORT_C TReal32 MapValue ( TReal32 aValue,
TInt aMode
) const

Parameters

TReal32 aValue
TInt aMode

MappingFunctionIdentifier()

IMPORT_C TInt MappingFunctionIdentifier ( ) const

PropertyOwnerExtension(const TUid &, TAny **)

IMPORT_C void PropertyOwnerExtension ( const TUid & aExtensionUid,
TAny ** aExtensionParams
) [protected, virtual]

! future proofing

Parameters

const TUid & aExtensionUid
TAny ** aExtensionParams

RemoveAndDestroyAllD()

IMPORT_C void RemoveAndDestroyAllD ( ) [virtual]

UpdateChildrenLayout(TInt)

IMPORT_C void UpdateChildrenLayout ( TInt aTransitionTime = 0 ) [virtual]

CAlfVisual Update the layout of all children. Subclasses can call this to recalculate the layout of all children.

Parameters

TInt aTransitionTime = 0 Time for layout transition in milliseconds. Any negative value uses value given in CAlfEnv::StaticSetLayoutTransitionTime()

Member Data Documentation

TCurvePathLayoutPrivateData * iCurvePathLayoutData

TCurvePathLayoutPrivateData * iCurvePathLayoutData [private]