--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/m2g_akn/src/jni/M2GSVGPath.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,785 @@
+/*
+* 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: JNI methods
+*
+*/
+
+// INCLUDE FILES
+#include "CM2GEventSource.h"
+#include "com_nokia_microedition_m2g_M2GSVGPath.h"
+#include "MM2GSVGProxy.h"
+#include <methodwrappers.h>
+
+M2G_NS_START
+
+// EXTERNAL DATA STRUCTURES
+
+// EXTERNAL FUNCTION PROTOTYPES
+
+// CONSTANTS
+
+// MACROS
+
+// LOCAL CONSTANTS AND MACROS
+
+// MODULE DATA STRUCTURES
+
+// LOCAL FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+// ================================ FUNCTIONS ==================================
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_addClose
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::AddCloseL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ */
+LOCAL_C void DoAddCloseL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle)
+{
+ aProxy->AddCloseL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle));
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1addClose(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jboolean aUiToolKit)
+{
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - begin");
+ TInt err = KM2GNotOk;
+ if (aUiToolKit) // If eSWT is the current toolkit
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pAddCloseL)(const TM2GSvgPathHandle&);
+ pAddCloseL AddCloseL = &MM2GSVGProxy::AddCloseL;
+ MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgPathHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper1<MM2GSVGProxy, const TM2GSvgPathHandle& > AddClose(
+ *aProxy,
+ AddCloseL,
+ lPathHandle);
+ err = client->Execute(AddClose);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoAddCloseL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle);
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addClose - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_addCurve
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::AddCurveTo method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aPathCurveData Curve parameters
+ */
+LOCAL_C void DoAddCurveToL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle,
+ TM2GPathCurveData* aPathCurveData)
+{
+ aProxy->AddCurveToL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
+ *aPathCurveData);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1addCurveTo(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2, jfloat aX3, jfloat aY3 ,
+ jboolean aUiToolKit)
+{
+ M2G_DEBUG_6("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo: X1=%f, Y1=%f, X2=%f, Y2=%f, X3=%f, Y3=%f - begin", aX1, aY1, aX2, aY2, aX3, aY3);
+ TInt err = KM2GNotOk;
+ if (aUiToolKit) // If eSWT is the current toolkit
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pAddCurveToL)(const TM2GSvgPathHandle& ,const TM2GPathCurveData&);
+ pAddCurveToL AddCurveToL = &MM2GSVGProxy::AddCurveToL;
+ MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgPathHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TM2GPathCurveData curve;
+ curve[ 0 ] = STATIC_CAST(TReal32, aX1);
+ curve[ 1 ] = STATIC_CAST(TReal32, aY1);
+ curve[ 2 ] = STATIC_CAST(TReal32, aX2);
+ curve[ 3 ] = STATIC_CAST(TReal32, aY2);
+ curve[ 4 ] = STATIC_CAST(TReal32, aX3);
+ curve[ 5 ] = STATIC_CAST(TReal32, aY3);
+ TMethodWrapper2<MM2GSVGProxy, const TM2GSvgPathHandle& ,const TM2GPathCurveData& > AddCurveTo(
+ *aProxy,
+ AddCurveToL,
+ lPathHandle,
+ curve);
+ err = client->Execute(AddCurveTo);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ TM2GPathCurveData curve;
+ curve[ 0 ] = STATIC_CAST(TReal32, aX1);
+ curve[ 1 ] = STATIC_CAST(TReal32, aY1);
+ curve[ 2 ] = STATIC_CAST(TReal32, aX2);
+ curve[ 3 ] = STATIC_CAST(TReal32, aY2);
+ curve[ 4 ] = STATIC_CAST(TReal32, aX3);
+ curve[ 5 ] = STATIC_CAST(TReal32, aY3);
+
+ err = eventSource->ExecuteTrap(
+ &DoAddCurveToL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle,
+ &curve);
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addCurveTo - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_addLineTo
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::AddLineToL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aX -
+ * @param aY -
+ */
+LOCAL_C void DoAddLineToL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle,
+ TReal32* aX, TReal32* aY)
+{
+ aProxy->AddLineToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *aX, *aY);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1addLineTo(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jfloat aX, jfloat aY ,jboolean aUiToolKit)
+{
+ M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo: X=%f, Y=%f - begin", aX, aY);
+ TInt err = KM2GNotOk;
+ if (aUiToolKit) // If eSWT is the current toolkit
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pAddLineToL)(const TM2GSvgPathHandle& ,const TReal32& , const TReal32&);
+ pAddLineToL AddLineToL = &MM2GSVGProxy::AddLineToL;
+ MM2GSVGProxy* aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgPathHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper3<MM2GSVGProxy, const TM2GSvgPathHandle& ,const TReal32& , const TReal32& > AddLineTo(
+ *aProxy,
+ AddLineToL,
+ lPathHandle,
+ *(REINTERPRET_CAST(TReal32*, &aX)),
+ *(REINTERPRET_CAST(TReal32*, &aY)));
+ err = client->Execute(AddLineTo);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoAddLineToL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle,
+ REINTERPRET_CAST(TReal32*, &aX),
+ REINTERPRET_CAST(TReal32*, &aY));
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addLineTo - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_addMoveTo
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::AddMoveToL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aX -
+ * @param aY -
+ */
+LOCAL_C void DoAddMoveToL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle,
+ TReal32* aX, TReal32* aY)
+{
+ aProxy->AddMoveToL(STATIC_CAST(TM2GSvgPathHandle, aPathHandle), *aX, *aY);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1addMoveTo(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jfloat aX,
+ jfloat aY,
+ jboolean aUiToolkit)
+{
+ M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo: X=%f, Y=%f - begin", aX, aY);
+ TInt err = KM2GNotOk;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pAddMoveToL)(
+ const TM2GSvgPathHandle&,
+ const TReal32&,
+ const TReal32&);
+ pAddMoveToL AddMoveToL = &MM2GSVGProxy::AddMoveToL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper3<MM2GSVGProxy,
+ const TM2GSvgPathHandle&,
+ const TReal32&,
+ const TReal32&
+ > AddMoveTo(
+ *aProxy,
+ AddMoveToL,
+ lPathHandle,
+ aX,
+ aY
+ );
+ err = client->Execute(AddMoveTo);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoAddMoveToL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle,
+ REINTERPRET_CAST(TReal32*, &aX),
+ REINTERPRET_CAST(TReal32*, &aY));
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addMoveTo - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_addQuadTo
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::AddQuadToL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aX1 -
+ * @param aY1 -
+ * @param aX2 -
+ * @param aY2 -
+ */
+LOCAL_C void DoAddQuadToL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle,
+ TReal32* aX1, TReal32* aY1, TReal32* aX2, TReal32* aY2)
+{
+ aProxy->AddQuadToL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
+ *aX1, *aY1, *aX2, *aY2);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1addQuadTo(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jfloat aX1, jfloat aY1, jfloat aX2, jfloat aY2,jboolean aUiToolkit)
+{
+ M2G_DEBUG_4("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo: X1=%f, Y1=%f, X2=%f, Y2=%f - begin", aX1, aY1, aX2, aY2);
+ // TInt elementHandle = M2G_INVALID_HANDLE;
+ TInt err = KM2GNotOk;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pAddQuadToL)(
+ const TM2GSvgPathHandle&,
+ const TReal32&,
+ const TReal32&,
+ const TReal32&,
+ const TReal32&);
+ pAddQuadToL AddQuadToL = &MM2GSVGProxy::AddQuadToL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper5<MM2GSVGProxy,
+ const TM2GSvgPathHandle&,
+ const TReal32&,
+ const TReal32&,
+ const TReal32&,
+ const TReal32&
+ > AddQuadTo(
+ *aProxy,
+ AddQuadToL,
+ lPathHandle,
+ aX1,
+ aY1,
+ aX2,
+ aY2
+ );
+ err = client->Execute(AddQuadTo);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoAddQuadToL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle,
+ REINTERPRET_CAST(TReal32*, &aX1),
+ REINTERPRET_CAST(TReal32*, &aY1),
+ REINTERPRET_CAST(TReal32*, &aX2),
+ REINTERPRET_CAST(TReal32*, &aY2));
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _addQuadTo - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_createPath
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::CreatePathL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Path handle
+ */
+LOCAL_C void DoCreatePathL(
+ MM2GSVGProxy* aProxy, TInt* aPathHandle)
+{
+ aProxy->CreatePathL(*aPathHandle);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1createPath(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jboolean aUiToolkit)
+{
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath - begin");
+
+ TInt err = KM2GNotOk;
+ TInt pathHandle = M2G_INVALID_HANDLE;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pCreatePathL)(TM2GSvgPathHandle&);
+ pCreatePathL CreatePathL = &MM2GSVGProxy::CreatePathL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TMethodWrapper1<MM2GSVGProxy,TM2GSvgPathHandle&> CreatePath(
+ *aProxy,
+ CreatePathL,
+ pathHandle
+ );
+ err = client->Execute(CreatePath);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoCreatePathL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ &pathHandle);
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _createPath: %d - end", pathHandle);
+ return STATIC_CAST(jint, pathHandle);
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_destroyPath
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::DestroyPathL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ */
+LOCAL_C void DoDestroyPathL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle)
+{
+ aProxy->DestroyPathL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle));
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT void JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1destroyPath(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jboolean aUiToolkit)
+{
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath: %d - begin", aPathHandle);
+ TInt err = KM2GNotOk;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pDestroyPathL)(const TM2GSvgPathHandle&);
+ pDestroyPathL DestroyPathL = &MM2GSVGProxy::DestroyPathL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper1<MM2GSVGProxy,const TM2GSvgPathHandle& > DestroyPath(
+ *aProxy,
+ DestroyPathL,
+ lPathHandle
+ );
+ err = client->Execute(DestroyPath);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoDestroyPathL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle);
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _destroyPath - end");
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_getNumberOfSegments
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::GetNumberOfSegments method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @return Number of segments
+ */
+LOCAL_C void DoGetNumberOfSegmentsL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle,
+ TInt* aNumberOfSegments)
+{
+ aProxy->GetNumberOfSegmentsL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle),
+ *aNumberOfSegments);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1getNumberOfSegments(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle,
+ jboolean aUiToolkit)
+{
+ M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments - begin");
+ TInt err = KM2GNotOk;
+ TInt numberOfSegments = 0;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pGetNumberOfSegmentsL)(const TM2GSvgPathHandle&, TInt&);
+ pGetNumberOfSegmentsL GetNumberOfSegmentsL = &MM2GSVGProxy::GetNumberOfSegmentsL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper2<MM2GSVGProxy,const TM2GSvgPathHandle&, TInt& > GetNumberOfSegments(
+ *aProxy,
+ GetNumberOfSegmentsL,
+ lPathHandle,
+ numberOfSegments
+ );
+ err = client->Execute(GetNumberOfSegments);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoGetNumberOfSegmentsL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle, &numberOfSegments);
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getNumberOfSegments: %d - end", numberOfSegments);
+ return STATIC_CAST(jint, numberOfSegments);
+}
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_getSegmentParameter
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::GetSegmentParameterL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aSegmentIndex -
+ * @param aParamIndex -
+ * @param aSegmentParam Segment parameter
+ */
+LOCAL_C void DoGetSegmentParameterL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle, TInt aSegmentIndex, TInt aParamIndex,
+ TReal32* aSegmentParam)
+{
+ aProxy->GetSegmentParameterL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,
+ aParamIndex, *aSegmentParam);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT jfloat JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1getSegmentParameter(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ jint aPathHandle, jint aSegmentIndex, jint aParamIndex, jboolean aUiToolkit)
+{
+ M2G_DEBUG_2("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: seg index=%d, param index=%d - begin", aSegmentIndex, aParamIndex);
+ TInt err = KM2GNotOk;
+ TReal32 segmentParam = 0;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pGetSegmentParameterL)(
+ const TM2GSvgPathHandle&,
+ TInt,
+ TInt,
+ TReal32&);
+ pGetSegmentParameterL GetSegmentParameterL = &MM2GSVGProxy::GetSegmentParameterL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper4<MM2GSVGProxy,const TM2GSvgPathHandle&, TInt, TInt, TReal32& > GetSegmentParameter
+ (
+ *aProxy,
+ GetSegmentParameterL,
+ lPathHandle,
+ aSegmentIndex,
+ aParamIndex,
+ segmentParam
+ );
+ err = client->Execute(GetSegmentParameter);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoGetSegmentParameterL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle, aSegmentIndex, aParamIndex, &segmentParam);
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentParameter: %f - end", segmentParam);
+ return STATIC_CAST(jfloat, segmentParam);
+}
+
+
+// -----------------------------------------------------------------------------
+// Java_com_nokia_microedition_m2g_M2GSVGPath::_getSegmentType
+// -----------------------------------------------------------------------------
+/**
+ * Calls MM2GSVGProxy::GetSegmentTypeL method.
+ * @since Series S60 3.0
+ * @param aProxy Proxy instance.
+ * @param aPathHandle Svg path handle
+ * @param aSegmentIndex -
+ * @param aSegmentType Segment type to be returned
+ */
+LOCAL_C void DoGetSegmentTypeL(
+ MM2GSVGProxy* aProxy,
+ TInt aPathHandle, TInt aSegmentIndex, TInt16* aSegmentType)
+{
+ return aProxy->GetSegmentTypeL(
+ STATIC_CAST(TM2GSvgPathHandle, aPathHandle), aSegmentIndex,
+ *aSegmentType);
+}
+
+/**
+ * JNI method
+ */
+JNIEXPORT jshort JNICALL
+Java_com_nokia_microedition_m2g_M2GSVGPath__1getSegmentType(
+ JNIEnv* aJni,
+ jclass,
+ jint aEventSourceHandle,
+ jint aSvgProxyHandle,
+ TInt aPathHandle,
+ jint aIndex,
+ jboolean aUiToolkit)
+{
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: index=%d - begin", aIndex);
+ TInt err = KM2GNotOk;
+ TInt16 aSegmentType = 0;
+ if (aUiToolkit)
+ {
+ MSwtClient* client = reinterpret_cast< MSwtClient* >(aEventSourceHandle);
+ if (client && aSvgProxyHandle)
+ {
+ typedef void (MM2GSVGProxy::*pGetSegmentTypeL)(
+ const TM2GSvgPathHandle&,
+ TInt,
+ TInt16&);
+ pGetSegmentTypeL GetSegmentTypeL = &MM2GSVGProxy::GetSegmentTypeL;
+ MM2GSVGProxy * aProxy = JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle);
+ TM2GSvgDocumentHandle lPathHandle = STATIC_CAST(TM2GSvgPathHandle, aPathHandle);
+ TMethodWrapper3<MM2GSVGProxy,const TM2GSvgPathHandle&, TInt, TInt16& > GetSegmentType
+ (
+ *aProxy,
+ GetSegmentTypeL,
+ lPathHandle,
+ aIndex,
+ aSegmentType
+ );
+ err = client->Execute(GetSegmentType);
+ }
+ }
+ else
+ {
+ CM2GEventSource* eventSource = JavaUnhand< CM2GEventSource >(aEventSourceHandle);
+
+ if (eventSource && aSvgProxyHandle)
+ {
+ err = eventSource->ExecuteTrap(
+ &DoGetSegmentTypeL,
+ JavaUnhand< MM2GSVGProxy >(aSvgProxyHandle),
+ aPathHandle, aIndex, &aSegmentType);
+
+ }
+ }
+ M2GGeneral::CheckErrorCode(aJni, err);
+ M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGPath ) _getSegmentType: %d - end", aSegmentType);
+ return STATIC_CAST(jshort, aSegmentType);
+}
+
+M2G_NS_END