javauis/m2g_qt/src/jni/M2GSVGImage.cpp
author hgs
Fri, 29 Oct 2010 11:49:32 +0300
changeset 87 1627c337e51e
parent 80 d6dafc5d983f
permissions -rw-r--r--
v2.2.21_1

/*
* Copyright (c) 2005-2009 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 "com_nokia_microedition_m2g_M2GSVGImage.h"
#include "MM2GSVGProxy.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_M2GSVGImage::_dispatchMouseEvent
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::DispatchMouseEventL method.
 * @since Series S60 3.0
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document handle.
 * @param aX X coordinate.
 * @param aY Y coordinate
 * @param aElementHandle Target element handle
 */
JNIEXPORT jint JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1dispatchMouseEvent(
    JNIEnv* aJni,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle, jint aX, jint aY)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _dispatchMouseEvent - begin");

    TInt elementHandle = M2G_INVALID_HANDLE;
    TInt err = KM2GNotOk;

    M2G_DO_LOCK
    if (aSvgProxyHandle)
    {
        MM2GSVGProxy *  aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err, aProxy->DispatchMouseEventL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),
                 aX, aY, elementHandle););
    }
    M2G_DO_UNLOCK(aJni)

    M2GGeneral::CheckErrorCode(aJni, err);

    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _dispatchMouseEvent: %d - end", elementHandle);
    return elementHandle;
}
// -----------------------------------------------------------------------------
// Java_com_nokia_microedition_m2g_M2GSVGImage::_focusOn
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::FocusOnL method.
 * @since Series S60 3.1
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document handle.
 * @param aElementHandle Target element handle
 * JNI method
 */
JNIEXPORT void JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1focusOn(
    JNIEnv* /* aJni */,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle, jint aElementHandle)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOn - begin");

    TInt err = KM2GNotOk;

    if (aSvgProxyHandle)
    {
        MM2GSVGProxy *     aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err, aProxy->FocusOnL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),
                 STATIC_CAST(TM2GSvgElementHandle, aElementHandle)););
    }

    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOn: %d - end", err);
}


// -----------------------------------------------------------------------------
// Java_com_nokia_microedition_m2g_M2GSVGImage::_focusOut
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::FocusOutL method.
 * @since Series S60 3.1
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document handle.
 * @param aElementHandle Target element handle
 * JNI method
 */
JNIEXPORT void JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1focusOut(
    JNIEnv* /* aJni */,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle, jint aElementHandle)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOut - begin");
    TInt err = KM2GNotOk;

    if (aSvgProxyHandle)
    {
        MM2GSVGProxy *    aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err,aProxy->FocusOutL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),
                 STATIC_CAST(TM2GSvgElementHandle, aElementHandle)););
    }

    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _focusOut: %d - end", err);

}

// -----------------------------------------------------------------------------
// Java_com_nokia_microedition_m2g_M2GSVGImage::_getExternalListItem
// EXTENSION
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::GetExternalListItemL method.
 * @since Series S60 3.0
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document pointer.
 * @param aIndex External item index.
 * @param aItem External item
 * @throws Exception if not ok
 * JNI method
 */
JNIEXPORT jstring JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1getExternalListItem(
    JNIEnv* aJni,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle,
    jint aIndex)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _getExternalListItem - begin");
    TPtrC16 lItem;
    TInt err    = KM2GNotOk;

    M2G_DO_LOCK
    if (aSvgProxyHandle)
    {
        MM2GSVGProxy * aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err, aProxy->GetExternalListItemL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle),
                 aIndex,
                 lItem););
    }
    M2G_DO_UNLOCK(aJni)

    if ((M2GGeneral::CheckErrorCode(aJni, err) == KM2GOk) && (lItem.Length() > 0))
    {
        return CreateJavaString(*aJni, lItem);
    }

    return NULL;
}
// -----------------------------------------------------------------------------
// Java_com_nokia_microedition_m2g_M2GSVGImage::_getExternalListSize
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::GetExternalListItemL method.
 * @since Series S60 3.0
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document handle.
 * @param aListSz List size to be returned.
 */
JNIEXPORT TInt JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1getExternalListSize(
    JNIEnv* aJni,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _getExternalListSize - begin");

    TInt err           = KM2GNotOk;
    TInt listSz = 0;

    M2G_DO_LOCK
    if (aSvgProxyHandle)
    {
        MM2GSVGProxy *  aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err, aProxy->GetExternalListSizeL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle), listSz););
    }
    M2G_DO_UNLOCK(aJni)

    M2GGeneral::CheckErrorCode(aJni, err);

    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _getExternalListSize: %d - end", listSz);
    return listSz;
}

// -----------------------------------------------------------------------------
// Java_com_nokia_microedition_m2g_M2GSVGImage::_getExternalListItem
// -----------------------------------------------------------------------------
/**
 * Calls MM2GSVGProxy::GetExternalListItemL method.
 * @since Series S60 3.0
 * @param aProxy Proxy instance.
 * @param aDocumentHandle Document pointer.
 * @param aIndex Index.
 * @param aStrBuf Returns a string
 * @throws Exception if not ok
 * JNI method
 */
JNIEXPORT void JNICALL
Java_com_nokia_microedition_m2g_M2GSVGImage__1initViewport(
    JNIEnv* aJni,
    jclass,
    jint aSvgProxyHandle,
    jint aDocumentHandle)
{
    M2G_DEBUG_0("M2G_DEBUG: JNI ( M2GSVGImage ) _initViewport - begin");

    TInt err           = KM2GNotOk;

    if (aSvgProxyHandle)
    {
        MM2GSVGProxy * aProxy = JavaUnhand<MM2GSVGProxy>(aSvgProxyHandle);
        TRAP(err, aProxy->InitViewportL(
                 STATIC_CAST(TM2GSvgDocumentHandle, aDocumentHandle)););
    }
    M2GGeneral::CheckErrorCode(aJni, err);

    M2G_DEBUG_1("M2G_DEBUG: JNI ( M2GSVGImage ) _initViewport: %d - end", err);

}

M2G_NS_END