Mozilla/mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
ashuk%eng.sun.com b01e7aac74 Bug=81648
author=ashuk
r=edburns

Files modified:

M mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/win32/Win32BrowserControlCanvas.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/wrapper_native/motif/MotifBrowserControlCanvas.java
M mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java

M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvas.cpp
M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvas.h
M mozilla/java/webclient/src_moz/motif/MotifBrowserControlCanvasStub.cpp
M mozilla/java/webclient/src_moz/Makefile.in
M mozilla/java/webclient/src_moz/Makefile.win

A mozilla/java/webclient/src_moz/win32/Makefile.win
A mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
A mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.h


This fix removes the deprecated methods used in Webclient and
now uses the JAWT Native Interface for allowing the Java AWT
canvas access to the native peer window.


git-svn-id: svn://10.0.0.236/trunk@95940 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-25 23:09:54 +00:00

100 lines
2.9 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Ashu Kulkarni
*/
/*
* Win32BrowserControlCanvas.cpp
*/
#include <jni.h>
#include <jawt_md.h>
#include <jawt.h>
#include "Win32BrowserControlCanvas.h"
#include "ns_util.h" //for throwing Exceptions to Java
/*
* Class: org_mozilla_webclient_wrapper_0005fnative_win32_Win32BrowserControlCanvas
* Method: getHandleToPeer
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_win32_Win32BrowserControlCanvas_getHandleToPeer
(JNIEnv *env, jobject canvas) {
JAWT awt;
JAWT_DrawingSurface* ds;
JAWT_DrawingSurfaceInfo* dsi;
JAWT_Win32DrawingSurfaceInfo* dsi_win;
HWND handle_win;
jint lock;
//Get the AWT
awt.version = JAWT_VERSION_1_3;
if (JAWT_GetAWT(env, &awt) == JNI_FALSE) {
printf(" +++ AWT Not Found +++ \n");
::util_ThrowExceptionToJava(env, "Exception: AWT Not Found");
return 0;
}
//Get the Drawing Surface
ds = awt.GetDrawingSurface(env, canvas);
if (ds == NULL) {
printf(" +++ NULL Drawing Surface +++ \n");
::util_ThrowExceptionToJava(env, "Exception: Null Drawing Surface");
return 0;
}
//Lock the Drawing Surface
lock = ds->Lock(ds);
if ((lock & JAWT_LOCK_ERROR) != 0) {
printf(" +++ Error Locking Surface +++ \n");
::util_ThrowExceptionToJava(env, "Exception: Error Locking Surface");
awt.FreeDrawingSurface(ds);
return 0;
}
//Get the Drawing Surface info
dsi = ds->GetDrawingSurfaceInfo(ds);
if (dsi == NULL) {
printf(" +++ Error Getting Surface Info +++ \n");
::util_ThrowExceptionToJava(env, "Exception: Error Getting Surface Info");
ds->Unlock(ds);
awt.FreeDrawingSurface(ds);
return 0;
}
//Get the Platform specific Drawing Info
dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
//Get the Handle to the Native Drawing Surface info
handle_win = (HWND) dsi_win->hwnd;
//Clean up after us
ds->FreeDrawingSurfaceInfo(dsi);
ds->Unlock(ds);
awt.FreeDrawingSurface(ds);
//return the native peer handle
return (jint) handle_win;
}