diff -r e5618cc85d74 -r 6c158198356e javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp --- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp Thu Jul 15 18:31:06 2010 +0300 +++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp Thu Aug 19 09:48:13 2010 +0300 @@ -1506,6 +1506,18 @@ return reinterpret_cast(result); } + JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1NewFromTheme(JNIEnv* aJniEnv, jclass, jint aDevice, jint aId) + { + ASwtDisplayBase* display = DisplayFromDevice(aDevice); + MSwtImage* result = NULL; + TRAPD(error, CallMethodL(result, display, &ASwtDisplayBase::NewImageFromThemeL, aId)); + ThrowIfError(error, aJniEnv); + + INCREASE_INSTANCE_COUNT_USE_DISPLAY(result, Image, display); + + return reinterpret_cast(result); + } + JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1Dispose(JNIEnv*, jclass, jint aDevice, jint aHandle) { CSwtDisplay* display = DisplayFromDevice(aDevice); @@ -1553,6 +1565,20 @@ CallMethod(static_cast(image), &MSwtImage::RemoveRef); } + JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1Scale(JNIEnv* aJniEnv, jclass, + jint aDevice, jint aHandle, jint aWidth, jint aHeight, jboolean aKeepAspectRatio) + { + ASwtDisplayBase* display = DisplayFromDevice(aDevice); + const MSwtImage* image = reinterpret_cast(aHandle); + const TSize size(aWidth, aHeight); + MSwtImage* result = NULL; + TRAPD(error, CallMethodL(result, display, &ASwtDisplayBase::ScaleImageL, *image, size, aKeepAspectRatio)); + ThrowIfError(error, aJniEnv); + + INCREASE_INSTANCE_COUNT_USE_DISPLAY(result, Image, display); + + return reinterpret_cast(result); + } /* * Class Menu