# HG changeset patch
# User hgs
# Date 1288803370 -7200
# Node ID 88edb906c5870140e1c8b583815e4905378343dd
201044
diff -r 000000000000 -r 88edb906c587 group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/group/bld.inf Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,36 @@
+/*
+* Copyright (c) 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: Highlevel bld.inf
+*
+*/
+
+
+
+#include "../svgt_plat/group/bld.inf"
+
+/*
+* Order is important
+*/
+
+#include "../svgtopt/group/bld.inf"
+#include "../svgtopt/SVGTPlugin/group/bld.inf"
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
diff -r 000000000000 -r 88edb906c587 layers.sysdef.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/layers.sysdef.xml Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,14 @@
+
+
+]>
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 88edb906c587 package_definition.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/package_definition.xml Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 000000000000 -r 88edb906c587 package_map.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,1 @@
+
diff -r 000000000000 -r 88edb906c587 svgt_plat/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/group/bld.inf Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 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: Includes all the Domain API specific bld.inf files, which
+* export files.
+*
+*/
+
+
+
+#include "../svgt_api/group/bld.inf"
+#include "../nvg_api/group/bld.inf"
diff -r 000000000000 -r 88edb906c587 svgt_plat/nvg_api/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/nvg_api/group/bld.inf Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 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: File that exports the files belonging to
+: NVG API
+*
+*/
+
+
+#include
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/nvg.h MW_LAYER_PLATFORM_EXPORT_PATH(nvg.h)
+../inc/MVGImageBinder.h MW_LAYER_PLATFORM_EXPORT_PATH(MVGImageBinder.h)
+../inc/NVGIcon.h MW_LAYER_PLATFORM_EXPORT_PATH(NVGIcon.h)
diff -r 000000000000 -r 88edb906c587 svgt_plat/nvg_api/inc/MVGImageBinder.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/nvg_api/inc/MVGImageBinder.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,34 @@
+/*
+* 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: NVG Decoder source file
+*
+*/
+
+
+
+#ifndef MVGIMAGEBINDER_H_
+#define MVGIMAGEBINDER_H_
+
+#include
+
+class MVGImageBinder
+{
+public:
+ virtual ~MVGImageBinder(){}
+
+ virtual TInt BindClientBuffer(TUint aBuffer) = 0;
+ virtual TInt UnBindClientBuffer() = 0;
+};
+
+#endif
diff -r 000000000000 -r 88edb906c587 svgt_plat/nvg_api/inc/NVGIcon.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/nvg_api/inc/NVGIcon.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,68 @@
+/*
+* 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: NVG Decoder header file
+*
+*/
+
+
+#ifndef NVGICON_H_
+#define NVGICON_H_
+
+#include
+
+class CNvgEngine;
+
+/*!
+ * @class MNVGIcon
+ * base class for NVG icons
+ */
+class MNVGIcon
+ {
+public:
+
+ /*!
+ * @fn SetPreserveAspectRatio
+ * @brief Sets the Aspect ration for the NVG icon
+ * @return KErrNone if success, appropriate error code on failure
+ */
+ virtual TInt SetPreserveAspectRatio(TInt aPreserveAspectSetting,
+ TInt aSmilFitSetting) = 0;
+
+ /*!
+ * @fn Rotate
+ * @brief Rotates the icon
+ * @param aAngle angle of rotation
+ * @param aX x coordinate rotation center
+ * @param aY y coordinate rotation center
+ * @return KErrNone if success, appropriate error code on failure
+ */
+ virtual TInt Rotate(TReal32 aAngle, TReal32 aX, TReal32 aY) __SOFTFP = 0;
+
+ /*!
+ * @fn Draw
+ * @brief Draws the icon
+ * @param aSize size of the icon
+ * @param aNVGEngine NVG engine instance
+ * @return KErrNone if success, appropriate error code on failure
+ */
+ virtual TInt Draw(const TSize aSize, CNvgEngine * aNVGEngine) = 0;
+
+ /*!
+ * @fn ~MNVGIcon()
+ * @brief Destructs the icon
+ */
+ virtual ~MNVGIcon();
+ };
+
+#endif
diff -r 000000000000 -r 88edb906c587 svgt_plat/nvg_api/inc/nvg.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/nvg_api/inc/nvg.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,348 @@
+/*
+* 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 NVG_H
+#define NVG_H
+
+#include
+#include
+#include
+
+#include
+
+class TDereferencer;
+class MNVGIcon;
+class CNvgFitToViewBoxImpl;
+class MVGImageBinder;
+class TNVGEngineInternal;
+
+enum TNvgAlignStatusType
+ {
+ ENvgPreserveAspectRatio_None,
+ ENvgPreserveAspectRatio_XminYmin,
+ ENvgPreserveAspectRatio_XmidYmin,
+ ENvgPreserveAspectRatio_XmaxYmin,
+ ENvgPreserveAspectRatio_XminYmid,
+ ENvgPreserveAspectRatio_XmidYmid,
+ ENvgPreserveAspectRatio_XmaxYmid,
+ ENvgPreserveAspectRatio_XminYmax,
+ ENvgPreserveAspectRatio_XmidYmax,
+ ENvgPreserveAspectRatio_XmaxYmax
+ };
+
+enum TNvgMeetOrSliceType
+ {
+ ENvgMeet,
+ ENvgSlice
+ };
+
+enum TNvgBitEncoding
+ {
+ EEightBitEncoding = 1,
+ ESixteenBitEncoding ,
+ EThirtyTwoBitEncoding,
+ EFloatEncoding
+ };
+
+class CNvgEngine : public CBase
+ {
+public :
+ /**
+ * @brief constructor
+ * @version
+ * @param None
+ * @return None
+ */
+ IMPORT_C static CNvgEngine* NewL();
+
+ /**
+ * @berief Destructor
+ */
+ IMPORT_C ~CNvgEngine();
+
+ /**
+ * @brief Set the angle for rotation of the NVG graphic
+ * @version
+ * @param aAngle counter-clockwise rotation by a given angle (expressed in degrees)
+ * aX, aY point around which the rotation must take place
+ * @return None
+ */
+ IMPORT_C void Rotate(TReal32 aAngle, TReal32 aX, TReal32 aY) __SOFTFP;
+
+ /**
+ * @brief Gets the viewbox width and height from the NVG bytedata
+ * @version
+ * @param aBuf NVG byte data of the file
+ * @return None
+ */
+ IMPORT_C TSize ContentDimensions(const TDesC8& aBuf);
+
+ /**
+ * @brief Render NVG onto the bitmap
+ * @version
+ * @param aBuf byte data of NVG file
+ * aSize Size in pixels of the target
+ * aDstBitmap Target bitmap
+ * aMask Target mask
+ * @return None
+ */
+ IMPORT_C TInt DrawNvg(const TDesC8& aBuf, const TSize& aSize, CFbsBitmap* aDstBitmap, CFbsBitmap* aMask );
+
+ /**
+ * @brief Creates NVGIcon, openVG objects are cached
+ * @param aBuf byte data of NVG file
+ * aSize Size in pixels of the target
+ * @return NVG icon object on success, 0 on failure
+ */
+ IMPORT_C MNVGIcon * CreateNVGIcon(const TDesC8& aBuf, const TSize& aSize);
+
+ /**
+ * @brief Set the preserve aspect ratio for the NVG file
+ * @version
+ * @param
+ * @return None
+ */
+ IMPORT_C void SetPreserveAspectRatio( TNvgAlignStatusType aPreserveAspectSetting, TNvgMeetOrSliceType aSmilFitSetting );
+
+ /**
+ * @brief Reset the OpenVG handles in NVG Engine
+ * @version
+ * @param
+ * @return None
+ */
+ IMPORT_C void ResetNvgState();
+
+ /**
+ * @brief Sets the BackGround Colour for the target
+ * @version
+ * @param aRGBA8888Color colour in 32 bit RGBA format
+ * @return None
+ */
+ IMPORT_C void SetBackgroundColor( TUint32 aRGBA8888Color );
+
+ /**
+ * @fn SetVGImageBinder
+ * @brief Sets the callback for binding image to surface, nvgengine doesn't owns the implementation
+ * @param aImageBinder an implementation for MVGImageBinder, ownership is with the caller
+ */
+ void SetVGImageBinder(MVGImageBinder * aImageBinder)
+ {
+ iVGImageBinder = aImageBinder;
+ }
+
+ /**
+ * @fn OpenVGErrorToSymbianError
+ * @brief Converts OpenVg errors to symbian error type
+ */
+ static TInt OpenVGErrorToSymbianError( TInt aError );
+
+private :
+
+ /**
+ * Checks whether the given matrix is identity
+ */
+ TBool IsIdentity(VGfloat array[]);
+
+ /**
+ * Draws the nvg icon
+ */
+ void DoDrawNVGL(const TDesC8& aBuf, const TSize& aSize, CFbsBitmap* aDstBitmap, CFbsBitmap* aMask);
+
+ /**
+ * Draws the nvg-tlv icon
+ */
+ TInt DrawTLVL(const TDesC8& aBuf, const TSize& aTargetSize, CFbsBitmap* aDstBitmap, CFbsBitmap* aMask);
+
+ /**
+ * Draws the nvg-cs icon
+ */
+ TInt DrawCommandSectionL(TDereferencer * aIconData, const TSize& aTargetSize, CFbsBitmap* aDstBitmap, CFbsBitmap* aMask);
+
+ /**
+ * Constructor
+ */
+ CNvgEngine();
+
+ /**
+ * Constructor
+ */
+ void ConstructL();
+
+ /**
+ * SetPaint gradient or solid in OpenVG
+ */
+ TInt SetFillPaintL(TDereferencer * aIconData);
+
+ /**
+ * SetColor in OpenVG
+ */
+ TInt SetColorRampL(TDereferencer * aIconData);
+
+ /**
+ * Call vgDrawPath in OpenVG
+ */
+ void DrawPathL(TDereferencer * aIconData);
+
+ /**
+ * call SetTranslate in OpenVG
+ */
+ void SetTransformL(TDereferencer * aIconData, TUint32 &transVal,const VGfloat* aCurrentMatrix);
+
+ /**
+ * Set stroke color in Openvg
+ */
+ void SetStrokePaintL(TDereferencer * aIconData);
+
+ /**
+ * Sets the stroke Width
+ */
+ void SetStrokeWidth(const TUint8* aBuf);
+
+ /**
+ * Sets the miter limit
+ */
+ void SetStrokeMiterLimit(const TUint8* aBuf);
+
+
+ /**
+ * Generate Mask for modes not supported by custom binding API
+ */
+ void GenerateMask(CFbsBitmap* aMask);
+
+
+ /**
+ * To clear the background of the target
+ */
+ void ClearBackground();
+
+ /**
+ * Stores the callres matrix mode and matricies
+ */
+ void UpdateClientMatrices();
+
+ /**
+ * Restores the callres matrix mode and matricies
+ */
+ void RestoreClientMatrices();
+
+ /**
+ * Point transforms according to the given matrix
+ */
+ TPoint GetTranslatedPoint(VGfloat aTRMatrix[9], TPoint aPoint);
+
+ /**
+ * Gives the minimum of the given arguments
+ */
+ VGfloat MinVal4(VGfloat x1, VGfloat x2, VGfloat x3, VGfloat x4 );
+
+ /**
+ * Gives the maximum of the given arguments
+ */
+ VGfloat MaxVal4(VGfloat x1, VGfloat x2, VGfloat x3, VGfloat x4 );
+
+ /**
+ * Initializes the OpenVg handles
+ */
+ TInt InitializeGC();
+
+ /**
+ * Create the path handle
+ */
+ TInt CreatePathHandle(TInt16 aPathDataType, TReal32 aScale, TReal32 aBias);
+
+ /**
+ * Applies the rotation
+ */
+ void ApplyRotation();
+
+ /**
+ * Applies the scissoring
+ */
+ void ApplyScissoring(VGfloat aMatrix[], const TSize& aTargetSize);
+
+ /**
+ * Applies viewbox to viewport transformation
+ */
+ void ApplyViewboxToViewPortTransformationL(const TSize& aTargetSize, TReal32 aViewboxX, TReal32 aViewboxY,
+ TReal32 aViewboxW, TReal32 aViewboxH);
+
+ /**
+ * Executes the nvg-cs commands
+ */
+ void ExecuteNVGCSCommandLoopL(TUint16 aCommandCount, TDereferencer * aIconData, TDereferencer * aOffsetVector,
+ TDereferencer * aCommandSection, TInt aNVGVersion);
+
+private :
+
+ CFbsBitmap* iDstBimtap; //! Target Bitmap onto which the drawing will be rendered
+ TSize iCurrentBufferSize; //! Width and height of the target bitmap
+
+ VGPath iPath; //! The path elements are appended to this path
+ VGPaint iPaintFill; //! Paint handle for fill
+ VGPaint iPaintStroke; //! Paint handle for stroke
+
+ VGPaint iGradPaintFill;
+ VGPaint iGradPaintStroke;
+ VGPaint iUserStrokePaint;
+ TUint32 iUserStrokePaintColor;
+
+ TInt iFillAlpha; //! For fill alpha value
+ TInt iStrokeAlpha; //! Set alpha value for stroke
+
+ VGboolean idoFill; //! Flags for fill
+ VGboolean idoStroke; //! Flags for stroke
+
+ VGfloat * iColorRamps; //! This member variable is not used just kept for BC
+ CNvgFitToViewBoxImpl * iFitToViewBoxImpl; //! This member variable is not used just kept for BC
+
+ VGfloat iRotateAngle; //! Rotation angle in degrees
+ TBool iRotateApplied; //! Is rotation angle specified
+
+ /*
+ * caller's matrix mode and matricies, must be restored after operation
+ */
+ VGint iMatrixMode;
+ TReal32 iImageMatrix[9];
+ TReal32 iPathMatrix[9];
+ TReal32 iFillPaintMatrix[9];
+ TReal32 iStrokePaintMatrix[9];
+
+ TInt16 iLastPathDataType;
+
+ TNvgAlignStatusType iPreserveAspectSetting; //! Aspect Ratio setting
+ TNvgMeetOrSliceType iSmilFitSetting; //! SMIL Fit setting
+
+ TUint32 iBackgroundColor;
+
+ TReal32 iCentreX; //! Rotate center x-coordinate
+ TReal32 iCentreY; //! Rotate center y-coordinate
+
+ MVGImageBinder * iVGImageBinder; //! image binder
+
+ /**
+ * This class is added to maintain BC.
+ * If you want to add new member variable you can add in this class, without breaking BC.
+ * It is better to add members which are depend on macro's in this class.
+ */
+ TNVGEngineInternal *iInternal;
+
+#ifdef OPENVG_OBJECT_CACHING
+ VGPath CreatePath();
+#endif
+};
+
+#endif
diff -r 000000000000 -r 88edb906c587 svgt_plat/nvg_api/nvg_api.metaxml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/nvg_api/nvg_api.metaxml Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,14 @@
+
+
+NVG API
+This API is used to decode the NVG icons.
+c++
+svgtopt
+
+
+
+
+no
+no
+
+
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/group/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/group/bld.inf Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 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: File that exports the files belonging to
+: SVGT API
+*
+*/
+
+
+#include
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/SVGImageLoadingObserver.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGImageLoadingObserver.h)
+../inc/SVGEngineInterfaceImpl.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGEngineInterfaceImpl.h)
+../inc/SvgListener.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGListener.h)
+../inc/SVGErrorImpl.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGErrorImpl.h)
+../inc/SvgJavaInterfaceImpl.h MW_LAYER_PLATFORM_EXPORT_PATH(SvgJavaInterfaceImpl.h)
+../inc/SVGHyperlinkListener.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGHyperlinkListener.h)
+../inc/SVGAnimationListener.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGAnimationListener.h)
+../inc/SVGRequestObserver.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGRequestObserver.h)
+../inc/SVGRendererId.h MW_LAYER_PLATFORM_EXPORT_PATH(SVGRendererId.h)
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGAnimationListener.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGAnimationListener.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,65 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef __INC_MSVGANIMATIONLISTENER__
+#define __INC_MSVGANIMATIONLISTENER__
+
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about hyperlinks. The client (listener) is notified when
+ * a pointer has entered or exited a hyperlink and when a hyperlink is activated.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class MSvgAnimationListener
+ {
+ public:
+
+ /**
+ * Notified when a pointer enters a hyperlink element.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool AnimationStarted(TBool isAnimationIndefinite) = 0;
+
+ /**
+ * Notified when a pointer exits a hyperlink element.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool AnimationPaused() = 0;
+
+ /**
+ * This method is called to notify the client that a link has been
+ * activated.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool AnimationEnded() = 0;
+
+ };
+
+#endif /*__INC_MSVGHYPERLINKLISTENER__*/
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGEngineInterfaceImpl.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGEngineInterfaceImpl.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,2173 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef SVGENGINEINTERFACEIMPL_H
+#define SVGENGINEINTERFACEIMPL_H
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+//does this need to be in a #define
+#include
+#include
+#include
+#include "SVGRendererId.h"
+#include "SVGListener.h"
+
+const TInt KSvgEngineUidValue=0x040039CE;
+const TUid KSvgEngineUid={KSvgEngineUidValue};
+
+typedef TUint TRenderingQuality;
+const TRenderingQuality KLowNoAA = 0;
+const TRenderingQuality KHighNoAA = 1;
+const TRenderingQuality KLowAA = 2;
+const TRenderingQuality KHighAA = 3;
+
+const TInt KInvalidEnumAttribute = -10000;
+const TReal32 KInvalidFloatAttribute = -10000;
+#define KSVGColorNone 2
+#define KSVGCurrentColor 3
+#define KSVGColorInherit 4
+#define KSVGAttributeInherit 5
+#define __TLV_ // Needed by orbit.
+
+enum TSvgErrorCode
+{
+ ESvgNoError = 0,
+ ESvgFileNotFound,
+ ESvgDocumentNotValid,
+ ESvgDocumentNotAvailable,
+ ESvgNoMemory,
+ ESvgDiskFull,
+ ESvgUnknown,
+ ESvgMissingRequiredAttribute,
+ ESvgInvalidAttributeValue,
+ ESvgbFileNotValid,
+ ESvgDRMFailure,
+ ESvgThumbNailRestriction
+};
+
+enum TSvgPreserveAspectAlignType
+ {
+ ESvgPreserveAspectRatio_None,
+ ESvgPreserveAspectRatio_Unknown,
+ ESvgPreserveAspectRatio_XmaxYmax,
+ ESvgPreserveAspectRatio_XmaxYmid,
+ ESvgPreserveAspectRatio_XmaxYmin,
+ ESvgPreserveAspectRatio_XmidYmax,
+ ESvgPreserveAspectRatio_XmidYmid, //default
+ ESvgPreserveAspectRatio_XmidYmin,
+ ESvgPreserveAspectRatio_XminYmax,
+ ESvgPreserveAspectRatio_XminYmid,
+ ESvgPreserveAspectRatio_XminYmin
+ };
+
+enum TSvgMeetOrSliceType
+ {
+ ESvgMeetOrSlice_Meet,
+ ESvgMeetOrSlice_Slice,
+ ESvgMeetOrSlice_Unknown
+ };
+
+class MSvgHyperlinkListener;
+class MSvgTextAreaListener;
+class MSvgTextListener;
+class MSvgAnimationListener;
+class MSvgListener;
+class CGfxGeneralPath;
+class CFbsBitmap;
+class CSvgEngineImpl;
+//class CSvgGcStack;
+class CSvgElementImpl;
+class MSvgEventReceiver;
+class MSvgRequestObserver;
+class CSvgTimer;
+class MXmlElement;
+class CSvgDocumentImpl;
+class CXmlElementImpl;
+class CSvgErrorImpl;
+class CSvgTextElementImpl;
+
+class CSvgBitmapFontProvider;
+class MRect
+ {
+ public:
+
+ /**
+ * Get the four points for a rectangle
+ *
+ * @since 1.0
+ * @return : void
+ */
+ virtual void GetPoints(TPoint& aPoint1, TPoint& aPoint2, TPoint& aPoint3, TPoint& aPoint4) const = 0;
+
+ virtual TBool Intersects( const MRect& aRect ) = 0;
+
+ virtual void Center( TPoint& aCenter ) = 0;
+
+ };
+
+
+class MSvgError
+ {
+ public:
+
+ /**
+ * Determine wether an error is indicated by this object.
+ *
+ * @since 1.0
+ * @return : ETrue, if ErrorCode() != ESvgNoError
+ */
+ virtual TBool HasError() = 0;
+
+ /**
+ * Determine wether an error is only a warning.
+ * This should be a state when the svg may be display, despite
+ * a conflict.
+ *
+ * @since 1.0
+ * @return ETrue if HasError() is only a warning.
+ */
+ virtual TBool IsWarning() = 0;
+
+ /**
+ * Get the error code contained by this object.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ virtual TSvgErrorCode ErrorCode() = 0;
+
+ /**
+ * Get the error description string for this object.
+ *
+ * @since 1.0
+ * @return : error description string.
+ */
+ virtual TDesC& Description() = 0;
+
+ /**
+ * Get the system error code contained by this object. For example,
+ * If ErrorCode() is ESvgDRMFailure, SystemErrorCode() will contain
+ * the error-code returned by the system for a drm-failure.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ virtual TInt SystemErrorCode() = 0;
+ };
+
+/**
+ * This class implements the interface for a SVGT Engine, providing methods
+ * to load svg contents and manipulate the output, such as zooming, panning
+ * and rotating the display.
+ */
+class CSvgEngineInterfaceImpl : public CBase
+ {
+ public:
+
+ IMPORT_C MSvgError* CSvgEngineInterfaceImpl::SaveSvgDom(TInt aHandle, const TDesC& aFileName, TInt aEngine = NULL);
+
+ /**
+ * Two phase construction
+ */
+ // April 27th : Add thrid new parameter for specifying the Text height
+ IMPORT_C static CSvgEngineInterfaceImpl* NewL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec );
+ IMPORT_C static CSvgEngineInterfaceImpl* NewL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec ,SVGRendererId aRendererType );
+
+ /**
+ * Create a new Svg Engine interface.
+ *
+ * @since 1.0
+ * @param : aFrameBuffer -- bitmap to draw resulting svg image.
+ * @param : aReqObserver -- interface for callbacks to retrieve info
+ * only client can provide, such as opening files.
+ * @param : aFontSpec -- Font spec to use for text drawing.
+ * @return : none
+ */
+ IMPORT_C static CSvgEngineInterfaceImpl* NewLC( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec );
+ // NGA:: overloading NewLC to include a renderer selector parameter
+ IMPORT_C static CSvgEngineInterfaceImpl* NewLC( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec ,SVGRendererId aRendererType );
+
+ /**
+ * Added for getting the NVG-TLV from S60SVGTEngine in QT S60 baseport.
+ * @since 1.0
+ * @return : Pointer to the tlv data
+ */
+
+ IMPORT_C const TPtrC8 TLVEncodedData() const;
+
+ /**
+ * Svg Engine interface Destructor.
+ *
+ * @since 1.0
+ * @param : None
+ * @return : none
+ */
+ IMPORT_C ~CSvgEngineInterfaceImpl();
+
+ /**
+ * Load a svg document from a file. An error is return if one is encountered.
+ * Some errors may be more like warnings, which may allow the svg content
+ * to display nevertheless.
+ *
+ * @since 1.0
+ * @param aFileName -- Name of svg file
+ * @return : Error code if any
+ */
+ IMPORT_C MSvgError* Load( const TDesC& aFileName );
+
+ /**
+ * Load a svg document from a byte array. An error is return if one is encountered.
+ * Some errors may be more like warnings, which may allow the svg content
+ * to display nevertheless.
+ *
+ * @since 1.0
+ * @param aByteData -- Byte array of svg document.
+ * @return : Error code if any
+ */
+ IMPORT_C MSvgError* Load( const TDesC8& aByteData );
+
+ /**
+ * Load a svg document from from the RFile Handle passed. An error is return if one is encountered.
+ * Some errors may be more like warnings, which may allow the svg content
+ * to display nevertheless.
+ *
+ * @since 1.0
+ * @param aFileHandle -- RFile handle of svg document.
+ * @return : Error code if any
+ **/
+ IMPORT_C MSvgError* Load( RFile& aFileHandle );
+
+ /**
+ * Destroy the currently "loaded" svg document. Prepared documents,
+ * must be destroy through DeleteDom, or the engine will destroy them
+ * in its destructor function.
+ *
+ * @since 1.0
+ * @param : none
+ * @return : none
+ */
+ IMPORT_C void Destroy();
+
+
+ /**
+ * Request the SVG Engine to begin an animation.
+ *
+ * @since 1.0
+ * @param : aEngine -- NULL to start internal svg-engine
+ * @param : aIsMainThread -- EFalse to start engine asynchronously,
+ * defaulted to EFalse.
+ * @return : none
+ */
+ IMPORT_C void Start( CSvgEngineImpl* aEngine = NULL,
+ TBool aIsMainThread = ETrue );
+
+ /**
+ * Request the SVG Engine to begin an animation.
+ * This method returns an error code.
+ * @since 1.0
+ * @param : MSvgError*& -- Pointer to Error object ,
+ * @param : aEngine -- NULL to start internal svg-engine,
+ * @return : none
+ */
+
+ IMPORT_C void Start( MSvgError*& aError,
+ CSvgEngineImpl* aEngine = NULL
+ );
+ /**
+ * Request the SVG Engine to stop an animation.
+ *
+ * @since 1.0
+ * @param : none
+ * @return : none
+ */
+ IMPORT_C void Stop( CSvgEngineImpl* aEngine = NULL );
+
+ /**
+ * Request the SVG Engine to pause an animation.
+ *
+ * @since Series 60 3.0
+ * @param : none
+ * @return : none
+ */
+ IMPORT_C void Pause( CSvgEngineImpl* aEngine = NULL );
+
+ /**
+ * Request the SVG Engine to resume an animation.
+ *
+ * @since 1.0
+ * @param : none
+ * @return : none
+ */
+ IMPORT_C void Resume( CSvgEngineImpl* aEngine = NULL );
+
+ /**
+ * Get the animation duration of a svg content, in milliseconds,
+ * for non-indefinite animations.
+ *
+ * @since 1.0
+ * @param
+ * @return the animation duration.
+ */
+ IMPORT_C TUint32 Duration( TInt aEngine = NULL );
+
+ /**
+ * Reset the view to the default values. Redraw() must be called to
+ * update the output image.
+ *
+ * @since 1.0
+ * @param
+ * @return the animation duration.
+ */
+ IMPORT_C void OriginalView( TInt aEngine = NULL );
+
+
+ /**
+ * Request the SVG Engine to zoom-in on the content given the zoom factor.
+ * The value range is greater than zero. The current zoom factor is
+ * multiplied with the given value to yield the final result. Redraw()
+ * must be called to update the output image.
+ *
+ * @since 1.0
+ * @param : aScaleFactor -- A value greater than zero.
+ * @return
+ */
+ IMPORT_C void Zoom( TReal32 aScaleFactor, TInt aEngine = NULL ) __SOFTFP;
+
+ /**
+ * Shift the center of the content in both x and y coordinates. The
+ * values are in user-coordinate values and may be negative. Redraw()
+ * must be called to update the output image.
+ *
+ * @since 1.0
+ * @param : aX -- Number of pixels to pan left (negative) or right.
+ * @param : aY -- Number of pixels to pan up (negative) or down.
+ * @return
+ */
+ IMPORT_C void Pan( TInt aX, TInt aY, TInt aEngine = NULL );
+
+ /**
+ * Shift the center of the content in both x and y coordinates. The
+ * values are in user-coordinate values and may be negative.
+ *
+ * @since 1.0
+ * @param : aX -- Number of pixels to pan left (negative) or right.
+ * @param : aY -- Number of pixels to pan up (negative) or down.
+ * @return TBool
+ */
+ IMPORT_C TBool IsPanPossible( TInt aX, TInt aY, TInt aEngine = NULL );
+
+ /**
+ * Checks the panning possibility in four directions. A efficient
+ * API for clients which want to show 4 way panning indicators.
+ * It is efficient for these clients to get the all four direction
+ * information at one go. Saves rendering time significantly per
+ * frame.
+ *
+ * @since 1.0
+ * @param : left: would contain result of whether panning of one pixel
+ * possible to left.
+ * @param : right: would contain result of whether panning of one pixel
+ * possible to right.
+ * @param : up: would contain result of whether panning of one pixel
+ * possible to up.
+ * @param : down: would contain result of whether panning of one pixel
+ * possible to down.
+ * @param :
+ * @return
+ */
+ IMPORT_C void IsPanPossibleFourWay
+ ( TBool& left, TBool& right, TBool& up, TBool& down, TInt aEngine = NULL);
+
+ /**
+ * Rotate the content about the given point by the given angle.
+ * The point is in user-coordinates. Redraw() must be called to
+ * update the output image.
+ *
+ * @since 1.0
+ * @param : aAngle -- Number of gradients to rotate.
+ * @param : aX -- X center of rotation
+ * @param : aY -- Y center of rotation.
+ * @return
+ */
+ IMPORT_C void Rotate( TReal32 aAngle,
+ TInt aX,
+ TInt aY,
+ TInt aEngine = NULL ) __SOFTFP;
+
+ /**
+ * Notify the SVG Engine that a "mouse down" event. The engine will
+ * initiate mouse-related events, such as links, if appropriate.
+ *
+ * @since 1.0
+ * @param : aX -- x coordinate of mouse event.
+ * @param : aY -- y coordinate of mouse event.
+ * @return
+ */
+ IMPORT_C TInt MouseDown( TInt aX, TInt aY, TInt aEngine = NULL );
+
+ /**
+ * Notify the SVG Engine that a "mouse up" event. The engine will
+ * initiate mouse-related events, such as links, if appropriate.
+ *
+ * @since 1.0
+ * @param : aX -- x coordinate of mouse event.
+ * @param : aY -- y coordinate of mouse event.
+ * @return
+ */
+ IMPORT_C void MouseUp( TInt aX, TInt aY, TInt aEngine = NULL );
+
+ /**
+ * Notify the SVG Engine that a "mouse move" event. The engine will
+ * initiate mouse-related events, such as links, if appropriate.
+ *
+ * @since 1.0
+ * @param : aX -- x coordinate of mouse event.
+ * @param : aY -- y coordinate of mouse event.
+ * @return
+ */
+ IMPORT_C void MouseMove( TInt aX, TInt aY, TInt aEngine = NULL );
+
+ /**
+ * Notify the SVG Engine that a "key press" event. The engine will
+ * initiate key-related events if appropriate.
+ * @since 1.0
+ * @param : aKeyCode -- key code of key event.
+ * @return
+ */
+
+ IMPORT_C void KeyPress( const TKeyEvent& aKeyEvent, TInt aEngine = NULL );
+
+ /**
+ * Retrieve the rendering quality setting. See TRenderingQuality
+ * for possible values.
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ IMPORT_C TRenderingQuality GetRenderQuality( );
+
+ /**
+ * Set the rendering quality. Low-level graphics is always set
+ * to high -- no effect from this call. Redraw() must be called to
+ * update the output image.
+ *
+ * @since 1.0
+ * @param : aQualityLevel -- rendering quality
+ * @return
+ */
+ IMPORT_C void SetRenderQuality( TRenderingQuality aQualityLevel, TInt aEngine = NULL );
+
+ /**
+ * Retrieve the reference to the svg document object.
+ *
+ * @since 1.0
+ * @param none
+ * @return current document that was Loaded or Prepare/UseDom.
+ */
+
+ //DEPRECATED API...
+ IMPORT_C CSvgDocumentImpl* SvgDocument();
+
+ /**
+ * Set the minimum delay between each frame, in milliseconds.
+ * Frames per Second = 1000 / aFrameDelay
+ *
+ * The default/minimum value is 67 milliseconds (15 fps).
+ *
+ * @since 1.0
+ * @param : aFrameDelay -- animation frame duration.
+ * @return none
+ */
+ IMPORT_C void SetAnimFrameDuration( TUint aAFDur, TInt aEngine = NULL );
+
+ /**
+ * Request for updating the off-screen image buffer with the
+ * svg content.
+ *
+ * @since 1.0
+ * @param aIsMainThread -- indicate whether this redraw request
+ * is called in the main thread (executed immediately).
+ * Otherwise, this request is to be executed asynchronously.
+ * 'Main thread' used here means the thread which instantiated
+ * this CSvgEngineInterfaceImpl object.
+ * @return none
+ */
+ IMPORT_C void Redraw( TBool aIsMainThread = ETrue, TInt aEngine = NULL );
+
+ /**
+ * Switch the debugging mode on/off.
+ *
+ * @since 1.0
+ * @param none
+ * @return none
+ */
+ IMPORT_C void SwitchDebugInfo( TInt aEngine = NULL );
+
+ /**
+ * This is the integer version of ContentDimensions.
+ * 1) Return the size of the width/height if given in non-percentage.
+ *
+ * 2) If width/height are given as percentages:
+ * A) If viewbox attribute is specified, return the viewbox width/height times the width/height percentages.
+ * B) Else return the content bounding-box size times times the width/height percentages.
+ *
+ * @since 1.0
+ * @param none
+ * @return TSize
+ */
+ IMPORT_C TSize ContentDimensions( TInt aEngine = NULL );
+
+ /**
+ * This is the floating-point version of ContentDimensions.
+ * 1) Return the size of the width/height if given in non-percentage.
+ *
+ * 2) If width/height are given as percentages:
+ * A) If viewbox attribute is specified, return the viewbox width/height times the width/height percentages.
+ * B) Else return the content bounding-box size times times the width/height percentages.
+ *
+ * @since 1.0
+ * @param none
+ * @return
+ */
+ IMPORT_C void ContentDimensions( TReal32& aWidth, TReal32& aHeight, TInt aEngine = NULL ) __SOFTFP;
+
+ /**
+ * Retrieve the content size in user-coordinates if specified as
+ * percentage.
+ *
+ * @since 3.1
+ * @param none
+ * @return TSize
+ */
+ IMPORT_C TSize ContentDimensionsInPercentage( TInt aEngine = NULL );
+
+
+ /**
+ * Set focus coordinates to the next focusable object.
+ *
+ * @since 1.0
+ * @param none
+ * @return rectangle area having the focus on an object.
+ */
+ IMPORT_C TRect FocusNext();
+
+ /**
+ * Set focus coordinates to the previous focusable object.
+ *
+ * @since 1.0
+ * @param none
+ * @return rectangle area having the focus on the previous object.
+ */
+ IMPORT_C TRect FocusPrevious();
+
+ /**
+ * Activate currently focussed object.
+ *
+ * @since 1.0
+ * @param none
+ * @return none
+ */
+ IMPORT_C void ActivateObjectInFocus();
+
+ /**
+ * Get the current animation frame time, in milliseconds.
+ *
+ * @since 1.0
+ * @param none
+ * @return current frame time.
+ */
+ IMPORT_C TInt32 MediaTime( TInt aEngine = NULL );
+
+ /**
+ * Set the current animation frame time, in millseconds.
+ *
+ * @since 1.0
+ * @param aTime -- time to forward/rewind to.
+ * @return none
+ */
+ IMPORT_C void SetMediaTime( TInt32 aTime, TInt aEngine = NULL );
+ /**
+ * Returns the Size of Viewport
+ *
+ * @since 1.0
+ * @param none
+ * @return viewport size
+ */
+ IMPORT_C TSize Size( TInt aEngine = NULL );
+
+ /**
+ * Returns the Position of Viewport
+ *
+ * @since 1.0
+ * @param none
+ * @return
+ */
+ IMPORT_C TPoint Position( TInt aEngine = NULL ) ;
+
+ /**
+ * Reset the focus list
+ * This happens in the event of new additions to EventReceiver list and/or
+ * sorting of this list
+ *
+ * @since 1.0
+ * @param aIndex - index of object to reset focus.
+ * @return
+ */
+ void ResetFocusIndex(TInt32 aIndex);
+
+ /**
+ * Generate mask bitmap from the current frame
+ *
+ * @since 1.0
+ * @param aMask - bitmap to hold masking info.
+ * @return none
+ */
+ IMPORT_C void GenerateMask( CFbsBitmap* aMask, TInt aEngine = NULL );
+
+ /**
+ * Set the color for clearing background.
+ *
+ * @since 1.0
+ * @param aRGBA8888Color - 32-bit color value
+ * @return none
+ */
+ IMPORT_C void SetBackgroundColor( TUint32 aRGBA8888Color, CSvgEngineImpl* aEngine = NULL );
+
+ /**
+ * Returns SVG Engine State
+ *
+ * @since 1.0
+ * @param none
+ * @return 0 == SVG Running and 1 == SVG Paused
+ */
+
+ IMPORT_C TInt CurrentState( TInt aEngine = NULL );
+
+ /**
+ * Returns SVG Engine Pan Position
+ *
+ * @since 1.0
+ * @param
+ * @return TPoint
+ */
+ IMPORT_C TPoint PanPosition( TInt aEngine = NULL );
+
+ /**
+ * This method is a special case Constructor method used for polymorphic
+ * DLL loading, which enforces this method to be public.
+ *
+ * @since 1.0
+ * @return
+ */
+ IMPORT_C CSvgEngineInterfaceImpl();
+
+ /**
+ * Replay the Current Animation.
+ *
+ * @since 1.0
+ * @param :
+ * @return : MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* Replay( TInt aEngine = NULL );
+
+ /**Added for DOM Caching API changes*/
+
+ /**
+ * Parses and Prepares DOM for given SVG or SVGB file.
+ * Provides a Handle to the created DOM. A prepared DOM may be
+ * delete with DeleteDom or when the engine is deleted.
+ *
+ * @param aFileName: the name of the file to be parsed
+ * @param aHandle: Handle to the created DOM.
+ * @return: MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* PrepareDom(const TDesC& aFileName, TInt& aHandle, TInt aEngine = NULL);
+
+ /**
+ * Parses and Prepares DOM for both svg and svg binary data.
+ * Provides a Handle to the created DOM. A prepared DOM may be
+ * delete with DeleteDom or when the engine is deleted.
+ *
+ * @param aByteData: Svg/SvgBinary data.
+ * @param aHandle: Handle to the created DOM.
+ * @return: MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* PrepareDom(const TDesC8& aByteData, TInt& aHandle, TInt aEngine = NULL);
+
+ /**
+ * Parses and Prepares DOM for given SVG or SVGB file.
+ * Provides a Handle to the created DOM. A prepared DOM may be
+ * delete with DeleteDom or when the engine is deleted.
+ *
+ * @param : aFileHandle -- File handle
+ * @param : aHandle -- Handle to a DOM.
+ * @return: MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* PrepareDom( RFile& aFileHandle, TInt& aHandle, TInt aEngine = NULL );
+
+ /**
+ * Defines view box for SVG content associated with
+ * handle if not set.
+ */
+
+
+ IMPORT_C void ChooseViewBoxIfNotSet(TInt aDomHandle);
+ /**
+ * Renders the DOM tree associated with the Handle (UseDom).
+ *
+ * @param : aHandle -- Handle to a DOM.
+ * @param : aBitmap -- Bitmap to draw DOM content.
+ *@param : aMaskBuffer - Buffer for mask (alpha values) of framebuffer result (optional).
+ * @return: MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* RenderDom(TInt aHandle, CFbsBitmap* aBitmap, CFbsBitmap* aMaskBuffer = NULL);
+
+ /**
+ * Deletes the DOM tree associated with the Handle.
+ *
+ * @param : aHandle -- Handle to a DOM.
+ * @return: MSvgError* Error object specifying the error occured during operation
+ */
+ IMPORT_C MSvgError* DeleteDom( TInt aHandle );
+
+ /**
+ * Enable/Disable DRM.
+ *
+ * @param : aEnable -- Flag to enable/distable DRM.
+ * @return: none
+ */
+ IMPORT_C void SetDRMMode(TBool aEnable, TInt aEngine = NULL);
+
+ /**
+ * initialization of the engine according to a particular cached DOM tree.
+ *
+ *
+ *@param : aHandle -- Handle to DOM Tree.
+ *@param : aRenderBuffer - Buffer for drawing the DOM Tree.
+ *@param : aMaskBuffer - Buffer for mask (alpha values) of framebuffer result (optional).
+ *@param : aEngine - SvgEngine handle to manager DOM (optional).
+ *@return MSvgError* Error object specifying the error occured.
+ */
+ IMPORT_C MSvgError* UseDom(TInt aHandle, CFbsBitmap* aRenderBuffer, CFbsBitmap* aMaskBuffer = NULL, TInt aEngine = NULL);
+
+ IMPORT_C MSvgError* UseDom(TInt aHandle,CFbsBitmap* aRenderBuffer, CFbsBitmap* aMaskBuffer,TSize aRenderBufferSize,TDisplayMode aRenderDisplayMode,TDisplayMode aMaskDisplayMode,TInt aEngine = NULL);
+ /**
+ * Set the SVG dimensions to the root buffer size.
+ *
+ *@param aWidth - width to set root size.
+ *@param aHeight - height to set root size.
+ *@return none
+ */
+ IMPORT_C void SetSvgDimensionToFrameBuffer(TUint aWidth, TUint aHeight, TInt aEngine = NULL);
+
+ /**
+ * Return the scaled bounding box for the whole svg document.
+ *
+ *@param none
+ *@return the scaled bounding box info.
+ */
+ IMPORT_C TRect GetSvgBoundingBox( TInt aEngine = NULL );
+
+ /**
+ * Check for interactive/non-interactive content.
+ *
+ *@param aDocument - Document Pointer
+ *@return wether document has interactive elements.
+ */
+ IMPORT_C TBool IsContentInteractive( CSvgDocumentImpl* aDocument, TInt aEngine = NULL );
+
+ /**
+ * Update the path information with the given element
+ *
+ *@param hPath - path handle
+ *@param hElement - element handle
+ *@return none
+ */
+ IMPORT_C void UpdatePath(TInt hPath, CSvgElementImpl* hElement);
+
+ /**
+ * Returns the size (number of external elements) in the given document
+ *
+ *@param aDocument - Document Pointer
+ *@return number of external elements
+ */
+ IMPORT_C TInt GetExternalListSize(CSvgDocumentImpl* aDocument);
+
+ /**
+ * Given an index number and a document handle returns an external resource uri associated
+ * with an element
+ *@param aDocument - Document Pointer index - index in external list
+ *@return URI
+ */
+ IMPORT_C void GetExternalListItemL(
+ CSvgDocumentImpl* aDocument, TInt aIndex, TPtrC16& aUri);
+
+ /**
+ * Given a document handle and a url this call attaches
+ * the given data (ldata) to every element that references that url
+ *
+ *@param aDocument - Document Pointer
+ *@param lUrl- uri string that is an external resource to be retrieved
+ *@param ldata - byte array containing the data that that external resource recieved
+ *@return none
+ * NULL if image-decoding is not initiated.
+ */
+ IMPORT_C CSvgElementImpl* AddExternalData( CSvgDocumentImpl* aDocument,
+ const TDesC& aUri,
+ const TDesC8& aData,
+ TBool aMakeCopy = EFalse,
+ TInt aSize = 0,
+ TInt aEngine = NULL );
+
+ /**
+ * Create an instance of a CSvgEngineImpl.
+ *
+ *@param : None
+ *@return Pointer to CSvgEngineImpl object if creation is succesful, otherwise
+ * the function leaves.
+ */
+ IMPORT_C CSvgEngineImpl* SvgEngineNewL();
+
+ /**
+ * Intialize the given SVG Engine.
+ *
+ *@param : aEngine -- SVG Engine.
+ *@return None
+ */
+ IMPORT_C void StartEngine( CSvgEngineImpl* aEngine );
+ IMPORT_C void RenderFrame( CSvgEngineImpl* aEngine, TUint aCurrentTime );
+
+ IMPORT_C void ViewportInit( CSvgDocumentImpl* aDocumentHandle );
+
+ /**
+ * Set the GDI context for the given SVG Engine.
+ *
+ *@param : aEngine -- SVG Engine.
+ *@param : aFrameBuffer -- Bitmap to become gdi context.
+ *@return None
+ */
+ IMPORT_C void SetGdiContextL( CSvgEngineImpl* aEngine, CFbsBitmap* aFrameBuffer );
+
+ /**
+ * Associate the given document with the given engine.
+ *
+ *@param : aEngine -- SVG Engine.
+ *@param : aDocument -- SVG Document
+ *@return None
+ */
+ IMPORT_C void SetDocument( CSvgEngineImpl* aEngine, CSvgDocumentImpl* aDocument );
+ void SvgElementAssignDocument( CSvgElementImpl* aElement, CSvgDocumentImpl* aDoc );
+
+ /**
+ * Create an empty instance of a SVG document.
+ *
+ *@param : aEngine -- SVG Engine.
+ *@param : aDocument -- SVG Document
+ *@return Svg Document if successful, otherwise the function leaves.
+ */
+ IMPORT_C CSvgDocumentImpl* SvgDocumentNewL();
+
+ /**
+ * Fill a SVG document by parsing the given byte array.
+ *
+ *@param : aEngine -- SVG Engine.
+ *@param : aDocument -- SVG Document
+ *@return None if successful, otherwise the function leaves.
+ */
+ IMPORT_C void FillDocumentL( CSvgDocumentImpl* aDocument, const TDesC16& aByteData );
+
+ /**
+ * Destroy the given SVG document
+ *
+ *@param : aDocument -- SVG document.
+ *@return None .
+ */
+ IMPORT_C void DestroyDocument( CSvgDocumentImpl* aDocument );
+
+ /**
+ * Destroy the given SVG engine
+ *
+ *@param : aEngine -- SVG Engine.
+ *@return None .
+ */
+ IMPORT_C void DestroyEngine( CSvgEngineImpl* aEngine );
+
+ /**
+ * Return the root element of the given document.
+ *
+ *@param : aDocument -- SVG document.
+ *@return root element .
+ */
+ IMPORT_C CXmlElementImpl* GetRootElement( CSvgDocumentImpl* aDocument );
+
+ /**
+ * Set a default SvgSvg root element of the given document.
+ *
+ *@param : aDocument -- SVG document.
+ *@return void.
+ */
+ IMPORT_C void InitRootElement( CSvgDocumentImpl* aDocument );
+
+ /**
+ * Return the root element of the given document.
+ *
+ *@param : aDocument -- SVG document.
+ *@param : aId -- id string to search for element.
+ *@return element with given id .
+ */
+ IMPORT_C CXmlElementImpl* GetElementById( CSvgDocumentImpl* aDocument, const TDesC& aId );
+
+ /**
+ * Return the number of ids in a given document
+ *
+ *@param : aDocument -- SVG document.
+ *@return number of ids found.
+ */
+ IMPORT_C TInt GetNumberOfIds( CSvgDocumentImpl* aDocument );
+
+ /**
+ * Return the id at from the document at index
+ *
+ *@param : aDocument -- SVG document.
+ *@param : index -- which id to return
+ *@param : myId -- id string to return by reference.
+ *@return none
+ */
+ IMPORT_C TDesC* GetId( CSvgDocumentImpl* aDocument, TInt index );
+
+ /**
+ * Return parent element of the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@return element with given child.
+ */
+ IMPORT_C CXmlElementImpl* GetParentElement( CXmlElementImpl* aElement );
+
+ /**
+ * Set parent element for the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@param : aParentElement -- SVG parent element.
+ *@return void
+ */
+ IMPORT_C void SetParentElement( CXmlElementImpl* aElement, CXmlElementImpl* aParentElement );
+
+ /**
+ * Set the first child for the given element.
+ *
+ *@param : aFirstChildElement -- SVG element.
+ *@param : aParentElement -- SVG parent element.
+ *@return void
+ */
+ IMPORT_C void SetFirstChildElement( CXmlElementImpl* aFirstChildElement, CXmlElementImpl* aParentElement );
+
+
+ /**
+ * Create an element of the given type.
+ *
+ *@param : aDocument -- SVG element document.
+ *@param : aElementType -- SVG element type.
+ *@return element.
+ */
+ IMPORT_C CXmlElementImpl* CreateElementL( CSvgDocumentImpl* aDocument, TInt aElementType );
+
+ /**
+ * Create an element of the given type.
+ *
+ *@param : aDocument -- SVG element document.
+ *@param : aElementType -- SVG element type.
+ *@return element.
+ */
+ IMPORT_C void DestroyElement( CXmlElementImpl* aElement );
+
+ /**
+ * Append the given child element to the given parent element.
+ *
+ *@param : aParentElement -- SVG parent element.
+ *@param : aChildElement -- SVG child element.
+ *@return None.
+ */
+ IMPORT_C void AppendChild( CXmlElementImpl* aParentElement, CXmlElementImpl* aChildElement, TBool aIsJSR226Element = EFalse);
+
+ /**
+ * Remove the given child element from the given parent element.
+ *
+ *@param : aParentElement -- SVG parent element.
+ *@param : aChildElement -- SVG child element.
+ *@return None.
+ */
+ IMPORT_C void RemoveChild( CXmlElementImpl* aParentElement, CXmlElementImpl* aChildElement);
+
+ /**
+ * Get the first child element in the given parent.
+ *
+ *@param : aParentElement -- SVG parent element.
+ *@return The first child element.
+ */
+ IMPORT_C CXmlElementImpl* GetFirstChild( CXmlElementImpl* aParentElement );
+
+ /**
+ * Get the next sibling element of the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@return The next sibling element.
+ */
+ IMPORT_C CXmlElementImpl* GetNextSibling( CXmlElementImpl* aElement );
+
+ /**
+ * Set the next sibling element for the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@param : aSibling -- SVG sibling element.
+ *@return None
+ */
+ IMPORT_C void SetNextSibling( CXmlElementImpl* aElement, CXmlElementImpl* aSibling );
+
+ /**
+ * Get the document that is associated with the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@return svg document.
+ */
+ IMPORT_C CSvgDocumentImpl* GetOwnerDocument( CXmlElementImpl* aElement );
+
+ /**
+ * Get the element type, such as rect, circle, etc. for the given element.
+ *
+ *@param : aElement -- SVG element.
+ *@return element type
+ */
+ IMPORT_C TInt GetElementType( CXmlElementImpl* aElement );
+
+ /**
+ * Set the given request-observer for the given svg engine.
+ *
+ *@param : aElement -- SVG element.
+ *@return element type
+ */
+ IMPORT_C void SetRequestObserver( CSvgEngineImpl* aEngine, MSvgRequestObserver* aObserver );
+
+ /**
+ * Get the Bounding Box for an element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aX -- X coordinate for the top left.
+ *@param : aY -- Y coordinate for the top left.
+ *@param : aWidth -- Width of the bounding rectangle.
+ *@param : aHeight -- Height for the bounding rectangle.
+ *@return None.
+ */
+ IMPORT_C void GetElementBoundingbox(CSvgElementImpl* aElementHandle,TReal32& aX ,TReal32& aY,TReal32& aWidth,TReal32& aHeight) __SOFTFP;
+
+ /**
+ * Get the unscaled Bounding Box for an element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aX -- X coordinate for the top left.
+ *@param : aY -- Y coordinate for the top left.
+ *@param : aWidth -- Width of the bounding rectangle.
+ *@param : aHeight -- Height for the bounding rectangle.
+ *@return None.
+ */
+
+ IMPORT_C void GetElementUnScaledBoundingBox( CSvgElementImpl* aElementHandle,TReal32& aX ,TReal32& aY,TReal32& aWidth,TReal32& aHeight) __SOFTFP;
+
+ /**
+ * Get the Bounding Box for an element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aPoint1 -- coordinate for the top left.
+ *@param : aPoint2 -- coordinate for the top right.
+ *@param : aPoint3 -- coordinate for the bottom left.
+ *@param : aPoint4 -- coordinate for the bottom right.
+ *@return None.
+ */
+ IMPORT_C void GetFourPointElementBoundingBox(CSvgTextElementImpl* aElementHandle,TPoint& aPoint1 ,TPoint& aPoint2,TPoint& aPoint3,TPoint& aPoint4);
+
+ /**
+ * Get the Float attribute for the element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@return The float attribute value.
+ */
+ IMPORT_C TReal32 GetElementFloatAttribute( CSvgElementImpl* aElementHandle, const TInt aAttributeId) __SOFTFP;
+
+ /**
+ * Set the Float attribute for the element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@param : aValue the value to for the float attribute to be set.
+ *@return None.
+ */
+ IMPORT_C void SetElementFloatAttribute( CSvgElementImpl* aElementHandle, const TInt aAttributeId, TReal32 aValue) __SOFTFP;
+
+ /**
+ * Set the Descriptor attribute for the element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@param : aAttributeValue the value to for the Desc attribute to be set.
+ *@return None.
+ */
+ IMPORT_C void SetElementDesAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId, const TDesC& aAttributeValue);
+
+ /**
+ * Get the Desc attribute for the element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@param : aValue . reference to the attribute value.
+ *@return : None.
+ */
+ IMPORT_C TInt GetElementDesAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId,TPtrC16& aValue);
+
+ /**
+ * Set the Color attribute for the element.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@param : aColorValue The Integer value corresponding to the color.
+ *@return None.
+ */
+ IMPORT_C void SetElementColorAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId,TInt32 aColorValue);
+
+ /**
+ * Get the CoLor attribute for the element. // this basically means the fill and stroke.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@return : Integer containing the RGB value for the color.
+ */
+ IMPORT_C TInt32 GetElementColorAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId);
+
+ /**
+ * Get the Enum attribute for the element. // this basically means the fill and stroke.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@param : Integer containing the enum value for the attribute.
+ */
+ IMPORT_C void SetEnumAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId,TInt32 lValue);
+
+ /**
+ * Set the preserve aspect ratio setting for the current document
+ *
+ *@param : aDocumentHandle
+ *@param : TPreserveAspectRatio a preserve aspect ratio setting
+ */
+ IMPORT_C void SetPreserveAspectRatio( CSvgDocumentImpl* aDocument, TSvgPreserveAspectAlignType aPreserveAspectSetting, TSvgMeetOrSliceType aSmilFitSetting, TBool aFrameBufferOverridesViewport = EFalse );
+
+ /**
+ * Set the Enum attribute for the element. // this basically means the fill and stroke.
+ *
+ *@param : aElementHandle -- SVG element.
+ *@param : aAttribute Id the attribute Id corresponding to the attribute.
+ *@return : Integer containing the enum value for the attribute.
+ */
+ IMPORT_C TInt GetEnumAttribute(CSvgElementImpl* aElementHandle,const TInt aAttributeId,TInt32& lValue);
+ /**
+ * Get the rect values.
+ *
+ *@param : aElementHandle, aX, aY, aWidth, aHeight
+ *@return TBool a viewbox existed
+ */
+ IMPORT_C TBool GetRectAttribute( CXmlElementImpl* aElementHandle,
+ float* aX, float* aY, float* aWidth, float* aHeight );
+
+ /**
+ * Set the rect values.
+ *
+ *@param : aElementHandle, aX, aY, aWidth, aHeight
+ *@return none
+ */
+ IMPORT_C void SetRectAttribute( CXmlElementImpl* aElementHandle,
+ float aX, float aY, float aWidth, float aHeight );
+
+ /**
+ * Get the matrix values.
+ *
+ *@param : aElementHandle, aAVal, aBVal, aCVal, aDVal, aEVal, aFVal
+ *@return none
+ */
+ IMPORT_C void GetMatrixAttribute( CXmlElementImpl* aElementHandle, float* aAVal,
+ float* aBVal, float* aCVal, float* aDVal,
+ float* aEVal, float* aFVal );
+
+ /**
+ * Get the matrix values for a given matrix type.
+ *
+ *@param : aElementHandle, aAVal, aBVal, aCVal, aDVal, aEVal, aFVal
+ *@return none
+ */
+ IMPORT_C void GetMatrixAttribute( CXmlElementImpl* aElementHandle, TInt aAttributeType,
+ float* aAVal, float* aBVal,
+ float* aCVal, float* aDVal,
+ float* aEVal, float* aFVal );
+
+ /**
+ * Set the matrix values.
+ *
+ *@param : aElementHandle, aAVal, aBVal, aCVal, aDVal, aEVal, aFVal
+ *@return none
+ */
+ IMPORT_C void SetMatrixAttribute( CXmlElementImpl* aElementHandle, float aAVal,
+ float aBVal, float aCVal, float aDVal,
+ float aEVal, float aFVal );
+
+ /**
+ * Get the Viewport Width .
+ *
+ *@param : aDocumentHandle
+ *@return TInt integer containing the width of the viewport. viewport means
+ * svg element.
+ */
+ IMPORT_C TInt GetViewportWidth( CSvgDocumentImpl* aDocumentHandle );
+
+ /**
+ * Get the Viewport Height.
+ *
+ *@param : aDocumentHandle
+ *@return TInt integer containing the Height of the viewport. Viewport means
+ * svg Element.
+ */
+ IMPORT_C TInt GetViewportHeight( CSvgDocumentImpl* aDocumentHandle );
+
+ /**
+ * Set the Viewport Width.
+ *
+ *@param : aDocumentHandle
+ *@param TInt integer containing the Width of the viewport. Viewport means
+ * svg Element.
+ *@return none
+ */
+ IMPORT_C void SetViewportWidth( CSvgDocumentImpl* aDocumentHandle, TInt aWidth );
+
+ /**
+ * Set the Viewport Height.
+ *
+ *@param : aDocumentHandle
+ *@param TInt integer containing the Height of the viewport. Viewport means
+ * svg Element.
+ *@return none
+ */
+ IMPORT_C void SetViewportHeight( CSvgDocumentImpl* aDocumentHandle, TInt aHeight );
+
+ /**
+ * Get the Viewport Units. This means the units in which the width and height of
+ * element are specified.
+ *
+ *@param : aDocumentHandle
+ *@return TInt integer containing the units.
+ */
+ IMPORT_C TInt GetViewportUnits( CSvgDocumentImpl* aDocumentHandle );
+
+ /**
+ * Set the end time for an animation element.
+ *
+ *@param : aElementHandle
+ *@param : aOffsetTime
+ *@return none.
+ */
+ IMPORT_C void SvgEndElementAt(CXmlElementImpl* aElementHandle , TUint32 aOffsetTime, CSvgDocumentImpl* aDocumentHandle = NULL);
+
+ /**
+ * Set the Begin time for an animation element.
+ *
+ *@param : aElementHandle
+ *@param : aOffsetTime
+ *@return none.
+ */
+ IMPORT_C void SvgBeginElementAt(CXmlElementImpl* aElementHandle , TUint32 aOffsetTime, CSvgDocumentImpl* aDocumentHandle = NULL);
+ /**
+ * Sets the Media time for a Document.
+ *
+ *@param : aDocumentHandle
+ *@param : aTimeInMilliSeconds. This represents the time in milliseconds.
+ *@return none.
+ */
+ IMPORT_C void SvgSetMediaTime(CSvgDocumentImpl* aDocumentHandle ,TUint32 aTimeInMilliSeconds);
+
+ /**
+ * Gets the Media time for a Document.
+ *
+ *@param : aDocumentHandle
+ *@return TReal32 . Media time in seconds.
+ */
+ IMPORT_C TReal32 SvgGetMediaTime(CSvgDocumentImpl* aDocumentHandle ) __SOFTFP;
+
+ /**
+ * checks whether the document has any animation elements present.
+ *
+ *@param : aDocumentHandle
+ *@return TBool . ETrue if animation present otherwise EFalse.
+ */
+ IMPORT_C TBool SvgHasAnimation(CSvgDocumentImpl* aDocumentHandle );
+
+
+ /**
+ * Return true if element is removeable (no id or children with ids)
+ *
+ *@param : aElement -- SVG element.
+ *@return true if removeable false if not removeable
+ */
+ IMPORT_C TBool IsRemoveable( CSvgElementImpl* hElement, TBool aCheckSibling = EFalse );
+
+ /**
+ * Return true if element is removeable (no id or children with ids)
+ *
+ *@param : aElement -- SVG element.
+ *@return true if removeable false if not removeable
+ */
+ IMPORT_C TBool IsElementActive( CSvgElementImpl* hElement );
+
+ /**
+ * returns the pointer to the focussed element.
+ *
+ *@param : None.
+ *@return : CXmlElementImpl* pointer to the focussed element at present.
+ */
+ IMPORT_C CXmlElementImpl* GetFocusedElement(CSvgDocumentImpl* aDocument);
+
+ /**
+ * Sets the focus on a specific element.
+ *
+ *@param : aElement.
+ *@return : None.
+ */
+ IMPORT_C void SetFocusElement(CXmlElementImpl* aElement, CSvgDocumentImpl* aDocument);
+
+ /**
+ * checks whether a given element is present in DOM.
+ *
+ *@param : aDocument. this is pointer to the document which is to be searched for the presence
+ * of the element.
+ *@param : aElement. This represents the pointer to the element.
+ *@return : TBool. True if element is present otherwise false.
+ */
+ IMPORT_C TBool SVGElementInDom(CSvgDocumentImpl* aDocument, CXmlElementImpl* aElement);
+
+ /**
+ * This API will start the animation if the focussed object is an animation element.
+ *
+ *@param : aDocument. This is a pointer to the document. ?? this may not be needed.
+ *@return : None.
+ */
+ IMPORT_C void SvgActivateAnimation(CSvgDocumentImpl* aDocument);
+
+ /**
+ * SVGElement_GetUsedElement :- This API will return a pointer to the original
+ * element which was cloned to use it. i.e.the cloned element is made a chld of the
+ * element.
+ * @param : aElement :- this is handle to the cloned element. this is child of the
+ * : element.
+ * @return : CXmlElementImpl* this is the pointer to the actual element, which is
+ * cloned.
+ */
+ IMPORT_C CXmlElementImpl* SVGElementGetUsedElement(CXmlElementImpl* aElement);
+
+ /**
+ * This API will add the given element to the event receiver list.
+ *
+ *@param : aElement. This is pointer to the element which is to be added.
+ *@param : aEventMask. This is the event mask.
+ *@return : None.
+ */
+ IMPORT_C void AddToEventReceiverList(CXmlElementImpl* aElement, const TUint8 aEventMask);
+
+ /**
+ * This API will remove the given element to the event receiver list.
+ *
+ *@param : aElement. This is pointer to the element which is to be removed.
+ *@param : aEventMask. This is the event mask.
+ *@return : None.
+ */
+ IMPORT_C void RemoveFromEventReceiverList(CXmlElementImpl* aElement);
+
+ /**
+ * DispatchMouseEventsAt This will send mouse events to the Engine at this points.
+ *
+ *@param : aDocumentHandle. which document should get the engine.
+ *@param : aMouseX. X coordinate for the mouseEvents
+ *@param : aMouseY. Y coordinate for the mouseEvents
+ *@return : int.
+ */
+ IMPORT_C TInt DispatchMouseEventsAt(CSvgDocumentImpl* aDocumentHandle, TInt aMouseX, TInt aMouseY, MSvgMouseListener* aListener);
+
+ /**
+ * SvgCreatePath his will create a new empty path.
+ *
+ *@param : None.
+ *@return : None.
+ */
+ IMPORT_C CGfxGeneralPath* SvgCreatePath();
+
+ /**
+ * SvgDestroyPath this will delete a path given a pointer to it.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@return : None.
+ */
+ IMPORT_C void SvgDestroyPath(CGfxGeneralPath* aPathHandle);
+
+ /**
+ * GetSegmentCount Returns the number of segments in a PATH.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@return : integer representing the number of segments.
+ */
+ IMPORT_C TInt GetSegmentCount(CGfxGeneralPath* aPathHandle);
+
+ /**
+ * GetSegmentType Returns the segment type for a specific segment in a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aSegmentIndex , Segment index for the specific segments.
+ *@return : integer representing the type of segments.
+ */
+ IMPORT_C TInt GetSegmentType(CGfxGeneralPath* aPathHandle, TInt aSegmentIndex);
+
+ /**
+ * GetSegmentParameter Returns the segment parameter for a specific segment in a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aSegmentIndex , Segment index for the specific segments.
+ *@param : aSegmentParameterIndex. This gives the segment parameter index.
+ *@return : TReal32 representing the segment parameter.
+ */
+ IMPORT_C TReal32 GetSegmentParameter(CGfxGeneralPath* aPathHandle,TInt aSegmentIndex,TInt aSegmentParameterIndex) __SOFTFP;
+
+ /**
+ * ADDMoveTo Adds a moveTo segment to a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aX , x coordinate for the MoveTo command.
+ *@param : aY. Y coordinate for the MoveTo command.
+ *@return : None.
+ */
+ IMPORT_C void ADDMoveTo(CGfxGeneralPath* aPathHandle, TReal32 aX,TReal32 aY) __SOFTFP;
+
+ /**
+ * ADDLineTo Adds a LineTo segment to a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aX , x coordinate for the LineTo command.
+ *@param : aY. Y coordinate for the LineTo command.
+ *@return : None.
+ */
+ IMPORT_C void ADDLineTo(CGfxGeneralPath* aPathHandle,TReal32 aX,TReal32 aY) __SOFTFP;
+
+ /**
+ * ADDQuadTo Adds a QuadTo segment to a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aX1 , X coordinate for the first control point.
+ *@param : aY1 , Y coordinate for the first control point.
+ *@param : aX2 , X coordinate for the end point.
+ *@param : aY2 , Y coordinate for the end point.
+ *@return : None.
+ */
+ IMPORT_C void ADDQuadTo(CGfxGeneralPath* aPathHandle,TReal32 aX1,TReal32 aY1,TReal32 aX2,TReal32 aY2) __SOFTFP;
+
+ /**
+ * ADDCurveTo Adds a curveTo segment to a path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@param : aX1 , X coordinate for the first control point.
+ *@param : aY1 , Y coordinate for the first control point.
+ *@param : aX2 , X coordinate for the second control point.
+ *@param : aY2 , Y coordinate for the second control point.
+ *@param : aX3 , X coordinate for the end point.
+ *@param : aY3 , Y coordinate for the end point.
+ *@return : None.
+ */
+ IMPORT_C void ADDCurveTo(CGfxGeneralPath* aPathHandle,TReal32 aX1,TReal32 aY1,TReal32 aX2,TReal32 aY2, TReal32 aX3, TReal32 aY3) __SOFTFP;
+
+ /**
+ * ADDCloseTo Closes a given path element.
+ *
+ *@param : aPathHandle. Path element pointer.
+ *@return : None.
+ */
+
+ IMPORT_C void ADDCloseTo(CGfxGeneralPath* aPathHandle);
+
+ /**
+ * GetPathAttribute gets a pointer to the path attribuite for a given element.
+ *
+ *@param : aElementHandle. Svg element pointer.
+ *@param : aAttributeId. This gives you the attributeId for the element to get.
+ *@return : CGfxGeneralPath* this gives you the path attribute pointer fetched.
+ */
+ IMPORT_C CGfxGeneralPath* GetPathAttribute(CXmlElementImpl* aElementHandle, TInt aAttributeId);
+
+ /**
+ * SetPathAttribute sets the path attribute for a given element.
+ *
+ *@param : aElementHandle. Svg element pointer.
+ *@param : aAttributeId. This gives you the attributeId for the element to get.
+ *@param : PathHandle this gives you the path attribute pointer fetched.
+ *@return : NONE.
+ */
+ IMPORT_C void SetPathAttribute(CSvgElementImpl* aElementHandle, TInt lSvgAttrId, CGfxGeneralPath* aPathHandle);
+
+ /**
+ * Change the frame Buffer dynamically
+ *
+ *
+ *
+ *@aRenderBuffer :- Buffer for drawing the DOM Tree.
+ */
+ IMPORT_C void SetFrameBuffer(CFbsBitmap* aRenderBuffer, TInt aEngine = NULL);
+
+ IMPORT_C void ClearFrameBuffer(CFbsBitmap* aFrameBuffer, TUint32 aClearingColor, TInt aEngine = NULL);
+
+ /**
+ * Search for all occurrences of a string in the current svg document,
+ * in the cdata of the elements. The bounding-boxes are transformed,
+ * accounted for zooming/panning.
+ *
+ *
+ *@param : aSearchString -- String to search
+ *@param : aBoundingBoxes -- Array to contain the bounding boxes of texts found.
+ * The bounding boxes are already transformed so that they're related
+ * to the frame buffer origin.
+ *@param : aTexts -- Array to contain cdata of the elements containing
+ * the search-string.
+ *@param : aCaseSensitive -- Flag to indicate whether to search with case-sensitivity
+ * or not, defaults to ETrue.
+ *@return ETrue if at least one occurrence is found, EFalse otherwise.
+ */
+ IMPORT_C TBool SearchForText( const TDesC& aSearchString,
+ RPointerArray& aBoundingBoxes,
+ RArray& aTexts,
+ RArray& aElementIds,
+ TBool aCaseSensitive = ETrue,
+ TInt aEngine = NULL );
+
+ /**
+ * Add a HyperlinkListener to the SVG Engine..
+ *
+ *@param : aListener -- HyperlinkListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C void AddHyperlinkListener( MSvgHyperlinkListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Add a TextAreaListener to the SVG Engine..
+ *
+ *@param : aListener -- TextAreaListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C TBool AddTextAreaListener( MSvgTextAreaListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Remove a TextAreaListener from the SVG Engine..
+ *
+ *@param : aListener -- TextAreaListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C TBool RemoveTextAreaListener( MSvgTextAreaListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Add a TextListener to the SVG Engine..
+ *
+ *@param : aListener -- TextListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C TBool AddTextListener( MSvgTextListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Remove a TextListener from the SVG Engine..
+ *
+ *@param : aListener -- TextListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C TBool RemoveTextListener( MSvgTextListener* aListener, TInt aEngine = NULL );
+
+
+ /**
+ * Add a text string to a text area
+ *
+ *@param : aTextAreaElementId, aString
+ *@return ETrue EFalse
+ */
+ IMPORT_C TBool SetTextForTextAreaElement( TInt aTextAreaElementId, TDesC& aXmlString );
+
+ /**
+ * Get the entire text string from the specified text area
+ *
+ *@param : aTextAreaElementId, is text area editable, aString
+ *@return is text area editable
+ */
+ IMPORT_C TBool GetTextForTextAreaElement( TInt aTextAreaElementId, TBool& editable, TDes& aXmlString );
+
+ /**
+ * Add a text string to a text element
+ *
+ *@param : aTextElementId, aString
+ *@return ETrue EFalse
+ */
+ IMPORT_C TBool SetTextForTextElement( TInt aTextElementId, TDesC& aXmlString );
+
+ /**
+ * Get the entire text string from the specified text element
+ *
+ *@param : aTextElementId, is text editable, aString
+ *@return is text editable
+ */
+ IMPORT_C TBool GetTextForTextElement( TInt aTextElementId, TBool& editable, TDes& aXmlString );
+
+ /**
+ * Remove a HyperlinkListener from the SVG Engine..
+ *
+ *@param : aListener -- HyperlinkListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C void RemoveHyperlinkListener( MSvgHyperlinkListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Add a HyperlinkListener to the SVG Engine..
+ *
+ *@param : aListener -- HyperlinkListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C void AddAnimationListener( MSvgAnimationListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Remove a HyperlinkListener from the SVG Engine..
+ *
+ *@param : aListener -- HyperlinkListener to receive callbacks.
+ *@return None
+ */
+ IMPORT_C void RemoveAnimationListener( MSvgAnimationListener* aListener, TInt aEngine = NULL );
+
+ /**
+ * Return whether an element is visible on the frame buffer.
+ *
+ *@param : aElementHandle -- an SVG element identifier.
+ *@return ETrue if element is visible, EFalse otherwise.
+ */
+ IMPORT_C TBool IsElementVisible( TInt aElementHandle, TInt aEngine = NULL );
+
+ /**
+ * Set the engine to load SVG contents as thumbnails:
+ * a) Only DRM protected contents are affected by this API.
+ * b) In thumbnail mode, DRM rights in not consumed.
+ * c) In thumbnail mode, the svg contents are drawn only
+ * to frame-buffers of 64x64 or smaller.
+ *
+ *@param : aThumbNailMode -- Flag to turn on/off thumbnial mode.
+ *@return : none
+ */
+ IMPORT_C void SetThumbNailMode( TBool aThumbNailMode, TInt aEngine = NULL );
+
+ /**
+ * Set the engine to enable/disable consuming DRM rights
+ *
+ *@param : aEnable -- Flag to turn off/on consuming rights
+ *@return: none
+ */
+ IMPORT_C void SetDRMRights(TBool aEnable);
+
+ /**
+ * Adds a text element to display the frames per second if isShowOn = true
+ *
+ *@param : isShowOn specified whether or not to display fps
+ *@return : frames per second in the engine
+ */
+ IMPORT_C TReal FramesPerSecond(TBool isShowOn = EFalse, TInt aEngine = NULL) __SOFTFP;
+
+ /**
+ * Used for testing purpose.
+ *
+ *@param : aCustomOption specified whether or not to use OpenVG implementation
+ *@return : none
+ */
+ EXPORT_C void CustomOption(TBool aCustomOption = EFalse, TInt aEngine = NULL);
+
+ // return an array with all of the elements of a certain type
+ // passing in a -1 for element id will return all elements
+ IMPORT_C void FindAllElements( CSvgElementImpl* aStartElement, TInt aElementId,
+ RPointerArray& aList, TInt aEngine = NULL );
+
+
+ /**
+ * Create an svg element that can be added to the a document
+ * to draw the given rectangle.
+ *
+ *@param : aRect - rectangle to request element.
+ *@return : element represent rectangle.
+ */
+ IMPORT_C CSvgElementImpl* DrawBox(TRect aRect, TInt aEngine = NULL);
+
+ /**
+ * Return the default size of the given document handle, defined
+ * by the union of the bounding boxes of the elements. This function
+ * is independent of frame-buffer or any other document.
+ *
+ * @since 1.0
+ * @param aDomHandle - Handle to svg document (thru PrepareDom)
+ * @return Size of svg content
+ */
+ IMPORT_C TSize GetUnscaledContentSize( TInt aDomHandle );
+
+ /**
+ * Generate frames, defined by the given
+ * duration, delay per seconds, etc. The calling client will be
+ * responsible for managing the bitmaps created by this method that
+ * are appended to the given bitmap arrays. The starting frame can
+ * be specified with the starting time parameter.
+ *
+ * Note: Embedded images/svg files will not be rendered, due
+ * to asynchronous image decoder.
+ *
+ * Redundant frames removal is implemented, defaulted to EFalse.
+ *
+ * aDomHandle -- Handle to the svg dom.
+ * aDimensionOfBitmaps -- Size of bitmaps to generate (same for mask)
+ * aStartTime -- Start time of first frame (in milliseconds)
+ * aDuration -- Total time of animation (in milliseconds)
+ * aMillisecondsPerFrame -- Request delay time between each frame.
+ * aColorDepth -- Color display mode for main bitmaps
+ * aMaskType -- Color display mode for mask bitmaps
+ * aBitmapFrames -- Array to hold animation bitmaps
+ * aMaskFrames -- Array to hold mask bitmaps
+ * aDelayIntervals -- Delay interval between each frame (in milliseconds)
+ * aRemoveRedundantFrames -- If ETrue, remove consecutive frames that are the same
+ * and set the correct delay.
+ * Return Non-NULL Pointer to a svg error (MSvgError*)
+ */
+ IMPORT_C MSvgError* RenderFrames( TInt aDomHandle,
+ const TSize& aDimensionOfBitmaps,
+ TUint aStartTime,
+ TUint aDuration,
+ TUint aMillisecondsPerFrame,
+ TDisplayMode aColorDepth,
+ TDisplayMode aMaskType,
+ RPointerArray& aBitmapFrames,
+ RPointerArray& aMaskFrames,
+ RArray& aDelayIntervals,
+ TBool aRemoveRedundantFrames = EFalse );
+
+ /**
+ * Used when creating an element from the java interface
+ * initializes all of the style properties attribute array to
+ * null for a newly created element so that attributes can be added
+ * to that element
+ *
+ *@param : aElementHandle -- an SVG element identifier.
+ *@return
+ */
+ IMPORT_C void InitSvgStylePropertiesWithNullL( CSvgElementImpl* aElement );
+
+ /**
+ * Add a specific event listener to the engine
+ *
+ *@param : aListener, a listener type
+ *@return : none
+ */
+ IMPORT_C void AddListener( const MSvgListener* aListener, TSvgListenerType aType, TInt aEngine = NULL );
+
+ /**
+ * Remove a specific event listener from the engine
+ *
+ *@param : aListener, a listener type
+ *@return : none
+ */
+ IMPORT_C void RemoveListener( const MSvgListener* aListener, TSvgListenerType aType, TInt aEngine = NULL );
+
+ /**
+ * Request the given engine (or internal engine) to
+ * initialize from information in the svg-document attached
+ * to it (if any). This is used to setup the display information
+ * from the tag. Usually called from MSvgLoadingListener
+ * method when reached. If aEngine is NULL, then
+ * the internal engine is used.
+ *
+ * @since 1.0
+ * @param : aEngine -- svg engine to request initialization.
+ * A NULL value, by default, indicates to use the internal
+ * engine for initialization.
+ * @param : aIsMainThread -- indicates whether this call is
+ * made in the "main thread" or not, default to ETrue.
+ * @return : none
+ */
+ IMPORT_C void InitializeEngine( CSvgEngineImpl* aEngine = NULL,
+ TBool aIsMainThread = ETrue );
+
+ /**
+ * Set the timeout duration for fetching external data
+ * (Fetchimage calls). A value of zero,
+ * indicates no timeout (by default). This is designed mainly
+ * for SVGT Plugin.
+ * @param : aTimeoutSeconds --
+ */
+ IMPORT_C void SetDataRetrievalTimeOut( TUint aTimeoutSeconds, TInt aEngine = NULL );
+
+ /**
+ * Request canceling of parsing of the current document being
+ * parsed (through Load API). This API allows a different thread
+ * other than the loading thread to cancel a Load call.
+ * @since 1.0
+ */
+ IMPORT_C void CancelLoad( TInt aEngine = NULL );
+
+ /**
+ * Query wether a document is currently bieng parsed through
+ * the Load API. EFalse is returned when a document has completed
+ * parsing or CancelLoad has completed successfully.
+ * @since 1.0
+ */
+ IMPORT_C TBool IsLoading( TInt aEngine = NULL );
+
+ /**
+ * In _DEBUG mode all elements in the documents DOM will be printed out
+ * this method may be used in the future to regenerate the DOM tree
+ * could also be used as an encoder
+ *
+ *@param : aDocument
+ *@return : none
+ */
+ IMPORT_C void PrintAllElements( CSvgDocumentImpl* aDocument );
+
+ /**
+ * In _DEBUG mode print all of the values that are in the styles
+ * for the element
+ *
+ *@param : aElement
+ *@return : none
+ */
+ IMPORT_C void PrintElementsStyles( CSvgElementImpl* aElement );
+
+ /**
+ * Set to indicate whether the contents should be rendered
+ * or wait for all images in a content to be decoded, defaults
+ * to waiting for all images.
+ *
+ *@param : aBool -- indicates waiting for all images to finish
+ * decoding before drawing any content.
+ *@return : none
+ */
+ IMPORT_C void WaitForImages( TBool aBool = ETrue, TInt aEngine = NULL );
+
+ /**
+ * This API provides a delayed (asynchronous) assignment of image
+ * data to elements. This is used when the clients
+ * returns a non-KErrNone value for FetchImage callback, so that
+ * FetchImage does not block the parsing thread.
+ *
+ *@param aUri- uri string that is passed by FetchImage,
+ * the URI of the image files.
+ *@param aData - byte array containing the image data to
+ * be decoded. This object will be managed (deleted)
+ * by svg-engine.
+ *@return none
+ */
+ IMPORT_C void AssignImageData( const TDesC& aUri, HBufC8* aData );
+
+ /**
+ * This API provides API for client to set RWindow so that svgengine
+ * is aware of the window that client is using. This will benefit
+ * video rendering.
+ *
+ *@param aWindow- RWindowBase that retrieve from CCoeControl to derived
+ * classes.
+ *@return none
+ */
+ IMPORT_C void SetClientWindow( RWindow* aWindow );
+
+ /**
+ * Method to output the currently loaded SVG content in standard SVG XML form
+ * or output a binary encoded version to a file
+ *@param aIsEncodeOn tell whether or not to output binary or standard SVG file.
+ *@return none
+ */
+ IMPORT_C void SaveSvg( TBool aIsEncodeOn, const TDesC& aFileName, TInt aEngine );
+
+ /**
+ * This method sets the volume with user input as a percentage
+ * value (unsigned between 0 and 100 )
+ *
+ * @since S60 3.1
+ * @param aPercentage percentage value of volume
+ * @return none
+ */
+ IMPORT_C void SetAudioVolume( TInt aPercentage , TInt aEngine = NULL);
+
+ /**
+ * This method mutes the volume of the SVG content
+ *
+ * @since S60 3.1
+ * @return none
+ */
+ IMPORT_C void MuteAudioVolume( TInt aEngine = NULL );
+
+ /**
+ * This API provides client the functionality to trigger focus-in
+ * event for a particular element
+ *
+ *
+ *@param aDocumentHandle- Pointer to the document of type SvgDocumentImpl
+ * aElement- Pointer to the element for which focus needs to be set
+ *
+ *@return none
+ */
+ IMPORT_C void DispatchFocusInEvent(CSvgDocumentImpl* aDocumentHandle,CSvgElementImpl *aElement);
+
+ /**
+ * This API provides client the functionality to trigger focus-in
+ * event for a particular element
+ *
+ *
+ *@param aDocumentHandle- Pointer to the document of type SvgDocumentImpl
+ * aElement- Pointer to the element for which focus needs to be set
+ *
+ *@return none
+ */
+ IMPORT_C void DispatchFocusOutEvent(CSvgDocumentImpl* aDocumentHandle,CSvgElementImpl *aElement);
+ IMPORT_C void ResetContext(TInt aEngine = NULL );
+
+
+ protected:
+ /**
+ * This method is a special case "ConstructL" method used for polymorphic
+ * DLL loading, which enforces this method to be public.
+ *
+ * @since 1.0
+ * @param : aFrameBuffer -- Bitmap to draw svg content.
+ * @param : aReqObserver -- Request observer called by svg engine.
+ * @return
+ */
+ IMPORT_C void ConstructL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec );
+ //NGA :: ConstructL overload is added to include renderertype selector
+ IMPORT_C void ConstructL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec ,SVGRendererId aRendererType );
+ /**
+ * This method is a special case "ConstructL" method used for polymorphic
+ * DLL loading, which enforces this method to be public.
+ *
+ * @since 1.0
+ *
+ * @return
+ */
+ IMPORT_C void ConstructL();
+ IMPORT_C void ConstructL(TFontSpec& aFontSpec);
+
+ private:
+
+ /**
+ * Adds a text element to display the frames per second if isShowOn = true
+ *
+ *@param : isShowOn specified whether or not to display fps
+ *@return : frames per second in the engine
+ */
+ TReal FramesPerSecondL( TInt aEngine = NULL );
+
+
+ /**
+ * Get the current focus object's bounding box.
+ *
+ * @since 1.0
+ * @param ETrue - Get the next object
+ * @param EFalse - Get the previous object
+ * @return
+ */
+ TRect GetFocusBbox(TBool aNextObject, TInt aEngine = NULL );
+
+ /**
+ * Checks whether the Handle is associated with a DOM
+ *
+ * @param : aHandle -- Handle to a DOM.
+ * @return: TBool boolean
+ */
+ TBool IsDomCached(TInt aHandle);
+
+ /**
+ * Request the SVG Engine to resume an animation after certain amount of time
+ *
+ * @since 1.0
+ * @param : none
+ * @return : none
+ */
+ void Resume(TInt32 aTime, TInt aEngine = NULL);
+
+ /**
+ * Utility function to clean-up after loading a file -- mainly,
+ * removing the prepared dom from Dom-list, since it's loaded and
+ * more prepared.
+ *
+ * @since 1.0
+ * @param : aDocumentHandle -- document info to handle clean up
+ * @return : none
+ */
+ void PostLoadProcessing( TInt aDocumentHandle );
+
+ //
+ /**
+ * ImageLoadingObserver interface method.
+ * Called from Image loading class to notify image loading
+ * completion.
+ *
+ * @since 1.0
+ * @param : aErrorStatus -- error status, if any
+ * @return : none
+ */
+ void ImageLoadingCompleted( TInt aErrorStatus );
+
+ /******* DOM FUNCTIONALITY / ELEMENT TRAVERSAL INTERFACE *****/
+ /**
+ * Returns the first child element node of this element. null if this element has no child elements
+ *
+ * @since 1.2
+ * @param aParentElement - a handle to a parent element
+ * @return a handle to the first child of the parent element
+ */
+ CSvgElementImpl* FirstElementChild(CSvgElementImpl* aParentElement);
+
+ /**
+ * last child element node of this element. null if this element has no child elements
+ *
+ * @since 1.2
+ * @param aParentElement - a handle to a parent element
+ * @return a handle to the first child of the parent element
+ */
+ //
+ CSvgElementImpl* LastElementChild(CSvgElementImpl* aParentElement);
+
+ /**
+ * Returns the next sibling element node of this element. null if this element has no element sibling nodes that come after this one in the document tree
+ *
+ * @since 1.2
+ * @param aSiblingElement - a handle to a sibling element
+ * @return a handle to the sibling before the sibling passed in
+ */
+ CSvgElementImpl* PreviousElementSibling(CSvgElementImpl* aSiblingElement);
+
+ /**
+ * previous sibling element node of this element. null if this element has no element sibling nodes that come before this one in the document tree.
+ *
+ * @since 1.2
+ * @param aParentElement - a handle to a sibling element
+ * @return a handle to the next sibling of the parameter element
+ */
+ CSvgElementImpl* NextElementSibling(CSvgElementImpl* aSiblingElement);
+
+ /**
+ * Return whether the two given bitmaps are the same.
+ *
+ * @since 1.0
+ * @param : aBitmapA -- Bitmap A
+ * @param : aBitmapB -- Bitmap B
+ * @return : ETrue both bitmaps are the same.
+ */
+ TBool AreBitmapsTheSame( CFbsBitmap& aBitmapA, CFbsBitmap& aBitmapB );
+
+ /**
+ * Create a new CFbsBitmap object with the specific size and color mode.
+ *
+ * @since 1.0
+ * @param : aSize -- size of bitmap to create
+ * @param : aColorMode : Color mode to create bitmap
+ * @param : aError : Error object to hold error info, if an error occurs
+ * @return : Non-Null CFbsBitmap object if no error was encounter
+ */
+ CFbsBitmap* CreateBitmapL( TSize aSize, TDisplayMode aColorMode,
+ CSvgErrorImpl& aError );
+
+
+ /**
+ * This mathod restores some style properties back to the
+ * original value of the animatied elements' iSvgStyleProperties.
+ *
+ * @since S60 3.0
+ * @return none
+ */
+ void RestoreAnimStyleProperties( TInt aEngine = NULL );
+
+ CSvgEngineImpl* ChooseEngine( TInt aEngine );
+
+ //Utility method to write out the current SVG engine framebuffer to a file
+ void ConvertBitmapToFileL(CFbsBitmap* aBitmap, const TDesC& aText);
+
+ protected:
+ // Current SvgEngine instance
+ CSvgEngineImpl* iSvgEngine;
+ // Current iSvgDocument through Load( ) method
+ CSvgDocumentImpl* iSvgLoadedDocument;
+
+ // Flag to indicate if a content is present, to perform or
+ // ignore operations.
+ TBool iFileIsLoaded;
+
+
+ // Error object to pass back to clients, maintained by this object.
+ CSvgErrorImpl* iSvgError;
+
+ // List of prepared DOMs (created by PrepareDom).
+ // Deleted by destructor or calling DeleteDom.
+ RPointerArray iSvgDocumentPointers;
+ RPointerArray iSvgEnginePointers;
+
+ // Keeping track of rotation applied.
+ TReal32 iTotalRotation;
+
+ public:
+
+ IMPORT_C void Start(MSvgError*& aError, const TDesC8* aHeaderData ,
+ CSvgEngineImpl* aEngine = NULL );
+
+ IMPORT_C void Start( const TDesC8* aHeaderData, CSvgEngineImpl* aEngine = NULL,
+ TBool aIsMainThread = ETrue);
+ private:
+ // DRM related
+ TBool iDrmEnabled;
+
+ // Thumbnail mode
+ TBool iIsThumbNailMode;
+
+ // DRM Rights consumption
+ TBool iDrmRightsConsumptionEnabled;
+
+ // MSvgLoadingListener list
+ RPointerArray iSvgLoadingListeners;
+
+ // Keep track of elements currently having mouse pointer inside
+ // to report mouse-exit when it is moved.
+ RPointerArray iSvgMouseEnteredElements;
+
+ // Flag to indicate Load or PrepareDom call.
+ TBool iIsLoadingRequest;
+
+ TBool iMouseDownFlag;
+
+ //Stores Font Type information
+ CSvgBitmapFontProvider *iSvgBitmapFontProvider;
+ };
+
+#endif // SVGENGINEINTERFACEIMPL_H
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGErrorImpl.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGErrorImpl.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,188 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef SVGERROR_H
+#define SVGERROR_H
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+#include "SVGEngineInterfaceImpl.h"
+
+/**
+ * This class implements the interface for a MSvgError object, which contains
+ * an error code and a description of the error if one exists.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class CSvgErrorImpl : public CBase, public MSvgError
+ {
+ public:
+
+ /**
+ * Two-phase constructor. The default error code is ESvgNoError and description is
+ * "No Error"
+ *
+ * @since 1.0
+ * @return : CSvgErrorImpl object
+ */
+ static CSvgErrorImpl* NewL();
+
+ /**
+ * Two-phase constructor. The default error code is ESvgNoError and description is
+ * "No Error"
+ *
+ * @since 1.0
+ * @return : CSvgErrorImpl object
+ */
+ static CSvgErrorImpl* NewLC();
+
+ /**
+ * Destructor
+ */
+ virtual ~CSvgErrorImpl();
+
+ /**
+ * Determine wether an error is indicated by this object.
+ *
+ * @since 1.0
+ * @return : ETrue, if ErrorCode() != ESvgNoError
+ */
+ TBool HasError();
+
+ /**
+ * Determine wether an error is only a warning.
+ * This should be a state when the svg may be display, despite
+ * a conflict.
+ *
+ * @since 1.0
+ * @return ETrue if HasError() is only a warning.
+ */
+ TBool IsWarning();
+
+ /**
+ * Set the flag to indicate the error indicated by this object
+ * is only a warning.
+ *
+ * @since 1.0
+ * @return ETrue if HasError() is only a warning.
+ */
+
+ void SetIsWarning( TBool aBool );
+
+ /**
+ * Get the error code contained by this object.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ TSvgErrorCode ErrorCode();
+
+ /**
+ * Get the error code contained by this object.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ TInt SystemErrorCode();
+
+ /**
+ * Get the error description string for this object.
+ *
+ * @since 1.0
+ * @return : error description string.
+ */
+ TDesC& Description();
+
+ /**
+ * Set the error code.
+ *
+ * @since 1.0
+ * @param aError : error code
+ * @return
+ */
+ void SetErrorCode( TSvgErrorCode aError );
+
+ /**
+ * Set the error code.
+ *
+ * @since 1.0
+ * @param aError : error code
+ * @return
+ */
+ void SetSystemErrorCode( TInt aError );
+
+ /**
+ * Set the error description.
+ *
+ * @since 1.0
+ * @param aDescription : error description string
+ * @return
+ */
+ void SetDescription( const TDesC& aDescription );
+
+ /**
+ * Set the error description.
+ *
+ * @since 1.0
+ * @param aText1 : error description string 1
+ * @param aText2 : error description string 2
+ * @return
+ */
+ void SetDescription( const TDesC& aText1, const TDesC& aText2 );
+
+ /**
+ * Append the given text to the existing description .
+ *
+ * @since 1.0
+ * @param aDescription : error description string
+ * @param aText2 : error description string 2
+ * @return
+ */
+ void AppendDescription( const TDesC& aDescription );
+
+
+ protected:
+ /**
+ * Second phase of constructor
+ *
+ * @since 1.0
+ */
+ void ConstructL();
+
+ private:
+
+ /**
+ * Constructor. The default error code is ESvgNoError and description is
+ * "No Error"
+ *
+ * @since 1.0
+ */
+ CSvgErrorImpl();
+
+ private:
+ TSvgErrorCode iErrorCode;
+ HBufC* iDescription;
+ TBool iIsWarning;
+ TInt iSystemErrorCode;
+ };
+
+#endif
+
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGHyperlinkListener.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGHyperlinkListener.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,76 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef __INC_MSVGHYPERLINKLISTENER__
+#define __INC_MSVGHYPERLINKLISTENER__
+
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about hyperlinks. The client (listener) is notified when
+ * a pointer has entered or exited a hyperlink and when a hyperlink is activated.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class MSvgHyperlinkListener
+ {
+ public:
+
+ /**
+ * Notified when a pointer enters a hyperlink element.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool LinkEntered( const TDesC& aUri ) = 0;
+
+ /**
+ * Notified when a pointer exits a hyperlink element.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool LinkExited( const TDesC& aUri ) = 0;
+
+ /**
+ * This method is called to notify the client that a link has been
+ * activated.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool LinkActivated( const TDesC& aUri ) = 0;
+
+ /**
+ * This method is called to notify the client that a link has been
+ * activated. When Show is also present .
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of hyperlink
+ * @param : aShow -- xlink:show value
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool LinkActivatedWithShow( const TDesC& aUri, const TDesC& aShow ) = 0;
+
+ };
+
+#endif /*__INC_MSVGHYPERLINKLISTENER__*/
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGImageLoadingObserver.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGImageLoadingObserver.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,46 @@
+/*
+* 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: Image loading observe rinterface
+ *
+*/
+
+
+#ifndef _INC_CSVGIMAGELOADINGOBSERVER_
+#define _INC_CSVGIMAGELOADINGOBSERVER_
+
+/**
+ * Helping interface used as callback for image loading.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class MSVGImageLoadingObserver
+ {
+ public:
+ /**
+ * This method is called by the CSVGImageLoaderUtil object after
+ * a request (RequestForImageL) to load an image is made.
+ * The possible values for aErrorStatus include:
+ * KErrNone = no errors,
+ * KErrCancel = loading of image has been canceled
+ *
+ * @since 1.0
+ * @param aErrorStatus : error status if any.
+ * @return
+ */
+ virtual void ImageLoadingCompleted( TInt aErrorStatus ) = 0;
+ };
+
+#endif
+
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGRendererId.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGRendererId.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+#ifndef SVGRENDERERID_H
+#define SVGRENDERERID_H
+
+enum SVGRendererId
+ {
+ ESVGRendererSW = 1,
+ ESVGRendererHW = 2,
+ ESVGRendererTLV = 3
+ };
+
+#endif /* SVGRENDERERID_H */
+
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SVGRequestObserver.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SVGRequestObserver.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,129 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef __INC_MSVGREQUESTOBSERVER__
+#define __INC_MSVGREQUESTOBSERVER__
+
+
+class CSvgElementImpl;
+
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients and to request for external data, such as images.
+ * The callbacks will be active when the methods of this interace are implemented and
+ * the pointer to the implementation object is passed in as the second parameter
+ * of the 'ConstructL' method of the CSvgEngineInterface. A 'null' value may be
+ * passed-in if the callbacks are to be ignored.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class MSvgRequestObserver
+ {
+ public:
+
+ /**
+ * This method is called by the SVG Engine when all data for a certain
+ * step, such as animation frame, have been updated. This usually means
+ * the off-screen image (passed in to 'ConstructL' of CSvgEngineInterface)
+ * has been updated. The client usually redraws the image onto
+ * the screen.
+ *
+ * @since 1.0
+ * @param : none
+ * @return : none
+ */
+ virtual void UpdateScreen() = 0;
+
+ /**
+ * This method is for future extension, in which an external script engine
+ * could be used to evaluate a script description.
+ *
+ * @since 1.0
+ * @param : aScript -- A description of script from the "on" attribute.
+ *
+ * @param : aCallerElement -- The element that calls the script by a
+ * an event of the "on" attribute.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ScriptCall( const TDesC& aScript,
+ CSvgElementImpl* aCallerElement ) = 0;
+
+ /**
+ * This method is called to retrieve the file handle of an image name.
+ * The session (RFs) object passed in is guaranteed to be connected, so
+ * the client must NOT call aSession.Connect().
+ *
+ * The implementation for the client of this method is usually if not always:
+ * TInt X::FetchImage( const TDesC& aFilename, RFs& aSession, RFile& aFileHandle )
+ * {
+ * // Check for "http", get data from remote site, save to disk
+ * // Get absolute path to aFilename: absolutepath
+ * return aFileHandle.Open( aSession, absolutepath, EFileRead );
+ * }
+ *
+ * Note: Use EFileShareReadersOnly to prevent file locking.
+ *
+ * The API AssignImageData() can be used to avoid block the parsing
+ * thread due this method taking too long to return. This is
+ * accomplished by returning a non-KErrNone value (i.e. KErrNotFound),
+ * and storing the URI parameter. The image data then could be
+ * assigned the the URI in another thread/Active-Object.
+ *
+ * @since 1.0
+ * @param : aUri -- the relative path of an image file.
+ * @param : aSession -- File session used by client to open file.
+ * @param : aFileHandle -- File handle used by client to open file.
+ * @return : KErrNone if Open command successful, otherwise error-code
+ * from Open command. The SVG engine will proceed loading the file
+ * only if the return value is KErrNone.
+ */
+ virtual TInt FetchImage( const TDesC& aUri, RFs& aSession, RFile& aFileHandle ) = 0;
+
+ /**
+ * This method is called to retrieve the file handle of an svg font file.
+ * This file must be SVG 1.1 .svg file. When the engine comes acrossed
+ * a font-family name that it doesnt know it will request "fontfamilyname".svg
+ * file through this method. The client can either provide the svg file
+ * or the engine will default to system text.
+ *
+ * The usage of this method is exactly the same as the FetchImage method above
+ *
+ * @since 1.0
+ * @param : aUri -- the relative path of an image file.
+ * @param : aSession -- File session used by client to open file.
+ * @param : aFileHandle -- File handle used by client to open file.
+ * @return : KErrNone if Open command successful, otherwise error-code
+ * from Open command. The SVG engine will proceed loading the file
+ * only if the return value is KErrNone.
+ */
+ virtual TInt FetchFont( const TDesC& aUri, RFs& aSession, RFile& aFileHandle ) = 0;
+
+ /**
+ * This Method updates the presentation status
+ * @since 1.0
+ * @param : TInt32& aNoOfAnimation
+ * @return :
+ */
+ virtual void UpdatePresentation(const TInt32& aNoOfAnimation)=0;
+
+
+ };
+
+#endif /*__INC_MSvgRequestObserver__*/
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SvgJavaInterfaceImpl.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SvgJavaInterfaceImpl.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,2673 @@
+/*
+* Copyright (c) 2004 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 Engine header file
+ *
+*/
+
+
+ #ifndef _INC_SVGJAVAINTERFACEIMPL_
+ #define _INC_SVGJAVAINTERFACEIMPL_
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+#include
+#include
+
+typedef int SvgEngineHandle;
+typedef int SvgDocumentHandle;
+typedef int SvgElementHandle;
+typedef int SvgSurfaceHandle;
+typedef int SvgPathHandle;
+typedef short SvgAttrType;
+
+class CSvgEngineImpl;
+class CSvgDocumentImpl;
+class CFbsBitmap;
+
+// ***************************************************/
+//Find a way to get these values from SvgEngine and defined here in JavaInterface.
+const TInt KSvgUnknownElement = -1;
+
+const TInt KSvgSvgElement = 0;
+
+const TInt KSvgAltglyphElement = 1;
+const TInt KSvgAltglyphdefElement = 2;
+
+const TInt KSvgDefsElement = 3;
+const TInt KSvgDescElement = 4;
+
+const TInt KSvgMetadataElement = 6;
+const TInt KSvgTitleElement = 7;
+
+const TInt KSvgFontfacenameElement = 8;
+const TInt KSvgFontfacesrcElement = 9;
+const TInt KSvgFontfaceuriElement = 10;
+const TInt KSvgGElement = 11;
+const TInt KSvgGlyphrefElement = 12;
+const TInt KSvgVkernElement = 13;
+// const TInt KSvgScriptElement = 14;
+const TInt KSvgSwitchElement = 15;
+
+const TInt KSvgViewElement = 16;
+
+const TInt KSvgHkernElement = 17;
+
+const TInt KSvgAElement = 18;
+const TInt KSvgFontElement = 19;
+const TInt KSvgFontfaceElement = 20;
+const TInt KSvgGlyphElement = 21;
+const TInt KSvgImageElement = 22;
+const TInt KSvgMissingglyphElement = 23;
+const TInt KSvgStyleElement = 24;
+const TInt KSvgTextElement = 25;
+const TInt KSvgUseElement = 26;
+const TInt KSvgCircleElement = 27;
+const TInt KSvgEllipseElement = 28;
+const TInt KSvgLineElement = 29;
+const TInt KSvgPathElement = 30;
+const TInt KSvgPolygonElement = 31;
+const TInt KSvgPolylineElement = 32;
+const TInt KSvgRectElement = 33;
+const TInt KSvgAnimateElement = 34;
+const TInt KSvgAnimateColorElement = 35;
+const TInt KSvgAnimateMotionElement = 36;
+const TInt KSvgAnimateTransformElement = 37;
+const TInt KSvgSetElement = 38;
+const TInt KSvgMpathElement = 39;
+const TInt KSvgLinearGradientElement = 40;
+const TInt KSvgRadialGradientElement = 41;
+const TInt KSvgStopElement = 42;
+const TInt KSvgScriptElement = 43;
+const TInt KSvgTextAreaElement = 44;
+const TInt KSvgDiscardElement = 45;
+const TInt KSvgSolidColorElement = 46;
+const TInt KSvgAnimationElement = 47;
+const TInt KSvgVideoElement = 48;
+const TInt KSvgForeignObjectElement = 49;
+
+
+/*************************************************/
+/*************************************************/
+ const TInt KSvgUnknownAttribute = -1;
+ const TUint16 KSvgOffset =25;
+ //AA: Length or number type: range is 0 to +max & set using SetAttributeFloatL
+ const TUint16 KAtrTextLength = 0 + KSvgOffset;
+ const TUint16 KAtrWidth = 1 + KSvgOffset;
+ const TUint16 KAtrHeight = 2 + KSvgOffset;
+ const TUint16 KAtrR = 3 + KSvgOffset ;
+
+
+
+ const TUint8 KSvgCoordAttrStartIndex = 4 + KSvgOffset;
+ const TUint16 KAtrRx = 4 + KSvgOffset;
+ const TUint16 KAtrRy = 5 + KSvgOffset;
+ const TUint16 KAtrHorizAdvX = 6 + KSvgOffset;
+ const TUint16 KAtrHorizOriginX = 7 + KSvgOffset;
+ const TUint16 KAtrHorizOriginY = 8 + KSvgOffset;
+ const TUint16 KAtrAscent = 9 + KSvgOffset;
+ const TUint16 KAtrDescent = 10 + KSvgOffset;
+
+ const TUint16 KAtrAlphabetic = 11 + KSvgOffset;
+ const TUint16 KAtrUnderlinePosition = 12 + KSvgOffset;
+ const TUint16 KAtrUnderlineThickness = 13 + KSvgOffset;
+ const TUint16 KAtrOverlinePosition = 14 + KSvgOffset;
+ const TUint16 KAtrOverlineThickness = 15 + KSvgOffset;
+ const TUint16 KAtrStrikethroughPosition = 16 + KSvgOffset;
+ const TUint16 KAtrStrikethroughThickness = 17 + KSvgOffset;
+ const TUint16 KAtrUnitsPerEm = 18 + KSvgOffset;
+
+ const TUint16 KAtrWordSpacing = 19 + KSvgOffset;
+ const TUint16 KAtrLetterSpacing = 20 + KSvgOffset;
+
+
+
+ //AA: Coordinate datatype: range is -max to +max & set using SetAttributeFloatL
+ const TUint16 KAtrCx = 21 + KSvgOffset;
+ const TUint16 KAtrCy = 22 + KSvgOffset;
+ const TUint16 KAtrY = 23 + KSvgOffset;
+ const TUint16 KAtrX = 24 + KSvgOffset;
+ const TUint16 KAtrY1 = 25 + KSvgOffset;
+ const TUint16 KAtrY2 = 26 + KSvgOffset;
+ const TUint16 KAtrX1 = 27 + KSvgOffset;
+ const TUint16 KAtrX2 = 28 + KSvgOffset;
+
+ const TUint8 KSvgCoordAttrEndIndex = 28 + KSvgOffset;
+ const TUint8 KSvgDesAttrsIndex = 29 + KSvgOffset;
+
+
+ //AA: Descriptor type set using SetAttributeDesL
+ const TUint16 KAtrK = 29 + KSvgOffset;
+ const TUint8 KSvgFloatAttrEndIndex = 29 + KSvgOffset;
+ const TUint16 KAtrG1 = 30 + KSvgOffset;
+ const TUint16 KAtrG2 = 31 + KSvgOffset;
+ const TUint16 KAtrU1 = 32 + KSvgOffset;
+ const TUint16 KAtrU2 = 33 + KSvgOffset;
+ const TUint16 KAtrUnicode = 34 + KSvgOffset;
+ const TUint16 KAtrGlyphName = 35 + KSvgOffset;
+ const TUint16 KAtrLang = 36 + KSvgOffset;
+ const TUint8 KSvgDesAttrEndIndex = 36 + KSvgOffset;
+
+ const TUint16 KAtrTextDecoration = 37 + KSvgOffset;
+ const TUint16 KAtrTextAnchor = 38 + KSvgOffset;
+ const TUint16 KAtrRotate = 39 + KSvgOffset;
+ const TUint16 KAtrCdata = 40 + KSvgOffset;
+
+
+
+
+ const TUint16 KAtrTransform = 41 + KSvgOffset;
+ const TUint16 KAtrStyle = 42 + KSvgOffset;
+ const TUint16 KAtrFill = 43 + KSvgOffset;
+ const TUint16 KAtrStroke = 44 + KSvgOffset;
+ const TUint16 KAtrColor = 45 + KSvgOffset;
+ const TUint16 KAtrFrom = 46 + KSvgOffset;
+ const TUint16 KAtrTo = 47 + KSvgOffset;
+ const TUint16 KAtrBy = 48 + KSvgOffset;
+ const TUint16 KAtrAttributeName = 49 + KSvgOffset;
+
+
+
+ const TUint8 KSvgNotHandledAttrsIndex = 50 + KSvgOffset;
+
+ const TUint16 KAtrPathLength = 50 + KSvgOffset;
+ const TUint16 KAtrVersion = 51 + KSvgOffset;
+ const TUint16 KAtrStrokeWidth = 52 + KSvgOffset;
+ const TUint16 KAtrPoints = 53 + KSvgOffset;
+ const TUint16 KAtrD = 54 + KSvgOffset;
+ const TUint16 KAtrType = 55 + KSvgOffset;
+ const TUint16 KAtrStopColor = 56 + KSvgOffset;
+ const TUint16 KAtrFx = 57 + KSvgOffset;
+ const TUint16 KAtrFy = 58 + KSvgOffset;
+
+ const TUint16 KAtrOffset = 59+ KSvgOffset;
+ const TUint16 KAtrSpreadMethods = 60 + KSvgOffset;
+ const TUint16 KAtrGradientUnits = 61 + KSvgOffset;
+ const TUint16 KAtrStopOpacity = 62 + KSvgOffset;
+
+
+
+
+// special attributes for encoding
+ const TUint16 KAtrViewBox = 63 + KSvgOffset;
+ const TUint16 KAtrBaseProfile = 64 + KSvgOffset;
+ const TUint16 KAtrZoomAndPan = 65 + KSvgOffset;
+ const TUint16 KAtrPreserveAspectRatio = 66 + KSvgOffset;
+
+ const TUint8 KSvgSVGAttrEndIndex = KAtrPreserveAspectRatio;
+
+ const TUint16 KAtrId = 67 + KSvgOffset;
+ const TUint16 KAtrXmlBase = 68 + KSvgOffset;
+
+ const TUint8 KSvgIdAndXmlAttrEndIndex = 68 + KSvgOffset;
+
+ const TUint16 KAtrXmlLang = 69 + KSvgOffset;
+ const TUint16 KAtrXmlSpace = 70 + KSvgOffset;
+
+ const TUint8 KSvgLangAttrEndIndex = 70 + KSvgOffset;
+
+ const TUint16 KAtrRequiredExtensions = 71 + KSvgOffset;
+ const TUint16 KAtrRequiredFeatures = 72 + KSvgOffset;
+ const TUint16 KAtrSystemLanguage = 73 + KSvgOffset;
+
+ const TUint8 KSvgTestAttrEndIndex = 73 + KSvgOffset;
+
+ const TUint16 KAtrDx = 74 + KSvgOffset;
+ const TUint16 KAtrDy = 75 + KSvgOffset;
+ const TUint16 KAtrMedia = 76 + KSvgOffset;
+ const TUint16 KAtrTitle = 77 + KSvgOffset;
+
+ const TUint16 KAtrXlinkactuate = 78 + KSvgOffset;
+ const TUint16 KAtrXlinkarcrole = 79 + KSvgOffset;
+
+ const TUint16 KAtrXlinkrole = 80 + KSvgOffset;
+ const TUint16 KAtrXlinkshow = 81 + KSvgOffset;
+ const TUint16 KAtrXlinktitle = 82 + KSvgOffset;
+ const TUint16 KAtrXlinktype = 83 + KSvgOffset;
+ const TUint16 KAtrXlinkhref = 84 + KSvgOffset;
+
+ const TUint8 KSvgUriAttrEndIndex = 84 + KSvgOffset;
+
+ const TUint16 KAtrBegin = 85 + KSvgOffset;
+ const TUint16 KAtrDur = 86 + KSvgOffset;
+ const TUint16 KAtrRepeatCount = 87 + KSvgOffset;
+ const TUint16 KAtrRepeatDur = 88 + KSvgOffset;
+ const TUint16 KAtrEnd = 89 + KSvgOffset;
+ const TUint16 KAtrRestart = 90 + KSvgOffset;
+ const TUint16 KAtrAccumulate = 91 + KSvgOffset;
+ const TUint16 KAtrAdditive = 92 + KSvgOffset;
+ const TUint16 KAtrKeySplines = 93 + KSvgOffset;
+ const TUint16 KAtrKeyTimes = 94 + KSvgOffset;
+ const TUint16 KAtrCalcMode = 95 + KSvgOffset;
+ const TUint16 KAtrPath = 96 + KSvgOffset;
+ const TUint16 KAtrAnimateMotion = 97 + KSvgOffset;
+ const TUint16 KAtrGradientTransform = 98 + KSvgOffset;
+ const TUint16 KAtrAnimateTransformAttrId = 99 + KSvgOffset;
+ const TUint16 KAtrTarget = 100 + KSvgOffset;
+
+
+
+#define KSVG_MAX_ATTRIBUTES KAtrTarget
+#define KSVG_ATTRIBUTE_NOT_SUPPORTED KSVG_MAX_ATTRIBUTES+1
+
+ // special Ids for Animation attribute Values
+
+ const TUint16 KAnimFreeze = 110 + KSvgOffset;
+
+ // special Id for Embedded image XLink:href attribute .
+
+ const TUint16 KXlinkhrefImageEmbedded = 111 + KSvgOffset;
+
+// special Id for multiple end times.Used for the Binary compatibility of the encoder
+
+ const TUint16 KMultipleEndTime = 112 + KSvgOffset;
+
+
+
+ #define KSVG_ANIMATE_ELEMFLAG KAtrAttributeName
+ #define KSVG_SET_ELEMFLAG KAtrAttributeName
+ #define KSVG_ANIMATETRANSFORM_ELEMFLAG KAtrSVGTrf
+ #define KSVG_CIRCLE_ELEMFLAG KAtrR
+ #define KSVG_ELLIPSE_ELEMFLAG KAtrSVGElp
+ #define KSVG_RECT_ELEMFLAG KAtrSVGRec
+ #define KSVG_IMAGE_ELEMFLAG KAtrSVGRec
+ #define KSVG_HKERN_ELEMFLAG KAtrK
+ #define KSVG_PATH_ELEMFLAG KAtrD
+ #define KSVG_POLYLINE_ELEMFLAG KAtrPoints
+ #define KSVG_AMINATEMO_ELEMFLAG KAtrSVGAmo
+
+ const TUint16 KAtrSVGRec = 120 + KSvgOffset;
+ const TUint16 KAtrSVGElp = 121 + KSvgOffset;
+ const TUint16 KAtrSVGTrf = 122 + KSvgOffset;
+ const TUint16 KAtrSVGAmo = 123 + KSvgOffset;
+ const TUint16 KAtrToBy = 124 + KSvgOffset;
+ const TUint16 KAtrAdditiveSet = 125 + KSvgOffset;
+
+
+
+const TUint16 KTiny = 0;
+
+// Display Enumeration Constants. take care
+const TUint KDisplayEnumNone = 16;
+const TUint KPresentationAttrDisplay = 10;
+
+const TUint16 KAtrUnicodeRange = 135 + KSvgOffset;
+const TUint16 KAtrValues = 138 + KSvgOffset;
+
+
+// SPECIAL (APPLICATION DEFINED) ATTRIBUTE CONSTANTS
+const TUint16 KAtrData = KAtrD; // So KAtrData can still be used
+const TUint16 KAtrRadius = KAtrR; // So KAtrRadius can still be used
+
+const TUint16 KAtrRefX = 1001;
+const TUint16 KAtrRefY = 1002;
+const TUint16 KAtrAnimMotionMatrixIndex = 5000;
+const TUint16 KAtrAnimTransformMatrixIndex = 5001;
+
+const TInt KErrReferencedElementNotFound = -1000;
+const TInt KErrAnimateReferenceElementNotFound = -1001;
+
+// start of new element in encoding.
+const TUint16 KStartNewElem = 1000;
+
+// SVG TINY DEFINED ENUMERATIONS
+const TUint16 KEnumPercent = 0; // '%' sign
+const TUint16 KEnum100 = 1;
+const TUint16 KEnum200 = 2;
+const TUint16 KEnum300 = 3;
+const TUint16 KEnum400 = 4;
+const TUint16 KEnum500 = 5;
+const TUint16 KEnum600 = 6;
+const TUint16 KEnum700 = 7;
+const TUint16 KEnum800 = 8;
+const TUint16 KEnum900 = 9;
+const TUint16 KEnumAlways = 10;
+const TUint16 KEnumAuto = 11;
+const TUint16 KEnumBevel = 12;
+const TUint16 KEnumBlink = 13;
+const TUint16 KEnumBlock = 14;
+const TUint16 KEnumBold = 15;
+const TUint16 KEnumBolder = 16;
+const TUint16 KEnumButt = 17;
+const TUint16 KEnumCdata = 18;
+const TUint16 KEnumCm = 19;
+const TUint16 KEnumCompact = 20;
+const TUint16 KEnumCondensed = 21;
+const TUint16 KEnumCss = 22;
+const TUint16 KEnumDasharray = 23;
+const TUint16 KEnumDisable = 24;
+const TUint16 KEnumDiscrete = 25;
+const TUint16 KEnumEnd = 26;
+const TUint16 KEnumEvenodd = 27;
+const TUint16 KEnumExpanded = 28;
+const TUint16 KEnumExtraCondensed = 29;
+const TUint16 KEnumExtraExpanded = 30;
+const TUint16 KEnumFreeze = 31;
+const TUint16 KEnumHidden = 32;
+const TUint16 KEnumIn = 33;
+const TUint16 KEnumInherit = 34;
+const TUint16 KEnumInline = 35;
+const TUint16 KEnumInlineTable = 36;
+const TUint16 KEnumInterger = 37;
+const TUint16 KEnumItalic = 38;
+const TUint16 KEnumLenght = 39;
+const TUint16 KEnumLighter = 40;
+const TUint16 KEnumLinear = 41;
+const TUint16 KEnumLineThrough = 42;
+const TUint16 KEnumListItem = 43;
+const TUint16 KEnumMagnify = 44;
+const TUint16 KEnumMarker = 45;
+const TUint16 KEnumMiddle = 46;
+const TUint16 KEnumMiter = 47;
+const TUint16 KEnumMm = 48;
+const TUint16 KEnumNarrower = 49;
+const TUint16 KEnumNever = 50;
+const TUint16 KEnumNone = 51;
+const TUint16 KEnumNonzero = 52;
+const TUint16 KEnumNormal = 53;
+const TUint16 KEnumOblique = 54;
+const TUint16 KEnumOverline = 55;
+const TUint16 KEnumPaced = 56;
+const TUint16 KEnumPc = 57;
+const TUint16 KEnumPt = 58;
+const TUint16 KEnumPx = 59;
+const TUint16 KEnumRemove = 60;
+const TUint16 KEnumReplace = 61;
+const TUint16 KEnumRotate = 62;
+const TUint16 KEnumRound = 63;
+const TUint16 KEnumRunIn = 64;
+const TUint16 KEnumScale = 65;
+const TUint16 KEnumSemiCondensed = 66;
+const TUint16 KEnumSemiExpanded = 67;
+const TUint16 KEnumSkewX = 68;
+const TUint16 KEnumSkewY = 69;
+const TUint16 KEnumSpline = 70;
+const TUint16 KEnumSquare = 71;
+const TUint16 KEnumStart = 72;
+const TUint16 KEnumSum = 73;
+const TUint16 KEnumTable = 74;
+const TUint16 KEnumTableCaption = 75;
+const TUint16 KEnumTableCell = 76;
+const TUint16 KEnumTableColumn = 77;
+const TUint16 KEnumTableColumnGroup = 78;
+const TUint16 KEnumTableFooterGroup = 79;
+const TUint16 KEnumTableHeaderGroup = 80;
+const TUint16 KEnumTableRow = 81;
+const TUint16 KEnumTableRowGroup = 82;
+const TUint16 KEnumTranslate = 83;
+const TUint16 KEnumUltraCondensed = 84;
+const TUint16 KEnumUltraExpanded = 85;
+const TUint16 KEnumUnderline = 86;
+const TUint16 KEnumVisible = 87;
+const TUint16 KEnumWhenNotActive = 88;
+const TUint16 KEnumWider = 89;
+const TUint16 KEnumXMaxYMax = 90;
+const TUint16 KEnumXMaxYMid = 91;
+const TUint16 KEnumXMaxYMin = 92;
+const TUint16 KEnumXMidYMax = 93;
+const TUint16 KEnumXMidYMid = 94;
+const TUint16 KEnumXMidYMin = 95;
+const TUint16 KEnumXMinYMax = 96;
+const TUint16 KEnumXMinYMid = 97;
+const TUint16 KEnumXMinYMin = 98;
+const TUint16 KEnumXml = 99;
+
+
+#define KCSS_ATTR_FILL 0
+#define KCSS_ATTR_STROKE 1
+#define KCSS_ATTR_STROKEWIDTH 2
+#define KCSS_ATTR_VISIBILITY 3
+#define KCSS_ATTR_FONTFAMILY 4
+#define KCSS_ATTR_FONTSIZE 5
+#define KCSS_ATTR_FONTSTYLE 6
+#define KCSS_ATTR_FONTWEIGHT 7
+#define KCSS_ATTR_STROKE_DASHARRAY 8
+#define KCSS_ATTR_DISPLAY 9
+#define KCSS_ATTR_FILLRULE 10
+#define KCSS_ATTR_STROKE_LINECAP 11
+#define KCSS_ATTR_STROKE_LINEJOIN 12
+#define KCSS_ATTR_STROKE_DASHOFFSET 13
+#define KCSS_ATTR_STROKE_MITERLIMIT 14
+#define KCSS_ATTR_COLOR 15
+#define KCSS_ATTR_TEXTANCHOR 16
+#define KCSS_ATTR_TEXTDECORATION 17
+#define KCSS_ATTR_COLORINTERPOLATION 18
+#define KCSS_ATTR_COLORRENDERING 19
+#define KCSS_ATTR_LETTERSPACING 20
+#define KCSS_ATTR_WORDSPACING 21
+
+#define KCSS_ATTR_FILL_OPACITY 22
+#define KCSS_ATTR_STROKE_OPACITY 23
+#define KCSS_ATTR_FONT 24
+/***************************************************/
+/***************************************************/
+const TInt KSvgTypeTransform = 30;
+const TInt KSvgTypeTranslate = 31;
+const TInt KSvgTypeRotate = 32;
+const TInt KSvgTypeScale = 33;
+const TInt KSvgTypeSkewX = 34;
+const TInt KSvgTypeSkewY = 35;
+const TInt KSvgType2DMatrix = 36;
+
+/////////////EVENT MASKS////////////////////
+const TUint8 KSvgEventMaskNone = 0x0;
+const TUint8 KSvgEventMaskExternalUI = 0x1;
+const TUint8 KSvgEventMaskTimer = 0x2;
+const TUint8 KSvgEventMaskInternal = 0x4;
+const TUint8 KSvgEventMaskExternalSystem = 0x8;
+////////////////////////////////////////////////// taken from event.h
+
+
+
+
+////////////////////////////////////////////////// taken from event.h
+// these are taken from gfxgeneralPath.h
+const TUint32 KSvgSegMoveTo = 2;
+const TUint32 KSvgSegLineTo = 4;
+const TUint32 KSvgSegQuadTo = 10;
+const TUint32 KSvgSegCubicTo = 12;
+const TUint32 KSvgSegClose = 0;
+const TUint32 KSvgHorizontal = 5;
+const TUint32 KSvgVertical = 6;
+/////////////////////////////////////////////////////
+
+class MJavaError
+ {
+ public:
+ /**
+ * Dtor
+ * @since 1.0
+ */
+ virtual ~MJavaError()
+ {
+ }
+
+ /**
+ * Determine wether an error is indicated by this object.
+ *
+ * @since 1.0
+ * @return : ETrue, if ErrorCode() != ESvgNoError
+ */
+ virtual TBool HasError() const = 0;
+
+ /**
+ * Determine wether an error is only a warning.
+ * This should be a state when the svg may be display, despite
+ * a conflict.
+ *
+ * @since 1.0
+ * @return ETrue if HasError() is only a warning.
+ */
+ virtual TBool IsWarning() const = 0;
+
+ /**
+ * Get the error code contained by this object.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ virtual TInt ErrorCode() const = 0;
+
+ /**
+ * Get the error description string for this object.
+ *
+ * @since 1.0
+ * @return : error description string.
+ */
+ virtual TDesC8& Description() = 0;
+ };
+
+
+/**
+ * This class implements the interface for a MJavaError object, which contains
+ * an error code and a description of the error if one exists.
+ *
+ * @since 1.0
+ */
+class CJavaError : public CBase, public MJavaError
+ {
+ public:
+
+ /**
+ * Two-phase constructor.
+ * Creates an integer 'handle' from C++ object for referencing them inside Java.
+ * The shift garauntees a positive integer.
+ * Unhanding the integer requires the destination type to be known and bit shifting.
+ *
+ * @since 1.0
+ * @return : CJavaError object
+ */
+ static TInt NewL( CSvgErrorImpl& aError );
+
+ /**
+ * Destructor
+ */
+ virtual ~CJavaError();
+
+ /**
+ * Determine wether an error is indicated by this object.
+ *
+ * @since 1.0
+ * @return : ETrue, if ErrorCode() != ESvgNoError
+ */
+ virtual TBool HasError() const;
+
+ /**
+ * Determine wether an error is only a warning.
+ * This should be a state when the svg may be display, despite
+ * a conflict.
+ *
+ * @since 1.0
+ * @return ETrue if HasError() is only a warning.
+ */
+ virtual TBool IsWarning() const;
+
+ /**
+ * Get the error code contained by this object.
+ *
+ * @since 1.0
+ * @return : the TSvgErrorCode value
+ */
+ virtual TInt ErrorCode() const;
+
+ /**
+ * Get the error description string for this object.
+ *
+ * @since 1.0
+ * @return : error description string.
+ */
+ virtual TDesC8& Description();
+
+ protected:
+ /**
+ * Second phase of constructor
+ *
+ * @since 1.0
+ */
+ void ConstructL( CSvgErrorImpl& aError );
+
+ /**
+ * Ctor.
+ *
+ * @since 1.0
+ */
+ CJavaError();
+
+ private:
+ TInt iErrorCode;
+ TBool iIsWarning;
+ HBufC8* iDescription;
+ };
+
+// ***********************************************************************
+// SVG Engine
+// ***********************************************************************
+/**
+ * The SVG Engine is fundamental object for 2D rendering. The rendering can
+ * only be achieved through the render method provided by the SVG Engine object.
+ * NOTE: Java MIDlet can uses multiple SVG Engine objects.
+ * NOTE: Java side cannot provide the SVG Engine object for:
+ *
+ * the SVG Document operations
+ * the SVG Element operations
+ *
+ */
+
+// *****************************************************************************
+// SVG Rendering Surface Functions
+// *****************************************************************************
+/**
+ * The SVG Rendering Surface functions are not used in java side.
+ *
+
+// ***********************************************************************
+// SVG Document
+// ***********************************************************************
+/**
+ * The SVG Document represents an XML Document.
+ * The SVG Document is a subset of the Document interface defined
+ * in the
+ * DOM Level 3 Core .
+ */
+
+// ***********************************************************************
+// SVG Element
+// ***********************************************************************
+/**
+ * Description of an SVG element in the document tree. Element's id can be set only
+ * if it does not already have an id. Elements with non-null id can be inserted, but
+ * cannot be removed from the DOM tree.
+ *
+ *
+ * An SVG element's "traits" value can be read and manipulated. Each trait
+ * corresponds to an attribute or property,which is parsed and understood by the element
+ * and in most cases animatable. Unlike attributes, each element has a
+ * well-defined set of traits and attempting to access undefined trait is an error. Also unlike
+ * attributes traits are typed and their values are normalized; for instance SVG path specification
+ * is parsed and all path commands are converted to their absolute variants, it is not possible to
+ * say through the value of the trait if a path command was absolute or relative. When getting and
+ * setting trait values, accessor of the correct type must be used or exception will be thrown.
+ *
+ *
+ * Initial trait values come from parsing corresponding attributes. If value is not specified, but
+ * corresponing attribute (or property for environments where styling is supported) is inherited,
+ * inherited value is returned as a result of the trait query method. If it is not inherited, default
+ * value is returned. Default values are also returned in the case when there is no parent to inherit
+ * from, for ex: when you create a new element, set a trait value to 'inherit', but there is no parent for
+ * inheritance. It is important to note that the value which is returned is always a base value (i.e. before animation
+ * is applied), and this is true for both static and animated content.
+ *
+ *
+ * Setting a trait value has the same effect as changing a corresponding attribute, but trait
+ * setters can operate on typed values. The value which is modified is always a base value.
+ * For inheritable traits the trait value can always be set to "inherit"
+ * (but querying the value will always return the actual inherited value as explained above).
+ *
+ *
+ * Traits supported in this specification, SVG Tiny 1.1 DOM
+ *
+ * The table below shows the list of attributes and properties that SVG Tiny
+ * DOM 1.1 implementations must support. Each light gray section lists one or
+ * multiple elements for which the subsequent attributes or properties
+ * apply. Each attribute row lists the allowed getter and setter (s). The last
+ * column specifies the default values that must be used for each attribute or
+ * property.
+ * Note: For 'REQUIRED' attributes, there are two cases:
+ *
+ *
+ * i) The document is in error, if this attribute was not present at the time of loading.
+ * ii) When using uDOM API, the specified default value (in parenthesis) must be used.
+ *
+ *
+ *
+ *
+ *
+ *
+ * Property
+ *
+ * Trait Getter [possible return value(s)]
+ *
+ * Trait Setter [allowed value(s)]
+ *
+ * Default Values
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <svg>,
+ * <rect>, <circle>, <ellipse>, <line>,
+ * <path>, <g>, <image>, <text>, <a>, and <use>
+ *
+ *
+ * color
+ *
+ * getRGBColorTrait [SVGRGBColor]
+ *
+ * setTrait [inherit] setRGBColorTrait [SVGRGBColor]
+ *
+ * rgb(0,0,0)
+ *
+ *
+ *
+ * display
+ *
+ * getTrait [inline | none ]
+ *
+ * setTrait [inline | none | inherit ]
+ * "inline"
+ *
+ *
+ *
+ * fill
+ *
+ * getRGBColorTrait [null, SVGRGBColor]
+ *
+ * setRGBColorTrait [SVGRGBColor] setTrait(none | currentColor | inherit)
+ *
+ * rgb(0,0,0)
+ *
+ *
+ *
+ * fill-rule
+ *
+ * getTrait [nonzero | evenodd]
+ *
+ * setTrait [nonzero | evenodd | inherit]
+ * "nonzero"
+ *
+ *
+ *
+ * stroke
+ * getRGBColorTrait [null, SVGRGBColor]
+ * setRGBColorTrait [SVGRGBColor] setTrait [none | currentColor | inherit]
+ * "none"
+ *
+ *
+ *
+ * stroke-dashoffset
+ * getFloatTrait
+ * setTrait [inherit] setFloatTrait
+ * 0.0f
+ *
+ *
+ *
+ * stroke-linecap
+ * getTrait [butt | round | square]
+ * setTrait [butt | round | square | inherit]
+ * "butt"
+ *
+ *
+ *
+ * stroke-linejoin
+ * getTrait [miter | round | bevel ]
+ * setTrait [miter | round | bevel | inherit]
+ * "miter"
+ *
+ *
+ *
+ * stroke-miterlimit
+ * getFloatTrait [ value >= 1]
+ * setTrait [inherit] setFloatTrait [value >= 1]
+ * 4.0f
+ *
+ *
+ *
+ * stroke-width
+ * getFloatTrait [value >= 0]
+ * setTrait [inherit] setFloatTrait [value >= 0]
+ * 1.0f
+ *
+ *
+ *
+ * visibility
+ * getTrait [visible | hidden]
+ * setTrait [visible | hidden | inherit]
+ * "visible"
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <svg>, <text>, <g>, <a>, and <use>;
+ *
+ *
+ *
+ * font-family
+ *
+ * getTrait [single, computed font-family value]
+ *
+ * setTrait [same syntax as font-family attribute]
+ *
+ * User-Agent
+ *
+ *
+ *
+ * font-size
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0] setTrait [inherit]
+ *
+ * User-Agent
+ *
+ *
+ * font-style
+ *
+ * getTrait [normal | italic | oblique ]
+ * setTrait [normal | italic | oblique | inherit]
+ * "normal"
+ *
+ *
+ * font-weight
+ *
+ * getTrait [100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ]
+ * setTrait [normal | bold | bolder | lighter | 100 | 200 | 300
+ * | 400 | 500 | 600 | 700 | 800 | 900 | inherit]
+ * "normal"
+ *
+ *
+ * text-anchor
+ *
+ * getTrait [start | middle | end]
+ *
+ * setTrait [start | middle | end | inherit ]
+ *
+ * "start"
+ *
+ *
+ *
+ *
+ *
+ *
+ * Attribute
+ *
+ * Trait Getter
+ *
+ * Trait Setter
+ *
+ * Default Values
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <rect>, <circle>, <ellipse>, <line>, <path>, <g>,
+ * <image>, <text>, <a>, and <use>
+ *
+ *
+ * transform
+ *
+ * getMatrixTrait [SVGMatrix]
+ *
+ * setMatrixTrait [SVGMatrix]
+ *
+ * Identity matrix
+ * (1,0,0,1,0,0)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <rect>
+ *
+ *
+ *
+ * height
+ *
+ * getFloatTrait [ value >= 0]
+ *
+ * setFloatTrait [ value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ * width
+ *
+ * getFloatTrait [ value >= 0]
+ * setFloatTrait [ value >= 0]
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ * x
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * rx
+ *
+ * getFloatTrait [value >= 0]
+ * setFloatTrait [value >= 0]
+ * 0.0f
+ *
+ *
+ *
+ * ry
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * 0.0f
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <circle>
+ *
+ *
+ *
+ * cx
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * cy
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * r
+ *
+ * getFloatTrait [ value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <ellipse>
+ *
+ *
+ *
+ * cx
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * cy
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * rx
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ * ry
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <line>
+ *
+ *
+ *
+ * x1
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * x2
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y1
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y2
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <path> (path-length is not supported)
+ *
+ *
+ *
+ * d
+ *
+ * getPathTrait [SVGPath]
+ *
+ * setPathTrait [SVGPath]
+ *
+ * REQUIRED (Empty SVGPath)
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <image>
+ *
+ *
+ *
+ * x
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * width
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ * height
+ *
+ * getFloatTrait [value >= 0]
+ *
+ * setFloatTrait [value >= 0]
+ *
+ * REQUIRED (0.0f)
+ *
+ *
+ *
+ * xlink:href
+ *
+ * getTrait NS[absolute URI]
+ *
+ * setTraitNS [non local-URI value]
+ *
+ * REQUIRED ( "" )
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <use>
+ *
+ *
+ *
+ * x
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * xlink:href
+ *
+ * getTraitNS[absolute URI]
+ *
+ * setTraitNS
+ *
+ * ""
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <a>
+ *
+ *
+ *
+ * target
+ *
+ * getTrait
+ *
+ * setTrait
+ *
+ * ""
+ *
+ *
+ *
+ * xlink:href
+ *
+ * getTraitNS[absolute URI]
+ *
+ * setTraitNS
+ *
+ * ""
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <text> (Notes:
+ * For 'x' and 'y', it is only possible
+ * to provide floating point scalar values; an array of x or y values is not supported.
+ * 'rotate' attribute is not supported.)
+ *
+ *
+ *
+ * x
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * y
+ *
+ * getFloatTrait
+ *
+ * setFloatTrait
+ *
+ * 0.0f
+ *
+ *
+ *
+ * #text
+ *
+ * getTrait [not null]
+ *
+ * setTrait [not null]
+ *
+ * ""
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * <svg>
+ *
+ *
+ *
+ * version
+ *
+ * getTrait
+ *
+ * Not available (readonly)
+ *
+ * "1.1"
+ *
+ *
+ *
+ * baseProfile
+ *
+ * getTrait
+ *
+ * Not available (readonly)
+ *
+ * "tiny"
+ *
+ *
+ *
+ * viewBox
+ *
+ * getRectTrait [null, SVGRect]
+ *
+ * setRectTrait [SVGRect]
+ *
+ * null
+ *
+ *
+ *
+ * zoomAndPan
+ *
+ * getTrait [disable | magnify]
+ *
+ * setTrait [disable | magnify]
+ *
+ * "magnify"
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+
+// ***********************************************************************
+// SVG Path
+// ***********************************************************************
+/**
+ * An SVG Path datatype is used to define the path geometry.
+ * Corresponds to SVG path specification or the "d" attribute.
+ *
+ * The native implementations must support the following simplifications or
+ * canonicalization of path segments. Any simplifications should be lossless.
+ *
+ *
+ * Relative commands (c, h, l, m, q, s, t, and v) must be converted to their absolute
+ * counterparts·
+ * Horizontal and Vertical lines (H, h, V, and v) must be converted to general
+ * lines (L and l)·
+ * Translate command S to command C·
+ * Translate command T to command Q.
+ *
+ *
+ */
+
+/**
+ * The CSvgJavaInterfaceImpl class specializes the CSvgEngineInterfaceImpl class
+ */
+class CSvgJavaInterfaceImpl : public CSvgEngineInterfaceImpl, public MSvgMouseListener
+{
+public:
+ /**
+ * Construct an instance of CSvgJavaInterfaceImpl
+ */
+ IMPORT_C static CSvgJavaInterfaceImpl* NewL( TFontSpec& aFontSpec );
+ IMPORT_C static CSvgJavaInterfaceImpl* NewL();
+
+ /**
+ * Destruct an instance of CSvgJavaInterfaceImpl
+ */
+ IMPORT_C ~CSvgJavaInterfaceImpl();
+
+ // ***********************************************************************
+ // SVG Engine
+ // ***********************************************************************
+ /**
+ * Create an SvgEngine instance.
+ * NOTE: Java side uses engine only during rendering phase.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableGraphics#render()
+ * @return Pointer to CSvgEngineImpl object if creation is succesful, otherwise 0 is returned.
+ */
+ IMPORT_C SvgEngineHandle SvgEngineCreate();
+
+ /**
+ * Request to set render quality.
+ * Set the quality of rendering. It can take one of the values,
+ * RENDERING_QUALITY_LOW
(=1) or RENDERING_QUALITY_HIGH
(=2).
+ * Default value is RENDERING_QUALITY_HIGH
.
+ * The implementation of these quality levels is implementation dependent and should
+ * be mapped to definitions in SVG spec (shape, text, image and color rendering)
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableGraphics#setRenderingQuality()
+ * @param aEngineHandle Engine handle.
+ * @param aQuality This value indicates the quality of rendering required.
+ */
+ IMPORT_C void SvgEngineSetRenderQuality( SvgEngineHandle aEngineHandle, TInt aQuality );
+
+ /**
+ * Request to render the SVG document.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableGraphics#render()
+ * @param aEngineHandle Svg engine handle
+ * @param aDocumentHandle Svg document handle
+ * @param aSurfaceHandle Svg surface handle
+ * @param aSurfaceMaskHandle Mask that defines what pixels should be thrown and what not.
+ * @param aCurrentTime Current frame time. NOTE might be obsolete since the
+ */
+ IMPORT_C void SvgEngineRenderDocument(
+ SvgEngineHandle aEngineHandle, SvgDocumentHandle aDocumentHandle,
+ TInt aSurfaceHandle, TInt aSurfaceMaskHandle = NULL, TReal32 aCurrentTime = 0.0f ) __SOFTFP;
+
+ IMPORT_C void SvgEngineRenderDocumentL(
+ SvgEngineHandle aEngineHandle, SvgDocumentHandle aDocumentHandle,
+ TInt aSurfaceHandle, const TPoint& aAnchor, const TRect& aRenderArea, TReal32 aCurrentTime, TReal32 aAlpha ) __SOFTFP;
+
+ /**
+ * Request to destroy the given engine by handle.
+ * NOTE: Java MIDlet could use multiple engines.
+ *
+ * @since 1.0
+ * @param aEngineHandle Engine
+ */
+ IMPORT_C void SvgEngineDestroy( SvgEngineHandle aEngineHandle );
+
+ /*
+ * Sets the animation back to time 0 and then starts the internal engine timer
+ * NOTE: Java doesn't use this method. Java uses own timer(s).
+ *
+ * @since 1.0
+ * @param aEngineHandle Engine
+ */
+ IMPORT_C void SvgEngineStart( SvgEngineHandle aEngineHandle );
+
+ /*
+ * Stops the internal SVG engine timer
+ * NOTE: Java doesn't use this method. Java uses own timer.
+ *
+ * @since 1.0
+ * @param aEngineHandle Engine
+ */
+ IMPORT_C void SvgEngineStop( SvgEngineHandle aEngineHandle );
+
+ /*
+ * Resumes the internal SVG engine timer
+ * NOTE: Java doesn't use this method. Java uses own timer.
+ *
+ * @since 1.0
+ * @param aEngineHandle Engine
+ */
+ IMPORT_C void SvgEngineResume( SvgEngineHandle aEngineHandle );
+
+ // *****************************************************************************
+ // SVG Rendering Surface Functions
+ // *****************************************************************************
+ /**
+ * Create a Svg Rendering Surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aWidth Width
+ * @param aHeight Height
+ * @return Surface
+ */
+ IMPORT_C SvgSurfaceHandle SvgRenderingSurfaceCreate( TInt aWidth, TInt aHeight );
+
+ /**
+ * Destroy a Svg Rendering Surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aSurface Surface
+ */
+ IMPORT_C void SvgRenderingSurfaceDestroy( SvgSurfaceHandle aSurface );
+
+ /**
+ * Get a pointer to the Svg Rendering surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aSurface Surface
+ * @return CFbsBitmap object
+ */
+ IMPORT_C TUint* SvgRenderingSurfaceGetBuffer( SvgSurfaceHandle aSurface );
+
+ /**
+ * Get the width of the Svg Rendering Surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aSurface Surface
+ * @return Width
+ */
+ IMPORT_C TInt SvgRenderingSurfaceGetWidth( SvgSurfaceHandle aSurface );
+ /**
+ * Get the height of the Svg Rendering Surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aSurface Surface
+ * @return Height
+ */
+ IMPORT_C TInt SvgRenderingSurfaceGetHeight( SvgSurfaceHandle aSurface );
+
+ /**
+ * Clear the Svg Rendering Surface.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aSurface Surface
+ */
+ IMPORT_C void SvgRenderingSurfaceClearBuffer( SvgSurfaceHandle aSurface );
+
+ // ***********************************************************************
+ // SVG Document
+ // ***********************************************************************
+ /**
+ * Create an empty svg document.
+ * NOTE: Java doesn't use this method.
+ * Java side uses the SvgDocumentCreateL
method to create an empty SVG document
+ * that contains a root <svg> element with default viewport size of 100x100.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#createEmptyImage()
+ * @return Svg Document.
+ */
+ IMPORT_C SvgDocumentHandle SvgDocumentCreateEmpty();
+
+ /**
+ * Create a svg document by parsing the given string.
+ * The image size is determined by the content specification
+ * (eg: width/height attributes on root SVG element). The default viewport size
+ * of 100-by-100 pixels is used when the size is unspecified. This method will throw an exception
+ * when the document is in error:
+ *
+ * the SVG document does not conform to the XML 1.0 specification
+ * an element has an attribute or property value which is not permissible according to the SVG specification
+ * the required or mandatory attributes according to the SVG specification are missing
+ * the document contains circular references on the <use> element
+ * the document contains <image> element(s) with local references
+ * the document contains elements with duplicate Id's
+ * the document contains animation(s) in error
+ *
+ *
+ * The native engine might be invoked for any external resource referenced in the document
+ * by calling the SvgDocumentRequestCompleted
.
+ * However, please note that data URIs (for ex: base64 encoded images
+ * like <image xlink:href="data:image/png;base64,/9j/4AAQ..."/>)
+ * are required to be decoded by the native engine.
+ * The engine must only make one call if there exist multiple resources with the same URI.
+ *
+ * If a svg document contains external resources and SvgDocumentRequestCompleted
is not called
+ * then the engine's default implementation is used automatically, but it might not be able to load all of
+ * external resources. For example, if the svg document is loaded from a file in a Jar file,
+ * the implementation will not be able to load images that have relative
+ * URIs (ex; <image xlink:href="myImage.png" />).
+ *
+ * Note that SvgDocumentRequestCompleted
is also called when the xlink:href attribute on
+ * <image> is set or changed by the application, but the call is made only when the
+ * element is hooked into the document tree i.e. when the ancestors go all the way up to
+ * the root <svg> element. There are two cases:
+ *
+ * When changing the xlink:href attribute of an existing <image> element that is already hooked or part of the tree.
+ * When creating a new <image>, setting its xlink:href and hooking it to the document tree.
+ *
+ *
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#createImage()
+ * @param aString The string from which the SVG content should be read
+ * @return Svg Document if successful, otherwise the function leaves.
+ * @throws MJavaError if an error occurs while loading the content.
+ */
+ IMPORT_C SvgDocumentHandle SvgDocumentCreateL( const TPtrC16& aString );
+
+ /**
+ * Destroy the given svg document (by handle).
+ * NOTE: Java MIDlet could use multiple documents.
+ *
+ * @since 1.0
+ * @param aDocumentHandle Document handle.
+ */
+ IMPORT_C void SvgDocumentDestroy( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Svg Document request complete.
+ * Once the requested external resource is available, the application forwards this information
+ * (data) to the SVG engine. If this method is called a second time for a same URL (uri) of a
+ * same SVG document, the engine will replace the current resource data with the new
+ * one. Note: Setting NULL
for data (0
for data_size) indicates
+ * that the requested resource could not be fetched by java side, and in this event the SVG engine
+ * will not make further attempts to load this resource.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#requestCompleted()
+ * @param hDocument SVG document handle
+ * @param uri External resource URI
+ * @param data External resource data
+ * @param data_size External resource data size
+ * @return TODO
+ */
+ EXPORT_C TInt SvgDocumentRequestCompleted( SvgDocumentHandle hDocument, const TPtrC16& aUri, const TPtrC8& );
+
+ /**
+ * Get an external item indicated in a SVG document.
+ * Java side might request an external resouce and once the requested external resource is available,
+ * java side forwards this information (SvgDocumentGetExternalListItem
) to the SVG engine.
+ * Note: Returning null
indicates that the SVG engine tryes to handle the requested resource.
+ *
+ * @since 1.0
+ * @param aDocumentHandle SVG document handle
+ * @param index External resource item index. Scale:
+ * 0 <= index
< SvgDocumentGetExternalListSize
+ * @return External resource URI
+ */
+ IMPORT_C TInt SvgDocumentGetExternalListItem(SvgDocumentHandle aDocumentHandle, TInt aIndex, TPtrC16& aItem);
+
+ /**
+ * Get number of external list items in a SVG document.
+ * After the SVG document is created (see SvgDocumentCreateL
) java side checks if
+ * the SVG document contains external item(s)
+ *
+ * @since 1.0
+ * @param aDocumentHandle SVG document handle
+ * @return Number of external resource items
+ */
+ IMPORT_C TInt SvgDocumentGetExternalListSize( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Increments the animation or media timeline for the specified document aDocumentHandle
+ * (in seconds).
+ * This method is intended to move only forward in the timeline.
+ * It is important to note that setting large increments of time would result in
+ * skipping parts of the animation as per the SVG animation model.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#incrementTime()
+ * @see org.w3c.dom.svg.SVGSVGElement#setCurrentTime()
+ * @param aDocumentHandle SVG document handle.
+ * @param seconds the value of time to be set in seconds.
+ */
+ IMPORT_C void SvgDocumentSetMediaTime( SvgDocumentHandle aDocumentHandle, TReal32 seconds ) __SOFTFP;
+
+ /**
+ * Get current animation or media timeline time for the specified document.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGSVGElement#getCurrentTime()
+ * @param aDocumentHandle SVG document handle
+ * @return Returns current animation timeline time in seconds
+ */
+ IMPORT_C TReal32 SvgDocumentGetMediaTime( SvgDocumentHandle aDocumentHandle ) __SOFTFP;
+
+ /**
+ * Get the viewport width of the given SVG document.
+ * The value returned is always in pixels. If the specified width is defined in percentages, the
+ * values are mapped to the default view port size of 100x100. If the viewport width
+ * is explicitly changed by the java application, then the percentages are ignored and the content
+ * is made to fit to this new viewport width.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#getViewportWidth()
+ * @see SvgDocumentSetViewportWidth
+ * @param aDocumentHandle SVG document handle
+ * @return the current width of the given SVG document.
+ */
+ IMPORT_C TInt SvgDocumentGetViewportWidth( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Get the viewport height of the given SVG document.
+ * The value returned is always in pixels. If the specified height is defined in percentages, the
+ * values are mapped to the default view port size of 100x100. If the viewport height
+ * is explicitly changed by the java application, then the percentages are ignored and the content
+ * is made to fit to this new viewport height.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#getViewportHeight()
+ * @see SvgDocumentSetViewportHeight
+ * @param aDocumentHandle SVG document handle
+ * @return the current height of the given SVG document.
+ */
+ IMPORT_C TInt SvgDocumentGetViewportHeight( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Set the new (viewport) width for the given SVG document.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#setViewportWidth()
+ * @see SvgDocumentGetViewportWidth
+ * @param aDocumentHandle SVG document handle
+ * @param aWidth The new width to be set.
+ */
+ IMPORT_C void SvgDocumentSetViewportWidth( SvgDocumentHandle aDocumentHandle, TInt aWidth );
+
+ /**
+ * Set the new (viewport) height for the given SVG document.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.ScalableImage#setViewportHeight()
+ * @see SvgDocumentGetViewportHeight
+ * @param aDocumentHandle SVG document handle
+ * @param aHeight The new height to be set.
+ */
+ IMPORT_C void SvgDocumentSetViewportHeight( SvgDocumentHandle aDocumentHandle, TInt aHeight );
+
+ /**
+ * Set the default viewport size for the given SVG document.
+ * The default viewport size of 100-by-100 pixels is used when the size is unspecified.
+ *
+ * @since 1.0
+ * @param aDocumentHandle Document
+ */
+ IMPORT_C void SvgDocumentViewportInit( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Get the viewport width units for the given document.
+ * NOTE: Java side is not actually need this method.
+ *
+ * @since 1.0
+ * @param aDocumentHandle Document
+ * @return 1
if pixels or 0
if percentages
+ */
+ IMPORT_C TInt SvgDocumentGetViewportWidthUnits( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Get the viewport height units for the given document.
+ * NOTE: Java side is not actually need this method.
+ *
+ * @since 1.0
+ * @param aDocumentHandle Document
+ * @return 1
if pixels or 0
if percentages
+ */
+ IMPORT_C TInt SvgDocumentGetViewportHeightUnits( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Return a child element of the given SVG document Node which corresponds to the top-most
+ * tag in XML file. For SVG files it must be SVGSVGElement
.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Document#getDocumentElement()
+ * @param aDocumentHandle SVG document handle
+ * @return The root element associated with the given SVG document.
+ */
+ IMPORT_C SvgElementHandle SvgDocumentGetRootElement( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Get the svg element in the given SVG document with
+ * the given unique ID string.If no such element exists, this returns NULL.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Document#getElementById()
+ * @param aDocumentHandle SVG document handle
+ * @param aId the ID of the element to be retrieved.
+ * @return An element handle that matches with the given ID or
+ * NULL
if the ID is not present.
+ */
+ IMPORT_C SvgElementHandle SvgDocumentGetElementById( SvgDocumentHandle aDocumentHandle, const TPtrC16& aID );
+
+ /**
+ * Get the number of ids in the current SVG document.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aDocumentHandle SVG document handle
+ */
+ IMPORT_C TInt SvgDocumentGetNumberOfIds(SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Get an id (at index) from the current SVG document.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aDocumentHandle SVG document handle
+ * @param index ID index
+ * @return ID string
+ */
+ IMPORT_C TInt SvgDocumentGetId(SvgDocumentHandle aDocumentHandle, TInt index, TPtrC16& aId);
+
+ /**
+ * Set the begin animation time for the given element in the given SVG document.
+ * The new time is added to the
+ * begin instance times list .
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGAnimationElement#beginElementAt()
+ * @param aDocumentHandle SVG document handle
+ * @param aElementHandle Element handle
+ * @param aOffsetTime The time in seconds at which to begin the element.
+ */
+ IMPORT_C void SvgDocumentBeginElementAt( SvgDocumentHandle aDocumentHandle,
+ SvgElementHandle aElementHandle,
+ TReal32 aOffsetTime ) __SOFTFP;
+
+ /**
+ * Set the end animation time for the given element in the given SVG document.
+ * The new time is added to the
+ * end instance times list .
+ * NOTE: Native engine checks the element is active before set the new end time.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGAnimationElement#endElementAt()
+ * @param aDocumentHandle SVG document handle
+ * @param aElementHandle Element handle
+ * @param aOffsetTime The time in seconds at which to end the element.
+ */
+ IMPORT_C void SvgDocumentEndElementAt( SvgDocumentHandle aDocumentHandle,
+ SvgElementHandle aElementHandle,
+ TReal32 aOffsetTime ) __SOFTFP;
+
+ /**
+ * Set the given element to have the focus in the given SVG document.
+ * The initial focus is always null
and setting
+ * NULL
will remove the current focus.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#focusOn()
+ * @param aDocumentHandle SVG document handle
+ * @param aElementHandle The element to set the focus on.
+
+ * changes made for Focus-in/focus-out bug(AMIA-6T8EEG)
+ */
+ IMPORT_C void SvgDocumentFocusOn( SvgDocumentHandle aDocumentHandle,
+ SvgElementHandle aElementHandle );
+
+ /**
+ * Get the element having the focus.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#focusOn()
+ * @param aDocumentHandle SVG document handle
+ * @return The element focused.
+ */
+ IMPORT_C SvgElementHandle SvgDocumentGetFocus( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Activate the element that has the focus.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#activate()
+ * @param aDocumentHandle SVG document handle
+ */
+ IMPORT_C void SvgDocumentActivate( SvgDocumentHandle aDocumentHandle );
+
+ /**
+ * Request a mouse event at the given coordinate.
+ * This method is used to dispatch a mouse "click" event to the given
+ * document. The mouse position is given as screen coordinates aMouseX, aMouseY
.
+ * If the aMouseX, aMouseY values are outside the viewport area or no target is available
+ * for the aMouseX, aMouseY coordinates, the event is not dispatched.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#dispatchMouseEvent()
+ * @param aDocumentHandle SVG document handle
+ * @param aMouseX The x location of the mouse/pointer in viewport coordinate system.
+ * @param aMouseX The y location of the mouse/pointer in viewport coordinate system.
+ * @return Element handle to where mouse was clicked. Return null if no hit.
+ */
+ IMPORT_C SvgElementHandle SvgDocumentDispatchMouseEvent( SvgDocumentHandle aDocumentHandle,
+ TInt aMouseX, TInt aMouseY );
+
+ /**
+ * Check if document has animation.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aDocumentHandle SVG document handle
+ * @param TBool . ETrue if animation present otherwise EFalse.
+ */
+ IMPORT_C TInt SvgDocumentHasAnimation( SvgDocumentHandle aDocumentHandle );
+
+
+ // ***********************************************************************
+ // SVG Element
+ // ***********************************************************************
+ /**
+ * Create a new svg element based on the specified
+ * (aType
) SVG tag name. Only the following elements must be supported:
+ * <rect>, <circle>, <ellipse>, <line>,
+ * <path> <use> <image> <text>,
+ * <a> and <g>.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Document#createElementNS()
+ * @param aType
+ * @return handle to the newly created SVG Element.
+ */
+ IMPORT_C SvgElementHandle SvgElementCreate( SvgAttrType aType );
+
+ /**
+ * Destroy svg element of the given handle.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param hElement Element handle
+ */
+ IMPORT_C void SvgElementDestroy( SvgElementHandle hElement );
+
+ /**
+ * Returns a parent element of the given element.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getParentNode()
+ * @param aElementHandle Element handle
+ * @return The parent element or NULL
if there is no parent
+ * (i.e. if a element has just been created and not yet added to the tree,
+ * or if it has been removed from the tree, this is null).
+ */
+ IMPORT_C SvgElementHandle SvgElementGetParent( SvgElementHandle aElementHandle );
+
+ /**
+ * Returns the first child element node of the given element.
+ * Return NULL
if this element has no child elements.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getFirstElementChild()
+ * @param aElementHandle Element handle
+ * @return The first child element node of the given element.
+ */
+ IMPORT_C SvgElementHandle SvgElementGetFirstElementChild( SvgElementHandle aElementHandle );
+
+ /**
+ * Returns the next sibling element of the given element.
+ * Return NULL
if the given element has no element sibling
+ * nodes that come after this one in the document tree.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getNextElementSibling()
+ * @param aElementHandle Element handle
+ * @return The next sibling element node of this element.
+ */
+ IMPORT_C SvgElementHandle SvgElementGetNextElementSibling( SvgElementHandle aElementHandle );
+
+ /**
+ * Append the given child element to the given svg element.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Node#appendChild()
+ * @param aElementHandle Element handle
+ * @param aChildElementHandle New child element handle
+ * @return Next sibling element
+ */
+ IMPORT_C void SvgElementAppendChild( SvgElementHandle aElementHandle,
+ SvgElementHandle aChildElementHandle );
+
+ /**
+ * Remove the given child element from the given svg element.
+ * Elements that have ids cannot be removed from the tree.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Node#removeChild()
+ * @param aElementHandle The parent element.
+ * @param aChildElementHandle The element that is to be removed
+ * TODO @return Handle to the removed element. Return NULL
+ * if operation failed.
+ */
+ IMPORT_C SvgElementHandle SvgElementRemoveChild( SvgElementHandle aElementHandle,
+ SvgElementHandle aChildElementHandle );
+
+ /**
+ * Inserts aChildElementHandle
before aReferenceElementHandle
+ * in the child list for the aElementHandle
. If aReferenceElementHandle
+ * is NULL
, aChildElementHandle
is inserted at the end of the list.
+ * If the aChildElementHandle
is already part of the tree, it is first removed.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Node#insertBefore()
+ * @param aElementHandle The parent element.
+ * @param aChildElementHandle The child to add
+ * @param aReferenceElementHandle The child before which the new child should be added.
+ * @throws TODO Should throw exception if the aChildElementHandle
would cause
+ * the SVG document to go into error, for ex: when the newChild contains a <use>
+ * element with an invalid xlink:href attribute.
+ */
+ IMPORT_C void SvgElementInsertBefore( SvgElementHandle aElementHandle,
+ SvgElementHandle aChildElementHandle,
+ SvgElementHandle aReferenceElementHandle );
+
+ /**
+ * Request element type. The following element type are supported:
+ * <a>, <animate>, <animateColor>, <animateMotion>,
+ * <animateTransform> <circle> <defs> <ellipse>,
+ * <font>, <font-face>, <font-face-name>, <font-face-src>,
+ * <foreignObject>, <g>, <glyph>, <hkern>, <image>,
+ * <line>, <metadata>, <missing-glyph>, <metadata>, <mpath>.
+ * <path>, <polygon>, <polyline>, <rect>, <set>,
+ * <svg>, <switch>, <text>, <title>, <use>.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement
+ * @param aElementHandle The element.
+ * @return Element type.
+ */
+ IMPORT_C TInt SvgElementGetType( SvgElementHandle aElementHandle );
+
+ /**
+ * Check if document has animation.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aElementHandle SVG element handle
+ * @param TBool . ETrue if animation present otherwise EFalse.
+ */
+ IMPORT_C TInt SvgElementHasAnimation( SvgElementHandle aElementHandle );
+
+ /**
+ * Get a string attribute from the given element.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement
+ * @param aElementHandle The element.
+ * @param aAttributeName Attribute's name
+ * @return Attribute value.
+ */
+ IMPORT_C TInt SvgElementGetStringAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttributeName, TPtrC16& aStrAttribute );
+
+ /**
+ * Set a string attribute in the given element.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement
+ * @param aElementHandle The SVG element handle.
+ * @param aAttributeName Attribute's name
+ * @param aAttributeValue Atribute's value.
+ */
+ IMPORT_C void SvgElementSetStringAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttributeName,
+ const TPtrC16& aAttributeValue );
+
+ /**
+ * Get a color attribute from the given element.
+ * The values are copied into the color components given.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGRGBColor
+ * @param aElementHandle The element handle.
+ * @param aAttributeName Attribute's name
+ * @param aRedValue The red value
+ * @param aGreenValue The green value
+ * @param aBlueValue The blue value
+ * @return Integer containing the RGB value for the color.
+ */
+ IMPORT_C TInt SvgElementGetColorAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute,
+ TInt* aRedValue, TInt* aGreenValue, TInt* aBlueValue );
+
+ /**
+ * Set a color attribute for the given element.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGRGBColor
+ * @param aElementHandle The element.
+ * @param aAttribute Attribute's name
+ * @param aRedValue The red value
+ * @param aGreenValue The green value
+ * @param aBlueValue The blue value
+ */
+ IMPORT_C void SvgElementSetColorAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute,
+ TInt aRedValue, TInt aGreenValue, TInt aBlueValue );
+
+
+ /**
+ * Return a attribute (trait) value as float.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getFloatTrait()
+ * @param aElementHandle The element.
+ * @param aAttribute Attribute's (or trait's) name
+ * @return The attribute (or trait) value as float for the specified name.
+ */
+ IMPORT_C TReal32 SvgElementGetFloatAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute ) __SOFTFP;
+
+ /**
+ * Set the attribute (trait) value as float.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getFloatTrait()
+ * @param aElementHandle The element handle.
+ * @param aAttribute The name of the attribute (trait) to be set.
+ * @param aFloatValue The value of the attribute (trait) to be set as float.
+ */
+ IMPORT_C void SvgElementSetFloatAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute,
+ TReal32 aFloatValue ) __SOFTFP;
+
+ /**
+ * Set enum attribute (trait) value.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement
+ * @param aElementHandle The element handle.
+ * @param aAttribute The name of the attribute (trait) to be set.
+ * @param aValue The value of the attribute (trait) to be set.
+ */
+ IMPORT_C void SvgElementSetEnumAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute, short aValue );
+
+ /**
+ * Get enum attribute (trait) value.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement
+ * @param aElementHandle The element handle.
+ * @param aAttribute The name of the attribute (trait).
+ * @return The value of the attribute (trait).
+ */
+ IMPORT_C short SvgElementGetEnumAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aAttribute );
+
+ /**
+ * Return the rectangle attribute (trait) values.
+ * NOTE: The returned values are copies of the actual attribute (trait) values and
+ * will not change if the corresponding trait changes.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getRectTrait()
+ * @param aElementHandle The element handle.
+ * @param aRectAttribute The name of the attribute (trait) to retrieve.
+ * @param aX X coordinate.
+ * @param aY Y coordinate.
+ * @param aWidth Width.
+ * @param aHeight Height.
+ * @return -1
if failed otherwise returns positive integer.
+ */
+ IMPORT_C TInt SvgElementGetRectAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aRectAttribute,
+ TReal32* aX, TReal32* aY, TReal32* aWidth, TReal32* aHeight ) __SOFTFP;
+
+ /**
+ * Set the rectangle attribute (trait) values.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#setRectTrait()
+ * @param aElementHandle The element handle.
+ * @param aRectAttribute The name of the attribute (trait) to be set.
+ * @param aX X coordinate.
+ * @param aY Y coordinate.
+ * @param aWidth Width.
+ * @param aHeight Height.
+ */
+ IMPORT_C void SvgElementSetRectAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aRectAttribute,
+ TReal32 aX, TReal32 aY, TReal32 aWidth, TReal32 aHeight ) __SOFTFP;
+
+ /**
+ * Get the matrix attribute (trait) values.
+ * NOTE: The returned values are copies of the actual attribute (trait) values and
+ * will not change if the corresponding trait changes.
+ *
+ * [aAVal aCVal aEVal]
+ * [aBVal aDVal aFVal]
+ *
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getMatrixTrait()
+ * @param aElementHandle The element handle.
+ * @param aMatrixAttribute The name of the attribute (trait) to retrieve.
+ * @param aAVal The x scaling component
+ * @param aBVal The y shearing component
+ * @param aCVal The x shearing component
+ * @param aDVal The y scaling component
+ * @param aEVal The x translation component
+ * @param aFVal The y translation component
+ * @return TODO
+ */
+ IMPORT_C TInt SvgElementGetMatrixAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aMatrixAttribute,
+ TReal32* aAVal, TReal32* aBVal, TReal32* aCVal,
+ TReal32* aDVal, TReal32* aEVal, TReal32* aFVal ) __SOFTFP;
+
+ /**
+ * Set the matrix attribute (trait) values.
+ *
+ * [aAVal aCVal aEVal]
+ * [aBVal aDVal aFVal]
+ *
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#setMatrixTrait()
+ * @param aElementHandle The element handle.
+ * @param aMatrixAttribute The name of the attribute (trait) to be set.
+ * @param aAVal The x scaling component
+ * @param aBVal The y shearing component
+ * @param aCVal The x shearing component
+ * @param aDVal The y scaling component
+ * @param aEVal The x translation component
+ * @param aFVal The y translation component
+ */
+ IMPORT_C void SvgElementSetMatrixAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aMatrixAttribute,
+ TReal32 aAVal, TReal32 aBVal, TReal32 aCVal,
+ TReal32 aDVal, TReal32 aEVal, TReal32 aFVal ) __SOFTFP;
+
+ /**
+ * Get the path attribute (trait)value.
+ * NOTE: The returned values are copies of the actual attribute values and will not change if
+ * the corresponding trait changes.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#getPathTrait()
+ * @see org.w3c.dom.svg.SVGPath
+ * @param aElementHandle The element handle.
+ * @param aPathAttribute The name of the attribute (trait) to retrieve.
+ * @return The handle to path object. NULL
if not successed.
+ */
+ IMPORT_C TInt SvgElementGetPathAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aPathAttribute );
+
+ /**
+ * Set the path attribute (trait) value.
+ * NOTE: Value is a copy in the trait so subsequent changes to the given
+ * aPathHandle
have no effect on the value of the attribute (trait).
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGElement#setPathTrait()
+ * @see org.w3c.dom.svg.SVGPath
+ * @param aElementHandle The element handle.
+ * @param aPathAttribute The name of the attribute (trait) to be set.
+ * @param aPathHandle The value of the attribute (trait) to be set as.
+ */
+ IMPORT_C void SvgElementSetPathAttribute( SvgElementHandle aElementHandle,
+ SvgAttrType aPathAttribute , SvgPathHandle aPathHandle);
+
+ /**
+ * Returns the tight bounding box in current user coordinate space.
+ * Tight bounding box is the smallest possible rectangle that includes the geometry
+ * of all contained graphics elements excluding stroke.
+ * The calculation is done in the user coordinate space of the element. When bounding box
+ * is calculated elements with display property (trait) set to none are ignored.
+ * Exact rules for the bounding box calculation are given in the
+ * SVG spec .
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGLocatableElement#getBBox()
+ * @param aElementHandle The element handle.
+ * @param aAttributeType The name of the attribute (trait) to retrieve.
+ * @param aX X coordinate.
+ * @param aY Y coordinate.
+ * @param aWidth Width.
+ * @param aHeight Height.
+ */
+ IMPORT_C void SvgElementGetBBox( SvgElementHandle aElementHandle,
+ SvgAttrType aAttributeType,
+ TReal32* aX, TReal32* aY, TReal32* aWidth, TReal32* aHeight ) __SOFTFP;
+
+ /**
+ * Add event listener to the given element.
+ * Note: need to replace void* with specific class
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aElementHandle The element handle.
+ * @param aListener Listener
+ * @param aType Type
+ */
+ IMPORT_C void SvgElementAddEventListener( SvgElementHandle aElementHandle,
+ TInt aListener, SvgAttrType aType );
+
+ /**
+ * Remove event listener from the given element.
+ * Note: need to replace void* with specific class
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aElementHandle The element handle.
+ * @param aListener Listener
+ * @param aType Type
+ */
+ IMPORT_C void SvgElementRemoveEventListener( SvgElementHandle aElementHandle,
+ TInt aListener, SvgAttrType aType );
+ /**
+ * Check if element is active.
+ * i.e. an animation element is active in these cases:
+ *
+ *
+ * A media time is 1s.
+ *
+ *
+
+
+ *
+ *
+ *
+ * A media time is 2s.
+ *
+ *
+
+
+ *
+ *
+ *
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGAnimationElement#endElementAt()
+ * @param aElementHandle The element handle.
+ * @return Positive integer if element is active.
+ */
+ IMPORT_C TInt SvgElementIsActive( SvgElementHandle aElementHandle );
+
+ /**
+ * Check if the given element is removable (no id or children with ids).
+ *
+ * @since 1.0
+ * @see org.w3c.dom.Node#removeChild()
+ * @param aElementHandle The element handle.
+ * @return Positive integer if element is removeable.
+ */
+ IMPORT_C TInt SvgElementCheckRemoveable( SvgElementHandle aElementHandle );
+
+ // ***********************************************************************
+ // SVG Path
+ // ***********************************************************************
+ /**
+ * Creates new path object that is empty.
+ * This object can be used to modify value of path traits
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGSVGElement#createSVGPath()
+ * @see org.w3c.dom.svg.SVGPath
+ * @return The newly created path object handle with empty path commands.
+ */
+ IMPORT_C SvgPathHandle SvgPathCreate();
+
+ /**
+ * Destroy the specified path path
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath
+ * @param aPathHandle Handle to the path to be deleted.
+ */
+ IMPORT_C void SvgPathDestroy( SvgPathHandle aPathHandle );
+
+ /**
+ * Get the segment count of the given path.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#getNumberOfSegments()
+ * @param aPathHandle The path handle.
+ * @return Segment count
+ */
+ IMPORT_C TInt SvgPathGetSegmentCount( SvgPathHandle aPathHandle );
+
+ /**
+ * Returns segment command by zero-based command index.
+ * Returns one of MOVE_TO
, LINE_TO
,
+ * CURVE_TO
, QUAD_TO
or CLOSE
.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#getSegment()
+ * @param aPathHandle The path handle.
+ * @param aSegmentIndex The command index for the segment command to retrieve.
+ * @return The segment command for the specified aSegmentIndex.
+ */
+ IMPORT_C TInt SvgPathGetSegmentType( SvgPathHandle aPathHandle, TInt aSegmentIndex );
+
+ /**
+ * Returns segment parameter by zero-based command index and zero-based parametr index.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#getSegmentParameter()
+ * @param aPathHandle The path handle.
+ * @param aSegmentIndex The command index for the segment command to retrieve.
+ * @param aSegmentParameterIndex The parameter index for the segment parameter to retrieve.
+ * @return the segment parameter for the specified aSegmentIndex and aSegmentParameterIndex.
+ */
+ IMPORT_C TReal32 SvgPathGetSegmentParameter( SvgPathHandle aPathHandle,
+ TInt aSegmentIndex,
+ TInt aSegmentParameterIndex ) __SOFTFP;
+
+ /**
+ * Appends 'M' (absolute move) segment to the path with the specified coordinates.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#moveTo()
+ * @param aPathHandle The path handle.
+ * @param aX The x-axis coordinate for the specified point.
+ * @param aY The y-axis coordinate for the specified point.
+ */
+ IMPORT_C void SvgPathAddMoveTo( SvgPathHandle aPathHandle, TReal32 aX, TReal32 aY ) __SOFTFP;
+
+ /**
+ * Appends 'L' (absolute line) segment to the path with the specified coordinates.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#moveTo()
+ * @param aPathHandle The path handle.
+ * @param aX The x-axis coordinate for the specified point.
+ * @param aY The y-axis coordinate for the specified point.
+ */
+ IMPORT_C void SvgPathAddLineTo( SvgPathHandle aPathHandle, TReal32 aX, TReal32 aY ) __SOFTFP;
+
+ /**
+ * Appends 'Q' (absolute quadratic curve) segment to the path.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#quadTo()
+ * @param aPathHandle The path handle.
+ * @param aX1 the x-axis coordinate of the first control point.
+ * @param aY1 the y-axis coordinate of the first control point.
+ * @param aX2 the x-axis coordinate of the final end point.
+ * @param aY2 the y-axis coordinate of the final end point.
+ *
+ */
+ IMPORT_C void SvgPathAddQuadTo( SvgPathHandle aPathHandle,
+ TReal32 aX1, TReal32 aY1,
+ TReal32 aX2, TReal32 aY2 ) __SOFTFP;
+
+ /**
+ * Appends 'C' (absolute cubic curve) segment to the path.
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#curveTo()
+ * @param aPathHandle The path handle.
+ * @param aX1 the x-axis coordinate of the first control point.
+ * @param aY1 the y-axis coordinate of the first control point.
+ * @param aX2 the x-axis coordinate of the second end point.
+ * @param aY2 the y-axis coordinate of the second end point.
+ * @param aX3 the x-axis coordinate of the final end point.
+ * @param aY3 the y-axis coordinate of the final end point.
+ *
+ */
+ IMPORT_C void SvgPathAddCurveTo( SvgPathHandle aPathHandle,
+ TReal32 aX1, TReal32 aY1,
+ TReal32 aX2, TReal32 aY2,
+ TReal32 aX3, TReal32 aY3 ) __SOFTFP;
+ /**
+ * Appends 'Z' (close path) segment to the path
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGPath#close()
+ * @param aPathHandle The path handle.
+ */
+ IMPORT_C void SvgPathAddClose( SvgPathHandle aPathHandle );
+
+ /**
+ * Update path info.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @param aElementHandle The element handle.
+ * @param aPathHandle The path handle.
+ */
+ IMPORT_C void SvgElementUpdatePath( SvgElementHandle aElementHandle, SvgPathHandle aPathHandle );
+
+ /**
+ * Find whether the element is present in a document.
+ *
+ * @since 1.0
+ * @param hDocument The SVG document handle.
+ * @param hElement The element handle.
+ * @return Positive integer if the element presents in the given SVG document.
+ */
+ IMPORT_C TInt SvgElementElementInDOM ( TInt hDocument, TInt hElement );
+
+ /**
+ * Checks whether this element is child of a use element.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#dispatchMouseEvent()
+ * @param hElement The element handle.
+ * @return Postivive integer if the element is child of a use element.
+ */
+ IMPORT_C TInt SvgElementIsUsed ( TInt hElement );
+
+ /**
+ * Finds the handle to the actual cloned element.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#dispatchMouseEvent()
+ * @param hElement aElement This is handle to the cloned element. this is child of the
+ * element.
+ * @return Element handle to the actual element, which is cloned.
+ */
+ IMPORT_C TInt SvgElementGetUsedFromElement ( TInt hElement );
+
+ /**
+ * Gets a screen bounding box for the given element.
+ * Returns the tight bounding box in screen coordinate space. Tight bounding box is the smallest
+ * possible rectangle that includes the geometry of all contained graphics elements excluding
+ * stroke. The box coordinates are in the screen coordinate space, which is connected to the
+ * current user coordinate space by the matrix returned by SvgElementGetMatrixAttribute
+ * (with attribute id=<svg>).
+ *
+ * @since 1.0
+ * @see org.w3c.dom.svg.SVGLocatableElement#getScreenBBox()
+ * @see org.w3c.dom.svg.SVGLocatableElement#getScreenCTM()
+ * @param hElement The element handle.
+ */
+ IMPORT_C void SvgElementGetScreenBBox( TInt hElement, TReal32* x,TReal32* y, TReal32* w, TReal32* h ) __SOFTFP;
+
+ /**
+ * Set the focus out of the given element.
+ * The initial focus is always null
and setting
+ * NULL
will remove the current focus.
+ * NOTE: Java doesn't use this method.
+ *
+ * @since 1.0
+ * @see javax.microedition.m2g.SVGImage#focusOut()
+ * @param aDocumentHandle SVG document handle
+ * @param aElementHandle The element for which to set the focus out.
+
+ * changes made for Focus-in/focus-out bug(AMIA-6T8EEG)
+ */
+ IMPORT_C void CSvgJavaInterfaceImpl::SvgDocumentFocusOut( SvgDocumentHandle aDocumentHandle,
+ SvgElementHandle aElementHandle);
+
+ /*
+ * Maps the PATH segment type from SVG to JSR.
+ */
+
+ TInt MapSegmentType(TInt aSvgSegmentType);
+
+ /*
+ * LISTENER IMPLEMENTATIONS FROM THE ENGINE
+ */
+
+ TBool MouseEntered( RPointerArray& aElements, TInt aX, TInt aY );
+
+ TBool MouseExited( RPointerArray& aElements, TInt aX, TInt aY );
+
+ TBool MouseMoved( RPointerArray& aElements, TInt aX, TInt aY );
+
+ TBool MousePressed( RPointerArray& aElements, TInt aX, TInt aY );
+
+ TBool MouseReleased( RPointerArray& aElements, TInt aX, TInt aY );
+
+public:
+ CSvgDocumentImpl* iTempDoc;
+
+private:
+
+ TBool IsAnimationElemId( const TInt aElementId );
+ /**
+ * Gets The corresponding JSR-to-SVG element id. Ids of the elements differ in the svg
+ * engine and the JSR-API's.
+ */
+ TInt SvgGetElementTypeMappingJSRtoSVG( SvgAttrType aType );
+ /**
+ * Gets The corresponding SVG-to-JSR element id. Ids of the elements differ in the svg
+ * engine and the JSR-API's.
+ */
+ SvgAttrType SvgGetElementTypeMappingSVGtoJSR( const TInt aElementId);
+
+ /**
+ * Gets the attribute type mapping from SVG to JSR. Attribute t
+ *
+ */
+ SvgAttrType SvgGetAttributeTypeMappingSVGtoJSR( const TInt aElementId);
+ /**
+ * Gets the attribute type mapping from JSR to SVG. Attribute t
+ *
+ */
+ TInt SvgGetAttributeTypeMappingJSRtoSVG( SvgAttrType aType );
+ /**
+ * Gets the Enumeration value mapping from JSR to SVG. Attribute t
+ *
+ */
+ TInt SvgEnumerationMappingJSRtoSVG(const TInt aAttributeId, TInt aJsrEnumValue);
+ /**
+ * Gets the Enumeration value to string mapping from JSR to SVG. Attribute t
+ *
+ */
+ TInt SvgEnumerationtoStringMappingJSRtoSVG(const TInt aAttributeId, short aJsrEnumValue, TDes& aValue);
+ /**
+ * Gets the string to enumeration value mapping from SVG to JSR. Attribute t
+ *
+ */
+ TInt SvgStringtoEnumerationMappingSVGtoJSR(const TInt aAttrbuteId , TPtrC16 aValue);
+ /**
+ * Gets the Enumeration value mapping from JSR to SVG. Attribute t
+ *
+ */
+ TInt SvgEnumerationMappingSVGtoJSR(const TInt aAttributeId, TInt32 aSvgEnumValue);
+
+private:
+ CSvgJavaInterfaceImpl();
+ void ConstructL( TFontSpec& aFontSpec );
+ void ConstructL();
+
+private:
+
+};
+
+#endif
\ No newline at end of file
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/inc/SvgListener.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/inc/SvgListener.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,415 @@
+/*
+* Copyright (c) 2005 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 Engine header file
+ *
+*/
+
+
+#ifndef __INC_MSVGLISTENER__
+#define __INC_MSVGLISTENER__
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+#include
+
+class CSvgElementImpl;
+
+// Typedef xml attribute list to allow switching of parser without
+// having to change APIs for MLoadingListener.
+typedef MXMLAttributes MSvgAttributeList;
+
+/**
+ * This empty virtual class is defined to be the root class for
+ * SVG Listener interfaces (all pure virtual functions). The MSvgListener
+ * name will be used for parameters of AddListener and RemoveListener
+ * along with a type parameter to specific the subclass.
+ *
+ * This will allow new Listener class to be added without having to
+ * add new Add/Remove listener methods to the exported interfaces.
+ *
+ * Existing listeners (Hyperlink, etc.) and their Add/Remove methods
+ * will remain the same.
+ */
+class MSvgListener
+ {
+ };
+
+/**
+ * Enumeration to define supported listener classes for
+ * AddListener/RemoveListener methods.
+ */
+enum TSvgListenerType
+ {
+ ESvgLoadingListener = 0,
+ ESvgMouseListener,
+ ESvgHyperlinkListener,
+ ESvgTextAreaListener,
+ ESvgTextListener,
+ ESvgInteractiveElementListener,
+ ESvgViewPortListener
+
+ };
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about svg-file loading/parsing progress. The client (listener) is
+ * notified at the start and end of the document, at the start and end of an element.
+ *
+ * The ReportAllElements method controls if all elements should be reported or only
+ * the direct children of the root element is reported.
+
+ * Included in this interface are notifications for external data requests: when one is
+ * initiated, received or failed. External data requests include embedded images or svg-files.
+ *
+ * @lib SVGEngine.lib
+ * @since 3.1
+ */
+class MSvgLoadingListener : public MSvgListener
+ {
+ public:
+
+ /**
+ * Query the listener if every element is to be reported or only
+ * the children of tag.
+ *
+ * @since 1.0
+ * @return : ETrue if every element is to be reported, otherwise
+ * only the children of are reported.
+ */
+ virtual TBool ReportAllElements() = 0;
+
+ /**
+ * Query the listener if client will call 'AssignImageData' to decode images
+ * separately from parsing. This is used to avoid non-thread-safe calls in
+ * creating bitmap and decoding images, which must be executed in the main thread.
+ *
+ * @since 1.0
+ * @return : ETrue to use 'ImageDataReference' instead of 'FetchImage'.
+ */
+ virtual TBool WillAssignImageData() = 0;
+
+ /**
+ * Callback when the href:xlink attribute is encountered for the
+ * element. This method is used to notify clients of image data references
+ * needed by element. This method is called only when 'WillAssignImageData'
+ * returns ETrue.
+ *
+ * @since 1.0
+ * @return : none.
+ */
+ virtual void ImageDataReference( const TDesC& aUri ) = 0;
+
+ /**
+ * Notified when the start of a svg document( tag) is encountered.
+ *
+ * @since 1.0
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool DocumentStart() = 0;
+
+ /**
+ * Notified when the end of a svg document( tag) is encountered.
+ *
+ * @since 1.0
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool DocumentEnd() = 0;
+
+ /**
+ * Notified when the start of a svg element is encountered.
+ *
+ * @since 1.0
+ * @param : aTagName -- name of svg tag
+ * @param : aAttributeList -- attribute list.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ElementStart( const TDesC& aTagName,
+ MSvgAttributeList& aAttributeList) = 0;
+
+ /**
+ * Notified when the end of a svg element is encountered.
+ * activated.
+ *
+ * @since 1.0
+ * @param : aTagName -- name of svg tag
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ElementEnd( const TDesC& aTagName ) = 0;
+
+ /**
+ * Notified when an external data is needed by the svg document,
+ * such as a image-file or an embedded svg-file.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of external data
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ExternalDataRequested( const TDesC& aUri ) = 0;
+
+ /**
+ * Notified when an external data has been retrieved,
+ * such as a image-file or an embedded svg-file.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of external data
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ExternalDataReceived( const TDesC& aUri ) = 0;
+
+ /**
+ * Notified when an external data request has failed.
+ *
+ * @since 1.0
+ * @param : aUri -- URI string of external data
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool ExternalDataRequestFailed( const TDesC& aUri ) = 0;
+
+ /**
+ * Notified when an unsupported element is encountered.
+ *
+ * @since 1.0
+ * @param : aTagName -- tag name of element
+ * @param : aAttributeList -- attribute list.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool UnsupportedElement( const TDesC& aTagName,
+ MSvgAttributeList& aAttributeList ) = 0;
+
+ virtual void ImagesLoaded(TInt aError)=0;
+
+ };
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about mouse clicking
+ *
+ *
+ * @lib SVGEngine.lib
+ * @since 3.1
+ */
+class MSvgMouseListener : public MSvgListener
+ {
+ public:
+ /**
+ * Notified when the mouse pointer enters a visible svg element.
+ *
+ * @since 1.0
+ * param : aElements -- SVG elements containing the mouse point.
+ * param : aX -- x coordinate of mouse pointer.
+ * param : aY -- y coordinate of mouse pointer.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool MouseEntered( RPointerArray& aElements,
+ TInt aX, TInt aY ) = 0;
+
+ /**
+ * Notified when the mouse pointer exits a visible svg element.
+ *
+ * @since 1.0
+ * param : aElements -- SVG elements containing the mouse point.
+ * param : aX -- x coordinate of mouse pointer.
+ * param : aY -- y coordinate of mouse pointer.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool MouseExited( RPointerArray& aElements,
+ TInt aX, TInt aY ) = 0;
+
+ /**
+ * Notified when the mouse pointer has already entered a visible
+ * svg element and just moved but remains inside its bounding-box.
+ *
+ * @since 1.0
+ * param : aElements -- SVG elements containing the mouse point.
+ * param : aX -- x coordinate of mouse pointer.
+ * param : aY -- y coordinate of mouse pointer.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool MouseMoved( RPointerArray& aElements,
+ TInt aX, TInt aY ) = 0;
+
+ /**
+ * Notified when the mouse pointer is pressed down on visible svg element.
+ *
+ * @since 1.0
+ * param : aElements -- SVG elements containing the mouse point.
+ * param : aX -- x coordinate of mouse pointer.
+ * param : aY -- y coordinate of mouse pointer.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool MousePressed( RPointerArray& aElements,
+ TInt aX, TInt aY ) = 0;
+
+ /**
+ * Notified when the mouse pointer is released on on visible svg element.
+ *
+ * @since 1.0
+ * param : aElements -- SVG elements containing the mouse point.
+ * param : aX -- x coordinate of mouse pointer.
+ * param : aY -- y coordinate of mouse pointer.
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool MouseReleased( RPointerArray& aElements,
+ TInt aX, TInt aY ) = 0;
+
+ };
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about text area interaction.
+ *
+ * @lib SVGEngine.lib
+ * @since 3.1
+ */
+class MSvgTextAreaListener : public MSvgListener
+ {
+ public:
+ /**
+ * Notified when a pointer enters a textbox element.
+ *
+ * @since 1.0
+ * @param : aUri -- handle of a textbox
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextAreaEntered( TInt aTextAreaHandle ) = 0;
+
+ /**
+ * Notified when a pointer exits a textbox element.
+ *
+ * @since 1.0
+ * @param : aTextBox -- handle of a textbox
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextAreaExited( TInt aTextAreaHandle ) = 0;
+
+ /**
+ * This method is called to notify the client that a link has been
+ * activated.
+ *
+ * @since 1.0
+ * @param : aUri -- handle of a textbox
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextAreaActivated( TInt aTextAreaHandle ) = 0;
+
+ };
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about text element interaction.
+ *
+ * @lib SVGEngine.lib
+ * @since 3.1
+ */
+class MSvgTextListener : public MSvgListener
+ {
+ public:
+ /**
+ * Notified when a pointer enters a text element.
+ *
+ * @since 1.0
+ * @param : aUri -- handle of a text
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextEntered( TInt aTextHandle ) = 0;
+
+ /**
+ * Notified when a pointer exits a text element.
+ *
+ * @since 1.0
+ * @param : aText -- handle of a text
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextExited( TInt aTextHandle ) = 0;
+
+ /**
+ * This method is called to notify the client that a link has been
+ * activated.
+ *
+ * @since 1.0
+ * @param : aUri -- handle of a text
+ * @return : For future use. Value is ignored.
+ */
+ virtual TBool TextActivated( TInt aTextHandle ) = 0;
+
+ };
+ class MSvgViewPortListener : public MSvgListener
+ {
+ public:
+ /**
+ *
+ *
+ * @since 1.0
+ * @param aErrorStatus : error status if any.
+ * @return
+ */
+ virtual void GetViewPort(TInt getWidth, TInt getHeight, TBool isWidthInPer, TBool isHeightInPer, TInt &setWidth, TInt &setHeight) = 0;
+ };
+
+/**
+ * This interface is the callback mechanism for the SVG Engine to communicate to
+ * interested clients about interactive elements in the svg content.
+ *
+ * @lib SVGEngine.lib
+ * @since v3.2
+ */
+class MSvgInteractiveElementListener: public MSvgListener
+ {
+ public:
+
+ /**
+ * Notified when a pointer enters an interactive element.
+ * @Since v3.2
+ * @param : aElementIdPtr - Pointer to the xml Id of the element
+ * if exists else points to an empty string
+ * @param : aInteractonTypeList - Indicates the the type interactions
+ * possible with that element
+ * e.g: aInteractonTypeList=0x9 then "focusin" and "click"
+ * events are possible interaction types for the element *interactive events
+ * @return: For future use. Value can be ignored
+ */
+ virtual TBool InteractiveElementEntered(TPtrC aElementIdPtr, TUint16 aInteractonTypeList ) = 0;
+
+ /**
+ * Notified when a pointer exits from an interactive element.
+ * @Since v3.2
+ * @param : aElementIdPtr - Pointer to the xml Id of the element
+ * if exists else points to an empty string
+ * @return: For future use.Value can be ignored
+ */
+
+ virtual TBool InteractiveElementExited(TPtrC aElementIdPtr ) = 0;
+
+ };
+
+/**
+ * Enumeration to define supported interactive events
+ * for the elements.
+ */
+enum TSvgInteractionEvent
+ {
+ ESvgInteractiveEventFocusin = 0x1,
+ ESvgInteractiveEventFocusout = 0x2,
+ ESvgInteractiveEventActivate = 0x4,
+ ESvgInteractiveEventClick = 0x8,
+ ESvgInteractiveEventMousedown = 0x10,
+ ESvgInteractiveEventMouseup = 0x20,
+ ESvgInteractiveEventMouseover = 0x40,
+ ESvgInteractiveEventMousemove = 0x80,
+ ESvgInteractiveEventMouseout = 0x100
+ };
+
+#endif /*__INC_MSVGLISTENER__*/
diff -r 000000000000 -r 88edb906c587 svgt_plat/svgt_api/svgt_api.metaxml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgt_plat/svgt_api/svgt_api.metaxml Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,19 @@
+
+
+ SVGT API
+ Prrovides for parsing, decoding, manipulating, and managing of SVG content.
+ c++
+ domain
+
+
+
+
+
+
+
+
+
+ no
+ no
+
+
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/BWINSCW/SVGENGINE-OpenVGU.def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/BWINSCW/SVGENGINE-OpenVGU.def Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,194 @@
+EXPORTS
+ ??0CSvgEngineInterfaceImpl@@QAE@XZ @ 1 NONAME ; CSvgEngineInterfaceImpl::CSvgEngineInterfaceImpl(void)
+ ??1CSvgEngineInterfaceImpl@@UAE@XZ @ 2 NONAME ; CSvgEngineInterfaceImpl::~CSvgEngineInterfaceImpl(void)
+ ?ADDCloseTo@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@@Z @ 3 NONAME ; void CSvgEngineInterfaceImpl::ADDCloseTo(class CGfxGeneralPath *)
+ ?ADDCurveTo@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@MMMMMM@Z @ 4 NONAME ; void CSvgEngineInterfaceImpl::ADDCurveTo(class CGfxGeneralPath *, float, float, float, float, float, float)
+ ?ADDLineTo@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@MM@Z @ 5 NONAME ; void CSvgEngineInterfaceImpl::ADDLineTo(class CGfxGeneralPath *, float, float)
+ ?ADDMoveTo@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@MM@Z @ 6 NONAME ; void CSvgEngineInterfaceImpl::ADDMoveTo(class CGfxGeneralPath *, float, float)
+ ?ADDQuadTo@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@MMMM@Z @ 7 NONAME ; void CSvgEngineInterfaceImpl::ADDQuadTo(class CGfxGeneralPath *, float, float, float, float)
+ ?ActivateObjectInFocus@CSvgEngineInterfaceImpl@@QAEXXZ @ 8 NONAME ; void CSvgEngineInterfaceImpl::ActivateObjectInFocus(void)
+ ?AddAnimationListener@CSvgEngineInterfaceImpl@@QAEXPAVMSvgAnimationListener@@H@Z @ 9 NONAME ; void CSvgEngineInterfaceImpl::AddAnimationListener(class MSvgAnimationListener *, int)
+ ?AddExternalData@CSvgEngineInterfaceImpl@@QAEPAVCSvgElementImpl@@PAVCSvgDocumentImpl@@ABVTDesC16@@ABVTDesC8@@HHH@Z @ 10 NONAME ; class CSvgElementImpl * CSvgEngineInterfaceImpl::AddExternalData(class CSvgDocumentImpl *, class TDesC16 const &, class TDesC8 const &, int, int, int)
+ ?AddHyperlinkListener@CSvgEngineInterfaceImpl@@QAEXPAVMSvgHyperlinkListener@@H@Z @ 11 NONAME ; void CSvgEngineInterfaceImpl::AddHyperlinkListener(class MSvgHyperlinkListener *, int)
+ ?AddListener@CSvgEngineInterfaceImpl@@QAEXPBVMSvgListener@@W4TSvgListenerType@@H@Z @ 12 NONAME ; void CSvgEngineInterfaceImpl::AddListener(class MSvgListener const *, enum TSvgListenerType, int)
+ ?AddTextAreaListener@CSvgEngineInterfaceImpl@@QAEHPAVMSvgTextAreaListener@@H@Z @ 13 NONAME ; int CSvgEngineInterfaceImpl::AddTextAreaListener(class MSvgTextAreaListener *, int)
+ ?AddTextListener@CSvgEngineInterfaceImpl@@QAEHPAVMSvgTextListener@@H@Z @ 14 NONAME ; int CSvgEngineInterfaceImpl::AddTextListener(class MSvgTextListener *, int)
+ ?AddToEventReceiverList@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@E@Z @ 15 NONAME ; void CSvgEngineInterfaceImpl::AddToEventReceiverList(class CXmlElementImpl *, unsigned char)
+ ?AppendChild@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@0H@Z @ 16 NONAME ; void CSvgEngineInterfaceImpl::AppendChild(class CXmlElementImpl *, class CXmlElementImpl *, int)
+ ?AssignImageData@CSvgEngineInterfaceImpl@@QAEXABVTDesC16@@PAVHBufC8@@@Z @ 17 NONAME ; void CSvgEngineInterfaceImpl::AssignImageData(class TDesC16 const &, class HBufC8 *)
+ ?CancelLoad@CSvgEngineInterfaceImpl@@QAEXH@Z @ 18 NONAME ; void CSvgEngineInterfaceImpl::CancelLoad(int)
+ ?ChooseViewBoxIfNotSet@CSvgEngineInterfaceImpl@@QAEXH@Z @ 19 NONAME ; void CSvgEngineInterfaceImpl::ChooseViewBoxIfNotSet(int)
+ ?ClearFrameBuffer@CSvgEngineInterfaceImpl@@QAEXPAVCFbsBitmap@@KH@Z @ 20 NONAME ; void CSvgEngineInterfaceImpl::ClearFrameBuffer(class CFbsBitmap *, unsigned long, int)
+ ?ConstructL@CSvgEngineInterfaceImpl@@IAEXPAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@@Z @ 21 NONAME ; void CSvgEngineInterfaceImpl::ConstructL(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &)
+ ?ConstructL@CSvgEngineInterfaceImpl@@IAEXXZ @ 22 NONAME ; void CSvgEngineInterfaceImpl::ConstructL(void)
+ ?ContentDimensions@CSvgEngineInterfaceImpl@@QAE?AVTSize@@H@Z @ 23 NONAME ; class TSize CSvgEngineInterfaceImpl::ContentDimensions(int)
+ ?ContentDimensions@CSvgEngineInterfaceImpl@@QAEXAAM0H@Z @ 24 NONAME ; void CSvgEngineInterfaceImpl::ContentDimensions(float &, float &, int)
+ ?ContentDimensionsInPercentage@CSvgEngineInterfaceImpl@@QAE?AVTSize@@H@Z @ 25 NONAME ; class TSize CSvgEngineInterfaceImpl::ContentDimensionsInPercentage(int)
+ ?CreateElementL@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAVCSvgDocumentImpl@@H@Z @ 26 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::CreateElementL(class CSvgDocumentImpl *, int)
+ ?CurrentState@CSvgEngineInterfaceImpl@@QAEHH@Z @ 27 NONAME ; int CSvgEngineInterfaceImpl::CurrentState(int)
+ ?CustomOption@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 28 NONAME ; void CSvgEngineInterfaceImpl::CustomOption(int, int)
+ ?DeleteDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@H@Z @ 29 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::DeleteDom(int)
+ ?Destroy@CSvgEngineInterfaceImpl@@QAEXXZ @ 30 NONAME ; void CSvgEngineInterfaceImpl::Destroy(void)
+ ?DestroyDocument@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@@Z @ 31 NONAME ; void CSvgEngineInterfaceImpl::DestroyDocument(class CSvgDocumentImpl *)
+ ?DestroyElement@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@@Z @ 32 NONAME ; void CSvgEngineInterfaceImpl::DestroyElement(class CXmlElementImpl *)
+ ?DestroyEngine@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@@Z @ 33 NONAME ; void CSvgEngineInterfaceImpl::DestroyEngine(class CSvgEngineImpl *)
+ ?DispatchFocusInEvent@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@PAVCSvgElementImpl@@@Z @ 34 NONAME ; void CSvgEngineInterfaceImpl::DispatchFocusInEvent(class CSvgDocumentImpl *, class CSvgElementImpl *)
+ ?DispatchFocusOutEvent@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@PAVCSvgElementImpl@@@Z @ 35 NONAME ; void CSvgEngineInterfaceImpl::DispatchFocusOutEvent(class CSvgDocumentImpl *, class CSvgElementImpl *)
+ ?DispatchMouseEventsAt@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@HHPAVMSvgMouseListener@@@Z @ 36 NONAME ; int CSvgEngineInterfaceImpl::DispatchMouseEventsAt(class CSvgDocumentImpl *, int, int, class MSvgMouseListener *)
+ ?DrawBox@CSvgEngineInterfaceImpl@@QAEPAVCSvgElementImpl@@VTRect@@H@Z @ 37 NONAME ; class CSvgElementImpl * CSvgEngineInterfaceImpl::DrawBox(class TRect, int)
+ ?Duration@CSvgEngineInterfaceImpl@@QAEKH@Z @ 38 NONAME ; unsigned long CSvgEngineInterfaceImpl::Duration(int)
+ ?FillDocumentL@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@ABVTDesC16@@@Z @ 39 NONAME ; void CSvgEngineInterfaceImpl::FillDocumentL(class CSvgDocumentImpl *, class TDesC16 const &)
+ ?FindAllElements@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HAAV?$RPointerArray@VCSvgElementImpl@@@@H@Z @ 40 NONAME ; void CSvgEngineInterfaceImpl::FindAllElements(class CSvgElementImpl *, int, class RPointerArray &, int)
+ ?FocusNext@CSvgEngineInterfaceImpl@@QAE?AVTRect@@XZ @ 41 NONAME ; class TRect CSvgEngineInterfaceImpl::FocusNext(void)
+ ?FocusPrevious@CSvgEngineInterfaceImpl@@QAE?AVTRect@@XZ @ 42 NONAME ; class TRect CSvgEngineInterfaceImpl::FocusPrevious(void)
+ ?FramesPerSecond@CSvgEngineInterfaceImpl@@QAENHH@Z @ 43 NONAME ; double CSvgEngineInterfaceImpl::FramesPerSecond(int, int)
+ ?GenerateMask@CSvgEngineInterfaceImpl@@QAEXPAVCFbsBitmap@@H@Z @ 44 NONAME ; void CSvgEngineInterfaceImpl::GenerateMask(class CFbsBitmap *, int)
+ ?GetAttribute@CSvgSvgElementImpl@@QAEHABVTDesC16@@AAVTDes16@@@Z @ 45 NONAME ; int CSvgSvgElementImpl::GetAttribute(class TDesC16 const &, class TDes16 &)
+ ?GetElementBoundingbox@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@AAM111@Z @ 46 NONAME ; void CSvgEngineInterfaceImpl::GetElementBoundingbox(class CSvgElementImpl *, float &, float &, float &, float &)
+ ?GetElementById@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAVCSvgDocumentImpl@@ABVTDesC16@@@Z @ 47 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetElementById(class CSvgDocumentImpl *, class TDesC16 const &)
+ ?GetElementColorAttribute@CSvgEngineInterfaceImpl@@QAEJPAVCSvgElementImpl@@H@Z @ 48 NONAME ; long CSvgEngineInterfaceImpl::GetElementColorAttribute(class CSvgElementImpl *, int)
+ ?GetElementDesAttribute@CSvgEngineInterfaceImpl@@QAEHPAVCSvgElementImpl@@HAAVTPtrC16@@@Z @ 49 NONAME ; int CSvgEngineInterfaceImpl::GetElementDesAttribute(class CSvgElementImpl *, int, class TPtrC16 &)
+ ?GetElementFloatAttribute@CSvgEngineInterfaceImpl@@QAEMPAVCSvgElementImpl@@H@Z @ 50 NONAME ; float CSvgEngineInterfaceImpl::GetElementFloatAttribute(class CSvgElementImpl *, int)
+ ?GetElementType@CSvgEngineInterfaceImpl@@QAEHPAVCXmlElementImpl@@@Z @ 51 NONAME ; int CSvgEngineInterfaceImpl::GetElementType(class CXmlElementImpl *)
+ ?GetElementUnScaledBoundingBox@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@AAM111@Z @ 52 NONAME ; void CSvgEngineInterfaceImpl::GetElementUnScaledBoundingBox(class CSvgElementImpl *, float &, float &, float &, float &)
+ ?GetEnumAttribute@CSvgEngineInterfaceImpl@@QAEHPAVCSvgElementImpl@@HAAJ@Z @ 53 NONAME ; int CSvgEngineInterfaceImpl::GetEnumAttribute(class CSvgElementImpl *, int, long &)
+ ?GetExternalListItemL@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@HAAVTPtrC16@@@Z @ 54 NONAME ; void CSvgEngineInterfaceImpl::GetExternalListItemL(class CSvgDocumentImpl *, int, class TPtrC16 &)
+ ?GetExternalListSize@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 55 NONAME ; int CSvgEngineInterfaceImpl::GetExternalListSize(class CSvgDocumentImpl *)
+ ?GetFirstChild@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAV2@@Z @ 56 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetFirstChild(class CXmlElementImpl *)
+ ?GetFocusedElement@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAVCSvgDocumentImpl@@@Z @ 57 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetFocusedElement(class CSvgDocumentImpl *)
+ ?GetFourPointElementBoundingBox@CSvgEngineInterfaceImpl@@QAEXPAVCSvgTextElementImpl@@AAVTPoint@@111@Z @ 58 NONAME ; void CSvgEngineInterfaceImpl::GetFourPointElementBoundingBox(class CSvgTextElementImpl *, class TPoint &, class TPoint &, class TPoint &, class TPoint &)
+ ?GetId@CSvgEngineInterfaceImpl@@QAEPAVTDesC16@@PAVCSvgDocumentImpl@@H@Z @ 59 NONAME ; class TDesC16 * CSvgEngineInterfaceImpl::GetId(class CSvgDocumentImpl *, int)
+ ?GetMatrixAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@PAM11111@Z @ 60 NONAME ; void CSvgEngineInterfaceImpl::GetMatrixAttribute(class CXmlElementImpl *, float *, float *, float *, float *, float *, float *)
+ ?GetNextSibling@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAV2@@Z @ 61 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetNextSibling(class CXmlElementImpl *)
+ ?GetNumberOfIds@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 62 NONAME ; int CSvgEngineInterfaceImpl::GetNumberOfIds(class CSvgDocumentImpl *)
+ ?GetOwnerDocument@CSvgEngineInterfaceImpl@@QAEPAVCSvgDocumentImpl@@PAVCXmlElementImpl@@@Z @ 63 NONAME ; class CSvgDocumentImpl * CSvgEngineInterfaceImpl::GetOwnerDocument(class CXmlElementImpl *)
+ ?GetParentElement@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAV2@@Z @ 64 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetParentElement(class CXmlElementImpl *)
+ ?GetPathAttribute@CSvgEngineInterfaceImpl@@QAEPAVCGfxGeneralPath@@PAVCXmlElementImpl@@H@Z @ 65 NONAME ; class CGfxGeneralPath * CSvgEngineInterfaceImpl::GetPathAttribute(class CXmlElementImpl *, int)
+ ?GetRectAttribute@CSvgEngineInterfaceImpl@@QAEHPAVCXmlElementImpl@@PAM111@Z @ 66 NONAME ; int CSvgEngineInterfaceImpl::GetRectAttribute(class CXmlElementImpl *, float *, float *, float *, float *)
+ ?GetRenderQuality@CSvgEngineInterfaceImpl@@QAEIXZ @ 67 NONAME ; unsigned int CSvgEngineInterfaceImpl::GetRenderQuality(void)
+ ?GetRootElement@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAVCSvgDocumentImpl@@@Z @ 68 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::GetRootElement(class CSvgDocumentImpl *)
+ ?GetSegmentCount@CSvgEngineInterfaceImpl@@QAEHPAVCGfxGeneralPath@@@Z @ 69 NONAME ; int CSvgEngineInterfaceImpl::GetSegmentCount(class CGfxGeneralPath *)
+ ?GetSegmentParameter@CSvgEngineInterfaceImpl@@QAEMPAVCGfxGeneralPath@@HH@Z @ 70 NONAME ; float CSvgEngineInterfaceImpl::GetSegmentParameter(class CGfxGeneralPath *, int, int)
+ ?GetSegmentType@CSvgEngineInterfaceImpl@@QAEHPAVCGfxGeneralPath@@H@Z @ 71 NONAME ; int CSvgEngineInterfaceImpl::GetSegmentType(class CGfxGeneralPath *, int)
+ ?GetSvgBoundingBox@CSvgEngineInterfaceImpl@@QAE?AVTRect@@H@Z @ 72 NONAME ; class TRect CSvgEngineInterfaceImpl::GetSvgBoundingBox(int)
+ ?GetTextForTextAreaElement@CSvgEngineInterfaceImpl@@QAEHHAAHAAVTDes16@@@Z @ 73 NONAME ; int CSvgEngineInterfaceImpl::GetTextForTextAreaElement(int, int &, class TDes16 &)
+ ?GetTextForTextElement@CSvgEngineInterfaceImpl@@QAEHHAAHAAVTDes16@@@Z @ 74 NONAME ; int CSvgEngineInterfaceImpl::GetTextForTextElement(int, int &, class TDes16 &)
+ ?GetUnscaledContentSize@CSvgEngineInterfaceImpl@@QAE?AVTSize@@H@Z @ 75 NONAME ; class TSize CSvgEngineInterfaceImpl::GetUnscaledContentSize(int)
+ ?GetViewportHeight@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 76 NONAME ; int CSvgEngineInterfaceImpl::GetViewportHeight(class CSvgDocumentImpl *)
+ ?GetViewportUnits@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 77 NONAME ; int CSvgEngineInterfaceImpl::GetViewportUnits(class CSvgDocumentImpl *)
+ ?GetViewportWidth@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 78 NONAME ; int CSvgEngineInterfaceImpl::GetViewportWidth(class CSvgDocumentImpl *)
+ ?InitRootElement@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@@Z @ 79 NONAME ; void CSvgEngineInterfaceImpl::InitRootElement(class CSvgDocumentImpl *)
+ ?InitSvgStylePropertiesWithNullL@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@@Z @ 80 NONAME ; void CSvgEngineInterfaceImpl::InitSvgStylePropertiesWithNullL(class CSvgElementImpl *)
+ ?InitializeEngine@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@H@Z @ 81 NONAME ; void CSvgEngineInterfaceImpl::InitializeEngine(class CSvgEngineImpl *, int)
+ ?IsContentInteractive@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@H@Z @ 82 NONAME ; int CSvgEngineInterfaceImpl::IsContentInteractive(class CSvgDocumentImpl *, int)
+ ?IsElementActive@CSvgEngineInterfaceImpl@@QAEHPAVCSvgElementImpl@@@Z @ 83 NONAME ; int CSvgEngineInterfaceImpl::IsElementActive(class CSvgElementImpl *)
+ ?IsElementVisible@CSvgEngineInterfaceImpl@@QAEHHH@Z @ 84 NONAME ; int CSvgEngineInterfaceImpl::IsElementVisible(int, int)
+ ?IsLoading@CSvgEngineInterfaceImpl@@QAEHH@Z @ 85 NONAME ; int CSvgEngineInterfaceImpl::IsLoading(int)
+ ?IsPanPossible@CSvgEngineInterfaceImpl@@QAEHHHH@Z @ 86 NONAME ; int CSvgEngineInterfaceImpl::IsPanPossible(int, int, int)
+ ?IsPanPossibleFourWay@CSvgEngineInterfaceImpl@@QAEXAAH000H@Z @ 87 NONAME ; void CSvgEngineInterfaceImpl::IsPanPossibleFourWay(int &, int &, int &, int &, int)
+ ?IsRemoveable@CSvgEngineInterfaceImpl@@QAEHPAVCSvgElementImpl@@H@Z @ 88 NONAME ; int CSvgEngineInterfaceImpl::IsRemoveable(class CSvgElementImpl *, int)
+ ?KeyPress@CSvgEngineInterfaceImpl@@QAEXABUTKeyEvent@@H@Z @ 89 NONAME ; void CSvgEngineInterfaceImpl::KeyPress(struct TKeyEvent const &, int)
+ ?Load@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@AAVRFile@@@Z @ 90 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::Load(class RFile &)
+ ?Load@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@ABVTDesC16@@@Z @ 91 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::Load(class TDesC16 const &)
+ ?Load@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@ABVTDesC8@@@Z @ 92 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::Load(class TDesC8 const &)
+ ?MediaTime@CSvgEngineInterfaceImpl@@QAEJH@Z @ 93 NONAME ; long CSvgEngineInterfaceImpl::MediaTime(int)
+ ?MouseDown@CSvgEngineInterfaceImpl@@QAEHHHH@Z @ 94 NONAME ; int CSvgEngineInterfaceImpl::MouseDown(int, int, int)
+ ?MouseMove@CSvgEngineInterfaceImpl@@QAEXHHH@Z @ 95 NONAME ; void CSvgEngineInterfaceImpl::MouseMove(int, int, int)
+ ?MouseUp@CSvgEngineInterfaceImpl@@QAEXHHH@Z @ 96 NONAME ; void CSvgEngineInterfaceImpl::MouseUp(int, int, int)
+ ?NewL@CSvgEngineInterfaceImpl@@SAPAV1@PAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@@Z @ 97 NONAME ; class CSvgEngineInterfaceImpl * CSvgEngineInterfaceImpl::NewL(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &)
+ ?NewLC@CSvgEngineInterfaceImpl@@SAPAV1@PAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@@Z @ 98 NONAME ; class CSvgEngineInterfaceImpl * CSvgEngineInterfaceImpl::NewLC(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &)
+ ?OriginalView@CSvgEngineInterfaceImpl@@QAEXH@Z @ 99 NONAME ; void CSvgEngineInterfaceImpl::OriginalView(int)
+ ?Pan@CSvgEngineInterfaceImpl@@QAEXHHH@Z @ 100 NONAME ; void CSvgEngineInterfaceImpl::Pan(int, int, int)
+ ?PanPosition@CSvgEngineInterfaceImpl@@QAE?AVTPoint@@H@Z @ 101 NONAME ; class TPoint CSvgEngineInterfaceImpl::PanPosition(int)
+ ?Pause@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@@Z @ 102 NONAME ; void CSvgEngineInterfaceImpl::Pause(class CSvgEngineImpl *)
+ ?Position@CSvgEngineInterfaceImpl@@QAE?AVTPoint@@H@Z @ 103 NONAME ; class TPoint CSvgEngineInterfaceImpl::Position(int)
+ ?PrepareDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@AAVRFile@@AAHH@Z @ 104 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::PrepareDom(class RFile &, int &, int)
+ ?PrepareDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@ABVTDesC16@@AAHH@Z @ 105 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::PrepareDom(class TDesC16 const &, int &, int)
+ ?PrepareDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@ABVTDesC8@@AAHH@Z @ 106 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::PrepareDom(class TDesC8 const &, int &, int)
+ ?PrintAllElements@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@@Z @ 107 NONAME ; void CSvgEngineInterfaceImpl::PrintAllElements(class CSvgDocumentImpl *)
+ ?PrintElementsStyles@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@@Z @ 108 NONAME ; void CSvgEngineInterfaceImpl::PrintElementsStyles(class CSvgElementImpl *)
+ ?Redraw@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 109 NONAME ; void CSvgEngineInterfaceImpl::Redraw(int, int)
+ ?RemoveAnimationListener@CSvgEngineInterfaceImpl@@QAEXPAVMSvgAnimationListener@@H@Z @ 110 NONAME ; void CSvgEngineInterfaceImpl::RemoveAnimationListener(class MSvgAnimationListener *, int)
+ ?RemoveChild@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@0@Z @ 111 NONAME ; void CSvgEngineInterfaceImpl::RemoveChild(class CXmlElementImpl *, class CXmlElementImpl *)
+ ?RemoveFromEventReceiverList@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@@Z @ 112 NONAME ; void CSvgEngineInterfaceImpl::RemoveFromEventReceiverList(class CXmlElementImpl *)
+ ?RemoveHyperlinkListener@CSvgEngineInterfaceImpl@@QAEXPAVMSvgHyperlinkListener@@H@Z @ 113 NONAME ; void CSvgEngineInterfaceImpl::RemoveHyperlinkListener(class MSvgHyperlinkListener *, int)
+ ?RemoveListener@CSvgEngineInterfaceImpl@@QAEXPBVMSvgListener@@W4TSvgListenerType@@H@Z @ 114 NONAME ; void CSvgEngineInterfaceImpl::RemoveListener(class MSvgListener const *, enum TSvgListenerType, int)
+ ?RemoveTextAreaListener@CSvgEngineInterfaceImpl@@QAEHPAVMSvgTextAreaListener@@H@Z @ 115 NONAME ; int CSvgEngineInterfaceImpl::RemoveTextAreaListener(class MSvgTextAreaListener *, int)
+ ?RemoveTextListener@CSvgEngineInterfaceImpl@@QAEHPAVMSvgTextListener@@H@Z @ 116 NONAME ; int CSvgEngineInterfaceImpl::RemoveTextListener(class MSvgTextListener *, int)
+ ?RenderDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@HPAVCFbsBitmap@@0@Z @ 117 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::RenderDom(int, class CFbsBitmap *, class CFbsBitmap *)
+ ?RenderFrame@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@I@Z @ 118 NONAME ; void CSvgEngineInterfaceImpl::RenderFrame(class CSvgEngineImpl *, unsigned int)
+ ?RenderFrames@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@HABVTSize@@IIIW4TDisplayMode@@1AAV?$RPointerArray@VCFbsBitmap@@@@2AAV?$RArray@I@@H@Z @ 119 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::RenderFrames(int, class TSize const &, unsigned int, unsigned int, unsigned int, enum TDisplayMode, enum TDisplayMode, class RPointerArray &, class RPointerArray &, class RArray &, int)
+ ?Replay@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@H@Z @ 120 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::Replay(int)
+ ?Resume@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@@Z @ 121 NONAME ; void CSvgEngineInterfaceImpl::Resume(class CSvgEngineImpl *)
+ ?RootElement@CSvgDocumentImpl@@QAEPAVMXmlElement@@XZ @ 122 NONAME ; class MXmlElement * CSvgDocumentImpl::RootElement(void)
+ ?Rotate@CSvgEngineInterfaceImpl@@QAEXMHHH@Z @ 123 NONAME ; void CSvgEngineInterfaceImpl::Rotate(float, int, int, int)
+ ?SVGElementGetUsedElement@CSvgEngineInterfaceImpl@@QAEPAVCXmlElementImpl@@PAV2@@Z @ 124 NONAME ; class CXmlElementImpl * CSvgEngineInterfaceImpl::SVGElementGetUsedElement(class CXmlElementImpl *)
+ ?SVGElementInDom@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@PAVCXmlElementImpl@@@Z @ 125 NONAME ; int CSvgEngineInterfaceImpl::SVGElementInDom(class CSvgDocumentImpl *, class CXmlElementImpl *)
+ ?SaveSvg@CSvgEngineInterfaceImpl@@QAEXHABVTDesC16@@H@Z @ 126 NONAME ; void CSvgEngineInterfaceImpl::SaveSvg(int, class TDesC16 const &, int)
+ ?SaveSvgDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@HABVTDesC16@@H@Z @ 127 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::SaveSvgDom(int, class TDesC16 const &, int)
+ ?SearchForText@CSvgEngineInterfaceImpl@@QAEHABVTDesC16@@AAV?$RPointerArray@VMRect@@@@AAV?$RArray@VTPtrC16@@@@AAV?$RArray@H@@HH@Z @ 128 NONAME ; int CSvgEngineInterfaceImpl::SearchForText(class TDesC16 const &, class RPointerArray &, class RArray &, class RArray &, int, int)
+ ?SetAnimFrameDuration@CSvgEngineInterfaceImpl@@QAEXIH@Z @ 129 NONAME ; void CSvgEngineInterfaceImpl::SetAnimFrameDuration(unsigned int, int)
+ ?SetBackgroundColor@CSvgEngineInterfaceImpl@@QAEXKPAVCSvgEngineImpl@@@Z @ 130 NONAME ; void CSvgEngineInterfaceImpl::SetBackgroundColor(unsigned long, class CSvgEngineImpl *)
+ ?SetClientWindow@CSvgEngineInterfaceImpl@@QAEXPAVRWindow@@@Z @ 131 NONAME ; void CSvgEngineInterfaceImpl::SetClientWindow(class RWindow *)
+ ?SetDRMMode@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 132 NONAME ; void CSvgEngineInterfaceImpl::SetDRMMode(int, int)
+ ?SetDataRetrievalTimeOut@CSvgEngineInterfaceImpl@@QAEXIH@Z @ 133 NONAME ; void CSvgEngineInterfaceImpl::SetDataRetrievalTimeOut(unsigned int, int)
+ ?SetDocument@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@PAVCSvgDocumentImpl@@@Z @ 134 NONAME ; void CSvgEngineInterfaceImpl::SetDocument(class CSvgEngineImpl *, class CSvgDocumentImpl *)
+ ?SetElementColorAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HJ@Z @ 135 NONAME ; void CSvgEngineInterfaceImpl::SetElementColorAttribute(class CSvgElementImpl *, int, long)
+ ?SetElementDesAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HABVTDesC16@@@Z @ 136 NONAME ; void CSvgEngineInterfaceImpl::SetElementDesAttribute(class CSvgElementImpl *, int, class TDesC16 const &)
+ ?SetElementFloatAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HM@Z @ 137 NONAME ; void CSvgEngineInterfaceImpl::SetElementFloatAttribute(class CSvgElementImpl *, int, float)
+ ?SetEnumAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HJ@Z @ 138 NONAME ; void CSvgEngineInterfaceImpl::SetEnumAttribute(class CSvgElementImpl *, int, long)
+ ?SetFirstChildElement@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@0@Z @ 139 NONAME ; void CSvgEngineInterfaceImpl::SetFirstChildElement(class CXmlElementImpl *, class CXmlElementImpl *)
+ ?SetFocusElement@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@PAVCSvgDocumentImpl@@@Z @ 140 NONAME ; void CSvgEngineInterfaceImpl::SetFocusElement(class CXmlElementImpl *, class CSvgDocumentImpl *)
+ ?SetFrameBuffer@CSvgEngineInterfaceImpl@@QAEXPAVCFbsBitmap@@H@Z @ 141 NONAME ; void CSvgEngineInterfaceImpl::SetFrameBuffer(class CFbsBitmap *, int)
+ ?SetGdiContextL@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@PAVCFbsBitmap@@@Z @ 142 NONAME ; void CSvgEngineInterfaceImpl::SetGdiContextL(class CSvgEngineImpl *, class CFbsBitmap *)
+ ?SetMatrixAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@MMMMMM@Z @ 143 NONAME ; void CSvgEngineInterfaceImpl::SetMatrixAttribute(class CXmlElementImpl *, float, float, float, float, float, float)
+ ?SetMediaTime@CSvgEngineInterfaceImpl@@QAEXJH@Z @ 144 NONAME ; void CSvgEngineInterfaceImpl::SetMediaTime(long, int)
+ ?SetNextSibling@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@0@Z @ 145 NONAME ; void CSvgEngineInterfaceImpl::SetNextSibling(class CXmlElementImpl *, class CXmlElementImpl *)
+ ?SetParentElement@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@0@Z @ 146 NONAME ; void CSvgEngineInterfaceImpl::SetParentElement(class CXmlElementImpl *, class CXmlElementImpl *)
+ ?SetPathAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCSvgElementImpl@@HPAVCGfxGeneralPath@@@Z @ 147 NONAME ; void CSvgEngineInterfaceImpl::SetPathAttribute(class CSvgElementImpl *, int, class CGfxGeneralPath *)
+ ?SetPreserveAspectRatio@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@W4TSvgPreserveAspectAlignType@@W4TSvgMeetOrSliceType@@H@Z @ 148 NONAME ; void CSvgEngineInterfaceImpl::SetPreserveAspectRatio(class CSvgDocumentImpl *, enum TSvgPreserveAspectAlignType, enum TSvgMeetOrSliceType, int)
+ ?SetRectAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@MMMM@Z @ 149 NONAME ; void CSvgEngineInterfaceImpl::SetRectAttribute(class CXmlElementImpl *, float, float, float, float)
+ ?SetRenderQuality@CSvgEngineInterfaceImpl@@QAEXIH@Z @ 150 NONAME ; void CSvgEngineInterfaceImpl::SetRenderQuality(unsigned int, int)
+ ?SetRequestObserver@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@PAVMSvgRequestObserver@@@Z @ 151 NONAME ; void CSvgEngineInterfaceImpl::SetRequestObserver(class CSvgEngineImpl *, class MSvgRequestObserver *)
+ ?SetSvgDimensionToFrameBuffer@CSvgEngineInterfaceImpl@@QAEXIIH@Z @ 152 NONAME ; void CSvgEngineInterfaceImpl::SetSvgDimensionToFrameBuffer(unsigned int, unsigned int, int)
+ ?SetTextForTextAreaElement@CSvgEngineInterfaceImpl@@QAEHHAAVTDesC16@@@Z @ 153 NONAME ; int CSvgEngineInterfaceImpl::SetTextForTextAreaElement(int, class TDesC16 &)
+ ?SetTextForTextElement@CSvgEngineInterfaceImpl@@QAEHHAAVTDesC16@@@Z @ 154 NONAME ; int CSvgEngineInterfaceImpl::SetTextForTextElement(int, class TDesC16 &)
+ ?SetThumbNailMode@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 155 NONAME ; void CSvgEngineInterfaceImpl::SetThumbNailMode(int, int)
+ ?SetViewportHeight@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@H@Z @ 156 NONAME ; void CSvgEngineInterfaceImpl::SetViewportHeight(class CSvgDocumentImpl *, int)
+ ?SetViewportWidth@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@H@Z @ 157 NONAME ; void CSvgEngineInterfaceImpl::SetViewportWidth(class CSvgDocumentImpl *, int)
+ ?Size@CSvgEngineInterfaceImpl@@QAE?AVTSize@@H@Z @ 158 NONAME ; class TSize CSvgEngineInterfaceImpl::Size(int)
+ ?Start@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@H@Z @ 159 NONAME ; void CSvgEngineInterfaceImpl::Start(class CSvgEngineImpl *, int)
+ ?StartEngine@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@@Z @ 160 NONAME ; void CSvgEngineInterfaceImpl::StartEngine(class CSvgEngineImpl *)
+ ?Stop@CSvgEngineInterfaceImpl@@QAEXPAVCSvgEngineImpl@@@Z @ 161 NONAME ; void CSvgEngineInterfaceImpl::Stop(class CSvgEngineImpl *)
+ ?SvgActivateAnimation@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@@Z @ 162 NONAME ; void CSvgEngineInterfaceImpl::SvgActivateAnimation(class CSvgDocumentImpl *)
+ ?SvgBeginElementAt@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@KPAVCSvgDocumentImpl@@@Z @ 163 NONAME ; void CSvgEngineInterfaceImpl::SvgBeginElementAt(class CXmlElementImpl *, unsigned long, class CSvgDocumentImpl *)
+ ?SvgCreatePath@CSvgEngineInterfaceImpl@@QAEPAVCGfxGeneralPath@@XZ @ 164 NONAME ; class CGfxGeneralPath * CSvgEngineInterfaceImpl::SvgCreatePath(void)
+ ?SvgDestroyPath@CSvgEngineInterfaceImpl@@QAEXPAVCGfxGeneralPath@@@Z @ 165 NONAME ; void CSvgEngineInterfaceImpl::SvgDestroyPath(class CGfxGeneralPath *)
+ ?SvgDocument@CSvgEngineInterfaceImpl@@QAEPAVCSvgDocumentImpl@@XZ @ 166 NONAME ; class CSvgDocumentImpl * CSvgEngineInterfaceImpl::SvgDocument(void)
+ ?SvgDocumentNewL@CSvgEngineInterfaceImpl@@QAEPAVCSvgDocumentImpl@@XZ @ 167 NONAME ; class CSvgDocumentImpl * CSvgEngineInterfaceImpl::SvgDocumentNewL(void)
+ ?SvgEndElementAt@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@KPAVCSvgDocumentImpl@@@Z @ 168 NONAME ; void CSvgEngineInterfaceImpl::SvgEndElementAt(class CXmlElementImpl *, unsigned long, class CSvgDocumentImpl *)
+ ?SvgEngineNewL@CSvgEngineInterfaceImpl@@QAEPAVCSvgEngineImpl@@XZ @ 169 NONAME ; class CSvgEngineImpl * CSvgEngineInterfaceImpl::SvgEngineNewL(void)
+ ?SvgGetMediaTime@CSvgEngineInterfaceImpl@@QAEMPAVCSvgDocumentImpl@@@Z @ 170 NONAME ; float CSvgEngineInterfaceImpl::SvgGetMediaTime(class CSvgDocumentImpl *)
+ ?SvgHasAnimation@CSvgEngineInterfaceImpl@@QAEHPAVCSvgDocumentImpl@@@Z @ 171 NONAME ; int CSvgEngineInterfaceImpl::SvgHasAnimation(class CSvgDocumentImpl *)
+ ?SvgSetMediaTime@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@K@Z @ 172 NONAME ; void CSvgEngineInterfaceImpl::SvgSetMediaTime(class CSvgDocumentImpl *, unsigned long)
+ ?SwitchDebugInfo@CSvgEngineInterfaceImpl@@QAEXH@Z @ 173 NONAME ; void CSvgEngineInterfaceImpl::SwitchDebugInfo(int)
+ ?UpdatePath@CSvgEngineInterfaceImpl@@QAEXHPAVCSvgElementImpl@@@Z @ 174 NONAME ; void CSvgEngineInterfaceImpl::UpdatePath(int, class CSvgElementImpl *)
+ ?UseDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@HPAVCFbsBitmap@@0H@Z @ 175 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::UseDom(int, class CFbsBitmap *, class CFbsBitmap *, int)
+ ?ViewportInit@CSvgEngineInterfaceImpl@@QAEXPAVCSvgDocumentImpl@@@Z @ 176 NONAME ; void CSvgEngineInterfaceImpl::ViewportInit(class CSvgDocumentImpl *)
+ ?WaitForImages@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 177 NONAME ; void CSvgEngineInterfaceImpl::WaitForImages(int, int)
+ ?Zoom@CSvgEngineInterfaceImpl@@QAEXMH@Z @ 178 NONAME ; void CSvgEngineInterfaceImpl::Zoom(float, int)
+ ?Start@CSvgEngineInterfaceImpl@@QAEXAAPAVMSvgError@@PAVCSvgEngineImpl@@@Z @ 179 NONAME ; void CSvgEngineInterfaceImpl::Start(class MSvgError * &, class CSvgEngineImpl *)
+ ?MuteAudioVolume@CSvgEngineInterfaceImpl@@QAEXH@Z @ 180 NONAME ; void CSvgEngineInterfaceImpl::MuteAudioVolume(int)
+ ?SetAudioVolume@CSvgEngineInterfaceImpl@@QAEXHH@Z @ 181 NONAME ; void CSvgEngineInterfaceImpl::SetAudioVolume(int, int)
+ ?SetDRMRights@CSvgEngineInterfaceImpl@@QAEXH@Z @ 182 NONAME ; void CSvgEngineInterfaceImpl::SetDRMRights(int)
+ ?GetMatrixAttribute@CSvgEngineInterfaceImpl@@QAEXPAVCXmlElementImpl@@HPAM11111@Z @ 183 NONAME ; void CSvgEngineInterfaceImpl::GetMatrixAttribute(class CXmlElementImpl *, int, float *, float *, float *, float *, float *, float *)
+ ?ConstructL@CSvgEngineInterfaceImpl@@IAEXPAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@W4SVGRendererId@@@Z @ 184 NONAME ; void CSvgEngineInterfaceImpl::ConstructL(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &, SVGRendererId)
+ ?NewL@CSvgEngineInterfaceImpl@@SAPAV1@PAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@W4SVGRendererId@@@Z @ 185 NONAME ; class CSvgEngineInterfaceImpl * CSvgEngineInterfaceImpl::NewL(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &, SVGRendererId))
+ ?NewLC@CSvgEngineInterfaceImpl@@SAPAV1@PAVCFbsBitmap@@PAVMSvgRequestObserver@@AAVTFontSpec@@W4SVGRendererId@@@Z @ 186 NONAME ; class CSvgEngineInterfaceImpl * CSvgEngineInterfaceImpl::NewLC(class CFbsBitmap *, class MSvgRequestObserver *, class TFontSpec &, SVGRendererId))
+ ?UseDom@CSvgEngineInterfaceImpl@@QAEPAVMSvgError@@HPAVCFbsBitmap@@0VTSize@@W4TDisplayMode@@2H@Z @ 187 NONAME ; class MSvgError * CSvgEngineInterfaceImpl::UseDom(int, class CFbsBitmap *, class CFbsBitmap *, class TSize, enum TDisplayMode, enum TDisplayMode, int)
+ ?Start@CSvgEngineInterfaceImpl@@QAEXAAPAVMSvgError@@PBVTDesC8@@PAVCSvgEngineImpl@@@Z @ 188 NONAME ; void CSvgEngineInterfaceImpl::Start(class MSvgError * &, class TDesC8 const *, class CSvgEngineImpl *)
+ ?Start@CSvgEngineInterfaceImpl@@QAEXPBVTDesC8@@PAVCSvgEngineImpl@@H@Z @ 189 NONAME ; void CSvgEngineInterfaceImpl::Start(class TDesC8 const *, class CSvgEngineImpl *, int)
+ ?ResetContext@CSvgEngineInterfaceImpl@@QAEXH@Z @ 190 NONAME ; void CSvgEngineInterfaceImpl::ResetContext(int)
+ ?ConstructL@CSvgEngineInterfaceImpl@@IAEXAAVTFontSpec@@@Z @ 191 NONAME ; void CSvgEngineInterfaceImpl::ConstructL(class TFontSpec &)
+ ?TLVEncodedData@CSvgEngineInterfaceImpl@@QBE?BVTPtrC8@@XZ @ 192 NONAME ; class TPtrC8 const CSvgEngineInterfaceImpl::TLVEncodedData(void) const
+
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/eabi/SVGENGINE-OpenVGU.def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/eabi/SVGENGINE-OpenVGU.def Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,391 @@
+EXPORTS
+ _ZN16CSvgDocumentImpl11RootElementEv @ 1 NONAME
+ _ZN18CSvgSvgElementImpl12GetAttributeERK7TDesC16R6TDes16 @ 2 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ADDCloseToEP15CGfxGeneralPath @ 3 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ADDCurveToEP15CGfxGeneralPathffffff @ 4 NONAME
+ _ZN23CSvgEngineInterfaceImpl10CancelLoadEi @ 5 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ConstructLEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec @ 6 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ConstructLEv @ 7 NONAME
+ _ZN23CSvgEngineInterfaceImpl10PrepareDomER5RFileRii @ 8 NONAME
+ _ZN23CSvgEngineInterfaceImpl10PrepareDomERK6TDesC8Rii @ 9 NONAME
+ _ZN23CSvgEngineInterfaceImpl10PrepareDomERK7TDesC16Rii @ 10 NONAME
+ _ZN23CSvgEngineInterfaceImpl10SaveSvgDomEiRK7TDesC16i @ 11 NONAME
+ _ZN23CSvgEngineInterfaceImpl10SetDRMModeEii @ 12 NONAME
+ _ZN23CSvgEngineInterfaceImpl10UpdatePathEiP15CSvgElementImpl @ 13 NONAME
+ _ZN23CSvgEngineInterfaceImpl11AddListenerEPK12MSvgListener16TSvgListenerTypei @ 14 NONAME
+ _ZN23CSvgEngineInterfaceImpl11AppendChildEP15CXmlElementImplS1_i @ 15 NONAME
+ _ZN23CSvgEngineInterfaceImpl11PanPositionEi @ 16 NONAME
+ _ZN23CSvgEngineInterfaceImpl11RemoveChildEP15CXmlElementImplS1_ @ 17 NONAME
+ _ZN23CSvgEngineInterfaceImpl11RenderFrameEP14CSvgEngineImplj @ 18 NONAME
+ _ZN23CSvgEngineInterfaceImpl11SetDocumentEP14CSvgEngineImplP16CSvgDocumentImpl @ 19 NONAME
+ _ZN23CSvgEngineInterfaceImpl11StartEngineEP14CSvgEngineImpl @ 20 NONAME
+ _ZN23CSvgEngineInterfaceImpl11SvgDocumentEv @ 21 NONAME
+ _ZN23CSvgEngineInterfaceImpl12CurrentStateEi @ 22 NONAME
+ _ZN23CSvgEngineInterfaceImpl12CustomOptionEii @ 23 NONAME
+ _ZN23CSvgEngineInterfaceImpl12GenerateMaskEP10CFbsBitmapi @ 24 NONAME
+ _ZN23CSvgEngineInterfaceImpl12IsRemoveableEP15CSvgElementImpli @ 25 NONAME
+ _ZN23CSvgEngineInterfaceImpl12OriginalViewEi @ 26 NONAME
+ _ZN23CSvgEngineInterfaceImpl12RenderFramesEiRK5TSizejjj12TDisplayModeS3_R13RPointerArrayI10CFbsBitmapES7_R6RArrayIjEi @ 27 NONAME
+ _ZN23CSvgEngineInterfaceImpl12SetMediaTimeEli @ 28 NONAME
+ _ZN23CSvgEngineInterfaceImpl12ViewportInitEP16CSvgDocumentImpl @ 29 NONAME
+ _ZN23CSvgEngineInterfaceImpl13DestroyEngineEP14CSvgEngineImpl @ 30 NONAME
+ _ZN23CSvgEngineInterfaceImpl13FillDocumentLEP16CSvgDocumentImplRK7TDesC16 @ 31 NONAME
+ _ZN23CSvgEngineInterfaceImpl13FocusPreviousEv @ 32 NONAME
+ _ZN23CSvgEngineInterfaceImpl13GetFirstChildEP15CXmlElementImpl @ 33 NONAME
+ _ZN23CSvgEngineInterfaceImpl13IsPanPossibleEiii @ 34 NONAME
+ _ZN23CSvgEngineInterfaceImpl13SearchForTextERK7TDesC16R13RPointerArrayI5MRectER6RArrayI7TPtrC16ERS7_IiEii @ 35 NONAME
+ _ZN23CSvgEngineInterfaceImpl13SvgCreatePathEv @ 36 NONAME
+ _ZN23CSvgEngineInterfaceImpl13SvgEngineNewLEv @ 37 NONAME
+ _ZN23CSvgEngineInterfaceImpl13WaitForImagesEii @ 38 NONAME
+ _ZN23CSvgEngineInterfaceImpl14CreateElementLEP16CSvgDocumentImpli @ 39 NONAME
+ _ZN23CSvgEngineInterfaceImpl14DestroyElementEP15CXmlElementImpl @ 40 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetElementByIdEP16CSvgDocumentImplRK7TDesC16 @ 41 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetElementTypeEP15CXmlElementImpl @ 42 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetNextSiblingEP15CXmlElementImpl @ 43 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetNumberOfIdsEP16CSvgDocumentImpl @ 44 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetRootElementEP16CSvgDocumentImpl @ 45 NONAME
+ _ZN23CSvgEngineInterfaceImpl14GetSegmentTypeEP15CGfxGeneralPathi @ 46 NONAME
+ _ZN23CSvgEngineInterfaceImpl14RemoveListenerEPK12MSvgListener16TSvgListenerTypei @ 47 NONAME
+ _ZN23CSvgEngineInterfaceImpl14SetFrameBufferEP10CFbsBitmapi @ 48 NONAME
+ _ZN23CSvgEngineInterfaceImpl14SetGdiContextLEP14CSvgEngineImplP10CFbsBitmap @ 49 NONAME
+ _ZN23CSvgEngineInterfaceImpl14SetNextSiblingEP15CXmlElementImplS1_ @ 50 NONAME
+ _ZN23CSvgEngineInterfaceImpl14SvgDestroyPathEP15CGfxGeneralPath @ 51 NONAME
+ _ZN23CSvgEngineInterfaceImpl15AddExternalDataEP16CSvgDocumentImplRK7TDesC16RK6TDesC8iii @ 52 NONAME
+ _ZN23CSvgEngineInterfaceImpl15AddTextListenerEP16MSvgTextListeneri @ 53 NONAME
+ _ZN23CSvgEngineInterfaceImpl15AssignImageDataERK7TDesC16P6HBufC8 @ 54 NONAME
+ _ZN23CSvgEngineInterfaceImpl15DestroyDocumentEP16CSvgDocumentImpl @ 55 NONAME
+ _ZN23CSvgEngineInterfaceImpl15FindAllElementsEP15CSvgElementImpliR13RPointerArrayIS0_Ei @ 56 NONAME
+ _ZN23CSvgEngineInterfaceImpl15FramesPerSecondEii @ 57 NONAME
+ _ZN23CSvgEngineInterfaceImpl15GetSegmentCountEP15CGfxGeneralPath @ 58 NONAME
+ _ZN23CSvgEngineInterfaceImpl15InitRootElementEP16CSvgDocumentImpl @ 59 NONAME
+ _ZN23CSvgEngineInterfaceImpl15IsElementActiveEP15CSvgElementImpl @ 60 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SVGElementInDomEP16CSvgDocumentImplP15CXmlElementImpl @ 61 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SetClientWindowEP7RWindow @ 62 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SetFocusElementEP15CXmlElementImplP16CSvgDocumentImpl @ 63 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SvgDocumentNewLEv @ 64 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SvgEndElementAtEP15CXmlElementImplmP16CSvgDocumentImpl @ 65 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SvgGetMediaTimeEP16CSvgDocumentImpl @ 66 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SvgHasAnimationEP16CSvgDocumentImpl @ 67 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SvgSetMediaTimeEP16CSvgDocumentImplm @ 68 NONAME
+ _ZN23CSvgEngineInterfaceImpl15SwitchDebugInfoEi @ 69 NONAME
+ _ZN23CSvgEngineInterfaceImpl16ClearFrameBufferEP10CFbsBitmapmi @ 70 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetEnumAttributeEP15CSvgElementImpliRl @ 71 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetOwnerDocumentEP15CXmlElementImpl @ 72 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetParentElementEP15CXmlElementImpl @ 73 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetPathAttributeEP15CXmlElementImpli @ 74 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetRectAttributeEP15CXmlElementImplPfS2_S2_S2_ @ 75 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetRenderQualityEv @ 76 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetViewportUnitsEP16CSvgDocumentImpl @ 77 NONAME
+ _ZN23CSvgEngineInterfaceImpl16GetViewportWidthEP16CSvgDocumentImpl @ 78 NONAME
+ _ZN23CSvgEngineInterfaceImpl16InitializeEngineEP14CSvgEngineImpli @ 79 NONAME
+ _ZN23CSvgEngineInterfaceImpl16IsElementVisibleEii @ 80 NONAME
+ _ZN23CSvgEngineInterfaceImpl16PrintAllElementsEP16CSvgDocumentImpl @ 81 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetEnumAttributeEP15CSvgElementImplil @ 82 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetParentElementEP15CXmlElementImplS1_ @ 83 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetPathAttributeEP15CSvgElementImpliP15CGfxGeneralPath @ 84 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetRectAttributeEP15CXmlElementImplffff @ 85 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetRenderQualityEji @ 86 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetThumbNailModeEii @ 87 NONAME
+ _ZN23CSvgEngineInterfaceImpl16SetViewportWidthEP16CSvgDocumentImpli @ 88 NONAME
+ _ZN23CSvgEngineInterfaceImpl17ContentDimensionsERfS0_i @ 89 NONAME
+ _ZN23CSvgEngineInterfaceImpl17ContentDimensionsEi @ 90 NONAME
+ _ZN23CSvgEngineInterfaceImpl17GetFocusedElementEP16CSvgDocumentImpl @ 91 NONAME
+ _ZN23CSvgEngineInterfaceImpl17GetSvgBoundingBoxEi @ 92 NONAME
+ _ZN23CSvgEngineInterfaceImpl17GetViewportHeightEP16CSvgDocumentImpl @ 93 NONAME
+ _ZN23CSvgEngineInterfaceImpl17SetViewportHeightEP16CSvgDocumentImpli @ 94 NONAME
+ _ZN23CSvgEngineInterfaceImpl17SvgBeginElementAtEP15CXmlElementImplmP16CSvgDocumentImpl @ 95 NONAME
+ _ZN23CSvgEngineInterfaceImpl18GetMatrixAttributeEP15CXmlElementImplPfS2_S2_S2_S2_S2_ @ 96 NONAME
+ _ZN23CSvgEngineInterfaceImpl18RemoveTextListenerEP16MSvgTextListeneri @ 97 NONAME
+ _ZN23CSvgEngineInterfaceImpl18SetBackgroundColorEmP14CSvgEngineImpl @ 98 NONAME
+ _ZN23CSvgEngineInterfaceImpl18SetMatrixAttributeEP15CXmlElementImplffffff @ 99 NONAME
+ _ZN23CSvgEngineInterfaceImpl18SetRequestObserverEP14CSvgEngineImplP19MSvgRequestObserver @ 100 NONAME
+ _ZN23CSvgEngineInterfaceImpl19AddTextAreaListenerEP20MSvgTextAreaListeneri @ 101 NONAME
+ _ZN23CSvgEngineInterfaceImpl19GetExternalListSizeEP16CSvgDocumentImpl @ 102 NONAME
+ _ZN23CSvgEngineInterfaceImpl19GetSegmentParameterEP15CGfxGeneralPathii @ 103 NONAME
+ _ZN23CSvgEngineInterfaceImpl19PrintElementsStylesEP15CSvgElementImpl @ 104 NONAME
+ _ZN23CSvgEngineInterfaceImpl20AddAnimationListenerEP21MSvgAnimationListeneri @ 105 NONAME
+ _ZN23CSvgEngineInterfaceImpl20AddHyperlinkListenerEP21MSvgHyperlinkListeneri @ 106 NONAME
+ _ZN23CSvgEngineInterfaceImpl20DispatchFocusInEventEP16CSvgDocumentImplP15CSvgElementImpl @ 107 NONAME
+ _ZN23CSvgEngineInterfaceImpl20GetExternalListItemLEP16CSvgDocumentImpliR7TPtrC16 @ 108 NONAME
+ _ZN23CSvgEngineInterfaceImpl20IsContentInteractiveEP16CSvgDocumentImpli @ 109 NONAME
+ _ZN23CSvgEngineInterfaceImpl20IsPanPossibleFourWayERiS0_S0_S0_i @ 110 NONAME
+ _ZN23CSvgEngineInterfaceImpl20SetAnimFrameDurationEji @ 111 NONAME
+ _ZN23CSvgEngineInterfaceImpl20SetFirstChildElementEP15CXmlElementImplS1_ @ 112 NONAME
+ _ZN23CSvgEngineInterfaceImpl20SvgActivateAnimationEP16CSvgDocumentImpl @ 113 NONAME
+ _ZN23CSvgEngineInterfaceImpl21ActivateObjectInFocusEv @ 114 NONAME
+ _ZN23CSvgEngineInterfaceImpl21ChooseViewBoxIfNotSetEi @ 115 NONAME
+ _ZN23CSvgEngineInterfaceImpl21DispatchFocusOutEventEP16CSvgDocumentImplP15CSvgElementImpl @ 116 NONAME
+ _ZN23CSvgEngineInterfaceImpl21DispatchMouseEventsAtEP16CSvgDocumentImpliiP17MSvgMouseListener @ 117 NONAME
+ _ZN23CSvgEngineInterfaceImpl21GetElementBoundingboxEP15CSvgElementImplRfS2_S2_S2_ @ 118 NONAME
+ _ZN23CSvgEngineInterfaceImpl21GetTextForTextElementEiRiR6TDes16 @ 119 NONAME
+ _ZN23CSvgEngineInterfaceImpl21SetTextForTextElementEiR7TDesC16 @ 120 NONAME
+ _ZN23CSvgEngineInterfaceImpl22AddToEventReceiverListEP15CXmlElementImplh @ 121 NONAME
+ _ZN23CSvgEngineInterfaceImpl22GetElementDesAttributeEP15CSvgElementImpliR7TPtrC16 @ 122 NONAME
+ _ZN23CSvgEngineInterfaceImpl22GetUnscaledContentSizeEi @ 123 NONAME
+ _ZN23CSvgEngineInterfaceImpl22RemoveTextAreaListenerEP20MSvgTextAreaListeneri @ 124 NONAME
+ _ZN23CSvgEngineInterfaceImpl22SetElementDesAttributeEP15CSvgElementImpliRK7TDesC16 @ 125 NONAME
+ _ZN23CSvgEngineInterfaceImpl22SetPreserveAspectRatioEP16CSvgDocumentImpl27TSvgPreserveAspectAlignType19TSvgMeetOrSliceTypei @ 126 NONAME
+ _ZN23CSvgEngineInterfaceImpl23RemoveAnimationListenerEP21MSvgAnimationListeneri @ 127 NONAME
+ _ZN23CSvgEngineInterfaceImpl23RemoveHyperlinkListenerEP21MSvgHyperlinkListeneri @ 128 NONAME
+ _ZN23CSvgEngineInterfaceImpl23SetDataRetrievalTimeOutEji @ 129 NONAME
+ _ZN23CSvgEngineInterfaceImpl24GetElementColorAttributeEP15CSvgElementImpli @ 130 NONAME
+ _ZN23CSvgEngineInterfaceImpl24GetElementFloatAttributeEP15CSvgElementImpli @ 131 NONAME
+ _ZN23CSvgEngineInterfaceImpl24SVGElementGetUsedElementEP15CXmlElementImpl @ 132 NONAME
+ _ZN23CSvgEngineInterfaceImpl24SetElementColorAttributeEP15CSvgElementImplil @ 133 NONAME
+ _ZN23CSvgEngineInterfaceImpl24SetElementFloatAttributeEP15CSvgElementImplif @ 134 NONAME
+ _ZN23CSvgEngineInterfaceImpl25GetTextForTextAreaElementEiRiR6TDes16 @ 135 NONAME
+ _ZN23CSvgEngineInterfaceImpl25SetTextForTextAreaElementEiR7TDesC16 @ 136 NONAME
+ _ZN23CSvgEngineInterfaceImpl27RemoveFromEventReceiverListEP15CXmlElementImpl @ 137 NONAME
+ _ZN23CSvgEngineInterfaceImpl28SetSvgDimensionToFrameBufferEjji @ 138 NONAME
+ _ZN23CSvgEngineInterfaceImpl29ContentDimensionsInPercentageEi @ 139 NONAME
+ _ZN23CSvgEngineInterfaceImpl29GetElementUnScaledBoundingBoxEP15CSvgElementImplRfS2_S2_S2_ @ 140 NONAME
+ _ZN23CSvgEngineInterfaceImpl30GetFourPointElementBoundingBoxEP19CSvgTextElementImplR6TPointS3_S3_S3_ @ 141 NONAME
+ _ZN23CSvgEngineInterfaceImpl31InitSvgStylePropertiesWithNullLEP15CSvgElementImpl @ 142 NONAME
+ _ZN23CSvgEngineInterfaceImpl3PanEiii @ 143 NONAME
+ _ZN23CSvgEngineInterfaceImpl4LoadER5RFile @ 144 NONAME
+ _ZN23CSvgEngineInterfaceImpl4LoadERK6TDesC8 @ 145 NONAME
+ _ZN23CSvgEngineInterfaceImpl4LoadERK7TDesC16 @ 146 NONAME
+ _ZN23CSvgEngineInterfaceImpl4NewLEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec @ 147 NONAME
+ _ZN23CSvgEngineInterfaceImpl4SizeEi @ 148 NONAME
+ _ZN23CSvgEngineInterfaceImpl4StopEP14CSvgEngineImpl @ 149 NONAME
+ _ZN23CSvgEngineInterfaceImpl4ZoomEfi @ 150 NONAME
+ _ZN23CSvgEngineInterfaceImpl5GetIdEP16CSvgDocumentImpli @ 151 NONAME
+ _ZN23CSvgEngineInterfaceImpl5NewLCEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec @ 152 NONAME
+ _ZN23CSvgEngineInterfaceImpl5PauseEP14CSvgEngineImpl @ 153 NONAME
+ _ZN23CSvgEngineInterfaceImpl5StartEP14CSvgEngineImpli @ 154 NONAME
+ _ZN23CSvgEngineInterfaceImpl6RedrawEii @ 155 NONAME
+ _ZN23CSvgEngineInterfaceImpl6ReplayEi @ 156 NONAME
+ _ZN23CSvgEngineInterfaceImpl6ResumeEP14CSvgEngineImpl @ 157 NONAME
+ _ZN23CSvgEngineInterfaceImpl6RotateEfiii @ 158 NONAME
+ _ZN23CSvgEngineInterfaceImpl6UseDomEiP10CFbsBitmapS1_i @ 159 NONAME
+ _ZN23CSvgEngineInterfaceImpl7DestroyEv @ 160 NONAME
+ _ZN23CSvgEngineInterfaceImpl7DrawBoxE5TRecti @ 161 NONAME
+ _ZN23CSvgEngineInterfaceImpl7MouseUpEiii @ 162 NONAME
+ _ZN23CSvgEngineInterfaceImpl7SaveSvgEiRK7TDesC16i @ 163 NONAME
+ _ZN23CSvgEngineInterfaceImpl8DurationEi @ 164 NONAME
+ _ZN23CSvgEngineInterfaceImpl8KeyPressERK9TKeyEventi @ 165 NONAME
+ _ZN23CSvgEngineInterfaceImpl8PositionEi @ 166 NONAME
+ _ZN23CSvgEngineInterfaceImpl9ADDLineToEP15CGfxGeneralPathff @ 167 NONAME
+ _ZN23CSvgEngineInterfaceImpl9ADDMoveToEP15CGfxGeneralPathff @ 168 NONAME
+ _ZN23CSvgEngineInterfaceImpl9ADDQuadToEP15CGfxGeneralPathffff @ 169 NONAME
+ _ZN23CSvgEngineInterfaceImpl9DeleteDomEi @ 170 NONAME
+ _ZN23CSvgEngineInterfaceImpl9FocusNextEv @ 171 NONAME
+ _ZN23CSvgEngineInterfaceImpl9IsLoadingEi @ 172 NONAME
+ _ZN23CSvgEngineInterfaceImpl9MediaTimeEi @ 173 NONAME
+ _ZN23CSvgEngineInterfaceImpl9MouseDownEiii @ 174 NONAME
+ _ZN23CSvgEngineInterfaceImpl9MouseMoveEiii @ 175 NONAME
+ _ZN23CSvgEngineInterfaceImpl9RenderDomEiP10CFbsBitmapS1_ @ 176 NONAME
+ _ZN23CSvgEngineInterfaceImplC1Ev @ 177 NONAME
+ _ZN23CSvgEngineInterfaceImplC2Ev @ 178 NONAME
+ _ZN23CSvgEngineInterfaceImplD0Ev @ 179 NONAME
+ _ZN23CSvgEngineInterfaceImplD1Ev @ 180 NONAME
+ _ZN23CSvgEngineInterfaceImplD2Ev @ 181 NONAME
+ _ZTI10TGfxLine2D @ 182 NONAME ; ##
+ _ZTI11CGfx2dGcVGR @ 183 NONAME ; ##
+ _ZTI11CSvgDecoder @ 184 NONAME ; ##
+ _ZTI13CSvgErrorImpl @ 185 NONAME ; ##
+ _ZTI13CSvgTestsImpl @ 186 NONAME ; ##
+ _ZTI13TGfxEllipse2D @ 187 NONAME ; ##
+ _ZTI14CGfx2dGcOpenVG @ 188 NONAME ; ##
+ _ZTI14CSvgEngineImpl @ 189 NONAME ; ##
+ _ZTI14CSvgSchemaData @ 190 NONAME ; ##
+ _ZTI14TSvgTimerEvent @ 191 NONAME ; ##
+ _ZTI14TSvgUiKeyEvent @ 192 NONAME ; ##
+ _ZTI15CGfxGeneralPath @ 193 NONAME ; ##
+ _ZTI15CSvgElementImpl @ 194 NONAME ; ##
+ _ZTI15CSvgFontHashMap @ 195 NONAME ; ##
+ _ZTI15CSvgFontMapItem @ 196 NONAME ; ##
+ _ZTI15CXmlElementImpl @ 197 NONAME ; ##
+ _ZTI15TGfxRectangle2D @ 198 NONAME ; ##
+ _ZTI16CClrCssValueImpl @ 199 NONAME ; ##
+ _ZTI16CIntCssValueImpl @ 200 NONAME ; ##
+ _ZTI16CStrCssValueImpl @ 201 NONAME ; ##
+ _ZTI16CSvgAElementImpl @ 202 NONAME ; ##
+ _ZTI16CSvgDocumentImpl @ 203 NONAME ; ##
+ _ZTI16CSvgEventHandler @ 204 NONAME ; ##
+ _ZTI16CSvgGElementImpl @ 205 NONAME ; ##
+ _ZTI16CSvgImageHashMap @ 206 NONAME ; ##
+ _ZTI16CSvgImageMapItem @ 207 NONAME ; ##
+ _ZTI16TSvgUiMouseEvent @ 208 NONAME ; ##
+ _ZTI17CGfxLineIteratorP @ 209 NONAME ; ##
+ _ZTI17CSvgAnimationBase @ 210 NONAME ; ##
+ _ZTI17CSvgLangSpaceImpl @ 211 NONAME ; ##
+ _ZTI17CSvgMemoryManager @ 212 NONAME ; ##
+ _ZTI17TGfxGradientPaint @ 213 NONAME ; ##
+ _ZTI17TSvgFourPointRect @ 214 NONAME ; ##
+ _ZTI17TSvgInternalEvent @ 215 NONAME ; ##
+ _ZTI18CFloatCssValueImpl @ 216 NONAME ; ##
+ _ZTI18CPaintCssValueImpl @ 217 NONAME ; ##
+ _ZTI18CSvgContentHandler @ 218 NONAME ; ##
+ _ZTI18CSvgSetElementImpl @ 219 NONAME ; ##
+ _ZTI18CSvgSvgElementImpl @ 220 NONAME ; ##
+ _ZTI18CSvgUseElementImpl @ 221 NONAME ; ##
+ _ZTI18TSvgTimerEventPrep @ 222 NONAME ; ##
+ _ZTI19CSvgDefsElementImpl @ 223 NONAME ; ##
+ _ZTI19CSvgDescElementImpl @ 224 NONAME ; ##
+ _ZTI19CSvgEventAttributes @ 225 NONAME ; ##
+ _ZTI19CSvgFontElementImpl @ 226 NONAME ; ##
+ _ZTI19CSvgLineElementImpl @ 227 NONAME ; ##
+ _ZTI19CSvgPathElementImpl @ 228 NONAME ; ##
+ _ZTI19CSvgRectElementImpl @ 229 NONAME ; ##
+ _ZTI19CSvgStopElementImpl @ 230 NONAME ; ##
+ _ZTI19CSvgTextElementImpl @ 231 NONAME ; ##
+ _ZTI19CVectorCssValueImpl @ 232 NONAME ; ##
+ _ZTI20CGfxEllipseIteratorP @ 233 NONAME ; ##
+ _ZTI20CSvgAnimTimingParser @ 234 NONAME ; ##
+ _ZTI20CSvgFitToViewBoxImpl @ 235 NONAME ; ##
+ _ZTI20CSvgGlyphElementImpl @ 236 NONAME ; ##
+ _ZTI20CSvgHkernElementImpl @ 237 NONAME ; ##
+ _ZTI20CSvgImageElementImpl @ 238 NONAME ; ##
+ _ZTI20CSvgMpathElementImpl @ 239 NONAME ; ##
+ _ZTI20CSvgStyleElementImpl @ 240 NONAME ; ##
+ _ZTI20CSvgTitleElementImpl @ 241 NONAME ; ##
+ _ZTI20CSvgUriReferenceImpl @ 242 NONAME ; ##
+ _ZTI20TGfxRectangularShape @ 243 NONAME ; ##
+ _ZTI20TGfxRoundRectangle2D @ 244 NONAME ; ##
+ _ZTI21CSvgCircleElementImpl @ 245 NONAME ; ##
+ _ZTI21CSvgScriptElementImpl @ 246 NONAME ; ##
+ _ZTI21CSvgTransformListImpl @ 247 NONAME ; ##
+ _ZTI21CSvgTransformableImpl @ 248 NONAME ; ##
+ _ZTI21TSvgScreenUpdateEvent @ 249 NONAME ; ##
+ _ZTI22CGfxRectangleIteratorP @ 250 NONAME ; ##
+ _ZTI22CSvgAnimTimeController @ 251 NONAME ; ##
+ _ZTI22CSvgAnimateElementImpl @ 252 NONAME ; ##
+ _ZTI22CSvgDiscardElementImpl @ 253 NONAME ; ##
+ _ZTI22CSvgEllipseElementImpl @ 254 NONAME ; ##
+ _ZTI23CSvgEngineInterfaceImpl @ 255 NONAME ; ##
+ _ZTI23CSvgFontFaceElementImpl @ 256 NONAME ; ##
+ _ZTI23CSvgGradientElementImpl @ 257 NONAME ; ##
+ _ZTI23CSvgMetadataElementImpl @ 258 NONAME ; ##
+ _ZTI23CSvgPolylineElementImpl @ 259 NONAME ; ##
+ _ZTI23CSvgTextAreaElementImpl @ 260 NONAME ; ##
+ _ZTI23TGfxLinearGradientPaint @ 261 NONAME ; ##
+ _ZTI23TGfxRadialGradientPaint @ 262 NONAME ; ##
+ _ZTI24CGfxGeneralPathIteratorP @ 263 NONAME ; ##
+ _ZTI24CSvgAnimationElementImpl @ 264 NONAME ; ##
+ _ZTI25CSvgDOMImplementationImpl @ 265 NONAME ; ##
+ _ZTI25CSvgSolidColorElementImpl @ 266 NONAME ; ##
+ _ZTI26CGfxFlatteningPathIterator @ 267 NONAME ; ##
+ _ZTI27CGfxRoundRectangleIteratorP @ 268 NONAME ; ##
+ _ZTI27CSvgMissingGlyphElementImpl @ 269 NONAME ; ##
+ _ZTI27CSvgPreserveAspectRatioImpl @ 270 NONAME ; ##
+ _ZTI28CSvgAnimateMotionElementImpl @ 271 NONAME ; ##
+ _ZTI28CSvgForeignObjectElementImpl @ 272 NONAME ; ##
+ _ZTI29CSvgLinearGradientElementImpl @ 273 NONAME ; ##
+ _ZTI29CSvgRadialGradientElementImpl @ 274 NONAME ; ##
+ _ZTI31CSvgAnimateTransformElementImpl @ 275 NONAME ; ##
+ _ZTI9CSvgTimer @ 276 NONAME ; ##
+ _ZTI9TGfxColor @ 277 NONAME ; ##
+ _ZTIN20CSvgImageElementImpl19CSvgImageLoaderUtilE @ 278 NONAME ; ##
+ _ZTV10TGfxLine2D @ 279 NONAME ; ##
+ _ZTV11CGfx2dGcVGR @ 280 NONAME ; ##
+ _ZTV11CSvgDecoder @ 281 NONAME ; ##
+ _ZTV13CSvgErrorImpl @ 282 NONAME ; ##
+ _ZTV13CSvgTestsImpl @ 283 NONAME ; ##
+ _ZTV13TGfxEllipse2D @ 284 NONAME ; ##
+ _ZTV14CGfx2dGcOpenVG @ 285 NONAME ; ##
+ _ZTV14CSvgEngineImpl @ 286 NONAME ; ##
+ _ZTV14CSvgSchemaData @ 287 NONAME ; ##
+ _ZTV14TSvgTimerEvent @ 288 NONAME ; ##
+ _ZTV14TSvgUiKeyEvent @ 289 NONAME ; ##
+ _ZTV15CGfxGeneralPath @ 290 NONAME ; ##
+ _ZTV15CSvgElementImpl @ 291 NONAME ; ##
+ _ZTV15CSvgFontHashMap @ 292 NONAME ; ##
+ _ZTV15CSvgFontMapItem @ 293 NONAME ; ##
+ _ZTV15CXmlElementImpl @ 294 NONAME ; ##
+ _ZTV15TGfxRectangle2D @ 295 NONAME ; ##
+ _ZTV16CClrCssValueImpl @ 296 NONAME ; ##
+ _ZTV16CIntCssValueImpl @ 297 NONAME ; ##
+ _ZTV16CStrCssValueImpl @ 298 NONAME ; ##
+ _ZTV16CSvgAElementImpl @ 299 NONAME ; ##
+ _ZTV16CSvgDocumentImpl @ 300 NONAME ; ##
+ _ZTV16CSvgEventHandler @ 301 NONAME ; ##
+ _ZTV16CSvgGElementImpl @ 302 NONAME ; ##
+ _ZTV16CSvgImageHashMap @ 303 NONAME ; ##
+ _ZTV16CSvgImageMapItem @ 304 NONAME ; ##
+ _ZTV16TSvgUiMouseEvent @ 305 NONAME ; ##
+ _ZTV17CGfxLineIteratorP @ 306 NONAME ; ##
+ _ZTV17CSvgAnimationBase @ 307 NONAME ; ##
+ _ZTV17CSvgLangSpaceImpl @ 308 NONAME ; ##
+ _ZTV17CSvgMemoryManager @ 309 NONAME ; ##
+ _ZTV17TGfxGradientPaint @ 310 NONAME ; ##
+ _ZTV17TSvgFourPointRect @ 311 NONAME ; ##
+ _ZTV17TSvgInternalEvent @ 312 NONAME ; ##
+ _ZTV18CFloatCssValueImpl @ 313 NONAME ; ##
+ _ZTV18CPaintCssValueImpl @ 314 NONAME ; ##
+ _ZTV18CSvgContentHandler @ 315 NONAME ; ##
+ _ZTV18CSvgSetElementImpl @ 316 NONAME ; ##
+ _ZTV18CSvgSvgElementImpl @ 317 NONAME ; ##
+ _ZTV18CSvgUseElementImpl @ 318 NONAME ; ##
+ _ZTV18TSvgTimerEventPrep @ 319 NONAME ; ##
+ _ZTV19CSvgDefsElementImpl @ 320 NONAME ; ##
+ _ZTV19CSvgDescElementImpl @ 321 NONAME ; ##
+ _ZTV19CSvgEventAttributes @ 322 NONAME ; ##
+ _ZTV19CSvgFontElementImpl @ 323 NONAME ; ##
+ _ZTV19CSvgLineElementImpl @ 324 NONAME ; ##
+ _ZTV19CSvgPathElementImpl @ 325 NONAME ; ##
+ _ZTV19CSvgRectElementImpl @ 326 NONAME ; ##
+ _ZTV19CSvgStopElementImpl @ 327 NONAME ; ##
+ _ZTV19CSvgTextElementImpl @ 328 NONAME ; ##
+ _ZTV19CVectorCssValueImpl @ 329 NONAME ; ##
+ _ZTV20CGfxEllipseIteratorP @ 330 NONAME ; ##
+ _ZTV20CSvgAnimTimingParser @ 331 NONAME ; ##
+ _ZTV20CSvgFitToViewBoxImpl @ 332 NONAME ; ##
+ _ZTV20CSvgGlyphElementImpl @ 333 NONAME ; ##
+ _ZTV20CSvgHkernElementImpl @ 334 NONAME ; ##
+ _ZTV20CSvgImageElementImpl @ 335 NONAME ; ##
+ _ZTV20CSvgMpathElementImpl @ 336 NONAME ; ##
+ _ZTV20CSvgStyleElementImpl @ 337 NONAME ; ##
+ _ZTV20CSvgTitleElementImpl @ 338 NONAME ; ##
+ _ZTV20CSvgUriReferenceImpl @ 339 NONAME ; ##
+ _ZTV20TGfxRectangularShape @ 340 NONAME ; ##
+ _ZTV20TGfxRoundRectangle2D @ 341 NONAME ; ##
+ _ZTV21CSvgCircleElementImpl @ 342 NONAME ; ##
+ _ZTV21CSvgScriptElementImpl @ 343 NONAME ; ##
+ _ZTV21CSvgTransformListImpl @ 344 NONAME ; ##
+ _ZTV21CSvgTransformableImpl @ 345 NONAME ; ##
+ _ZTV21TSvgScreenUpdateEvent @ 346 NONAME ; ##
+ _ZTV22CGfxRectangleIteratorP @ 347 NONAME ; ##
+ _ZTV22CSvgAnimTimeController @ 348 NONAME ; ##
+ _ZTV22CSvgAnimateElementImpl @ 349 NONAME ; ##
+ _ZTV22CSvgDiscardElementImpl @ 350 NONAME ; ##
+ _ZTV22CSvgEllipseElementImpl @ 351 NONAME ; ##
+ _ZTV23CSvgEngineInterfaceImpl @ 352 NONAME ; ##
+ _ZTV23CSvgFontFaceElementImpl @ 353 NONAME ; ##
+ _ZTV23CSvgGradientElementImpl @ 354 NONAME ; ##
+ _ZTV23CSvgMetadataElementImpl @ 355 NONAME ; ##
+ _ZTV23CSvgPolylineElementImpl @ 356 NONAME ; ##
+ _ZTV23CSvgTextAreaElementImpl @ 357 NONAME ; ##
+ _ZTV23TGfxLinearGradientPaint @ 358 NONAME ; ##
+ _ZTV23TGfxRadialGradientPaint @ 359 NONAME ; ##
+ _ZTV24CGfxGeneralPathIteratorP @ 360 NONAME ; ##
+ _ZTV24CSvgAnimationElementImpl @ 361 NONAME ; ##
+ _ZTV25CSvgDOMImplementationImpl @ 362 NONAME ; ##
+ _ZTV25CSvgSolidColorElementImpl @ 363 NONAME ; ##
+ _ZTV26CGfxFlatteningPathIterator @ 364 NONAME ; ##
+ _ZTV27CGfxRoundRectangleIteratorP @ 365 NONAME ; ##
+ _ZTV27CSvgMissingGlyphElementImpl @ 366 NONAME ; ##
+ _ZTV27CSvgPreserveAspectRatioImpl @ 367 NONAME ; ##
+ _ZTV28CSvgAnimateMotionElementImpl @ 368 NONAME ; ##
+ _ZTV28CSvgForeignObjectElementImpl @ 369 NONAME ; ##
+ _ZTV29CSvgLinearGradientElementImpl @ 370 NONAME ; ##
+ _ZTV29CSvgRadialGradientElementImpl @ 371 NONAME ; ##
+ _ZTV31CSvgAnimateTransformElementImpl @ 372 NONAME ; ##
+ _ZTV9CSvgTimer @ 373 NONAME ; ##
+ _ZTV9TGfxColor @ 374 NONAME ; ##
+ _ZTVN20CSvgImageElementImpl19CSvgImageLoaderUtilE @ 375 NONAME ; ##
+ _ZN23CSvgEngineInterfaceImpl5StartERP9MSvgErrorP14CSvgEngineImpl @ 376 NONAME
+ _ZN23CSvgEngineInterfaceImpl12SetDRMRightsEi @ 377 NONAME
+ _ZN23CSvgEngineInterfaceImpl14SetAudioVolumeEii @ 378 NONAME
+ _ZN23CSvgEngineInterfaceImpl15MuteAudioVolumeEi @ 379 NONAME
+ _ZN23CSvgEngineInterfaceImpl18GetMatrixAttributeEP15CXmlElementImpliPfS2_S2_S2_S2_S2_ @ 380 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ConstructLER9TFontSpec @ 381 NONAME
+ _ZN23CSvgEngineInterfaceImpl12ResetContextEi @ 382 NONAME
+ _ZN23CSvgEngineInterfaceImpl10ConstructLEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec13SVGRendererId @ 383 NONAME
+ _ZN23CSvgEngineInterfaceImpl4NewLEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec13SVGRendererId @ 384 NONAME
+ _ZN23CSvgEngineInterfaceImpl5NewLCEP10CFbsBitmapP19MSvgRequestObserverR9TFontSpec13SVGRendererId @ 385 NONAME
+ _ZN23CSvgEngineInterfaceImpl5StartEPK6TDesC8P14CSvgEngineImpli @ 386 NONAME
+ _ZN23CSvgEngineInterfaceImpl5StartERP9MSvgErrorPK6TDesC8P14CSvgEngineImpl @ 387 NONAME
+ _ZN23CSvgEngineInterfaceImpl6UseDomEiP10CFbsBitmapS1_5TSize12TDisplayModeS3_i @ 388 NONAME
+ _ZNK23CSvgEngineInterfaceImpl14TLVEncodedDataEv @ 389 NONAME
+
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/group/SVGEngine.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/group/SVGEngine.mmp Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,285 @@
+/*
+* Copyright (c) 2002 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: This mmp file generates makefile for SVG Engine
+*
+*/
+
+
+#include
+
+ALWAYS_BUILD_AS_ARM
+OPTION_REPLACE ARMCC --cpu 5T -O3 -Otime
+TARGET svgengine.dll
+TARGETTYPE dll
+
+
+VENDORID VID_DEFAULT
+
+UID 0x1000008D 0x101F856E
+
+
+ #if defined( ARMCC )
+ deffile ../eabi/SVGENGINE-OpenVG.def
+ #elif defined( WINSCW )
+ deffile ../BWINSCW/SVGENGINE-OpenVG.def
+ #elif defined( WINS )
+ deffile ../bwins/SVGENGINE-OpenVG.def
+ #else
+ deffile ../bmarm/SVGENGINE-OpenVG.def
+ #endif
+
+CAPABILITY CAP_GENERAL_DLL DRM
+
+SOURCEPATH ../src
+
+//SOURCE SVGEngineMain.cpp
+SOURCE SVGEngineImpl.cpp
+SOURCE SVGEngineInterfaceImpl.cpp
+SOURCE SVGTimer.cpp
+SOURCE SVGEventHandler.cpp
+SOURCE SVGEvent.cpp
+SOURCE SVGContentHandler.cpp
+SOURCE SvgBitmapFontProvider.cpp
+//SOURCE SVGXmlParser.cpp
+SOURCE SVGAttributeVerifier.cpp
+SOURCE SVGErrorImpl.cpp
+SOURCE Svgdecoder.cpp
+SOURCE SVGFourPointRect.cpp
+
+SOURCEPATH ../../SVGImpl/src
+
+SOURCE SVGElementImpl.cpp
+SOURCE SVGDocumentImpl.cpp
+SOURCE SVGDOMImplementationImpl.cpp
+
+// Structure Elements
+SOURCE Svgsvgelementimpl.cpp
+SOURCE SVGGElementImpl.cpp
+SOURCE SVGUseElementImpl.cpp
+SOURCE SVGStyleElementImpl.cpp
+SOURCE SVGForeignObjectElementImpl.cpp
+SOURCE SVGTitleElementImpl.cpp
+SOURCE SVGMetadataElementImpl.cpp
+SOURCE SVGDefsElementImpl.cpp
+SOURCE SVGDescElementImpl.cpp
+
+// Hyper linking
+SOURCE SVGAElementImpl.cpp
+SOURCE SVGUriReferenceImpl.cpp
+
+// Basic Shape Elements
+SOURCE SVGLineElementImpl.cpp
+SOURCE SVGRectElementImpl.cpp
+SOURCE SVGCircleElementImpl.cpp
+SOURCE SVGEllipseElementImpl.cpp
+SOURCE SVGPolylineElementImpl.cpp
+SOURCE SVGPathElementImpl.cpp
+SOURCE SVGMpathElementImpl.cpp
+
+// Text and Image Elements
+SOURCE SVGTextElementImpl.cpp
+SOURCE SVGTextAreaElementImpl.cpp
+SOURCE SVGImageElementImpl.cpp
+
+//Font Elements
+SOURCE SVGFontElementImpl.cpp
+SOURCE SVGFontFaceElementImpl.cpp
+SOURCE SVGGlyphElementImpl.cpp
+SOURCE SVGMissingGlyphElementImpl.cpp
+SOURCE SvgHkernelementimpl.cpp
+
+// Animation Elements
+SOURCE SVGAnimationBase.cpp
+SOURCE SVGSetElementImpl.cpp
+SOURCE SVGAnimateElementImpl.cpp
+SOURCE SVGAnimateTransformElementImpl.cpp
+SOURCE SVGAnimateMotionElementImpl.cpp
+SOURCE SVGDiscardElementImpl.cpp
+SOURCE SVGAnimationElementImpl.cpp
+
+// Gradient Elements
+SOURCE SVGLinearGradientElementImpl.cpp
+SOURCE SVGGradientElementImpl.cpp
+SOURCE SVGRadialGradientElementImpl.cpp
+SOURCE SVGStopElementImpl.cpp
+
+SOURCE SVGSolidColorElementImpl.cpp
+SOURCE SVGScriptElementImpl.cpp
+
+// CSS Classes
+SOURCE SVGClrCssValueImpl.cpp
+SOURCE SVGPaintCssValueImpl.cpp
+SOURCE SVGIntCssValueImpl.cpp
+SOURCE SVGFloatCssValueImpl.cpp
+SOURCE SVGStrCssValueImpl.cpp
+SOURCE SVGVectorCssValueImpl.cpp
+//SOURCE SVGCssStyleDeclarationImpl.cpp
+SOURCE SVGEventAttributes.cpp
+
+// Transform Classes
+SOURCE SVGTransformListImpl.cpp
+SOURCE SVGTransformableImpl.cpp
+
+// Switch Related Classes
+SOURCE SVGTestsImpl.cpp
+
+// XML Language Space Class
+SOURCE SVGLangSpaceImpl.cpp
+
+// Viewbox Classes
+SOURCE SVGFitToViewBoxImpl.cpp
+SOURCE SVGPreserveAspectRatioImpl.cpp
+
+// Utility Classes
+SOURCE SVGPointLexer.cpp
+SOURCE SVGSchemaData.cpp
+SOURCE SVGPathDataParser.cpp
+SOURCE SVGAnimTimeController.cpp
+SOURCE SVGStringTokenizer.cpp
+SOURCE SVGRelToAbsPath.cpp
+SOURCE SVGAnimTimingParser.cpp
+SOURCE SVGImageHashMap.cpp
+SOURCE SVGFontHashMap.cpp
+SOURCE SVGMemoryManager.cpp
+SOURCE SVGColor.cpp
+SOURCE SVGTokenizer.cpp
+
+// Media Element Classes
+SOURCE SVGAudioElementImpl.cpp
+SOURCE SVGMediaAnimationElementImpl.cpp
+SOURCE SVGMediaElementBase.cpp
+SOURCE SVGTimeContainer.cpp
+SOURCE SVGLockedRealTimeEntity.cpp
+
+SOURCEPATH ../../Xmldomimpl/src
+
+SOURCE SVGXmlElementImpl.cpp
+
+
+USERINCLUDE ../inc
+USERINCLUDE ../../Xmldomimpl/inc
+USERINCLUDE ../../SVGImpl/inc/SVGDOM
+USERINCLUDE ../../SVGImpl/inc
+USERINCLUDE ../../../VGRenderer/inc
+
+// This is a SYSTEMINCLUDE macro containing the middleware
+// layer specific include directories
+MW_LAYER_SYSTEMINCLUDE
+
+SYSTEMINCLUDE /epoc32/include/libc
+
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY cone.lib
+LIBRARY euser.lib
+LIBRARY bafl.lib
+LIBRARY efsrv.lib
+LIBRARY fbscli.lib
+LIBRARY estor.lib
+LIBRARY gdi.lib
+
+// LIBRARY for image converter utilities
+//LIBRARY mediaclientimage.lib
+LIBRARY imageconversion.lib
+
+// LIBRARY for xml parser utilities
+LIBRARY xmlinterface.lib
+
+
+// CXML parser
+//LIBRARY cxmlparser.lib
+// For CnvUtfConverter class
+LIBRARY charconv.lib
+
+//#include
+//#if !defined(__DRM_FULL)
+
+//LIBRARY drmparsers.lib drmdcf.lib drmrights.lib drmserverinterfaces.lib
+//LIBRARY drmcommon.lib
+
+LIBRARY estlib.lib
+//#endif
+
+// Base64 Encoding
+LIBRARY imut.lib
+
+// GZip library
+LIBRARY ezlib.lib
+
+// CAF library: for DRM
+LIBRARY caf.lib
+
+LIBRARY mediaclientaudio.lib
+// Added for localized bidirectional textArea wrapping support
+LIBRARY avkon.lib
+
+//--------------------------------------------
+// graphics LIBRARY information--------
+//LIBRARY gfx2d.lib
+//--------------------------------------------
+SOURCEPATH ../../../gfx2d/src
+SOURCE GfxMath.c
+SOURCE GfxFloatFixPt.cpp
+SOURCE Gfxtrignometric.cpp
+/* this file is needed for ADS, RVCT, or GCC builds (mem operation wrappers) */
+SOURCE RastSymbianWrapper.cpp
+
+// GFXGC source files
+SOURCEPATH ../../../gfx2d/src/GfxGc
+SOURCE GfxStroke.cpp
+SOURCE GfxColor.cpp
+SOURCE GfxRenderingHints.cpp
+SOURCE GfxGradientPaint.cpp
+SOURCE Gfx2dGcOpenVG.cpp
+SOURCE Gfx2dGc.cpp
+
+
+// GFXGEOM source files
+SOURCEPATH ../../../gfx2d/src/GfxGeom
+SOURCE GfxEllipse2D.cpp
+SOURCE GfxEllipseIteratorP.cpp
+SOURCE GfxFlatteningPathIterator.cpp
+SOURCE GfxGeneralPath.cpp
+SOURCE GfxGeneralPathIteratorP.cpp
+SOURCE GfxRectangle2D.cpp
+SOURCE GfxRectangleIteratorP.cpp
+SOURCE GfxRectangularShape.cpp
+SOURCE GfxRoundRectangle2D.cpp
+SOURCE GfxRoundRectangleIteratorP.cpp
+SOURCE GfxLine2D.cpp
+SOURCE GfxLineIteratorP.cpp
+SOURCE GfxAffineTransform.cpp
+SOURCE GfxPoint2D.cpp
+
+// GFXIMAGE source files
+SOURCEPATH ../../../gfx2d/src/GfxImage
+SOURCE GfxImageTransformer.cpp
+
+// Internal Rendering Engine source files
+SOURCEPATH ../../../gfx2d/src/GfxRenderer
+SOURCE GfxRendererInfoP.cpp
+
+
+USERINCLUDE ../../../gfx2d/inc
+
+
+LIBRARY vgrenderer.lib
+
+
+LIBRARY eikcore.lib
+LIBRARY bitgdi.lib
+LIBRARY hal.lib
+//--------------------------------------------
+// end of graphics LIBRARY information--------
+//--------------------------------------------
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/group/SVGEngineS90.iby
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/group/SVGEngineS90.iby Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2004 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: IBY file for SVGT Engine
+*
+*/
+
+
+#ifndef SVGTENGINE_IBY
+#define SVGTENGINE_IBY
+
+file=ABI_DIR\BUILD_DIR\SVGEngine.dll System\Libs\SVGEngine.dll
+file=ABI_DIR\BUILD_DIR\Svgrecog.mdl System\recogs\Svgrecog.mdl
+
+#endif
+// End of File
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/inc/SVGAttributeVerifier.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/inc/SVGAttributeVerifier.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,75 @@
+/*
+* 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 header file
+ *
+*/
+
+
+#ifndef _INC_CSVGATTRIBUTEVERIFIER_
+#define _INC_CSVGATTRIBUTEVERIFIER_
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+
+#include
+
+#define KSVG_COORDINATE_TYPE 2
+#define KSVG_LENGTH_TYPE 1
+const TInt KMax16BitValue = 32765;
+
+/**
+ * This class provides methods to verify attributes values, to reorder
+ * the attributes and to check for required attributes for specific elements,
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class CSvgAttributeVerifier : public CBase
+{
+ public:
+
+
+ /**
+ * Parse the given string for a decimal value.
+ *
+ * @since 1.0
+ * @param aNumberString : decimal value string
+ * @param aValueStorage : value storage
+ * @return ETrue if string is a valid decimal value.
+ */
+ static TBool ParseForDecimalValue( const TDesC& aNum2Str, TReal32& aValue, const TDesC& aAttrValue, TBool isSvgElement );
+
+ /**
+ * Verify the range of the value of an attribute based on its type
+ * The string value is converted into the required type and passed back to
+ * the calling function
+ * @since 1.0
+ * @param aValues : value of the attribute
+ * @param aConvVal : reference parameter to return the converted value
+ * @param aDatatype : flag to determine the type of datatype
+ * @return ETrue if string is a valid decimal value and lies in a valid range.
+ */
+
+ static TBool ValidAttrValue (
+ const TDesC& aValue,
+ TReal32& aConvVal,
+ TUint8 aDatatype,
+ const TDesC& aAttrValue,
+ TBool isSvgElement
+ );
+};
+
+#endif
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/inc/SVGContentHandler.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/inc/SVGContentHandler.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,563 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef CSVGCONTENTHANDLER_H
+#define CSVGCONTENTHANDLER_H
+
+
+#include
+#include
+
+#include "GfxColor.h"
+#include "SVGEngineInterfaceImpl.h"
+#include "SVGAttributeVerifier.h"
+#include "SVGErrorImpl.h"
+
+#include "mxmlattributes.h"
+#include "mxmlcontenthandler.h"
+
+#include "SVGSchemaData.h"
+#include "SVGDocumentImpl.h"
+
+/**
+ * SMIL2 parser class
+ */
+class CSvgElementImpl;
+class CSvgScriptElementImpl;
+class CSvgImageElementImpl;
+
+
+/**
+ * Class description goes here.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class CSvgContentHandler : public CBase, public MXMLContentHandler
+ {
+ public:
+ /**
+ * Parser phase one constructor
+ *
+ * Takes the player interface object as a parameter. This interface
+ * is used by the parser for reporting parse errors and for getting values
+ * of the content control attributes. It is also passed to the created
+ * presentation object.
+ */
+
+ /**
+ * Two phase constructor
+ *
+ * @since 1.0
+ * @param None
+ * @return An isntance of this class
+ */
+ static CSvgContentHandler* NewL( TBool aRemoveFalseSwitchElements = ETrue );
+
+ /**
+ * Two phase constructor
+ *
+ * @since 1.0
+ * @param None
+ * @return An instance of this class
+ */
+ static CSvgContentHandler* NewLC();
+
+
+ /**
+ * Part of two phase construction
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ virtual void ConstructL( TBool aRemoveFalseSwitchElements = ETrue );
+
+ /**
+ * Destructor.
+ */
+
+ /**
+ * Destructor
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ virtual ~CSvgContentHandler();
+
+
+
+
+ /**
+ *
+ * Parses the given encrypted SVG source, constructing the presentation objects.
+ * This is a variant of ParseL and processes encrypted SVG sources.
+ *
+ * @since 1.0
+ * @param aDocument - The document object to which this document is constructed
+ * @param aSvgFileName - The URI to the encrypted SVG source
+ * @param aSuccess - An error code that signals successful/unsuccessful parsing
+ * @return Instance of the root element of the SVG document.
+ */
+ CSvgElementImpl* ParseByteData( CSvgDocumentImpl* aDocument,
+ const TDesC8& aByteData,
+ CSvgErrorImpl& aError );
+
+ /*
+ * Parse the given 16 bit string of SVG
+ * This method is used primarily for JSR226 to avoid conversion of strings
+ *
+ */
+ CSvgElementImpl* Parse16BitData( CSvgDocumentImpl* aDocument,
+ const TDesC16& aSvgString,
+ CSvgErrorImpl& aError );
+
+
+
+ CSvgElementImpl* ParseFile( CSvgDocumentImpl* aDocument,
+ const TDesC& aFileName,
+ CSvgErrorImpl& aError );
+ /*************** MXMLContentHandler interface methods **************/
+
+ /**
+ * A callback that signals start of a document
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt StartDocument();
+
+ /**
+ * A callback that signals end of a document
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt EndDocument();
+
+ /**
+ * Returns reader index
+ * @since Series60 3.1
+ * @param aIndex - reader index
+ */
+ void ReaderIndex(NW_Uint32 aIndex);
+
+ /**
+ * A callback that signals beginning of an element
+ *
+ * @since 1.0
+ * @param aURI -
+ * @param aLocalName -
+ * @param aName - Name of the element
+ * @param aAttributeList - a list that keeps track of the attributes found for this element
+ * @return A value that indicates success/failure
+ */
+ TInt StartElement( TDesC& aURI, TDesC& aLocalName,
+ TDesC& aName, MXMLAttributes* aAttributeList );
+ /**
+ * A callback that signals end of an element
+ *
+ * @since 1.0
+ * @param aURI -
+ * @param aLocalName -
+ * @param aName - Name of the element
+ * @return A value that indicates success/failure
+ */
+ TInt EndElement( TDesC& aURI, TDesC& aLocalName, TDesC& aName );
+
+ /**
+ * Callback that signals characters inside an XML document
+ *
+ * @since 1.0
+ * @param aBuf - A string buffer that will contain the characters
+ * @param aStart - An index indicating the starting position of the characters
+ * @param aLenght - AN offset indicating the terminal position of the characters
+ * @return A value that indicates success/failure
+ */
+ TInt Charecters( TDesC& aBuf, TInt aStart, TInt aLength );
+
+ /**
+ * A callback that signals a XML comment
+ *
+ * @since 1.0
+ * @param aComment - A string buffer that cintains the comment
+ * @return A value that indicates success/failure
+ */
+
+ TInt Comment( TDesC& aComment );
+
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt ProcessingInstructions( TDesC& aTarget, TDesC& aData );
+
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt IgnoreWhiteSpace( TDesC& aString );
+
+ /**
+ * A callback that signals beginning of an entity element
+ *
+ * @since 1.0
+ * @param aName - A string buffer that will contain the entity name
+ * @return A value that indicates success/failure
+ */
+ TInt StartEntity( TDesC& aName );
+
+ /**
+ * A callback that signals end of an entity element
+ *
+ * @since 1.0
+ * @param aName - A string buffer that will contain the entity name
+ * @return A value that indicates success/failure
+ */
+ TInt EndEntity( TDesC& aName );
+
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt SkippedEntity( TDesC& aName );
+
+ /**
+ * A callback that signals beginning of a CDATA section
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt StartCDATA();
+
+ /**
+ * A callback that signals end of a CDATA section
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt EndCDATA();
+
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return A value that indicates success/failure
+ */
+ TInt Error( TInt aErrorCode, TInt aSeverity );
+
+ void DataBuffer(const TDesC16& aBuf);
+
+ /**
+ * Request to cancel parsing.
+ */
+ void CancelParsing();
+
+ protected:
+
+
+ /**
+ * Method to verify the value of the attribute based on its type. If the value is
+ * valid then this method sets the value to the corresponding attribtue in the
+ * current element
+ * @since 1.0
+ * @aAttrName - name of the attribute
+ * @aAttrValue - value of the attribute
+ * @return
+ */
+
+ TBool ProcessNConvertAttrL( const TDesC& aName, const TDesC& aAttrName, const TDesC& aAttrValue );
+
+
+
+ /**
+ * Parse for a color from the given string.
+ *
+ * @since 1.0
+ * @param aString : color string to parse for color value
+ * @param aTransparent : transparent flag.
+ * @return parsed color.
+ */
+ TGfxColor ParseColor( const TDesC& aString,
+ TBool& aTransparent );
+ /**
+ * Process for a color from the given attribute name and value.
+ *
+ * @since 1.0
+ * @param aName : attribute name
+ * @param aValue : attribute value.
+ * @return true if attribute is processes as a color attribute.
+ */
+ TBool ProcessColorAttributeL( const TDesC& aName,
+ const TDesC& aValue );
+
+
+ /**
+ * Process a for style info.
+ *
+ * @since 1.0
+ * @param aName : attribute name
+ * @param aValue : attribute value
+ * @return true if a style info is processed.
+ */
+ TBool ProcessStyleL( const TDesC& aValue );
+
+ /**
+ * Process a for transform info.
+ *
+ * @since 1.0
+ * @param aName : attribute name
+ * @param aValue : attribute value
+ * @return true if a transform info is processed.
+ */
+ TBool ProcessTransformL( const TDesC& aName,
+ const TDesC& aValue );
+
+ /**
+ * Process a for unit info.
+ *
+ * @since 1.0
+ * @param aName : attribute name
+ * @param aValue : attribute value
+ * @return true if a unit info is processed.
+ */
+ TBool ProcessUnitsL( const TDesC& aName,
+ const TDesC& aValue );
+
+ /**
+ * Convert any xml entity characters in the given string list to unicode characters.
+ *
+ * @since 1.0
+ * @param aArray : array of strings to search for xml entities characters.
+ * @return
+ */
+ void ConvertEntitiesToCharsL( CDesCArrayFlat& aArray );
+
+ /**
+ * Convert any xml entity characters in the given string to unicode characters.
+ *
+ * @since 1.0
+ * @param aString : string to search for xml entities characters.
+ * @return non-NULL if at least one entity character is encountered.
+ */
+ HBufC* ConvertEntitiesToCharsL( const TDesC& aString );
+
+ /**
+ * Find the given character in the given string at the starting index.
+ *
+ * @since 1.0
+ * @param aString : string to find character.
+ * @param aStartIndex : starting index.
+ * @param aChar : character to search.
+ * @return index of first character encounterd, if found, -1 otherwise.
+ */
+ TInt Find( const TDesC& aString, TInt aStartIndex, TChar aChar );
+
+ /**
+ * Create a substring from the given string.
+ *
+ * @since 1.0
+ * @param aString : string to create a substring.
+ * @param aStartIndex : starting index.
+ * @param aEndIndex : endind index.
+ * @return substring from starting and ending indices.
+ */
+ HBufC* SubstringL( const TDesC& aString, TInt aStartIndex, TInt aEndIndex );
+
+ /**
+ * Convert the given string (xml entity character) to an unicode character.
+ *
+ * @since 1.0
+ * @param aChar : character object to store unicode character.
+ * @param aString : xml entity character string.
+ * @return true if there was a conversion.
+ */
+ TBool ConvertEntityToChar( TChar& aChar, const TDesC& aString );
+
+ /**
+ * Append a substring to the given string at given indices.
+ *
+ * @since 1.0
+ * @param aDest : string to append substring to.
+ * @param aSource : string to append substring from.
+ * @param aStartIndex : starting index for substring.
+ * @param aEndIndex : ending index for substring.
+ * @return
+ */
+ void Append( TDes& aDest, const TDesC& aSource, TInt aStartIndex, TInt aEndIndex );
+
+ /**
+ * Convert the given string (xml entity character) an unicode character.
+ *
+ * @since 1.0
+ * @param aChar : character object to store unicode character.
+ * @param aString : xml decimal entity character string.
+ * @return true if a conversion was made.
+ */
+ TBool ConvertDecimalStringToChar( TChar& aChar, const TDesC& aString );
+
+ /**
+ * Convert the given string (xml entity character) an unicode character.
+ *
+ * @since 1.0
+ * @param aChar : character object to store unicode character.
+ * @param aString : xml hexadecimal entity character string.
+ * @return true if a conversion was made.
+ */
+ TBool ConvertHexStringToChar( TChar& aChar, const TDesC& aString );
+
+
+ void FilterCharactersL( TDesC& aString );
+
+ // Leaveable StartElementL function called by StartElement
+ TInt StartElementL( TDesC& aURI, TDesC& aLocalName,
+ TDesC& aName, MXMLAttributes* aAttributeList );
+
+
+ void AppendToCData( const TDesC& aText );
+
+ TBool ExtractStyleValuePair( const TDesC& aString, TPtrC& aName, TPtrC& aValue );
+
+ void SetForwardReferences(CSvgErrorImpl& aError);
+
+ void RemoveFalseSwitchCasesOrMakeInvisible();
+ void RemoveFalseElementsOrMakeInvisible();
+ TBool VerifyReqExReqFtrSysL( CSvgElementImpl* aElement );
+
+ // Initiate image loading for elements
+ void LoadImages();
+
+ /**
+ * Find out the system language for the client environment based on
+ * SVG source hint
+ *
+ * @since 1.0
+ * @param aValue - A string buffer that contains the System Language hint
+ * @return None
+ */
+ void SystemLanguage( TPtr aValue );
+
+ /**
+ * Private constructor
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ CSvgContentHandler();
+
+ /**
+ * Check for possible svg elements placed inside entity references.
+ * If so, attempt to parse as part of the document.
+ * If parsing was successful, return ETrue, otherwise return EFalse.
+ *
+ * @since 1.0
+ * @param
+ * @return If parsing was successful
+ */
+ TBool ParseEntity( const TDesC& aEntity );
+
+ /**
+ * Post parsing processing, such as removing false switch elements.
+ *
+ * @since 1.0
+ * @param
+ * @return none
+ */
+ void PostParseProcessing();
+
+ /**
+ * Removes references of element. Usually called before the element is
+ * deleted.
+ *
+ * @since s60 3.2
+ * @param aElement Pointer of element that is about to be deleted.
+ * @return none
+ */
+ void RemoveInternalReferences( CSvgElementImpl* aElement );
+
+ private:
+
+ CSvgElementImpl*iRootElement; // SVG Element
+ CSvgElementImpl*iCurrentElement; // Latest discovered element
+ CSvgElementImpl*iCurrentParentElement; // Parent element for the current depth
+ CSvgDocumentImpl* iDocument; // The document object to which this SVG source is processed
+
+
+
+ // Various booleans that indicate success/failure or true/false for various attributes
+ TBool iIsColorAnim;
+ // Indicating begin or end attribute.
+ TBool iBeginEndAtr;
+
+
+ // Various buffers that hold animation time values
+ TPtrC iFromVal;
+ TPtrC iToVal;
+ TPtrC iByVal;
+ TPtrC iValues;
+ TPtrC iTimes;
+ TPtrC iSplines;
+
+ HBufC* iSystemLanguage;
+
+ // Various attributes that hold document "depth" information
+ TInt iIgnoreDepth;
+ TBool iIsSvgElement;
+
+ CSvgErrorImpl* iSvgError;
+
+ /*Added to support forward references in Use and animtion elements */
+ RPointerArray* iUseElementArray;
+ RPointerArray* iAnimRefElementArray;
+
+ //array to keep track of switch elements
+ //so we can go back at the end of parsing and remove the elements
+ //that dont evaluate to true from memory
+ RPointerArray* iSwitchElementArray;
+ RPointerArray* iReqFetAttSysArray;
+ RPointerArray* iAnimationElementArray;
+ // CData container -- used to append pieces of cdata from XML parser
+ // callbacks: Charecters & StartEntity
+ HBufC* iCData;
+
+ // Reference to loading listeners
+ const RPointerArray* iLoadingListeners;
+
+ TBool iCancelRequested;
+
+ RPointerArray iImageElements;
+ TBool iRemoveFalseSwitchElements;
+ };
+
+#endif
diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/inc/SVGEngineImpl.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/inc/SVGEngineImpl.h Wed Nov 03 18:56:10 2010 +0200
@@ -0,0 +1,970 @@
+/*
+* 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 Engine header file
+ *
+*/
+
+
+#ifndef __INC_CSVGENGINEIMPL__
+#define __INC_CSVGENGINEIMPL__
+
+#if !defined(__E32BASE_H__)
+#include
+#endif
+
+#include
+
+
+#include "SVGEngineInterfaceImpl.h"
+#include "GfxAffineTransform.h"
+#include "SVGEvent.h"
+#include "SVGDocumentImpl.h"
+#include "SVGRequestObserver.h"
+#include "SVGImageElementImpl.h"
+#include "SVGFourPointRect.h"
+#include "SVGListener.h"
+#include "SVGFontHashMap.h"
+#include "SvgBitmapFontProvider.h"
+#include
+
+// Svg Engine states
+enum TSvgEngineState
+ {
+ ESVGEngineRunning,
+ ESVGEnginePaused,
+ ESVGEngineNotStarted,
+ ESVGEngineStopped
+ };
+typedef TUint8 TAnimStatus;
+
+
+class CSvgSchemaData;
+class CSvgElementImpl;
+class MXmlDOMImplementation;
+class CGfx2dGc;
+
+class CSvgEventHandler;
+class MSvgEventReceiver;
+class CSvgErrorImpl;
+class CSvgAElementImpl;
+class CSvgTextAreaElementImpl;
+class CSvgTextElementImpl;
+
+class CSvgExternalDataHandler;
+class MSvgDataRequester;
+
+// temporary for debugging
+class CSvgTimer;
+// temporary for debugging
+
+//This includes the main rendering loop.
+
+/**
+ * Class description goes here.
+ *
+ * @lib SVGEngine.lib
+ * @since 1.0
+ */
+class CSvgEngineImpl : public CBase, public MSVGImageLoadingObserver
+ {
+ public: // Constructor & Destructor
+
+ static CSvgEngineImpl* NewL(CSvgBitmapFontProvider *aSvgBitmapFontProvider);
+
+ static CSvgEngineImpl* NewLC(CSvgBitmapFontProvider *aSvgBitmapFontProvider);
+
+ void ConstructL(CSvgBitmapFontProvider *aSvgBitmapFontProvider);
+
+ /**
+ * Two phase constructor
+ *
+ * @since 1.0
+ * @param aFrameBuffer - Pointer to a buffer where the SVG document raster is drawn
+ * @param aReqObserver - Pointer to a client side object that implements the MSvgRequestObserver interface
+ * @return An instance of the SVG Engine
+ */
+ static CSvgEngineImpl* NewL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider );
+
+ /**
+ * Two phase constructor
+ *
+ * @since 1.0
+ * @param aFrameBuffer - Pointer to a buffer where the SVG document raster is drawn
+ * @param aReqObserver - Pointer to a client side object that implements the MSvgRequestObserver interface
+ * @return An instance of the SVG Engine
+ */
+ static CSvgEngineImpl* NewLC( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider );
+
+ /**
+ * Destructor
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+
+ virtual ~CSvgEngineImpl();
+
+ static CSvgEngineImpl* NewL( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider,SVGRendererId aRendererType );
+ static CSvgEngineImpl* NewLC( CFbsBitmap* aFrameBuffer,
+ MSvgRequestObserver* aReqObserver, TFontSpec& aFontSpec, CSvgBitmapFontProvider *aSvgBitmapFontProvider,SVGRendererId aRendererType );
+ public: // New Functions
+ /**
+ * Get the NVG-TLV data
+ *
+ * @since 1.0
+ * @return descriptor pointing to the encoded data.
+ */
+ const TPtrC8 TLVEncodedData() const;
+
+ /**
+ * Kick off the process of rasterizing the SVG document elements
+ *
+ * @since 1.0
+ * @param aRootElement - Root element of the SVG document
+ * @return None
+ */
+ void DrawElementsL( CSvgElementImpl* aRootElement);
+ /**
+ * Kick off the process of placing graphical objects in their positions for rasterization
+ *
+ * @since 1.0
+ * @param aRootElement - Root element of the SVG document
+ * @return None
+ */
+ void UpdateCTM(CSvgDocumentImpl* aSvgDocument );
+
+
+ /**
+ * Invalidate the current raster and hence kick off another round of rasterization
+ * process
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ void RedrawL();
+
+
+ /**
+ * Destroy the current representation of the SVG document
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ void Destroy();
+
+ /**
+ * An acessor to the document object that represents the current SVG source
+ *
+ * @since 1.0
+ * @param None
+ * @return Pointer to the document object instance.
+ */
+ CSvgDocumentImpl* Document();
+
+ /**
+ * Overwrite the current path information in the given element
+ *
+ *
+ * @param hPath - handle to a path
+ * @param hElement - handle to a path element
+ * @return none
+ */
+ void UpdatePath( CGfxGeneralPath* hPath, CSvgElementImpl* hElement );
+
+ /**
+ * Kick off the processing of SVG source, and animation time frames
+ *
+ * @since 1.0
+ * @param None
+ * @return A boolean value that indicates success/failure
+ */
+
+ TBool StartFrameLoopL();
+
+ /**
+ * Obtain an image source embedded within a SVG source (JPEG, PNG)
+ *
+ * @since 1.0
+ * @param aUri - A string buffer with the URI of the image source
+ * @param aFileName - A string buffer with the contents of the image source
+ * @return ETrue - Success, EFalse - Failure
+ *
+ */
+ TBool FetchImage( const TDesC& aUri, RFs& aSession, RFile& aFileHandle );
+
+ /**
+ * Return the animation duration for the given document, if NULL (default)
+ * then use the document attached to engine. The value 0xFFFFFFFF is
+ * return is the animation is indefinite.
+ *
+ * @since 1.0
+ * @param aDocumentElement - document to find animation duration.
+ * @return An integer containing the aniamtion duration value
+ */
+ TUint32 Duration( CSvgDocumentImpl* aDocumentElement = NULL );
+
+ /**
+ * Accessor for the Graphics Context object
+ *
+ * @since 1.0
+ * @param None
+ * @return A pointer to the Graphics Context object
+ */
+ CGfx2dGc* GraphicsContext();
+
+ /**
+ * Internally render SVG source into a buffer (rasterization)
+ *
+ * @since 1.0
+ * @param aSvgData - A string buffer containing the SVG source
+ * @param aFrameBuffer - A bitmap passed by the client that will contain the raster
+ * @param aPreserveAspectRatio - The aspect ratio (see SVG spec for more) for the raster
+ * @return TBool - ETrue/EFalse indicate presence/absence of the resource
+ */
+ TInt RenderFileToBuffer( const TDesC8& aSvgData,
+ CFbsBitmap* aFrameBuffer,
+ CFbsBitmap* aMask,
+ TBool aPreserveAspectRatio );
+
+
+ void RenderFileL( const TDesC8& aSvgData,
+ CFbsBitmap* aFrameBuffer,
+ CFbsBitmap* aMask,
+ TBool aPreserveAspectRatio);
+
+
+ /**
+ * A private method that toggles debug info for developers
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ void SwitchDebugInfo(TBool debug);
+
+ /**
+ * A private method that switch between OpenVG and VGR implementation
+ *
+ * @since 1.0
+ * @param TBool aCustomOption ETrue set OpenVG
+ * @return None
+ */
+ void CustomOption( TBool aCustomOption );
+
+ /**
+ * This method is for future extension, in which an external script engine
+ * could be used to evaluate a script description.
+ *
+ * @since 1.0
+ * @param : aScript -- A description of script from the "on" attribute.
+ *
+ * @param : aCallerElement -- The element that calls the script by a
+ * an event of the "on" attribute.
+ * @return : For future use. Value is ignored.
+ */
+ TBool ScriptCall( const TDesC& aScript,
+ CSvgElementImpl* aCallerElement );
+
+ /**
+ * Set the URI information in the Engine
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ void LinkRequest( const TDesC& aUri );
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ void LinkRequestWithShow(const TDesC& aUri, const TDesC& aLinkShow);
+
+ /**
+ * Accessor for the current engine time
+ *
+ * @since 1.0
+ * @param None
+ * @return An integer that represents the current engine time
+ */
+ TInt32 CurrentTIme();
+
+ /**
+ * Set SVG Dimensions to Frame buffer size
+ *
+ * @since 1.0
+ * @param None
+ * @return An integer that represents the current engine time
+ */
+
+ void SetSvgDimensionToFrameBufferL(TUint aWidth, TUint aHeight);
+
+ /**
+ * Generate mask bitmap from alpha channel of the framebuffer
+ *
+ * @since
+ * @param
+ * @return
+ */
+ void GenerateMask( CFbsBitmap* aMask );
+
+ /**
+ * Set background color
+ *
+ * @since
+ * @param
+ * @return
+ */
+ void SetBackgroundColor(TUint32 aRGBA8888Color);
+
+ /**
+ * Returns SVG Engine State
+ *
+ * @since 1.0
+ * @param None
+ * @return An integer that represents SVG Engine state
+ */
+ TSvgEngineState SVGEngineState();
+
+ /**
+ * Sets SVG Engine state
+ *
+ * @since 1.0
+ * @param An integer that represents SVG Engine state
+ * @return void
+ */
+ void SetSVGEngineState(TSvgEngineState aState);
+
+ /**
+ * Sets the GDI context from the Bitmap.
+ *
+ * @since 1.0
+ * @param : aFrameBuffer -- Bitmap to draw svg content.
+ * @param : aReqObserver -- Request observer called by svg engine.
+ * @return
+ */
+ void SetGdiContextL(CFbsBitmap* aCurrentBitmap, CFbsBitmap* aMask = NULL);
+
+ void SetGdiContextL(CFbsBitmap* aCurrentBitmap, CFbsBitmap* aMask,TSize aCurrentBitmapSize,TDisplayMode aRenderDspMode,TDisplayMode aMaskDspMode);
+ /**
+ * Start the Engine so that the first frame is drawn when the call is finished.
+ *
+ *
+ * @param : aError
+ * @return: None
+ */
+ void StartEngine(CSvgErrorImpl* aError = NULL);
+ void RenderFrame( TUint aCurrentTime );
+
+ /**
+ * Set the Document
+ *
+ *
+ * @param : CSvgDocumentImpl* aDocument
+ * @return: None
+ */
+ void SetDocument(CSvgDocumentImpl* aDocument);
+
+ /**
+ * Given a document handle and a url this call attaches
+ * the given data (ldata) to every element that references that url
+ *@param aDocument - Document Pointer
+ *@param lUrl- uri string that is an external resource to be retrieved
+ *@param ldata - byte array containing the data that that external resource recieved
+ *@return none
+ */
+
+ void ChangeDuration( TUint32 aTimerDuration );
+
+ void Resume(TInt32 aTime);
+
+ void SeekEngine( TUint32 aTime);
+
+ void SetMediaTime(TUint32 aTimeInMilliSeconds);
+
+ /**
+ * Initializes the SVG Engine primarily with width and height informtion
+ * This is based on the attribute specifications for the root 'svg' element
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ void InitializeEngineL();
+
+ /**
+ * Get all the bounding-boxes for the given text and the contexts include
+ * the text was found. The bounding-boxes are transformed, taking zooming/panning
+ * in account.
+ *
+ * @param : aString -- String to search in the document.
+ * @param : aBoundingBoxes -- Array to hold bounding-boxes info.
+ * @param : aTexts -- Array to hold complete text of cdata where aString was found.
+ * @return: None
+ */
+ /*
+ void FindBBoxesForHorizontalText( const TDesC& aString,
+ RArray& aBoundingBoxes,
+ RArray& aTexts,
+ RArray& aElementIds,
+ TBool aCaseSensitive );
+ */
+ /**
+ * Get all the bounding-boxes for the given text and the contexts include
+ * the text was found. The bounding-boxes are transformed, taking zooming/panning
+ * in account.
+ *
+ * @param : aString -- String to search in the document.
+ * @param : aBoundingBoxes -- Array to hold bounding-boxes info.
+ * @param : aTexts -- Array to hold complete text of cdata where aString was found.
+ * @return: None
+ */
+ void FindBBoxesForRotatedText( const TDesC& aString,
+ RPointerArray& aBoundingBoxes,
+ RArray& aTexts,
+ RArray& aElementIds,
+ TBool aCaseSensitive );
+
+ /**
+ * Process the given coordinate to determine if it is inside/outside a
+ * hyperlink; then, notify the hyperlink listeners.
+ *
+ * @param : aX -- x coordinate
+ * @param : aY -- y coordinate
+ * @return: None
+ */
+ void CheckForHyperlinkMouseover( TInt aX, TInt aY );
+
+ /**
+ * Add a hyperlink listener.
+ *
+ * @param : aListener -- hyperlink listener
+ * @param : aY -- y coordinate
+ * @return: None
+ */
+ void AddHyperlinkListener( MSvgHyperlinkListener* aListener );
+
+ /**
+ * Add a textbox listener.
+ *
+ * @param : aListener -- textbox listener
+ * @return: None
+ */
+ void AddTextAreaListener( MSvgTextAreaListener* aListener );
+
+ /**
+ * Remove a textbox listener.
+ *
+ * @param : aListener -- textbox listener
+ * @return: None
+ */
+ void RemoveTextAreaListener( MSvgTextAreaListener* aListener );
+
+ void NotifyTextAreaEntered( CSvgTextAreaElementImpl* aTextAreaElement );
+
+ void NotifyTextAreaExited( CSvgTextAreaElementImpl* aTextAreaElement );
+
+ void AddTextListener( MSvgTextListener* aListener );
+
+ void RemoveTextListener( MSvgTextListener* aListener );
+
+ void NotifyTextEntered( CSvgTextElementImpl* aTextElement );
+
+ void NotifyTextExited( CSvgTextElementImpl* aTextElement );
+
+ /**
+ * Add an interactive element listener.
+ * @since v3.2
+ * @param : aListener - interactive element listener
+ * @return: None
+ */
+ void AddInteractiveElementListener( MSvgInteractiveElementListener* aListener );
+
+ /**
+ * Notify the client when the pointer enters an interactive element.
+ * @since v3.2
+ * @param : aElement - The element which has some animation
+ * @return: None
+ */
+ void NotifyInteractiveElementEntered(CSvgElementImpl* aElement);
+
+ /**
+ * Notify the client when the pointer exists an interactive element.
+ * @since v3.2
+ * @param : aElement - The element which has some animation
+ * @return: None
+ */
+ void NotifyInteractiveElementExited(CSvgElementImpl* aElement);
+
+ /**
+ * Remove an interactive element listener.
+ * @since v3.2
+ * @param : aListener - interactive element listener
+ * @return: None
+ */
+ void RemoveInteractiveElementListener( MSvgInteractiveElementListener* aListener );
+
+ /**
+ * Add a hyperlink listener.
+ *
+ * @param : aListener -- hyperlink listener
+ * @param : aY -- y coordinate
+ * @return: None
+ */
+ void RemoveHyperlinkListener( MSvgHyperlinkListener* aListener );
+
+ void NotifyElementActivatedLinkEntered( CSvgElementImpl* aElement);
+
+ void NotifyElementActivatedLinkExited( CSvgElementImpl* aElement);
+ /**
+ * Add a hyperlink listener.
+ *
+ * @param : aListener -- hyperlink listener
+ * @param : aY -- y coordinate
+ * @return: None
+ */
+ void AddAnimationListener( MSvgAnimationListener* aListener );
+
+ /**
+ * Add a hyperlink listener.
+ *
+ * @param : aListener -- hyperlink listener
+ * @param : aY -- y coordinate
+ * @return: None
+ */
+ void RemoveAnimationListener( MSvgAnimationListener* aListener );
+
+ void NotifyAnimationStarted();
+
+ void NotifyAnimationPaused();
+
+ void NotifyAnimationEnded();
+
+ //ViewPort Listener
+ void GetViewPort(TInt getWidth, TInt getHeight, TBool isWidthInPer, TBool isHeightInPer, TInt &setWidth, TInt &setHeight);
+
+ // Return ETrue if the given element (id) is visible on the frame buffer.
+ TBool IsElementVisible( TInt aElementId );
+
+ /**
+ * Get Size
+ *
+ * @since 1.0
+ * @param None
+ * @return None
+ */
+ TSize GetSize();
+ /**
+ * Need method description
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ void UpdatePresentation(const TInt32& aParam);
+
+ /**
+ * Return the data pointed to by the given URI string,
+ * from an external source. Calling client takes ownership
+ * of returned HBufC8 pointer.
+ *
+ * @since 1.0
+ * @param
+ * @return
+ */
+ HBufC8* FetchExternalDataL( const TDesC& aUri );
+
+
+ void AddViewPortListener(MSvgViewPortListener* aListener);
+
+ void RemoveViewPortListener(MSvgViewPortListener* aListener);
+
+ /**
+ * This method sets the volume with user input as a percentage
+ * value (unsigned between 0 and 100 ) for the currently loaded
+ * document
+ *
+ * @since S60 3.1
+ * @param aPercentage percentage value of volume
+ * @return none
+ */
+ void SetAudioVolume( TInt aPercentage );
+ TBool IsSVGEnginePaused();
+
+ void SetBitmapHeader(const TDesC* aHeaderData);
+ public: // Functions from base classes
+ // From CSvgElementImpl
+ /**
+ * Process various events received by the client for the SVG image
+ *
+ * @since 1.0
+ * @param aSvgDocument Pointer to the SVG Document on which event is
+ * to be processed.
+ * @param aEvent - Pointer to the object that contains SVG event information (implements MSvgEvent interface)
+ * @return None
+ */
+ void ProcessEventL( CSvgDocumentImpl* aSvgDocument, MSvgEvent* aEvent,
+ TBool aRedraw = ETrue );
+
+ /**
+ * Returns false only when document was loaded/prepared with in thumbnail mode
+ * and the frame buffer is larger than 80x80
+ * Probably move 80x80 size to .mmp file (compiler option)
+ *
+ * @since 1.0
+ * @return EFalse if thumb nail restrictions apply to the current document.
+ */
+ TBool PassesThumbNailRestriction();
+
+ /**
+ * Obtain a font source embedded within an SVG source
+ *
+ * @since 1.0
+ * @param aUri - A string buffer with the URI of the font source
+ * @param aFileHandle
+ * @return ETrue - Success, EFalse - Failure
+ *
+ */
+ TBool FetchFont( const TDesC& aUri, RFs& aSession, RFile& aFileHandle );
+
+ /**
+ * Set to ETrue to ignore notification to UpdateScreen in RequestObserver
+ *
+ * @param : aBool -- flag to indicate ignore UpdateScreen call
+ * @return: None
+ */
+ void SetIgnoreUpdateScreen( TBool aBool );
+
+ /**
+ * Add a MSvgMouseListener to this SvgEngine
+ *
+ * @param : aListener -- listener to add to listener list
+ * @return: None
+ */
+ void AddMouseListener( const MSvgMouseListener* aListener );
+
+ /**
+ * Remove a MSvgMouseListener to this SvgEngine
+ *
+ * @param : aListener -- listener to remove from listener list
+ * @return: None
+ */
+ void RemoveMouseListener( const MSvgMouseListener* aListener );
+
+ /**
+ * Return number of mouselisteners.
+ *
+ * @return: mouse-listener count
+ */
+ TInt MouseListenerCount();
+
+ /**
+ * Return the (first) viewable element at the given point.
+ * visible svg element.
+ *
+ * @param : aElements -- list to contain viewable elements with bounding-boxes containing
+ * the given point.
+ * @param : aX -- x coordinate
+ * @param : aY -- y coordinate
+ * @return: NULL, if none, lowest-level element containing point.
+ */
+ void GetViewableElementsAtPoint(CSvgDocumentImpl* aSvgDocument, RPointerArray& aElements, TInt aX, TInt aY );
+
+ /**
+ * Find all elements in the subtree for "viewable" elements, including the given
+ * starting node element. Viewable element are concrete elements that are drawn,
+ * such as , , , etc.
+ * This function only checks for containing of the elements' bounding-boxes.
+ *
+ * @param : aStartElement -- starting node to search in subtree.
+ * @param : aElementList -- List to containing "viewable" elements.
+ * @return: None
+ */
+ void FindAllViewableElements( CSvgElementImpl* aStartElement, RPointerArray& iElementList );
+
+ /**
+ * Find all elements in the subtree for non-viewable elements, including the given
+ * starting node element. Viewable element are abstract elements that are not drawn,
+ * such as , , , etc.
+ *
+ * @param : aStartElement -- starting node to search in subtree.
+ * @param : aElementList -- List to containing non-viewable elements.
+ * @return: None
+ */
+ void FindAllNonViewableElements( CSvgElementImpl* aStartElement, RPointerArray& iElementList );
+
+ /**
+ * Send to mouse listeners of a mouse-pressed event.
+ *
+ * @param : aElements -- elements affected by mouse-event.
+ * @param : aX -- X-cooordinate of mouse-event.
+ * @param : aY -- X-cooordinate of mouse-event.
+ * @return: None
+ */
+ void NotifyMousePressed( RPointerArray& aElements,
+ TInt aX, TInt aY );
+
+ /**
+ * Send to mouse listeners of a mouse-released event.
+ *
+ * @param : aElements -- elements affected by mouse-event.
+ * @param : aX -- X-cooordinate of mouse-event.
+ * @param : aY -- X-cooordinate of mouse-event.
+ * @return: None
+ */
+ void NotifyMouseReleased( RPointerArray