diff -r 000000000000 -r d46562c3d99d svgtopt/SVG/SVGImpl/src/SVGUriReferenceImpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtopt/SVG/SVGImpl/src/SVGUriReferenceImpl.cpp Thu Jan 07 16:19:02 2010 +0200 @@ -0,0 +1,429 @@ +/* +* Copyright (c) 2003 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: SVG Implementation source file + * +*/ + + +#include "SVGUriReferenceImpl.h" +#include "SVGSchemaData.h" + +_LIT( KXlinkActuate, "xlink:actuate" ); +_LIT( KXlinkArcrole, "xlink:arcrole" ); +_LIT( KXlinkRole, "xlink:role" ); +_LIT( KXlinkShow, "xlink:show" ); +_LIT( KXlinkTitle, "xlink:title" ); +_LIT( KXlinkType, "xlink:type" ); +_LIT( KXlinkHref, "xlink:href" ); + + +// --------------------------------------------------------------------------- +// Two phase constructiion: +// - Implements the SVGXlink +// - There is no DOM interface defined. +// --------------------------------------------------------------------------- +CSvgUriReferenceImpl* CSvgUriReferenceImpl::NewL() + { + CSvgUriReferenceImpl* self = new ( ELeave ) CSvgUriReferenceImpl(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +CSvgUriReferenceImpl* CSvgUriReferenceImpl::NewLC() + { + CSvgUriReferenceImpl* self = new ( ELeave ) CSvgUriReferenceImpl(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +CSvgUriReferenceImpl::~CSvgUriReferenceImpl() + { + if ( iXlinkActuate ) + { + delete iXlinkActuate; + iXlinkActuate = NULL; + } + + if ( iXlinkArcrole ) + { + delete iXlinkArcrole; + iXlinkArcrole = NULL; + } + + if ( iXlinkRole ) + { + delete iXlinkRole; + iXlinkRole = NULL; + } + + if ( iXlinkShow ) + { + delete iXlinkShow; + iXlinkShow = NULL; + } + + if ( iXlinkTitle ) + { + delete iXlinkTitle; + iXlinkTitle = NULL; + } + + if ( iXlinkType) + { + delete iXlinkType; + iXlinkType = NULL; + } + + if ( iXlinkHref ) + { + delete iXlinkHref; + iXlinkHref = NULL; + } + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void CSvgUriReferenceImpl::ConstructL() + { + iXlinkActuate = HBufC::NewL( 0 ); + iXlinkArcrole = HBufC::NewL( 0 ); + iXlinkRole = HBufC::NewL( 0 ); + iXlinkShow = HBufC::NewL( 0 ); + iXlinkTitle = HBufC::NewL( 0 ); + iXlinkType = HBufC::NewL( 0 ); + iXlinkHref = HBufC::NewL( 0 ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkActuate() + { + return *iXlinkActuate; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkArcrole() + { + return *iXlinkArcrole; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkRole() + { + return *iXlinkRole; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkShow() + { + return *iXlinkShow; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkTitle() + { + return *iXlinkTitle; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkType() + { + return *iXlinkType; + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::XlinkHref() + { + return *iXlinkHref; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +const TDesC& CSvgUriReferenceImpl::Href() + { + return *iXlinkHref; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +TDesC* CSvgUriReferenceImpl::HrefPointer() + { + return iXlinkHref; + } + +// Implementation + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +TBool CSvgUriReferenceImpl::SetXlinkAttributeL( const TDesC& aPropertyName, + const TDesC& aValue ) + { + if ( aPropertyName == KXlinkActuate ) + { + if(iXlinkActuate) + { + + delete iXlinkActuate; + iXlinkActuate = NULL; + + } + iXlinkActuate = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkArcrole ) + { + if(iXlinkArcrole) + { + delete iXlinkArcrole; + iXlinkArcrole = NULL; + + } + iXlinkArcrole = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkRole ) + { + if(iXlinkRole) + { + delete iXlinkRole; + iXlinkRole = NULL; + + } + iXlinkRole = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkShow ) + { + if(iXlinkShow) + { + delete iXlinkShow; + iXlinkShow = NULL; + + } + iXlinkShow = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkTitle ) + { + if(iXlinkTitle) + { + delete iXlinkTitle; + iXlinkTitle = NULL; + + } + iXlinkTitle = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkType ) + { + if(iXlinkType) + { + delete iXlinkType; + iXlinkType = NULL; + + } + iXlinkType = aValue.AllocL(); + } + else if ( aPropertyName == KXlinkHref ) + { + if(iXlinkType) + { + delete iXlinkHref; + iXlinkHref = NULL; + + } + iXlinkHref = aValue.AllocL(); + } + else + { + return EFalse; + } + + return ETrue; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +CSvgUriReferenceImpl* CSvgUriReferenceImpl::CloneL() + { + CSvgUriReferenceImpl* retValue = CSvgUriReferenceImpl::NewL(); + CleanupStack::PushL(retValue); + // copy iXlinkActuate + if(retValue->iXlinkActuate) + { + delete retValue->iXlinkActuate; + retValue->iXlinkActuate = NULL; + + } + retValue->iXlinkActuate = this->iXlinkActuate->AllocL(); + + // copy iXlinkArcrole + if(retValue->iXlinkArcrole) + { + delete retValue->iXlinkArcrole; + retValue->iXlinkArcrole = NULL; + } + retValue->iXlinkArcrole = this->iXlinkArcrole->AllocL(); + + // copy iXlinkRole + if(retValue->iXlinkRole) + { + delete retValue->iXlinkRole; + retValue->iXlinkRole = NULL; + + } + retValue->iXlinkRole = this->iXlinkRole->AllocL(); + + + // copy iXlinkShow + if(retValue->iXlinkShow) + { + delete retValue->iXlinkShow; + retValue->iXlinkShow = NULL; + + } + retValue->iXlinkShow = this->iXlinkShow->AllocL(); + + // copy iXlinkTitle + if(retValue->iXlinkTitle) + { + delete retValue->iXlinkTitle; + retValue->iXlinkTitle = NULL; + + } + retValue->iXlinkTitle = this->iXlinkTitle->AllocL(); + + // copy iXlinkType + if(retValue->iXlinkType) + { + delete retValue->iXlinkType; + retValue->iXlinkType = NULL; + + } + retValue->iXlinkType = this->iXlinkType->AllocL(); + + // copy iXlinkHref + if(retValue->iXlinkHref) + { + delete retValue->iXlinkHref; + retValue->iXlinkHref = NULL; + + } + retValue->iXlinkHref = this->iXlinkHref->AllocL(); + + CleanupStack::Pop(); + return retValue; + } + + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +TInt CSvgUriReferenceImpl::SetUriRefDesL( const TUint16 aPropertyName, + const TDesC& aValue ) + { + if ( aPropertyName == KAtrXlinkactuate ) + { + if(iXlinkActuate) + { + delete iXlinkActuate; + iXlinkActuate = NULL; + } + iXlinkActuate = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinkarcrole ) + { + if(iXlinkArcrole) + { + delete iXlinkArcrole; + iXlinkArcrole = NULL; + } + iXlinkArcrole = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinkrole ) + { + if(iXlinkRole) + { + delete iXlinkRole; + iXlinkRole = NULL; + } + iXlinkRole = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinkshow ) + { + if(iXlinkShow) + {delete iXlinkShow; + iXlinkShow = NULL; + } + iXlinkShow = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinktitle ) + { + if(iXlinkTitle) + { + delete iXlinkTitle; + iXlinkTitle = NULL; + } + iXlinkTitle = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinktype ) + { + if(iXlinkType) + { + delete iXlinkType; + iXlinkType = NULL; + } + iXlinkType = aValue.AllocL(); + } + else if ( aPropertyName == KAtrXlinkhref ) + { + if(iXlinkHref) + { + delete iXlinkHref; + iXlinkHref = NULL; + } + iXlinkHref = aValue.AllocL(); + } + else + { + return KErrNotFound; + } + return KErrNone; + }