diff -r 71ad690e91f5 -r d6dafc5d983f javauis/m2g_qt/src/CM2GSVGProxy.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/m2g_qt/src/CM2GSVGProxy.cpp Fri Oct 15 12:29:39 2010 +0300 @@ -0,0 +1,1135 @@ +/* +* Copyright (c) 2005-2006 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: SVGTopt proxy implementation +* +*/ + +// INCLUDE FILES +#include // Files add recently +#include // Files add recently +#include +#include // Character conversion API +#include +#include "CM2GSVGProxy.h" +#include + +M2G_NS_START + +// EXTERNAL DATA STRUCTURES + +// EXTERNAL FUNCTION PROTOTYPES + +// CONSTANTS + +// MACROS + +// LOCAL CONSTANTS AND MACROS + +// MODULE DATA STRUCTURES + +// LOCAL FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::NewL +// ----------------------------------------------------------------------------- +CM2GSVGProxy* CM2GSVGProxy::NewL() +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::NewL()"); + CM2GSVGProxy* self = new(ELeave) CM2GSVGProxy; + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + return self; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::~CM2GSVGProxy +// ----------------------------------------------------------------------------- +CM2GSVGProxy::~CM2GSVGProxy() +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::~CM2GSVGProxy() - native SVGTopt: %d", iNative); + if (iNative) + { + CloseContainers(); + delete iNative; + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::~CM2GSVGProxy() - native deleted"); + iNative = NULL; + } +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AddCloseL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AddCloseL(const TM2GSvgPathHandle& aPathHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddCloseL() - begin"); + iNative->SvgPathAddClose(aPathHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddCloseL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AddCurveToL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AddCurveToL( + const TM2GSvgPathHandle& aPathHandle, + const TM2GPathCurveData& aPathCurveData) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddCurveToL() - begin"); + iNative->SvgPathAddCurveTo( + aPathHandle, + aPathCurveData[ 0 ], aPathCurveData[ 1 ], // X1, Y1 + aPathCurveData[ 2 ], aPathCurveData[ 3 ], // X2, Y2 + aPathCurveData[ 4 ], aPathCurveData[ 5 ]); // X3, Y3 + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddCurveToL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AddLineToL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AddLineToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX, const TReal32& aY) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddLineToL() - begin"); + iNative->SvgPathAddLineTo(aPathHandle, aX, aY); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddLineToL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AddMoveToL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AddMoveToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX, const TReal32& aY) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddMoveToL() - begin"); + iNative->SvgPathAddMoveTo(aPathHandle, aX, aY); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddMoveToL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AddQuadToL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AddQuadToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX1, const TReal32& aY1, + const TReal32& aX2, const TReal32& aY2) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddQuadToL() - begin"); + iNative->SvgPathAddQuadTo(aPathHandle, aX1, aY1, aX2, aY2); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AddQuadToL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::AppendChildL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::AppendChildL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aChildElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AppendChildL() - begin"); + iNative->SvgElementAppendChild(aElementHandle, aChildElementHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::AppendChildL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::BeginElementAtL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::BeginElementAtL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + const TReal32& aOffset) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::BeginElementAtL() offset:%f - begin", aOffset); + iNative->SvgDocumentBeginElementAt( + aDocumentHandle, aElementHandle, aOffset); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::BeginElementAtL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CheckRemoveableL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CheckRemoveableL( + const TM2GSvgElementHandle& aElementHandle, + TInt& aRemoveable) + +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CheckRemoveableL() - begin"); + aRemoveable = iNative->SvgElementCheckRemoveable(aElementHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CheckRemoveableL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::ClearSvgSurfaceL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::ClearSvgSurfaceL(const TM2GBitmapHandle& /* aSurfaceHandle */) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::ClearSvgSurfaceL() - not supported"); + User::Leave(KErrNotSupported); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CreateDocumentL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CreateDocumentL(const TPtrC16& aData, TM2GSvgDocumentHandle& aDocumentHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreateDocumentL() - begin"); + aDocumentHandle = M2G_INVALID_HANDLE; + + M2G_DEBUG_1("M2G_DEBUG: M2G_DEBUG: CM2GSVGProxy::CreateDocumentL(): content length=%d - call engine", aData.Length()); + + // Create document handle. Note: validity check is done in java side + aDocumentHandle = iNative->SvgDocumentCreateL(aData); + // Append document handle to the container + if (iSvgDocuments.Find(aDocumentHandle) == KErrNotFound) + { + TRAPD(err, iSvgDocuments.Append(aDocumentHandle)); + if (err != KM2GOk) + { + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::CreateDocumentL(), cannot add handle=%d, err=%d", aDocumentHandle, err); + } + } + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::CreateDocumentL(), handle=%d, total document count=%d - end", aDocumentHandle, iSvgDocuments.Count()); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CreateElementNsL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CreateElementNsL( + const TM2GSvgAttrType& aType, + const TM2GSvgDocumentHandle& /* aDocumentHandle */, + TM2GSvgElementHandle& aElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreateElementNsL() - begin"); + // Note: validity check is done in java side + aElementHandle = iNative->SvgElementCreate(aType); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::CreateElementNsL() handle=%d - end", aElementHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CreatePathL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CreatePathL(TM2GSvgPathHandle& aPathHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreatePathL() - begin"); + aPathHandle = iNative->SvgPathCreate(); + if (aPathHandle == M2G_INVALID_HANDLE) + { + User::Leave(KM2GMemoryNotOk); + } + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreatePathL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CreateSvgEngineL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CreateSvgEngineL(TM2GSvgEngineHandle& aEngineHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreateSvgEngineL() - begin"); + // Create engine handle + aEngineHandle = iNative->SvgEngineCreate(); + if (aEngineHandle == M2G_INVALID_HANDLE) + { + User::Leave(KM2GMemoryNotOk); + } + // Append engine handle to the container + if (iSvgEngines.Find(aEngineHandle) == KErrNotFound) + { + TRAPD(err, iSvgEngines.Append(aEngineHandle)); + if (err != KM2GOk) + { + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::CreateSvgEngineL(), cannot add handle=%d, err=%d", aEngineHandle, err); + } + } + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::CreateSvgEngineL(), handle=%d, total engine count=%d - end", aEngineHandle, iSvgEngines.Count()); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CreateSvgSurfaceL +// ----------------------------------------------------------------------------- +TM2GBitmapHandle CM2GSVGProxy::CreateSvgSurfaceL(TInt /* aWidth */, TInt /* aHeight */) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CreateSvgSurfaceL() - not supported"); + + User::Leave(KErrNotSupported); + + return M2G_INVALID_HANDLE; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::DeleteDocumentL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::DeleteDocumentL(const TM2GSvgDocumentHandle& aDocumentHandle) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::DeleteDocumentL() native:%d, document:%d - begin", iNative, aDocumentHandle); + TInt findResult = iSvgDocuments.Find(aDocumentHandle); + if (findResult != KErrNotFound) + { + // Try to remove the handle from the container + TRAPD(err, iSvgDocuments.Remove(findResult)); + if (err != KM2GOk) + { + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::DeleteDocumentL(), cannot add handle=%d, err=%d", aDocumentHandle, err); + } + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DeleteDocumentL() - container remove result=%d", err); + // Delete the handle + iNative->SvgDocumentDestroy(aDocumentHandle); + } + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DeleteDocumentL() - total document count=%d - end", iSvgDocuments.Count()); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::DeleteSvgEngineL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::DeleteSvgEngineL(const TM2GSvgEngineHandle& aEngineHandle) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DeleteSvgEngineL() engine:%d - begin", aEngineHandle); + TInt findResult = iSvgEngines.Find(aEngineHandle); + if (findResult != KErrNotFound) + { + // Try to remove the handle from the container + TRAPD(err, iSvgEngines.Remove(findResult)); + if (err != KM2GOk) + { + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::DeleteSvgEngineL(), cannot add handle=%d, err=%d", aEngineHandle, err); + } + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DeleteSvgEngineL() - container remove result=%d", err); + // Delete the handle + iNative->SvgEngineDestroy(aEngineHandle); + } + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DeleteSvgEngineL() - total engine count=%d - end", iSvgEngines.Count()); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::DeleteSvgSurfaceL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::DeleteSvgSurfaceL(const TM2GBitmapHandle& /* aSurfaceHandle */) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::DeleteSvgSurfaceL() - not supported"); + + User::Leave(KErrNotSupported); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::DestroyPathL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::DestroyPathL(const TM2GSvgPathHandle& aPathHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::DestroyPathL() - begin"); + iNative->SvgPathDestroy(aPathHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::DestroyPathL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::DispatchMouseEventL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::DispatchMouseEventL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aX, TInt aY, TM2GSvgElementHandle& aElementHandle) +{ + M2G_DEBUG_3("M2G_DEBUG: CM2GSVGProxy::DispatchMouseEventL(): doc handle:%d, x=%d, y=%d- begin", aDocumentHandle, aX, aY); + aElementHandle = iNative->SvgDocumentDispatchMouseEvent( + aDocumentHandle, aX, aY); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::DispatchMouseEventL(): element handle=%d - end", aElementHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::EndElementAtL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::EndElementAtL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + const TReal32& aOffset) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::EndElementAtL() offset=%f - begin", aOffset); + iNative->SvgDocumentEndElementAt( + aDocumentHandle, aElementHandle, aOffset); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::EndElementAtL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::FocusOnL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::FocusOnL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::FocusOnL() document=%d, element=%d - begin", aDocumentHandle, aElementHandle); + iNative->SvgDocumentFocusOn(aDocumentHandle, aElementHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::FocusOnL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::FocusOutL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::FocusOutL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::FocusOutL() document=%d, element=%d - begin", aDocumentHandle, aElementHandle); + iNative->SvgDocumentFocusOut(aDocumentHandle, aElementHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::FocusOutL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetBBoxL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetBBoxL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GRectData& aRectData, TInt& aResult) +{ + aResult = KM2GOk; + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetBBoxL() - begin"); + iNative->SvgElementGetBBox( + aElementHandle, + aAttributeType, + &aRectData[ 0 ], // X + &aRectData[ 1 ], // Y + &aRectData[ 2 ], // Width + &aRectData[ 3 ]); // Height + M2G_DEBUG_4("M2G_DEBUG: CM2GSVGProxy::GetBBoxL(): [x=%f, y=%f, w=%f, h=%f] - end", aRectData[ 0 ], aRectData[ 1 ], aRectData[ 2 ], aRectData[ 3 ]); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetColorTrait +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetColorTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GColorData& aColor, + TInt& aResult) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetColorTraitL() - begin"); + aResult = iNative->SvgElementGetColorAttribute( + aElementHandle, + aAttributeType, + &aColor[ 0 ], // Red + &aColor[ 1 ], // Green + &aColor[ 2 ]); // Blue + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetColorTraitL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetElementByIdL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetElementByIdL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TPtrC16& aId, + TM2GSvgElementHandle& aElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetElementByIdL() - begin"); + aElementHandle = iNative->SvgDocumentGetElementById( + aDocumentHandle, + aId); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetElementByIdL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetElementTypeIdL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetElementTypeIdL(const TM2GSvgElementHandle& aElementHandle, TInt16& aId) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetElementTypeIdL() - begin"); + aId = STATIC_CAST(TInt16, iNative->SvgElementGetType(aElementHandle)); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetElementTypeIdL() type id:%d- end", aId); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetEnumTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetEnumTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeTypeId, + TInt16& aEnumTrait) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetEnumTraitIdL() - begin"); + aEnumTrait = iNative->SvgElementGetEnumAttribute( + aElementHandle, + aAttributeTypeId); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetEnumTraitIdL() enum trait:%d - end", aEnumTrait); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetExternalListItemL +// ----------------------------------------------------------------------------- +TInt CM2GSVGProxy::GetExternalListItemL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aIndex, + TPtrC16& aItem) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetExternalListItemL() index=%d- begin", aIndex); + TInt result = iNative->SvgDocumentGetExternalListItem(aDocumentHandle, aIndex, aItem); + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::GetExternalListListItemL() result:%d, item sz:%d - end", result, aItem.Length()); + return result; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetExternalListSizeL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetExternalListSizeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aListSz) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetExternalListSizeL() - begin"); + aListSz = iNative->SvgDocumentGetExternalListSize(aDocumentHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetExternalListSizeL(): %d - end", aListSz); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetFirstElementChildL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetFirstElementChildL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aChildHandle) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetFirstElementChildL() element=%d - begin", aElementHandle); + aChildHandle = iNative->SvgElementGetFirstElementChild(aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetFirstElementChildL() child=%d - end", aChildHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetFloatTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetFloatTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TReal32& aFloatTrait) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetFloatTraitL() - begin"); + aFloatTrait = + iNative->SvgElementGetFloatAttribute(aElementHandle, aAttributeType); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetFloatTraitL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetMatrixTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetMatrixTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GMatrixData& aMatrix, TInt& aResult) +{ + // [ m00 m01 m02 ] + // [ m10 m11 m12 ] + // [ 0 0 1 ] + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetMatrixTraitL() - begin"); + aResult = iNative->SvgElementGetMatrixAttribute( + aElementHandle, + aAttributeType, + &aMatrix[ 0 ], // m00 + &aMatrix[ 1 ], // m10 + &aMatrix[ 2 ], // m01 + &aMatrix[ 3 ], // m11 + &aMatrix[ 4 ], // m02 + &aMatrix[ 5 ]); // m12 + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetMatrixTraitL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetMediaTimeL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetMediaTimeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TReal32& aSeconds) +{ + aSeconds = iNative->SvgDocumentGetMediaTime(aDocumentHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetNextElementSiblingL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetNextElementSiblingL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aSiblingElementHandle) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetNextElementSiblingL(), element=%d - begin", aElementHandle); + aSiblingElementHandle = iNative->SvgElementGetNextElementSibling(aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetNextElementSiblingL(), sibling=%d - end", aSiblingElementHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetNumberOfSegmentsL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetNumberOfSegmentsL( + const TM2GSvgPathHandle& aPathHandle, + TInt& aNumberOfSegments) +{ + aNumberOfSegments = iNative->SvgPathGetSegmentCount(aPathHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetParentL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetParentL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aParentElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetParentL() - begin"); + aParentElementHandle = iNative->SvgElementGetParent(aElementHandle); + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::GetParentL() element=%d, parent=%d, - end", aElementHandle, aParentElementHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetPathTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetPathTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TInt& aPathTrait) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetPathTraitL() - begin"); + aPathTrait = iNative->SvgElementGetPathAttribute(aElementHandle, aAttributeType); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetPathTraitL() %d - end", aPathTrait); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetRectTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetRectTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GRectData& aRectData, TInt& aResult) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetRectTraitL() - begin"); + aResult = iNative->SvgElementGetRectAttribute( + aElementHandle, + aAttributeType, + &aRectData[ 0 ], // X + &aRectData[ 1 ], // Y + &aRectData[ 2 ], // Width + &aRectData[ 3 ]); // Height + M2G_DEBUG_5("M2G_DEBUG: CM2GSVGProxy::GetRectTraitL(): result=%d [x=%f, y=%f, w=%f, h=%f] - end", aResult, aRectData[ 0 ], aRectData[ 1 ], aRectData[ 2 ], aRectData[ 3 ]); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetRootElementL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetRootElementL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TM2GSvgElementHandle& aRootElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetRootElementL() - begin"); + aRootElementHandle = iNative->SvgDocumentGetRootElement(aDocumentHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetRootElementL() handle:%d - end", aRootElementHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetScreenBBoxL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetScreenBBoxL( + const TM2GSvgElementHandle& aElementHandle, + TM2GScreenBBoxData& aScreenBBoxData) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetScreenBBoxL() - begin"); + iNative->SvgElementGetScreenBBox( + aElementHandle, + &aScreenBBoxData[ 0 ], // X + &aScreenBBoxData[ 1 ], // Y + &aScreenBBoxData[ 2 ], // Width + &aScreenBBoxData[ 3 ]); // Height + M2G_DEBUG_4("M2G_DEBUG: CM2GSVGProxy::GetScreenBBoxL(): [x=%f, y=%f, w=%f, h=%f] - end", aScreenBBoxData[ 0 ], aScreenBBoxData[ 1 ], aScreenBBoxData[ 2 ], aScreenBBoxData[ 3 ]); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetSegmentParameterL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetSegmentParameterL( + const TM2GSvgPathHandle& aPathHandle, + TInt aSegmentIndex, TInt aParamIndex, + TReal32& aSegmentParam) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::SvgPathGetSegmentParameter(): index=%d, paramIndex=%d - begin", aSegmentIndex, aParamIndex); + aSegmentParam = iNative->SvgPathGetSegmentParameter( + aPathHandle, + aSegmentIndex, + aParamIndex); + M2G_DEBUG_3("M2G_DEBUG: CM2GSVGProxy::SvgPathGetSegmentParameter(): index=%d, paramIndex=%d, param=%d - end", aSegmentIndex, aParamIndex, aSegmentParam); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetSegmentTypeL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetSegmentTypeL( + const TM2GSvgPathHandle& aPathHandle, + TInt aSegmentIndex, + TInt16& aSegmentType) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetSegmentTypeL(): index=%d - begin", aSegmentIndex); + aSegmentType = iNative->SvgPathGetSegmentType( + aPathHandle, + aSegmentIndex); + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::GetSegmentTypeL(): index=%d, type=%d - end", aSegmentIndex, aSegmentType); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetStringTraitL +// ----------------------------------------------------------------------------- +TInt CM2GSVGProxy::GetStringTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TPtrC16& aStr) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::GetStringTraitL(): attribute type:%d, handle:%u - begin", aAttributeType, aElementHandle); + + TInt result = iNative->SvgElementGetStringAttribute(aElementHandle, aAttributeType, aStr); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetStringTraitL(): attribute sz:%d", aStr.Length()); + return result; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetSvgSurfaceHeightL +// ----------------------------------------------------------------------------- +TInt CM2GSVGProxy::GetSvgSurfaceHeightL(const TM2GBitmapHandle& /* aSurfaceHandle */) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetSvgSurfaceHeightL - not supported"); + + User::Leave(KErrNotSupported); + + return 0; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetSvgSurfaceWidthL +// ----------------------------------------------------------------------------- +TInt CM2GSVGProxy::GetSvgSurfaceWidthL(const TM2GBitmapHandle& /* aSurfaceHandle */) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::GetSvgSurfaceWidthL - not supported"); + + User::Leave(KErrNotSupported); + + return 0; +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetUsedFromElementL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetUsedFromElementL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aHandle) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetUsedFromElementL() used from element=%d - begin", aElementHandle); + aHandle = iNative->SvgElementGetUsedFromElement(aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::GetUsedFromElementL() found element=%d - end", aHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetViewportHeightL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetViewportHeightL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aHeight) +{ + aHeight = iNative->SvgDocumentGetViewportHeight(aDocumentHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::GetViewportWidthL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::GetViewportWidthL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aWidth) +{ + aWidth = iNative->SvgDocumentGetViewportWidth(aDocumentHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::InitViewportL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::InitViewportL(const TM2GSvgDocumentHandle& aDocumentHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::InitViewportL()"); + return iNative->SvgDocumentViewportInit(aDocumentHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::InsertBeforeL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::InsertBeforeL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aNewChildElementHandle, + const TM2GSvgElementHandle& aReferenceElementHandle) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::InsertBeforeL() - begin"); + iNative->SvgElementInsertBefore( + aElementHandle, + aNewChildElementHandle, + aReferenceElementHandle); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::InsertBeforeL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::IsActiveL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::IsActiveL(const TM2GSvgElementHandle& aElementHandle, TInt& aActive) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::IsActiveL() - begin"); + aActive = iNative->SvgElementIsActive(aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::IsActiveL() active:%d - end", aActive); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::IsElementInDomL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::IsElementInDomL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + TInt& aIsElementInDom) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::IsElementInDomL() doc handle=%d, elem handle=%d - begin", aDocumentHandle, aElementHandle); + aIsElementInDom = iNative->SvgElementElementInDOM( + aDocumentHandle, aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::IsElementInDomL() result=%d - end", aIsElementInDom); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::IsUsedL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::IsUsedL(const TM2GSvgElementHandle& aElementHandle, TInt& aResult) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::IsUsedL() - begin"); + aResult = iNative->SvgElementIsUsed(aElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::IsUsedL(), result=%d - end", aResult); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::RemoveChildL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::RemoveChildL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aChildElementHandle, + TM2GSvgElementHandle& aHandle) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::RemoveChildL() parent=%d, child=%d - begin", aElementHandle, aChildElementHandle); + aHandle = iNative->SvgElementRemoveChild(aElementHandle, aChildElementHandle); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::RemoveChildL() result handle=%d - end", aHandle); +} + + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::RenderDocumentL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::RenderDocumentL( + const TM2GSvgEngineHandle& aEngineHandle, + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GBitmapHandle& aSurfaceHandle, + TM2GBitmapHandle aSurfaceMaskHandle, + TReal32 aCurrentTime) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() native:%d, time=%f - begin", iNative, aCurrentTime); + M2G_DEBUG_3("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() engine:%d, doc:%d, surface:%d", aEngineHandle, aDocumentHandle, aSurfaceHandle); + iNative->SvgEngineRenderDocument( + aEngineHandle, aDocumentHandle, aSurfaceHandle, aSurfaceMaskHandle, aCurrentTime); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() - end"); +} + +//TODO following changes done for Qimage +//Check for TUint or TInt for subsequent API Call +void CM2GSVGProxy::RenderDocumentL( + const TM2GSvgEngineHandle& aEngineHandle, + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgBitmapHandle& aSurfaceHandle, + TM2GSvgBitmapHandle aSurfaceMaskHandle, + TReal32 aCurrentTime) + { + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() Qimage variant native:%d, time=%f - begin", iNative, aCurrentTime); + M2G_DEBUG_3("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() engine:%d, doc:%d, SvgBitmapHandle:%d", aEngineHandle, aDocumentHandle, aSurfaceHandle); + iNative->SvgEngineRenderDocument( + aEngineHandle, aDocumentHandle, aSurfaceHandle, aSurfaceMaskHandle, aCurrentTime); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::RenderDocumentL() - end"); + + } + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::RenderQualityL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::RenderQualityL( + const TM2GSvgDocumentHandle& aEngineHandle, + TInt aQuality) +{ + iNative->SvgEngineSetRenderQuality(aEngineHandle, aQuality); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::RequestCompletedL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::RequestCompletedL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TPtrC16& aURI, + const TPtrC8& aResourceData, + TInt& aCompleted) +{ + M2G_DEBUG_2("M2G_DEBUG: CM2GSVGProxy::RequestCompleted() uri sz=%d, resource sz= %d ", aURI.Length(), aResourceData.Length()); + aCompleted = iNative->SvgDocumentRequestCompleted( + aDocumentHandle, + aURI, + aResourceData); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::RequestCompletedL() completed=%d - end", aCompleted); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetColorTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetColorTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GColorData& aColor) +{ + iNative->SvgElementSetColorAttribute( + aElementHandle, + aAttributeType, + aColor[ 0 ], // red + aColor[ 1 ], // green + aColor[ 2 ]); // blue +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetEnumTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetEnumTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TInt16 aValue) +{ + iNative->SvgElementSetEnumAttribute( + aElementHandle, + aAttributeType, + aValue); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetFloatTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetFloatTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TReal32& aValue) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::SetFloatTraitL() - %f", aValue); + iNative->SvgElementSetFloatAttribute( + aElementHandle, + aAttributeType, + aValue); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetMatrixTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetMatrixTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GMatrixData& aMatrix) +{ + // [ m00 m01 m02 ] + // [ m10 m11 m12 ] + // [ 0 0 1 ] + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetMatrixTraitL() - begin"); + iNative->SvgElementSetMatrixAttribute( + aElementHandle, + aAttributeType, + aMatrix[ 0 ], // m00 - A + aMatrix[ 1 ], // m10 - B + aMatrix[ 2 ], // m01 - C + aMatrix[ 3 ], // m11 - D + aMatrix[ 4 ], // m02 - E + aMatrix[ 5 ]); // m12 - F + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetMatrixTraitL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetMediaTimeL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetMediaTimeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TReal32& aSeconds) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::SetMediaTimeL() %f - begin", aSeconds); + iNative->SvgDocumentSetMediaTime(aDocumentHandle, aSeconds); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetMediaTimeL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetPathTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetPathTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GSvgPathHandle& aPathHandle) +{ + iNative->SvgElementSetPathAttribute( + aElementHandle, + aAttributeType, + aPathHandle); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetRectTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetRectTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GRectData& aRect) +{ + iNative->SvgElementSetRectAttribute( + aElementHandle, + aAttributeType, + aRect[ 0 ], // aX + aRect[ 1 ], // aY + aRect[ 2 ], // aWidth + aRect[ 3 ]); // aHeight +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetRenderingQualityL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetRenderingQualityL( + const TM2GSvgDocumentHandle& aEngineHandle, + TInt aMode) +{ + iNative->SvgEngineSetRenderQuality(aEngineHandle, aMode); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetStringTraitL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetStringTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeTypeId, + const TPtrC16& aStr) +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetStringTraitL() - begin"); + iNative->SvgElementSetStringAttribute( + aElementHandle, + aAttributeTypeId, + aStr); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::SetStringTraitL(): str sz:%d - end", aStr.Length()); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetViewportWidthL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetViewportWidthL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aWidth) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::SetViewportWidthL(): %d - begin", aWidth); + iNative->SvgDocumentSetViewportWidth(aDocumentHandle, aWidth); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetViewportWidthL() - end"); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::SetViewportHeightL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::SetViewportHeightL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aHeight) +{ + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::SetViewportHeightL(): %d - begin", aHeight); + iNative->SvgDocumentSetViewportHeight(aDocumentHandle, aHeight); + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::SetViewportHeightL() - end"); +} + +// == PROTECTED METHODS == + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CloseContainers +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::CloseContainers() +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CloseContainers() - begin"); + if (iNative) + { + // Clear document container + TInt count = iSvgDocuments.Count(); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::CloseContainers() - document count=%d", count); + for (TInt index = 0; index < count; index++) + { + iNative->SvgDocumentDestroy(iSvgDocuments[index]); + } + iSvgDocuments.Reset(); + iSvgDocuments.Close(); + // Clear engine container + count = iSvgEngines.Count(); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::CloseContainers() - engine count=%d", count); + for (TInt index = 0; index < count; index++) + { + iNative->SvgEngineDestroy(iSvgEngines[index]); + } + iSvgEngines.Reset(); + iSvgEngines.Close(); + } + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::CloseContainers() - end"); +} + +// == PRIVATE METHODS == + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::CM2GSVGProxy +// ----------------------------------------------------------------------------- +CM2GSVGProxy::CM2GSVGProxy() + : CBase(), + iNative(NULL), + iSvgEngines(), + iSvgDocuments() +{ + iSvgEngines.Compress(); + iSvgDocuments.Compress(); +} + +// ----------------------------------------------------------------------------- +// CM2GSVGProxy::ConstructL +// ----------------------------------------------------------------------------- +void CM2GSVGProxy::ConstructL() +{ + M2G_DEBUG_0("M2G_DEBUG: CM2GSVGProxy::ConstructL() - begin"); + + //Get the font spec with variant default font + const TInt KApacFontId = EApacPlain16; + const TInt KLatintFontId = ELatinBold12; + TInt fontId = KLatintFontId; + + /* switch (AknLayoutUtils::Variant()) + { + case EApacVariant: + { + fontId = KApacFontId; + } + break; + + case EEuropeanVariant: + default: + break; + } + FeatureManager::InitializeLibL(); + + if (FeatureManager::FeatureSupported(KFeatureIdAvkonApac)) + { + fontId = KApacFontId; + } + + FeatureManager::UnInitializeLib(); + + const CFont* font = AknLayoutUtils::FontFromId(fontId); + TFontSpec spec = font->FontSpecInTwips();*/ + // TODO have to check for substitute of above. + const CFont* font = CEikonEnv::Static()->NormalFont(); + TFontSpec spec = font->FontSpecInTwips(); + iNative = CSvgJavaInterfaceImpl::NewL(spec); + M2G_DEBUG_1("M2G_DEBUG: CM2GSVGProxy::ConstructL() - SVGTopt created: %d", iNative); +} + +M2G_NS_END