diff --git a/mozilla/java/webclient/build-tests.xml b/mozilla/java/webclient/build-tests.xml
index 2eb6cf58d08..eab2b4dba90 100644
--- a/mozilla/java/webclient/build-tests.xml
+++ b/mozilla/java/webclient/build-tests.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/mozilla/java/webclient/build.xml b/mozilla/java/webclient/build.xml
index bc447336896..83625dc333c 100644
--- a/mozilla/java/webclient/build.xml
+++ b/mozilla/java/webclient/build.xml
@@ -93,7 +93,7 @@
-
@@ -146,7 +146,7 @@
+ class="org.mozilla.webclient.impl.wrapper_native.Win32BrowserControlCanvas">
diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
index 3eb5d352721..705c35e3fc7 100644
--- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
+++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java
@@ -52,7 +52,7 @@ import java.awt.*;
* See concrete subclasses for scope info.
- * @version $Id: BrowserControlCanvas.java,v 1.6 2003-09-06 06:26:45 edburns%acm.org Exp $
+ * @version $Id: BrowserControlCanvas.java,v 1.7 2004-04-20 16:17:41 edburns%acm.org Exp $
* @see org.mozilla.webclient.win32.Win32BrowserControlCanvas
@@ -227,6 +227,9 @@ protected Rectangle getBoundsRelativeToWindow ()
public void setBounds(int x, int y, int w, int h)
{
+ if (!initializeOK) {
+ throw new IllegalStateException("Can't resize canvas before adding it to parent");
+ }
super.setBounds(x, y, w, h);
Rectangle boundsRect = new Rectangle(0, 0, w - 1, h - 1);
if (webShell != null) {
@@ -255,6 +258,20 @@ public void setBounds(Rectangle rect)
super.setBounds(rect);
}
+public void setVisible(boolean b) {
+ try {
+ WindowControl wc = (WindowControl)
+ webShell.queryInterface(BrowserControl.WINDOW_CONTROL_NAME);
+ wc.setVisible(b);
+ }
+ catch(Exception ex) {
+ System.out.println("Can't setVisible(" + b + ") " +
+ ex.getMessage());
+
+ }
+ super.setVisible(b);
+}
+
} // class BrowserControlCanvas
diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
index a0a20cd2979..56f81167224 100644
--- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
+++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java
@@ -186,7 +186,12 @@ public Object queryInterface(String interfaceName) throws ClassNotFoundException
return history;
}
if (BROWSER_CONTROL_CANVAS_NAME.equals(interfaceName)) {
- Assert.assert_it(null != myCanvas);
+ if (null == myCanvas) {
+ myCanvas =
+ (BrowserControlCanvas)
+ wrapperFactory.newImpl(BROWSER_CONTROL_CANVAS_NAME,
+ this);
+ }
return myCanvas;
}
if (CURRENT_PAGE_NAME.equals(interfaceName)) {
diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java
similarity index 73%
rename from mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java
rename to mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java
index b09d7a62984..1e1fc034b95 100644
--- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java
+++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java
@@ -1,5 +1,4 @@
-/* -*- 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
@@ -20,7 +19,7 @@
* Contributor(s):
*/
-package org.mozilla.webclient.impl.wrapper_native.win32;
+package org.mozilla.webclient.impl.wrapper_native;
// Win32BrowserControlCanvas.java
@@ -28,6 +27,9 @@ import org.mozilla.util.Assert;
import org.mozilla.util.Log;
import org.mozilla.util.ParameterCheck;
+import org.mozilla.webclient.impl.wrapper_native.WCRunnable;
+import org.mozilla.webclient.impl.wrapper_native.NativeEventThread;
+
/**
* Win32RaptorCanvas provides a concrete realization
@@ -37,7 +39,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 2003-09-28 06:29:10 edburns%acm.org Exp $
+ * @version $Id: Win32BrowserControlCanvas.java,v 1.1 2004-04-20 16:17:41 edburns%acm.org Exp $
*
* @see org.mozilla.webclient.BrowserControlCanvasFactory
*
@@ -64,7 +66,15 @@ public class Win32BrowserControlCanvas extends BrowserControlCanvas {
*
* @returns The native window handle.
*/
- protected int getWindow() {
- return this.getHandleToPeer();
- }
+ protected int getWindow() {
+ Integer result = (Integer)
+ NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable(){
+ public Object run() {
+ Integer result =
+ new Integer(Win32BrowserControlCanvas.this.getHandleToPeer());
+ return result;
+ }
+ });
+ return result.intValue();
+ }
}
diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
index 6497e0894e7..7b85c43d047 100644
--- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
+++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java
@@ -1,5 +1,4 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- *
+/*
* 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
@@ -79,23 +78,41 @@ public WindowControlImpl(WrapperFactory yourFactory,
// Methods from WindowControl
//
-public void setBounds(Rectangle newBounds)
+public void setBounds(Rectangle rect)
{
- ParameterCheck.nonNull(newBounds);
+ ParameterCheck.nonNull(rect);
getWrapperFactory().verifyInitialized();
Assert.assert_it(-1 != getNativeBrowserControl());
-
- synchronized(getBrowserControl()) {
- nativeSetBounds(getNativeBrowserControl(), newBounds.x, newBounds.y,
- newBounds.width, newBounds.height);
- }
+ final Rectangle newBounds = rect;
+ NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
+ public Object run() {
+ nativeSetBounds(getNativeBrowserControl(),
+ newBounds.x, newBounds.y,
+ newBounds.width, newBounds.height);
+ return null;
+ }
+ });
}
-public void createWindow(int nativeWindow, Rectangle bounds)
+public void createWindow(int nativeWindow, Rectangle rect)
{
ParameterCheck.greaterThan(nativeWindow, 0);
- ParameterCheck.nonNull(bounds);
+ ParameterCheck.nonNull(rect);
getWrapperFactory().verifyInitialized();
+ final int nativeWin = nativeWindow;
+ final int nativeBc = getNativeBrowserControl();
+ final BrowserControl bc = getBrowserControl();
+ final Rectangle bounds = rect;
+ NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
+ public Object run() {
+ nativeRealize(nativeWin, nativeBc, bounds.x,
+ bounds.y, bounds.width,
+ bounds.height, bc);
+ return null;
+ }
+ });
+
+
}
public int getNativeWebShell()
@@ -134,10 +151,13 @@ public void repaint(boolean forceRepaint)
public void setVisible(boolean newState)
{
getWrapperFactory().verifyInitialized();
-
- synchronized(getBrowserControl()) {
- nativeSetVisible(getNativeBrowserControl(), newState);
- }
+ final boolean finalBool = newState;
+ NativeEventThread.instance.pushBlockingWCRunnable(new WCRunnable() {
+ public Object run() {
+ nativeSetVisible(getNativeBrowserControl(), finalBool);
+ return null;
+ }
+ });
}
public void setFocus()
@@ -152,6 +172,11 @@ public void setFocus()
// Native methods
//
+public native void nativeRealize(int nativeWindow,
+ int nativeBrowserControl,
+ int x, int y, int width, int height,
+ BrowserControl myBrowserControlImpl);
+
public native void nativeSetBounds(int webShellPtr, int x, int y,
int w, int h);
@@ -178,7 +203,7 @@ public static void main(String [] args)
Log.setApplicationName("WindowControlImpl");
Log.setApplicationVersion("0.0");
- Log.setApplicationVersionDate("$Id: WindowControlImpl.java,v 1.3 2004-04-10 21:50:38 edburns%acm.org Exp $");
+ Log.setApplicationVersionDate("$Id: WindowControlImpl.java,v 1.4 2004-04-20 16:17:41 edburns%acm.org Exp $");
try {
org.mozilla.webclient.BrowserControlFactory.setAppData(args[0]);
diff --git a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
index de9443f3a52..14039dd279c 100644
--- a/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
+++ b/mozilla/java/webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java
@@ -26,6 +26,7 @@ import org.mozilla.util.Log;
import org.mozilla.util.ParameterCheck;
import org.mozilla.webclient.BrowserControl;
+import org.mozilla.webclient.BrowserControlCanvas;
import org.mozilla.webclient.impl.BrowserControlImpl;
import org.mozilla.webclient.Bookmarks;
import org.mozilla.webclient.Preferences;
@@ -201,43 +202,56 @@ public class WrapperFactoryImpl extends Object implements WrapperFactory {
public Object newImpl(String interfaceName,
BrowserControl browserControl) throws ClassNotFoundException {
- Object result = null;
- synchronized(this) {
- if (!nativeDoesImplement(interfaceName)) {
- throw new ClassNotFoundException("Can't instantiate " +
- interfaceName +
- ": not implemented.");
+ if (BrowserControl.BROWSER_CONTROL_CANVAS_NAME == interfaceName) {
+ Class bcClass = Class.forName(getPlatformCanvasClassName());
+ BrowserControlCanvas canvas = null;
+ try {
+ canvas = (BrowserControlCanvas) bcClass.newInstance();
}
- if (BrowserControl.WINDOW_CONTROL_NAME == interfaceName) {
- result = new WindowControlImpl(this, browserControl);
+ catch (IllegalAccessException e) {
+ throw new ClassNotFoundException(e.getMessage());
}
- if (BrowserControl.NAVIGATION_NAME == interfaceName) {
- result = new NavigationImpl(this, browserControl);
- }
- if (BrowserControl.HISTORY_NAME == interfaceName) {
- result = new HistoryImpl(this, browserControl);
- }
- if (BrowserControl.CURRENT_PAGE_NAME == interfaceName) {
- result = new CurrentPageImpl(this, browserControl);
- }
- if (BrowserControl.EVENT_REGISTRATION_NAME == interfaceName) {
- result = new EventRegistrationImpl(this, browserControl);
- }
- if (BrowserControl.BOOKMARKS_NAME == interfaceName) {
- Assert.assert_it(null != bookmarks);
- result = bookmarks;
- }
- if (BrowserControl.PREFERENCES_NAME == interfaceName) {
- Assert.assert_it(null != prefs);
- result = prefs;
- }
- if (BrowserControl.PROFILE_MANAGER_NAME == interfaceName) {
- Assert.assert_it(null != profileManager);
- result = profileManager;
+ catch (InstantiationException e) {
+ throw new ClassNotFoundException(e.getMessage());
}
+ canvas.initialize(browserControl);
+ return canvas;
+ }
+
+ Object result = null;
+ if (!nativeDoesImplement(interfaceName)) {
+ throw new ClassNotFoundException("Can't instantiate " +
+ interfaceName +
+ ": not implemented.");
+ }
+ if (BrowserControl.WINDOW_CONTROL_NAME == interfaceName) {
+ result = new WindowControlImpl(this, browserControl);
+ }
+ if (BrowserControl.NAVIGATION_NAME == interfaceName) {
+ result = new NavigationImpl(this, browserControl);
+ }
+ if (BrowserControl.HISTORY_NAME == interfaceName) {
+ result = new HistoryImpl(this, browserControl);
+ }
+ if (BrowserControl.CURRENT_PAGE_NAME == interfaceName) {
+ result = new CurrentPageImpl(this, browserControl);
+ }
+ if (BrowserControl.EVENT_REGISTRATION_NAME == interfaceName) {
+ result = new EventRegistrationImpl(this, browserControl);
+ }
+ if (BrowserControl.BOOKMARKS_NAME == interfaceName) {
+ Assert.assert_it(null != bookmarks);
+ result = bookmarks;
+ }
+ if (BrowserControl.PREFERENCES_NAME == interfaceName) {
+ Assert.assert_it(null != prefs);
+ result = prefs;
+ }
+ if (BrowserControl.PROFILE_MANAGER_NAME == interfaceName) {
+ Assert.assert_it(null != profileManager);
+ result = profileManager;
}
-
return result;
}
@@ -379,7 +393,7 @@ protected String getPlatformCanvasClassName()
if (null != osName) {
if (-1 != osName.indexOf("indows")) {
- platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.win32.Win32BrowserControlCanvas";
+ platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.Win32BrowserControlCanvas";
}
else {
platformCanvasClassName = "org.mozilla.webclient.impl.wrapper_native.gtk.GtkBrowserControlCanvas";
diff --git a/mozilla/java/webclient/src_moz/EmbedWindow.cpp b/mozilla/java/webclient/src_moz/EmbedWindow.cpp
index cd415f75c77..cc9f2089da0 100644
--- a/mozilla/java/webclient/src_moz/EmbedWindow.cpp
+++ b/mozilla/java/webclient/src_moz/EmbedWindow.cpp
@@ -67,10 +67,9 @@ EmbedWindow::Init(NativeBrowserControl *aOwner)
}
nsresult
-EmbedWindow::CreateWindow_(void)
+EmbedWindow::CreateWindow_(PRUint32 width, PRUint32 height)
{
nsresult rv;
- int width, height;
#ifdef XP_UNIX
PR_ASSERT(PR_FALSE);
GtkWidget *ownerAsWidget (GTK_WIDGET(mOwner->parentHWnd));
@@ -78,25 +77,23 @@ EmbedWindow::CreateWindow_(void)
height = ownerAsWidget->allocation.height;
#else
HWND ownerAsWidget = mOwner->parentHWnd;
- width = 640; // PENDING(edburns): how to get the size of the parentHwnd
- height = 480;
#endif
-
- // Get the base window interface for the web browser object and
- // create the window.
- mBaseWindow = do_QueryInterface(mWebBrowser);
- rv = mBaseWindow->InitWindow(ownerAsWidget,
- nsnull,
- 0, 0,
- width, height);
- if (NS_FAILED(rv))
+
+ // Get the base window interface for the web browser object and
+ // create the window.
+ mBaseWindow = do_QueryInterface(mWebBrowser);
+ rv = mBaseWindow->InitWindow(ownerAsWidget,
+ nsnull,
+ 0, 0,
+ width, height);
+ if (NS_FAILED(rv))
+ return rv;
+
+ rv = mBaseWindow->Create();
+ if (NS_FAILED(rv))
return rv;
-
- rv = mBaseWindow->Create();
- if (NS_FAILED(rv))
- return rv;
-
- return NS_OK;
+
+ return NS_OK;
}
diff --git a/mozilla/java/webclient/src_moz/EmbedWindow.h b/mozilla/java/webclient/src_moz/EmbedWindow.h
index 226065f729d..37fa390516f 100644
--- a/mozilla/java/webclient/src_moz/EmbedWindow.h
+++ b/mozilla/java/webclient/src_moz/EmbedWindow.h
@@ -56,7 +56,7 @@ public:
virtual ~EmbedWindow();
nsresult Init (NativeBrowserControl *aOwner);
- nsresult CreateWindow_ (void);
+ nsresult CreateWindow_ (PRUint32 width, PRUint32 height);
void ReleaseChildren (void);
NS_DECL_ISUPPORTS
diff --git a/mozilla/java/webclient/src_moz/Makefile.in b/mozilla/java/webclient/src_moz/Makefile.in
index e4a9ab1e3e5..dbeb7dbbbf5 100644
--- a/mozilla/java/webclient/src_moz/Makefile.in
+++ b/mozilla/java/webclient/src_moz/Makefile.in
@@ -97,7 +97,6 @@ REQUIRES = xpcom \
# NativeEventThreadActionEvents.cpp \
# NavigationActionEvents.cpp \
# InputStreamShim.cpp \
-# WindowControlImpl.cpp \
# WindowControlActionEvents.cpp \
# WindowCreator.cpp \
@@ -118,6 +117,7 @@ CPPSRCS = \
PreferencesImpl.cpp \
ProfileManagerImpl.cpp \
WrapperFactoryImpl.cpp \
+ WindowControlImpl.cpp \
$(NULL)
ifeq ($(OS_ARCH),Linux)
diff --git a/mozilla/java/webclient/src_moz/NativeBrowserControl.cpp b/mozilla/java/webclient/src_moz/NativeBrowserControl.cpp
index d39285337ca..5d2f19ff146 100644
--- a/mozilla/java/webclient/src_moz/NativeBrowserControl.cpp
+++ b/mozilla/java/webclient/src_moz/NativeBrowserControl.cpp
@@ -83,9 +83,29 @@ NativeBrowserControl::Init()
}
nsresult
-NativeBrowserControl::Realize(void *parentWinPtr, PRBool *aAlreadyRealized)
+NativeBrowserControl::Realize(void *parentWinPtr, PRBool *aAlreadyRealized,
+ PRUint32 width, PRUint32 height)
{
- return NS_ERROR_NOT_IMPLEMENTED;
+ // Create our session history object and tell the navigation object
+ // to use it. We need to do this before we create the web browser
+ // window.
+ mSessionHistory = do_CreateInstance(NS_SHISTORY_CONTRACTID);
+ mNavigation->SetSessionHistory(mSessionHistory);
+
+#ifdef XP_UNIX
+ PR_ASSERT(PR_FALSE);
+ GtkWidget *ownerAsWidget (GTK_WIDGET(parentWinPtr));
+ parentHWnd = ownerAsWidget;
+ width = ownerAsWidget->allocation.width;
+ height = ownerAsWidget->allocation.height;
+#else
+ parentHWnd = (HWND) parentWinPtr;
+#endif
+
+ // create the window
+ mWindow->CreateWindow_(width, height);
+
+ return NS_OK;
}
void
@@ -96,16 +116,34 @@ NativeBrowserControl::Unrealize(void)
void
NativeBrowserControl::Show(void)
{
+ // Get the nsIWebBrowser object for our embedded window.
+ nsCOMPtr webBrowser;
+ mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
+
+ // and set the visibility on the thing
+ nsCOMPtr baseWindow = do_QueryInterface(webBrowser);
+ baseWindow->SetVisibility(PR_TRUE);
}
void
NativeBrowserControl::Hide(void)
{
+ // Get the nsIWebBrowser object for our embedded window.
+ nsCOMPtr webBrowser;
+ mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
+
+ // and set the visibility on the thing
+ nsCOMPtr baseWindow = do_QueryInterface(webBrowser);
+ baseWindow->SetVisibility(PR_FALSE);
}
void
-NativeBrowserControl::Resize(PRUint32 aWidth, PRUint32 aHeight)
+NativeBrowserControl::Resize(PRUint32 x, PRUint32 y,
+ PRUint32 aWidth, PRUint32 aHeight)
{
+ mWindow->SetDimensions(nsIEmbeddingSiteWindow::DIM_FLAGS_POSITION |
+ nsIEmbeddingSiteWindow::DIM_FLAGS_SIZE_INNER,
+ x, y, aWidth, aHeight);
}
void
diff --git a/mozilla/java/webclient/src_moz/NativeBrowserControl.h b/mozilla/java/webclient/src_moz/NativeBrowserControl.h
index ec2d7731e41..9087a00af71 100644
--- a/mozilla/java/webclient/src_moz/NativeBrowserControl.h
+++ b/mozilla/java/webclient/src_moz/NativeBrowserControl.h
@@ -60,11 +60,14 @@ public:
//
nsresult Init ();
- nsresult Realize (void* parentWinPtr, PRBool *aAlreadyRealized);
+ nsresult Realize (void* parentWinPtr,
+ PRBool *aAlreadyRealized,
+ PRUint32 width, PRUint32 height);
void Unrealize (void);
void Show (void);
void Hide (void);
- void Resize (PRUint32 aWidth, PRUint32 aHeight);
+ void Resize (PRUint32 x, PRUint32 y,
+ PRUint32 aWidth, PRUint32 aHeight);
void Destroy (void);
//
diff --git a/mozilla/java/webclient/src_moz/WindowControlImpl.cpp b/mozilla/java/webclient/src_moz/WindowControlImpl.cpp
index 686d1248e9e..6e6764d6910 100644
--- a/mozilla/java/webclient/src_moz/WindowControlImpl.cpp
+++ b/mozilla/java/webclient/src_moz/WindowControlImpl.cpp
@@ -28,35 +28,46 @@
#include "org_mozilla_webclient_impl_wrapper_0005fnative_WindowControlImpl.h"
-#include "WindowControlActionEvents.h"
-
#include "ns_util.h"
-#include "nsIThread.h" // for PRThread
+#include "NativeBrowserControl.h"
-#include "nsCOMPtr.h" // to get nsIBaseWindow from webshell
-#include "nsIBaseWindow.h" // to get methods like SetVisibility
+JNIEXPORT void JNICALL Java_org_mozilla_webclient_wrapper_1native_WindowControlImpl_nativeRealize
+(JNIEnv *env, jobject obj, jint windowPtr, jint nativeBCPtr, jint x, jint y,
+ jint width, jint height, jobject aBrowserControlImpl)
+{
+ NativeBrowserControl* nativeBrowserControl = (NativeBrowserControl *) nativeBCPtr;
+
+ if (nativeBrowserControl == nsnull) {
+ ::util_ThrowExceptionToJava(env, "Exception: null passed to nativeRealize");
+ return;
+ }
+ PRBool alreadyRealized;
+
+#ifdef XP_UNIX
+ int gtkWinPtr =
+ (int)::util_GetGTKWinPtrFromCanvas(env, aBrowserControlImpl);
+ // PENDING set this into the nativeBrowserControl for use later
+#endif
+
+ nativeBrowserControl->Realize((void *) windowPtr, &alreadyRealized,
+ width, height);
+}
JNIEXPORT void JNICALL
Java_org_mozilla_webclient_impl_wrapper_1native_WindowControlImpl_nativeSetBounds
-(JNIEnv *env, jobject obj, jint webShellPtr, jint x, jint y, jint w, jint h)
+(JNIEnv *env, jobject obj, jint nativeBCPtr, jint x, jint y, jint w, jint h)
{
- NativeBrowserControl* initContext = (NativeBrowserControl *) webShellPtr;
-
- if (initContext == nsnull) {
- ::util_ThrowExceptionToJava(env, "Exception: null webShellPtr passed to nativeSetBounds");
- return;
- }
- if (initContext->initComplete) {
- wsResizeEvent * actionEvent =
- new wsResizeEvent(initContext->baseWindow, x, y, w, h);
- PLEvent * event = (PLEvent*) *actionEvent;
-
- ::util_PostEvent(initContext, event);
- }
+ NativeBrowserControl* nativeBrowserControl = (NativeBrowserControl *) nativeBCPtr;
+ if (nativeBrowserControl == nsnull) {
+ ::util_ThrowExceptionToJava(env, "Exception: null passed to nativeRealize");
+ return;
+ }
+ nativeBrowserControl->Resize(x, y, w, h);
}
+/********************
JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowControlImpl_nativeMoveWindowTo
(JNIEnv *env, jobject obj, jint webShellPtr, jint x, jint y)
{
@@ -112,23 +123,28 @@ JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowCon
}
-JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowControlImpl_nativeSetVisible
-(JNIEnv *env, jobject obj, jint webShellPtr, jboolean newState)
-{
+*********************/
- NativeBrowserControl* initContext = (NativeBrowserControl *) webShellPtr;
- if (initContext == nsnull) {
- ::util_ThrowExceptionToJava(env, "Exception: null webShellPtr passed to raptorWebShellRepaint");
- return;
- }
- if (initContext->initComplete) {
- wsShowEvent * actionEvent = new wsShowEvent(initContext->baseWindow, JNI_TRUE == newState ? PR_TRUE : PR_FALSE);
- PLEvent * event = (PLEvent*) *actionEvent;
- ::util_PostEvent(initContext, event);
- }
+JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowControlImpl_nativeSetVisible
+(JNIEnv *env, jobject obj, jint nativeBCPtr, jboolean newState)
+{
+ NativeBrowserControl* nativeBrowserControl = (NativeBrowserControl *) nativeBCPtr;
+
+ if (nativeBrowserControl == nsnull) {
+ ::util_ThrowExceptionToJava(env, "Exception: null passed to nativeRealize");
+ return;
+ }
+ if (newState) {
+ nativeBrowserControl->Show();
+ }
+ else {
+ nativeBrowserControl->Hide();
+ }
}
+/******************
+
JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowControlImpl_nativeSetFocus
(JNIEnv *env, jobject obj, jint webShellPtr)
{
@@ -146,3 +162,4 @@ JNIEXPORT void JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_WindowCon
::util_PostEvent(initContext, event);
}
}
+*********************/
diff --git a/mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp b/mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
index e05c7a2ba07..f8a12376bd2 100644
--- a/mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
+++ b/mozilla/java/webclient/src_moz/win32/Win32BrowserControlCanvas.cpp
@@ -32,16 +32,16 @@
typedef jboolean (JNICALL *PJAWT_GETAWT)(JNIEnv*, JAWT*);
-#include "org_mozilla_webclient_impl_wrapper_0005fnative_win32_Win32BrowserControlCanvas.h"
+#include "org_mozilla_webclient_impl_wrapper_0005fnative_Win32BrowserControlCanvas.h"
#include "jni_util.h" //for throwing Exceptions to Java
/*
- * Class: org_mozilla_webclient_impl_wrapper_0005fnative_win32_Win32BrowserControlCanvas
+ * Class: org_mozilla_webclient_impl_wrapper_0005fnative_Win32BrowserControlCanvas
* Method: getHandleToPeer
* Signature: ()I
*/
-JNIEXPORT jint JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_win32_Win32BrowserControlCanvas_getHandleToPeer
+JNIEXPORT jint JNICALL Java_org_mozilla_webclient_impl_wrapper_1native_Win32BrowserControlCanvas_getHandleToPeer
(JNIEnv *env, jobject canvas) {
JAWT awt;
JAWT_DrawingSurface* ds;
diff --git a/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java b/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
index 925a38fd35b..af1f7c9078a 100644
--- a/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
+++ b/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/NavigationTest.java
@@ -1,5 +1,5 @@
/*
- * $Id: NavigationTest.java,v 1.1 2004-03-05 15:34:24 edburns%acm.org Exp $
+ * $Id: NavigationTest.java,v 1.2 2004-04-20 16:17:42 edburns%acm.org Exp $
*/
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -30,8 +30,9 @@ import junit.framework.TestSuite;
import junit.framework.Test;
import java.util.Enumeration;
-import javax.swing.tree.TreeModel;
-import javax.swing.tree.TreeNode;
+
+import java.awt.Frame;
+import java.awt.BorderLayout;
import java.io.File;
@@ -60,7 +61,15 @@ public class NavigationTest extends WebclientTestCase {
BrowserControlFactory.setAppData(getBrowserBinDir());
firstBrowserControl = BrowserControlFactory.newBrowserControl();
assertNotNull(firstBrowserControl);
-
+ BrowserControlCanvas canvas = (BrowserControlCanvas)
+ firstBrowserControl.queryInterface(BrowserControl.BROWSER_CONTROL_CANVAS_NAME);
+ assertNotNull(canvas);
+ Frame frame = new Frame();
+ frame.setUndecorated(true);
+ frame.setBounds(0, 0, 640, 480);
+ frame.add(canvas, BorderLayout.CENTER);
+ frame.setVisible(true);
+
Navigation nav = (Navigation)
firstBrowserControl.queryInterface(BrowserControl.NAVIGATION_NAME);
assertNotNull(nav);
diff --git a/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java b/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
index b7ea731224a..c1f4265db9a 100644
--- a/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
+++ b/mozilla/java/webclient/test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java
@@ -1,5 +1,5 @@
/*
- * $Id: WrapperFactoryImplTest.java,v 1.3 2004-04-15 22:58:08 edburns%acm.org Exp $
+ * $Id: WrapperFactoryImplTest.java,v 1.4 2004-04-20 16:17:43 edburns%acm.org Exp $
*/
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
@@ -67,16 +67,4 @@ public class WrapperFactoryImplTest extends WebclientTestCase {
}
}
- public void testGetNativeBrowserControl() throws Exception {
- assertTrue(false);
- /**
- WrapperFactoryImpl wrapper = new WrapperFactoryImpl();
- wrapper.initialize(getBrowserBinDir());
- BrowserControl bc = new BrowserControlImpl(wrapper);
-
- assertTrue(-1 != wrapper.getNativeBrowserControl(bc));
- BrowserControlFactory.deleteBrowserControl(bc);
- **/
- }
-
}