diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/Client/src/alflinevisual.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/Client/src/alflinevisual.cpp Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,365 @@ +/* +* Copyright (c) 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: ?Description +* +*/ + + + +#include "alf/alflinevisual.h" +#include "alf/alfcontrol.h" +#include "alf/alfimage.h" +#include "alf/alftexture.h" +#include "alf/alfcurvepath.h" +#include "alf/alfgencomponent.h" +#include "alf/alfmappingfunctions.h" +#include "alflogger.h" +#include "alf/alfconstants.h" +#include "alfskinnableimage.h" +#include "alf/alfenv.h" + +#include + +struct CAlfLineVisual::TLineVisualPrivateData + { + TAlfTimedValue iThickness; + TAlfTimedValue iShadowThickness; + TAlfTimedValue iStartPos; + TAlfTimedValue iEndPos; + CAlfCurvePath* iPath; + TAlfOwnership iOwnership; + CAlfSkinnableImage* iImage; + }; + +// ======== MEMBER FUNCTIONS ======== + +EXPORT_C CAlfLineVisual* CAlfLineVisual::AddNewL( + CAlfControl& aOwnerControl, + CAlfLayout* aParentLayout ) + { + CAlfLineVisual* text = STATIC_CAST(CAlfLineVisual*, + aOwnerControl.AppendVisualL(EAlfVisualTypeLine, aParentLayout)); + return text; + } + +EXPORT_C CAlfLineVisual::CAlfLineVisual() + { + } + +EXPORT_C void CAlfLineVisual::ConstructL(CAlfControl& aOwner) + { + CAlfVisual::ConstructL(aOwner); + + iLineVisualData = new (ELeave) TLineVisualPrivateData; + + iLineVisualData->iPath = NULL; + iLineVisualData->iImage = NULL; + + iLineVisualData->iImage = new (ELeave) CAlfSkinnableImage(&aOwner.Env()); + } + +EXPORT_C CAlfLineVisual::~CAlfLineVisual() + { + if ( iLineVisualData ) + { + delete iLineVisualData->iImage; + iLineVisualData->iImage = NULL; + + if ( iLineVisualData->iOwnership == EAlfHasOwnership ) + { + delete iLineVisualData->iPath; + } + iLineVisualData->iPath = NULL; + } + delete iLineVisualData; + iLineVisualData = NULL; + } + +EXPORT_C void CAlfLineVisual::SetPath(CAlfCurvePath* aPath, + TAlfOwnership aOwnership) + { + TInt curvePathHandle = 0; + if ( aPath ) + { + MAlfMappingFunction* mappingFunction = aPath; + curvePathHandle = mappingFunction->MappingFunctionIdentifier(); + } + + + TInt2 params( curvePathHandle, aOwnership ); + TPckgC inBuf( params ); + + TInt err = Comms()->DoCmdNoReply(EAlfLineVisualSetPath, inBuf ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfLineVisual::SetPath panic error %d", err ) + USER_INVARIANT(); + } + + // Destroy the old one if owned. + if ( iLineVisualData->iOwnership == EAlfHasOwnership ) + { + delete iLineVisualData->iPath; + } + + iLineVisualData->iPath = aPath; + iLineVisualData->iOwnership = aOwnership; + } + +EXPORT_C CAlfCurvePath* CAlfLineVisual::Path() + { + return iLineVisualData->iPath; + } + +EXPORT_C void CAlfLineVisual::SetImage(const TAlfImage& aImage) + { + iLineVisualData->iImage->SetImage(aImage);// This texturizes skin graphics if needed + + TAlfImageParams params(iLineVisualData->iImage->Image()); + + TPckgC buf(params); + + TInt err = Comms()->DoCmdNoReply(EAlfLineVisualSetImage, buf ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfLineVisual::SetImage ignore error %d", err ) + } + } + +EXPORT_C const TAlfImage& CAlfLineVisual::Image() const + { + return iLineVisualData->iImage->Image(); + } + +EXPORT_C void CAlfLineVisual::SetAlphaFunction(MAlfMappingFunction* aFunction) + { + TInt mappingFunctionHandle = 0; + if ( aFunction ) + { + mappingFunctionHandle = aFunction->MappingFunctionIdentifier(); + } + + TPckgC inBuf( mappingFunctionHandle ); + + TInt err = Comms()->DoCmdNoReply(EAlfLineVisualSetAlphaFunction, inBuf ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfLineVisual::SetAlphaFunction panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C void CAlfLineVisual::SetWidthFunction(MAlfMappingFunction* aFunction) + { + TInt mappingFunctionHandle = 0; + if ( aFunction ) + { + mappingFunctionHandle = aFunction->MappingFunctionIdentifier(); + } + TPckgC inBuf( mappingFunctionHandle ); + + TInt err =Comms()->DoCmdNoReply(EAlfLineVisualSetWidthFunction, inBuf ); + if ( err ) + { + __ALFLOGSTRING1( "CAlfLineVisual::SetWidthFunction panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C const TAlfTimedValue& CAlfLineVisual::Thickness() const + { + TPckg buf(iLineVisualData->iThickness); + TInt err = Comms()->DoSynchronousCmd( EAlfLineVisualGetThickness, buf, buf); + + if ( err != KErrNone ) + { + __ALFLOGSTRING1( "CAlfLineVisual::Thickness panic error %d", err ) + USER_INVARIANT(); + } + + return iLineVisualData->iThickness; + } + +EXPORT_C void CAlfLineVisual::SetThickness( const TAlfTimedValue& aThickness ) + { + TPckgC buf(aThickness); + + TInt err = Comms()->DoCmdNoReply( EAlfLineVisualSetThickness, buf ); + + if ( err == KErrNone ) + { + iLineVisualData->iThickness = aThickness; + } + else + { + __ALFLOGSTRING1( "CAlfLineVisual::SetThickness panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C const TAlfTimedValue& CAlfLineVisual::ShadowThickness() const + { + TPckg buf(iLineVisualData->iShadowThickness); + TInt err = Comms()->DoSynchronousCmd( EAlfLineVisualGetShadowThickness, buf, buf); + + if ( err != KErrNone ) + { + __ALFLOGSTRING1( "CAlfLineVisual::ShadowThickness panic error %d", err ) + USER_INVARIANT(); + } + + return iLineVisualData->iShadowThickness; + } + +EXPORT_C void CAlfLineVisual::SetShadowThickness( const TAlfTimedValue& aShadowThickness ) + { + TPckgC buf(aShadowThickness); + + TInt err = Comms()->DoCmdNoReply( EAlfLineVisualSetShadowThickness, buf ); + + if ( err == KErrNone ) + { + iLineVisualData->iShadowThickness = aShadowThickness; + } + else + { + __ALFLOGSTRING1( "CAlfLineVisual::SetShadowThickness panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C const TAlfTimedValue& CAlfLineVisual::StartPos() const + { + TPckg buf(iLineVisualData->iStartPos); + TInt err = Comms()->DoSynchronousCmd( EAlfLineVisualGetStartPos, buf, buf); + + if ( err != KErrNone ) + { + __ALFLOGSTRING1( "CAlfLineVisual::StartPos panic error %d", err ) + USER_INVARIANT(); + } + + return iLineVisualData->iStartPos; + } + +EXPORT_C void CAlfLineVisual::SetStartPos( const TAlfTimedValue& aStartPos ) + { + TPckgC buf(aStartPos); + + TInt err = Comms()->DoCmdNoReply( EAlfLineVisualSetStartPos, buf ); + + if ( err == KErrNone ) + { + iLineVisualData->iStartPos = aStartPos; + } + else + { + __ALFLOGSTRING1( "CAlfLineVisual::SetStartPos panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C const TAlfTimedValue& CAlfLineVisual::EndPos() const + { + TPckg buf(iLineVisualData->iEndPos); + TInt err = Comms()->DoSynchronousCmd( EAlfLineVisualGetEndPos, buf, buf); + + if ( err != KErrNone ) + { + __ALFLOGSTRING1( "CAlfLineVisual::EndPos panic error %d", err ) + USER_INVARIANT(); + } + + return iLineVisualData->iEndPos; + } + +EXPORT_C void CAlfLineVisual::SetEndPos( const TAlfTimedValue& aEndPos ) + { + TPckgC buf(aEndPos); + + TInt err = Comms()->DoCmdNoReply( EAlfLineVisualSetEndPos, buf ); + + if ( err == KErrNone ) + { + iLineVisualData->iEndPos = aEndPos; + } + else + { + __ALFLOGSTRING1( "CAlfLineVisual::SetEndPos panic error %d", err ) + USER_INVARIANT(); + } + } + +EXPORT_C void CAlfLineVisual::SetColor(const TRgb& aColor) + { + TPckgC buf(aColor); + + TInt err = Comms()->DoCmdNoReply(EAlfLineVisualSetColor, buf ); + + if ( err ) + { + __ALFLOGSTRING1( "CAlfLineVisual::SetColor ignore error %d", err ) + } + } + +// --------------------------------------------------------------------------- +// Place holder from CAlfVisual +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfLineVisual::RemoveAndDestroyAllD() + { + CAlfVisual::RemoveAndDestroyAllD(); + } + +// --------------------------------------------------------------------------- +// Place holder from CAlfVisual +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfLineVisual::UpdateChildrenLayout(TInt aTransitionTime ) + { + CAlfVisual::UpdateChildrenLayout( aTransitionTime ); + } + +// --------------------------------------------------------------------------- +// Place holder from CAlfVisual +// --------------------------------------------------------------------------- +// +EXPORT_C CAlfVisual* CAlfLineVisual::FindTag(const TDesC8& aTag) + { + return CAlfVisual::FindTag( aTag ); + } + +// --------------------------------------------------------------------------- +// Place holder from CAlfVisual +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfLineVisual::DoRemoveAndDestroyAllD() + { + CAlfVisual::DoRemoveAndDestroyAllD(); + } + +// --------------------------------------------------------------------------- +// future proofing +// --------------------------------------------------------------------------- +// +EXPORT_C void CAlfLineVisual::PropertyOwnerExtension(const TUid& aExtensionUid, TAny** aExtensionParams) + { + CAlfVisual::PropertyOwnerExtension(aExtensionUid,aExtensionParams); + } + + +