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); - **/ - } - }