diff -r f5050f1da672 -r 04becd199f91 javauis/m2g_akn/inc/MM2GSVGProxy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/m2g_akn/inc/MM2GSVGProxy.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,846 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: SVGTopt proxy interface +* +*/ + +#ifndef MM2GSVGPROXY_H +#define MM2GSVGPROXY_H + +// INCLUDES +#include "M2GUtils.h" + +M2G_NS_START + +// CONSTANTS + +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS + +// CLASS DECLARATION +/** + * Interface class + */ +class MM2GSVGProxy +{ +public: // METHODS + + /** + * Dtor + */ + virtual ~MM2GSVGProxy() {}; + + /** + * Add close to the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @throws exception if not ok + */ + virtual void AddCloseL(const TM2GSvgPathHandle& aPathHandle) = 0; + + /** + * Add curve to the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aPathCurveData Curve data + * @throws exception if not ok + */ + virtual void AddCurveToL( + const TM2GSvgPathHandle& aPathHandle, + const TM2GPathCurveData& aPathCurveData) = 0; + + /** + * Add line to the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aX - + * @param aY - + * @throws exception if not ok + */ + virtual void AddLineToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX, const TReal32& aY) = 0; + /** + * Add move to the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aX - + * @param aY - + * @throws exception if not ok + */ + virtual void AddMoveToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX, const TReal32& aY) = 0; + + /** + * Add quad to the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aX1 - + * @param aY1 - + * @param aX2 - + * @param aY2 - + * @throws exception if not ok + */ + virtual void AddQuadToL( + const TM2GSvgPathHandle& aPathHandle, + const TReal32& aX1, const TReal32& aY1, + const TReal32& aX2, const TReal32& aY2) = 0; + + /** + * Append child + * @since Series S60 3.1 + * @param aElementHandle + * @param aChildElementHandle + * @throws exception if not ok + */ + virtual void AppendChildL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aChildElementHandle) = 0; + + /** + * Set the begin animation time for the given element. + * @since Series S60 3.1 + * @param aDocumentHandle + * @param aElementHandle + * @param aOffset + * @throws exception if not ok + */ + virtual void BeginElementAtL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + const TReal32& aOffset) = 0; + + /** + * Check if element is removable + * @since Series S60 3.1 + * @param aSurfaceHandle + * @param aRemoveable Result + * @throws exception if not ok + */ + virtual void CheckRemoveableL( + const TM2GSvgElementHandle& aElementHandle, + TInt& aRemoveable) = 0; + + + /** + * Clear svg surface + * @since Series S60 3.1 + * @param aSurfaceHandle Surface handle + * @throws exception if not ok + */ + virtual void ClearSvgSurfaceL(const TM2GSvgDocumentHandle& aSurfaceHandle) = 0; + + /** + * Create document + * @since Series S60 3.1 + * @param aData Document content + * @param aDocumentHandle Document handle to be returned + * @throws exception if not ok + */ + virtual void CreateDocumentL( + const TPtrC16& aData, + TM2GSvgDocumentHandle& aDocumentHandle) = 0; + + /** + * Create svg engine + * @since Series S60 3.1 + * @param aEngineHandle Svg engine handle + * @throws exception if not ok + */ + virtual void CreateSvgEngineL(TM2GSvgEngineHandle& aEngineHandle) = 0; + + /** + * Create path + * @since Series S60 3.1 + * @param aPathHandle Path handle to be returned + * @throws exception if not ok + */ + virtual void CreatePathL(TM2GSvgPathHandle& aPathHandle) = 0; + + /** + * Create svg surface + * @since Series S60 3.1 + * @param aWidth Surface width + * @param aHeight Surface height + * @return Svg surface + * @throws exception if not ok + */ + virtual TM2GBitmapHandle CreateSvgSurfaceL(TInt aWidth, TInt aHeight) = 0; + + /** + * Create new element + * @since Series S60 3.1 + * @param aType Element type id + * @param aParentHandle Parent of the new element. + * Note: Can be '0' if element is not added to DOM. + * @param aDocumentHandle Document handle. + * @param aRootHandle Root element handle. + * @param aEngineHandle Element handle to be returned + * @throws exception if not ok + */ + virtual void CreateElementNsL( + const TM2GSvgAttrType& aType, + const TM2GSvgDocumentHandle& aDocumentHandle, + TM2GSvgElementHandle& aEngineHandle) = 0; + + /** + * Delete document + * @since Series S60 3.1 + * @param aDocumentHandle Document handle + * @throws exception if not ok + */ + virtual void DeleteDocumentL(const TM2GSvgDocumentHandle& aDocumentHandle) = 0; + + /** + * Delete svg engine + * @since Series S60 3.1 + * @param aEngineHandle Engine handle + * @throws exception if not ok + */ + virtual void DeleteSvgEngineL(const TM2GSvgEngineHandle& aEngineHandle) = 0; + + /** + * Deletes svg surface + * @since Series S60 3.1 + * @param aSurfaceHandle Surface handle + * @throws exception if not ok + */ + virtual void DeleteSvgSurfaceL(const TM2GSvgDocumentHandle& aSurfaceHandle) = 0; + + /** + * Delete path + * @since Series S60 3.1 + * @param aPathHandle Path handle + * @throws exception if not ok + */ + virtual void DestroyPathL(const TM2GSvgPathHandle& aPathHandle) = 0; + + /** + * Dispatches a mouse event + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aX X coordinate. + * @param aY Y coordinate + * @param aElementHandle Target element handle + * @throws exception if not ok + */ + virtual void DispatchMouseEventL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aX, TInt aY, TM2GSvgElementHandle& aElementHandle) = 0; + + /** + * Set the end animation time for the given element. + * @since Series S60 3.1 + * @param aDocumentHandle + * @param aElementHandle + * @param aOffset + * @throws exception if not ok + */ + virtual void EndElementAtL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + const TReal32& aOffset) = 0; + + + /** + * Set focus on. + * @since Series S60 3.1 + * @param aDocumentHandle + * @param aElementHandle + * @throws exception if not ok + */ + virtual void FocusOnL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle) = 0; + + /** + * Set focus out. + * @since Series S60 3.1 + * @param aDocumentHandle + * @param aElementHandle + * @throws exception if not ok + */ + virtual void FocusOutL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle) = 0; + + /** + * Get a bounding box + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aRectData Rect components are saved to this parameter + * @param aResult Result + * @throws exception if not ok + */ + virtual void GetBBoxL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GRectData& aRectData, TInt& aResult) = 0; + + /** + * Get colors + * @since Series S60 3.1 + * @param aElementHandle Element handle + * @param aAttributeType Attribute type + * @param aColor Result + * @param aResult Extra result info + * @throws exception if not ok + */ + virtual void GetColorTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GColorData& aColor, + TInt& aResult) = 0; + + /** + * Get element by id + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aId Element id + * @param aElementHandle Element handle to be returned + * @throws exception if not ok + */ + virtual void GetElementByIdL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TPtrC16& aId, + TM2GSvgElementHandle& aElementHandle) = 0; + + /** + * Get element by id + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aId Result element type id. + * @throws exception if not ok + */ + virtual void GetElementTypeIdL(const TM2GSvgElementHandle& aElementHandle, TInt16& aId) = 0; + + /** + * Get an enumeration value of the specified attribute. + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aEnumTraiT Enum attribute. + * @throws exception if not ok + */ + virtual void GetEnumTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TInt16& aEnumTrait) = 0; + + /** + * Get external list item + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aIndex Index. + * @param aItem Returns external item according to a given index + * @return KErrNone if no error + * @throws Exception if not ok + */ + virtual TInt GetExternalListItemL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aIndex, + TPtrC16& aItem) = 0; + + /** + * Get external list size + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aListSz Size. + * @throws exception if not ok + */ + virtual void GetExternalListSizeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aListSz) = 0; + + /** + * Get a first chlid element + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aChildHandle Returns child element handle. + * @throws exception if not ok + */ + virtual void GetFirstElementChildL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aChildHandle) = 0; + + /** + * Get a float trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param Float trait + * @throws exception if not ok + */ + virtual void GetFloatTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TReal32& aFloatTrait) = 0; + + /** + * Get a matrix trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aMatrix Matrix trait + * @param aResult + * @throws exception if not ok + */ + virtual void GetMatrixTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GMatrixData& aMatrix, TInt& aResult) = 0; + + /** + * Get a media time + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aSeconds Media time to be returned + * @throws exception if not ok + */ + virtual void GetMediaTimeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TReal32& aSeconds) = 0; + + /** + * Get a next element sibling + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aSiblingElementHandle Sibling handle + * @throws exception if not ok + */ + virtual void GetNextElementSiblingL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aSiblingElementHandle) = 0; + + /** + * Get the segment count for the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aNumberOfSegments Segment count + * @throws exception if not ok + */ + virtual void GetNumberOfSegmentsL( + const TM2GSvgPathHandle& aPathHandle, + TInt& aNumberOfSegments) = 0; + + /** + * Get a parent + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aParentElementHandle Parent Element handle + * @throws exception if not ok + */ + virtual void GetParentL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aParentElementHandle) = 0; + + /** + * Get a path trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aPathTrait Path trait + * @throws exception if not ok + */ + virtual void GetPathTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TInt& aPathTrait) = 0; + + /** + * Get a rect trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aRectData Rect components are saved to this parameter + * @param aResult Result + * @throws exception if not ok + */ + virtual void GetRectTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TM2GRectData& aRectData, TInt& aResult) = 0; + + /** + * Get a root element + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aRootElementHandle Root element handle + * @throws exception if not ok + */ + virtual void GetRootElementL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TM2GSvgElementHandle& aRootElementHandle) = 0; + + /** + * Get screen b box + * @since Series S60 3.1 + * @param aElementHandle Element handle + * @param aScreenBBoxData Screen box data out + * @throws exception if not ok + */ + virtual void GetScreenBBoxL( + const TM2GSvgElementHandle& aElementHandle, + TM2GScreenBBoxData& aScreenBBoxData) = 0; + + /** + * Get the segment parameter for the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aSegmentIndex - + * @param aParamIndex - + * @param aSegmentParam Segment parameter to be returned. + * @throws exception if not ok + */ + virtual void GetSegmentParameterL( + const TM2GSvgPathHandle& aPathHandle, + TInt aSegmentIndex, TInt aParamIndex, + TReal32& aSegmentParam) = 0; + + /** + * Get the segment type for the given path. + * @since Series S60 3.1 + * @param aPathHandle Path handle. + * @param aSegmentIndex - + * @param aSegmentType Segment type + * @throws exception if not ok + */ + virtual void GetSegmentTypeL( + const TM2GSvgPathHandle& aPathHandle, + TInt aSegmentIndex, + TInt16& aSegmentType) = 0; + + /** + * Get a string trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type. + * @param aStr Returns a string attribute + + * @throws exception if not ok + */ + virtual TInt GetStringTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TPtrC16& aStr) = 0; + /** + * Get a svg surface height + * @since Series S60 3.1 + * @param aSurfaceHandle Surface handle. + * @return Svg surface height + * @throws exception if not ok + */ + virtual TInt GetSvgSurfaceHeightL(const TM2GBitmapHandle& aSurfaceHandle) = 0; + + /** + * Get a svg surface width + * @since Series S60 3.1 + * @param aSurfaceHandle Surface handle. + * @return Svg surface width + * @throws exception if not ok + */ + virtual TInt GetSvgSurfaceWidthL(const TM2GBitmapHandle& aSurfaceHandle) = 0; + + /** + * Finds handle to the actual cloned element + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aHandle Element handle to be returned + * @throws exception if not ok + */ + virtual void GetUsedFromElementL( + const TM2GSvgElementHandle& aElementHandle, + TM2GSvgElementHandle& aHandle) = 0; + + /** + * Viewport height. + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aHeight Wieport height to be returned. + * @throws exception if not ok + */ + virtual void GetViewportHeightL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aHeight) = 0; + + /** + * Viewport width. + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aWidth Viewport width. + * @throws exception if not ok + */ + virtual void GetViewportWidthL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt& aWidth) = 0; + + /** + * Init native engine & document + * @since Series S60 3.1 + * @param aDocumentHandle Document handle + * @throws exception if not ok + */ + virtual void InitViewportL( + const TM2GSvgDocumentHandle& aDocumentHandle) = 0; + + /** + * Add given child element to the given element before + * the given reference element. + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aNewChildElementHandle Child element handle. + * @param aReferenceElementHandle Child element handle. + * @throws exception if not ok + */ + virtual void InsertBeforeL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aNewChildElementHandle, + const TM2GSvgElementHandle& aReferenceElementHandle) = 0; + + /** + * Check if element is active. + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aActive Return "1" if active + * @throws exception if not ok + */ + virtual void IsActiveL( + const TM2GSvgElementHandle& aElementHandle, + TInt& aActive) = 0; + + /** + * Checks if an element in DOM. + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aElementHandle Element handle. + * @param aIsElementInDom Result. + * @throws exception if not ok + */ + virtual void IsElementInDomL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GSvgElementHandle& aElementHandle, + TInt& aIsElementInDom) = 0; + + /** + * Checks whether this element is child of a use element + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aResult Return "1" if used otherwise returns "0" + * @throws exception if not ok + */ + virtual void IsUsedL( + const TM2GSvgElementHandle& aElementHandle, + TInt& aResult) = 0; + + /** + * Remove child + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aURI Uri + * @param aResourceData Resource + * @param aHandle Removed element handle + * @throws exception if not ok + */ + virtual void RemoveChildL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgElementHandle& aChildElementHandle, + TM2GSvgElementHandle& aHandle) = 0; + /** + * Render document + * @since Series S60 3.1 + * @param aEngineHandle Engine handle. + * @param aDocumentHandle Document handle. + * @param aSurfaceHandle Surface. + * @param aSurfaceMaskHandle Mask. + * @throws exception if not ok + */ + virtual void RenderDocumentL( + const TM2GSvgEngineHandle& aEngineHandle, + const TM2GSvgDocumentHandle& aDocumentHandle, + const TM2GBitmapHandle& aSurfaceHandle, + TM2GBitmapHandle aSurfaceMaskHandle, + TReal32 aCurrentTime) = 0; + + /** + * Sets render quality + * @since Series S60 3.1 + * @param aEngineHandle Engine handle. + * @param aQuality Quality. + * @throws exception if not ok + */ + virtual void RenderQualityL( + const TM2GSvgEngineHandle& aEngineHandle, + TInt aQuality) = 0; + + /** + * Request completed + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aURI - + * @param aResourceData - + * @param aCompeleted Result + * @throws exception if not ok + */ + virtual void RequestCompletedL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TPtrC16& aURI, + const TPtrC8& aResourceData, + TInt& aCompleted) = 0; + + /** + * Set color trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aColor Color components: RGB + * @throws exception if not ok + */ + virtual void SetColorTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GColorData& aColor) = 0; + + /** + * Set enum trait + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aValue Value + * @throws exception if not ok + */ + virtual void SetEnumTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + TInt16 aValue) = 0; + + /** + * Set float attribute + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aValue Value + * @throws exception if not ok + */ + virtual void SetFloatTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TReal32& aValue) = 0; + + /** + * Set matrix attribute + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aMatrix - + * @throws exception if not ok + */ + virtual void SetMatrixTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GMatrixData& aMatrix) = 0; + + /** + * Set media time + * @since Series S60 3.1 + * @param aDocumentHandle Document handle. + * @param aSeconds Media time + * @throws exception if not ok + */ + virtual void SetMediaTimeL( + const TM2GSvgDocumentHandle& aDocumentHandle, + const TReal32& aSeconds) = 0; + + /** + * Set path attribute + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aPathHandle - + * @throws exception if not ok + */ + virtual void SetPathTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GSvgPathHandle& aPathHandle) = 0; + + /** + * Set rect attribute + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aRect Rect trait to be set + * @throws exception if not ok + */ + virtual void SetRectTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeType, + const TM2GRectData& aRect) = 0; + + /** + * Set render quality + * @since Series S60 3.1 + * @param aEngineHandle Engine handle. + * @param aMode + * @throws exception if not ok + */ + virtual void SetRenderingQualityL( + const TM2GSvgEngineHandle& aEngineHandle, + TInt aMode) = 0; + + /** + * Set string attribute + * @since Series S60 3.1 + * @param aElementHandle Element handle. + * @param aAttributeType Attribute type + * @param aStr String trait to be set + * @throws exception if not ok + */ + virtual void SetStringTraitL( + const TM2GSvgElementHandle& aElementHandle, + const TM2GSvgAttrType& aAttributeTypeId, + const TPtrC16& aStr) = 0; + + /** + * Set viewport height + * @since Series S60 3.1 + * @param aDocumentHandle Document + * @param aWidth Width + * @throws exception if not ok + */ + virtual void SetViewportHeightL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aHeight) = 0; + + /** + * Set viewport width + * @since Series S60 3.1 + * @param aDocumentHandle Document + * @param aWidth Width + * @throws exception if not ok + */ + virtual void SetViewportWidthL( + const TM2GSvgDocumentHandle& aDocumentHandle, + TInt aWidth) = 0; +}; + +M2G_NS_END + +#endif // MM2GSVGPROXY_H