зеркало из https://github.com/mozilla/gecko-dev.git
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.
This commit is contained in:
Родитель
eae6bcfe09
Коммит
c0a1e344f2
|
@ -52,7 +52,7 @@ import java.awt.*;
|
|||
|
||||
* See concrete subclasses for scope info.
|
||||
|
||||
* @version $Id: BrowserControlCanvas.java,v 1.1 2000/03/04 01:10:51 edburns%acm.org Exp $
|
||||
* @version $Id: BrowserControlCanvas.java,v 1.2 2001/05/25 23:09:45 ashuk%eng.sun.com Exp $
|
||||
|
||||
* @see org.mozilla.webclient.win32.Win32BrowserControlCanvas
|
||||
|
||||
|
@ -121,11 +121,10 @@ protected void initialize(BrowserControl controlImpl)
|
|||
}
|
||||
|
||||
/**
|
||||
* Obtain the native window handle for this component's
|
||||
* peer.
|
||||
* Create the Native gtk window and get it's handle
|
||||
*/
|
||||
|
||||
abstract protected int getWindow(DrawingSurfaceInfo dsi);
|
||||
abstract protected int getWindow();
|
||||
|
||||
//
|
||||
// Methods from Canvas
|
||||
|
@ -139,15 +138,11 @@ public void addNotify ()
|
|||
{
|
||||
super.addNotify();
|
||||
|
||||
DrawingSurface ds = (DrawingSurface)this.getPeer();
|
||||
DrawingSurfaceInfo dsi = ds.getDrawingSurfaceInfo();
|
||||
|
||||
windowRelativeBounds = new Rectangle();
|
||||
|
||||
// We must lock() the DrawingSurfaceInfo before
|
||||
// accessing its native window handle.
|
||||
dsi.lock();
|
||||
nativeWindow = getWindow(dsi);
|
||||
//Create the Native gtkWindow and it's container and
|
||||
//get a handle to this widget
|
||||
nativeWindow = getWindow();
|
||||
|
||||
try {
|
||||
Rectangle r = new Rectangle(getBoundsRelativeToWindow());
|
||||
|
@ -155,21 +150,17 @@ public void addNotify ()
|
|||
|
||||
WindowControl wc = (WindowControl)
|
||||
webShell.queryInterface(BrowserControl.WINDOW_CONTROL_NAME);
|
||||
//This createWindow call sets in motion the creation of the
|
||||
//nativeInitContext and the creation of the Mozilla embedded
|
||||
//webBrowser
|
||||
wc.createWindow(nativeWindow, r);
|
||||
} catch (Exception e) {
|
||||
dsi.unlock();
|
||||
System.out.println(e.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
dsi.unlock();
|
||||
|
||||
initializeOK = true;
|
||||
webShellCount++;
|
||||
|
||||
/*
|
||||
requestFocus();
|
||||
*/
|
||||
} // addNotify()
|
||||
|
||||
public BrowserControl getWebShell ()
|
||||
|
|
|
@ -36,7 +36,7 @@ import org.mozilla.util.ParameterCheck;
|
|||
|
||||
* There is one instance of the WebShellCanvas per top level awt Frame.
|
||||
|
||||
* @version $Id: MotifBrowserControlCanvas.java,v 1.2 2000/03/07 22:16:07 ashuk%eng.sun.com Exp $
|
||||
* @version $Id: MotifBrowserControlCanvas.java,v 1.3 2001/05/25 23:09:44 ashuk%eng.sun.com Exp $
|
||||
*
|
||||
* @see org.mozilla.webclient.BrowserControlCanvasFactory
|
||||
*
|
||||
|
@ -75,6 +75,8 @@ public class MotifBrowserControlCanvas extends BrowserControlCanvas /* implement
|
|||
private native void reparentWindow(int child, int parent);
|
||||
private native void processEvents();
|
||||
private native void setGTKWindowSize(int gtkWinPtr, int width, int height);
|
||||
//New method for obtaining access to the Native Peer handle
|
||||
private native int getHandleToPeer();
|
||||
|
||||
public MotifBrowserControlCanvas() {
|
||||
super();
|
||||
|
@ -91,9 +93,12 @@ public class MotifBrowserControlCanvas extends BrowserControlCanvas /* implement
|
|||
|
||||
if (firstTime) {
|
||||
synchronized(getTreeLock()) {
|
||||
canvasWinID = this.drawingSurfaceInfo.getDrawable();
|
||||
//Use the AWT Native Peer interface to get the handle
|
||||
//of this Canvas's native peer
|
||||
canvasWinID = this.getHandleToPeer();
|
||||
//Set our canvas as a parent of the top-level gtk widget
|
||||
//which contains Mozilla.
|
||||
this.reparentWindow(this.gtkWinID, this.canvasWinID);
|
||||
|
||||
firstTime = false;
|
||||
}
|
||||
}
|
||||
|
@ -115,15 +120,14 @@ public class MotifBrowserControlCanvas extends BrowserControlCanvas /* implement
|
|||
}
|
||||
|
||||
/**
|
||||
* Obtain the native window handle for this
|
||||
* component's peer.
|
||||
* Create the top-level gtk window to be embedded in our AWT
|
||||
* Window and return a handle to this window
|
||||
*
|
||||
* @returns The native window handle.
|
||||
*/
|
||||
protected int getWindow(DrawingSurfaceInfo dsi) {
|
||||
synchronized(getTreeLock()) {
|
||||
this.drawingSurfaceInfo = (MDrawingSurfaceInfo) dsi;
|
||||
|
||||
protected int getWindow() {
|
||||
synchronized(getTreeLock()) {
|
||||
this.gtkTopWindow = this.createTopLevelWindow();
|
||||
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
||||
|
||||
|
@ -137,5 +141,6 @@ public class MotifBrowserControlCanvas extends BrowserControlCanvas /* implement
|
|||
|
||||
return this.gtkWinPtr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import org.mozilla.util.ParameterCheck;
|
|||
|
||||
* There is one instance of the BrowserControlCanvas per top level awt Frame.
|
||||
|
||||
* @version $Id: Win32BrowserControlCanvas.java,v 1.1 2000/03/04 01:10:58 edburns%acm.org Exp $
|
||||
* @version $Id: Win32BrowserControlCanvas.java,v 1.2 2001/05/25 23:09:42 ashuk%eng.sun.com Exp $
|
||||
*
|
||||
* @see org.mozilla.webclient.BrowserControlCanvasFactory
|
||||
*
|
||||
|
@ -59,6 +59,8 @@ public class Win32BrowserControlCanvas extends BrowserControlCanvas {
|
|||
System.loadLibrary("webclient");
|
||||
}
|
||||
|
||||
//New method for obtaining access to the Native Peer handle
|
||||
private native int getHandleToPeer();
|
||||
|
||||
/**
|
||||
* Obtain the native window handle for this
|
||||
|
@ -66,8 +68,7 @@ public class Win32BrowserControlCanvas extends BrowserControlCanvas {
|
|||
*
|
||||
* @returns The native window handle.
|
||||
*/
|
||||
protected int getWindow(DrawingSurfaceInfo dsi) {
|
||||
WDrawingSurfaceInfo ds = (WDrawingSurfaceInfo)dsi;
|
||||
return ds.getHWnd();
|
||||
protected int getWindow() {
|
||||
return this.getHandleToPeer();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,11 +99,14 @@ ifdef MOZ_ENABLE_GTK
|
|||
ifndef MOZ_MONOLITHIC_TOOLKIT
|
||||
CXXFLAGS += $(MOZ_GTK_CFLAGS)
|
||||
CFLAGS += $(MOZ_GTK_CFLAGS)
|
||||
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
|
||||
# Adding $(JDKHOME)/jre/lib/sparc because we need to link against
|
||||
# the libjawt.so shared library for the JAWT Native Interface
|
||||
# functionality to work correctly.
|
||||
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L$(JDKHOME)/jre/lib/sparc -ljawt -L/usr/X11R6/lib -lXt
|
||||
else
|
||||
CXXFLAGS += $(TK_CFLAGS)
|
||||
CFLAGS += $(TK_CFLAGS)
|
||||
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
|
||||
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L$(JDKHOME)/jre/lib/sparc -ljawt -L/usr/X11R6/lib -lXt
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -122,67 +125,15 @@ endif
|
|||
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
INCLUDES := -I$(JDKHOME)/include -I$(JDKHOME)/include/linux $(INCLUDES) \
|
||||
-I$(DEPTH)/widget/src/gtk -I../src_share
|
||||
-I$(DEPTH)/widget/src/gtk -I../src_share -I../src_moz
|
||||
else
|
||||
INCLUDES := -I$(JDKHOME)/include -I$(JDKHOME)/include/solaris $(INCLUDES) \
|
||||
-I$(DEPTH)/widget/src/gtk -I../src_share
|
||||
-I$(DEPTH)/widget/src/gtk -I../src_share -I../src_moz
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($(PACKAGE_BUILD),)
|
||||
ifneq ($(VERSION_NUMBER),)
|
||||
VERSION_NUMBER=0.9
|
||||
endif # VERSION_NUMBER
|
||||
PACKAGE_DIR=$(topsrcdir)/dist/javadev
|
||||
PACKAGE_LIB=$(PACKAGE_DIR)/lib
|
||||
PACKAGE_EXAMPLE=$(PACKAGE_DIR)/example
|
||||
endif # PACKAGE_BUILD
|
||||
|
||||
ifneq ($(WEBCLIENT_PACKAGE_BUILD),)
|
||||
PACKAGE_VER = 1_0
|
||||
PACKAGE_DIR = $(DIST)/javadev
|
||||
PACKAGE_LIB = $(PACKAGE_DIR)/lib
|
||||
PACKAGE_EXAMPLE = $(PACKAGE_DIR)/example
|
||||
endif # WEBCLIENT_PACKAGE_BUILD
|
||||
|
||||
|
||||
|
||||
buildRunems:
|
||||
ifeq ($(BAL_INTERFACE),)
|
||||
ifneq ($(WEBCLIENT_PACKAGE_BUILD),)
|
||||
@echo +++ Creating Commercial Package. Use runem to run the test browser.
|
||||
@echo +++ Checking for special libwidget_gtk.so.
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
@if test ! -f libwidget_gtk.so ; then echo "You don't have libwidget_gtk.so, see the IMPORTANT section in Makefile.in!!!"; stopbuild; else echo "Found libwidget_gtk.so, continuing."; fi ;
|
||||
chmod 775 libwidget_gtk.so
|
||||
cp -f libwidget_gtk.so $(PACKAGE_LIB)
|
||||
endif
|
||||
rm -f runem_unix_commercial
|
||||
@echo "#!/bin/csh -x" >> runem_unix_commercial
|
||||
@echo ln -s -f "$$"MOZILLA_FIVE_HOME/javadev/lib/libjavadom.so "$$"MOZILLA_FIVE_HOME/components/libjavadom.so >> runem_unix_commercial
|
||||
@echo setenv CLASSPATH "$$"MOZILLA_FIVE_HOME/javadev/lib/$(LIBRARY_NAME)_$(PACKAGE_VER).jar>> runem_unix_commercial
|
||||
@echo setenv LD_LIBRARY_PATH "$$"MOZILLA_FIVE_HOME'"':'"'"$$"MOZILLA_FIVE_HOME/components'"':'"'"$$"MOZILLA_FIVE_HOME/javadev/lib'"':'"'"$$"LD_LIBRARY_PATH>> runem_unix_commercial
|
||||
@echo "$$"JDKHOME/bin/java org.mozilla.webclient.test.EmbeddedMozillaImpl "$$"MOZILLA_FIVE_HOME "$$"1 >> runem_unix_commercial
|
||||
mkdir -p $(PACKAGE_EXAMPLE)
|
||||
chmod 775 $(PACKAGE_EXAMPLE)
|
||||
cp -f $(DIST)/bin/lib$(LIBRARY_NAME).so $(PACKAGE_LIB)
|
||||
cp -f $(DIST)/bin/lib$(LIBRARY_NAME)stub.so $(PACKAGE_LIB)
|
||||
cp -f $(DIST)/bin/libjavadomjni.so $(PACKAGE_LIB)
|
||||
cp -f $(DIST)/bin/components/libjavadom.so $(PACKAGE_LIB)
|
||||
chmod 775 $(PACKAGE_LIB)/lib$(LIBRARY_NAME).so
|
||||
chmod 775 $(PACKAGE_LIB)/lib$(LIBRARY_NAME)stub.so
|
||||
chmod 775 $(PACKAGE_LIB)/libjavadomjni.so
|
||||
chmod 775 $(PACKAGE_LIB)/libjavadom.so
|
||||
cp -f $(DEPTH)/java/webclient/src_moz/runem_unix_commercial $(PACKAGE_EXAMPLE)/runem
|
||||
|
||||
chmod 775 $(PACKAGE_EXAMPLE)/runem
|
||||
cp -f $(DEPTH)/java/webclient/src_moz/install_win32.js $(DIST)/install.js
|
||||
ifeq ($(OS_ARCH),Linux)
|
||||
cd $(DIST); zip -r $(LIBRARY_NAME)_$(PACKAGE_VER)_linux.xpi install.js javadev
|
||||
else
|
||||
cd $(DIST); zip -r $(LIBRARY_NAME)_$(PACKAGE_VER)_solaris.xpi install.js javadev
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PACKAGE_BUILD),)
|
||||
@echo +++ Creating runem. Use this to run the test browser.
|
||||
rm -f runem
|
||||
|
@ -190,69 +141,6 @@ ifeq ($(PACKAGE_BUILD),)
|
|||
@echo $(PERL) ../src_share/runem.pl org.mozilla.webclient.test.EmbeddedMozillaImpl $(DEPTH) "$$"1 "$$"2 "$$"3 "$$"4 "$$"4 "$$"6 >> runem
|
||||
chmod 755 runem
|
||||
else
|
||||
@echo +++ Commercial Packaging - Copying runem_solaris. Used to run test
|
||||
if test ! -d $(PACKAGE_EXAMPLE) ; then mkdir $(PACKAGE_EXAMPLE) ; else true ; fi ;
|
||||
cp $(topsrcdir)/dist/bin/libwebclientstub.so $(PACKAGE_LIB)/libwebclientstub.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/libwebclient.so $(PACKAGE_LIB)/libwebclient.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/lib/libwc_share.a $(PACKAGE_LIB)/libwc_share.a.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/libjavadomjni.so $(PACKAGE_LIB)/libjavadomjni.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/libplugletjni.so $(PACKAGE_LIB)/libplugletjni.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libpluglet.so $(PACKAGE_LIB)/libpluglet.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libjavadom.so $(PACKAGE_LIB)/libjavadom.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libbcorb.so $(PACKAGE_LIB)/libbcorb.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libbcjavastubs.so $(PACKAGE_LIB)/libbcjavastubs.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libjavaloader.so $(PACKAGE_LIB)/libjavaloader.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libjavaSample.so $(PACKAGE_LIB)/libjavaSample.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libbcTest.so $(PACKAGE_LIB)/libbcTest.so.$(VERSION_NUMBER)
|
||||
cp $(topsrcdir)/dist/bin/components/libbcxpcomstubs.so $(PACKAGE_LIB)/libbcxpcomstubs.so.$(VERSION_NUMBER)
|
||||
rm -f $(topsrcdir)/dist/bin/libwebclientstub.so
|
||||
rm -f $(topsrcdir)/dist/lib/libwebclientstub.so
|
||||
rm -f $(topsrcdir)/dist/bin/libwebclient.so
|
||||
rm -f $(topsrcdir)/dist/lib/libwebclient.so
|
||||
rm -f $(topsrcdir)/dist/lib/libwc_share.a
|
||||
rm -f $(topsrcdir)/dist/bin/libjavadomjni.so
|
||||
rm -f $(topsrcdir)/dist/lib/libjavadomjni.so
|
||||
rm -f $(topsrcdir)/dist/bin/libplugletjni.so
|
||||
rm -f $(topsrcdir)/dist/lib/libplugletjni.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libpluglet.so
|
||||
rm -f $(topsrcdir)/dist/lib/components/libpluglet.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libjavadom.so
|
||||
rm -f $(topsrcdir)/dist/lib/components/libjavadom.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libbcorb.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libbcjavastubs.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libjavaloader.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libjavaSample.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libbcTest.so
|
||||
rm -f $(topsrcdir)/dist/bin/components/libbcxpcomstubs.so
|
||||
chmod 555 $(PACKAGE_LIB)/libwebclientstub.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libwebclient.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libwc_share.a.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libjavadomjni.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libplugletjni.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libpluglet.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libjavadom.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libbcorb.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libbcjavastubs.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libjavaloader.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libjavaSample.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libbcTest.so.$(VERSION_NUMBER)
|
||||
chmod 555 $(PACKAGE_LIB)/libbcxpcomstubs.so.$(VERSION_NUMBER)
|
||||
if test ! -d $(PACKAGE_LIB)/libbcorb.so ; then ln -s libbcorb.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libbcorb.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libbcjavastubs.so ; then ln -s libbcjavastubs.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libbcjavastubs.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libjavaloader.so ; then ln -s libjavaloader.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libjavaloader.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libjavaSample.so ; then ln -s libjavaSample.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libjavaSample.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libbcTest.so ; then ln -s libbcTest.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libbcTest.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libbcxpcomstubs.so ; then ln -s libbcxpcomstubs.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libbcxpcomstubs.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libwc_share.a ; then ln -s libwc_share.a.$(VERSION_NUMBER) $(PACKAGE_LIB)/libwc_share.a ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libwebclientstub.so ; then ln -s libwebclientstub.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libwebclientstub.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libwebclient.so ; then ln -s libwebclient.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libwebclient.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libjavadomjni.so ; then ln -s libjavadomjni.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libjavadomjni.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libplugletjni.so ; then ln -s libplugletjni.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libplugletjni.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libpluglet.so ; then ln -s libpluglet.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libpluglet.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_LIB)/libjavadom.so ; then ln -s libjavadom.so.$(VERSION_NUMBER) $(PACKAGE_LIB)/libjavadom.so ; else true ; fi ;
|
||||
if test ! -d $(PACKAGE_EXAMPLE)/runem ; then cp $(topsrcdir)/java/webclient/src_share/runem_solaris $(PACKAGE_EXAMPLE)/runem ; else true ; fi ;
|
||||
chmod 755 $(PACKAGE_EXAMPLE)/runem
|
||||
cp $(topsrcdir)/java/README.commercial $(PACKAGE_DIR)/README
|
||||
endif # PACKAGE_BUILD
|
||||
endif # BAL_INTERFACE
|
||||
|
||||
|
@ -260,9 +148,4 @@ install:: buildRunems
|
|||
|
||||
|
||||
clobber_all:: clobber
|
||||
ifneq ($(WEBCLIENT_PACKAGE_BUILD),)
|
||||
rm -f runem_unix_commercial
|
||||
rm -rf $(DIST)/javadev
|
||||
rm -f $(DIST)/$(LIBRARY_NAME)_$(PACKAGE_VER)*.xpi
|
||||
rm -f $(DIST)/install.js
|
||||
endif
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ MAKE_OBJ_TYPE = DLL
|
|||
|
||||
MODULE=webclient
|
||||
|
||||
DIRS = win32
|
||||
|
||||
OBJS = \
|
||||
.\$(OBJDIR)\ns_util.obj \
|
||||
|
@ -55,6 +56,7 @@ OBJS = \
|
|||
.\$(OBJDIR)\PreferencesImpl.obj \
|
||||
.\$(OBJDIR)\PreferencesActionEvents.obj \
|
||||
.\$(OBJDIR)\ISupportsPeer.obj \
|
||||
.\win32\$(OBJDIR)\Win32BrowserControlCanvas.obj \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
@ -85,6 +87,7 @@ LLIBS = \
|
|||
$(DIST)\lib\nspr4.lib \
|
||||
$(DIST)\lib\plc4.lib \
|
||||
$(DIST)\lib\plds4.lib \
|
||||
$(JDKHOME)\jre\lib\jawt.lib \
|
||||
$(NULL)
|
||||
|
||||
WIN_LIBS= \
|
||||
|
@ -111,6 +114,7 @@ include <$(DEPTH)\config\rules.mak>
|
|||
INCS = \
|
||||
-I..\bal\ \
|
||||
-I..\bal\win32 \
|
||||
-Iwin32 \
|
||||
$(INCS) \
|
||||
$(NULL)
|
||||
!else
|
||||
|
@ -145,11 +149,7 @@ install:: $(DLL) buildRunems
|
|||
|
||||
|
||||
clobber_all:: clobber
|
||||
!ifdef PACKAGE_BUILD
|
||||
rm -rf $(DIST)\javadev
|
||||
rm -f $(DIST)\$(DLLNAME)_$(PACKAGE_VER).xpi
|
||||
rm -f $(DIST)\install.js
|
||||
!endif
|
||||
|
||||
|
||||
clobber::
|
||||
rm -f $(DIST)\bin\$(DLLNAME).dll
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
*/
|
||||
|
||||
#include <jni.h>
|
||||
#include <jawt_md.h>
|
||||
#include <jawt.h>
|
||||
#include "MotifBrowserControlCanvas.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
@ -40,6 +42,8 @@
|
|||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "ns_util.h" //for throwing Exceptions to Java
|
||||
|
||||
extern "C" void NS_SetupRegistry();
|
||||
|
||||
extern "C" {
|
||||
|
@ -153,6 +157,72 @@ JNIEXPORT void JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBro
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_motif_MotifBrowserControlCanvas
|
||||
* Method: getHandleToPeer
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_getHandleToPeer
|
||||
(JNIEnv * env, jobject canvas) {
|
||||
JAWT awt;
|
||||
JAWT_DrawingSurface* ds;
|
||||
JAWT_DrawingSurfaceInfo* dsi;
|
||||
JAWT_X11DrawingSurfaceInfo* dsi_x11;
|
||||
Drawable handle_x11;
|
||||
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_x11 = (JAWT_X11DrawingSurfaceInfo*)dsi->platformInfo;
|
||||
|
||||
//Get the Handle to the Native Drawing Surface info
|
||||
handle_x11 = (Drawable) dsi_x11->drawable;
|
||||
|
||||
//Clean up after us
|
||||
ds->FreeDrawingSurfaceInfo(dsi);
|
||||
ds->Unlock(ds);
|
||||
awt.FreeDrawingSurface(ds);
|
||||
|
||||
//return the native peer handle
|
||||
return (jint) handle_x11;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_motif_MotifBrowserControlCanvas
|
||||
* Method: loadMainDll
|
||||
|
|
|
@ -45,6 +45,14 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBro
|
|||
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_createTopLevelWindow
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_wrapper_0005fnative_motif_MotifBrowserControlCanvas
|
||||
* Method: getHandleToPeer
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_getHandleToPeer
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_wrapper_0005fnative_motif_MotifBrowserControlCanvas
|
||||
* Method: getGTKWinID
|
||||
|
|
|
@ -43,6 +43,7 @@ jint (* getGTKWinID) (JNIEnv *, jobject, jint);
|
|||
void (* reparentWindow) (JNIEnv *, jobject, jint, jint);
|
||||
void (* processEvents) (JNIEnv *, jobject);
|
||||
void (* setGTKWindowSize) (JNIEnv *, jobject, jint, jint, jint);
|
||||
jint (* getHandleToPeer) (JNIEnv *, jobject);
|
||||
|
||||
void locateMotifBrowserControlStubFunctions(void * dll) {
|
||||
createTopLevelWindow = (jint (*) (JNIEnv *, jobject)) dlsym(dll, "Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_createTopLevelWindow");
|
||||
|
@ -50,6 +51,11 @@ void locateMotifBrowserControlStubFunctions(void * dll) {
|
|||
printf("got dlsym error %s\n", dlerror());
|
||||
}
|
||||
|
||||
getHandleToPeer = (jint (*) (JNIEnv *, jobject)) dlsym(dll, "Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_getHandleToPeer");
|
||||
if (!getHandleToPeer) {
|
||||
printf("got dlsym error %s\n", dlerror());
|
||||
}
|
||||
|
||||
createContainerWindow = (jint (*) (JNIEnv *, jobject, jint, jint, jint)) dlsym(dll, "Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_createContainerWindow");
|
||||
if (!createContainerWindow) {
|
||||
printf("got dlsym error %s\n", dlerror());
|
||||
|
@ -85,6 +91,15 @@ JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBro
|
|||
return (* createTopLevelWindow) (env, obj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_motif_MotifBrowserControlCanvas
|
||||
* Method: getHandleToPeer
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_mozilla_webclient_wrapper_1native_motif_MotifBrowserControlCanvas_getHandleToPeer (JNIEnv * env, jobject obj) {
|
||||
return (* getHandleToPeer) (env, obj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: org_mozilla_webclient_motif_MotifBrowserControlCanvas
|
||||
* Method: createContainerWindow
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
#!nmake
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla 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/MPL/
|
||||
#
|
||||
# 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 Sun Microsystems,
|
||||
# Inc. Portions created by Sun are
|
||||
# Copyright (C) 1999 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
DEPTH=..\..\..\..
|
||||
MODULE=wc_win32
|
||||
include <$(DEPTH)/config/config.mak>
|
||||
|
||||
OBJS = \
|
||||
.\$(OBJDIR)\Win32BrowserControlCanvas.obj \
|
||||
$(NULL)
|
||||
|
||||
LCFLAGS = \
|
||||
-DDEBUG_RAPTOR_CANVAS \
|
||||
$(NULL)
|
||||
|
||||
!ifdef BAL_INTERFACE
|
||||
LCFLAGS = \
|
||||
$(LCFLAGS) \
|
||||
-DBAL_INTERFACE \
|
||||
$(NULL)
|
||||
|
||||
LIBRARY_NAME = wc_win32_bal
|
||||
!else
|
||||
LIBRARY_NAME = wc_win32
|
||||
!endif
|
||||
|
||||
LLIBS = \
|
||||
$(NULL)
|
||||
|
||||
WIN_LIBS = \
|
||||
version.lib
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
|
||||
INCS=-I.. -I..\..\src_share $(INCS)
|
||||
|
||||
!ifdef BAL_INTERFACE
|
||||
INCS = \
|
||||
-I..\..\bal\ \
|
||||
-I..\..\bal\win32 \
|
||||
$(INCS) \
|
||||
$(NULL)
|
||||
!else
|
||||
INCS = \
|
||||
-I$(JDKHOME)\include \
|
||||
-I$(JDKHOME)\include\win32 \
|
||||
$(INCS) \
|
||||
$(NULL)
|
||||
!endif
|
||||
|
||||
!CMDSWITCHES -S
|
||||
|
||||
clobber_all:: clobber
|
||||
|
||||
edburns:
|
||||
@echo $(INCS)
|
|
@ -0,0 +1,99 @@
|
|||
/* -*- 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;
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class org_mozilla_webclient_wrapper_0005fnative_win32_Win32BrowserControlCanvas */
|
||||
|
||||
#ifndef _Included_org_mozilla_webclient_wrapper_0005fnative_win32_Win32BrowserControlCanvas
|
||||
#define _Included_org_mozilla_webclient_wrapper_0005fnative_win32_Win32BrowserControlCanvas
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 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 *, jobject);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
Загрузка…
Ссылка в новой задаче