M build-tests.xml
- make NavigationTest not run M build.xml - Move Win32BrowserControlCanvas up to parent package M classes_spec/org/mozilla/webclient/BrowserControlCanvas.java - You can't resize until you're initialized - pass visibility through to native layer M classes_spec/org/mozilla/webclient/impl/BrowserControlImpl.java - Use WrapperFactory to create the BrowserControlCanvas impl. A classes_spec/org/mozilla/webclient/impl/wrapper_native/Win32BrowserControlCanvas.java - moved up from child package M classes_spec/org/mozilla/webclient/impl/wrapper_native/WindowControlImpl.java - use the new thread model for nativeSetBounds(), nativeRealize(), nativeSetVisible(). M classes_spec/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImpl.java - make this create the BrowserControlCanvas instance. - honor the new package name for Win32BrowserControlCanvas. R classes_spec/org/mozilla/webclient/impl/wrapper_native/win32/Win32BrowserControlCanvas.java - moved up one level. M src_moz/EmbedWindow.cpp M src_moz/EmbedWindow.h - Take size parameters to CreateWindow_ M src_moz/Makefile.in - add WindowControlImpl.cpp M src_moz/NativeBrowserControl.cpp M src_moz/NativeBrowserControl.h - add size parameters to Realize(). M src_moz/WindowControlImpl.cpp - reactivate nativeRealize(), nativeSetVisible(), nativesetBounds(), M src_moz/win32/Win32BrowserControlCanvas.cpp - new package name M test/automated/src/classes/org/mozilla/webclient/NavigationTest.java - we have to create a Canvas to load a URL. Mozilla limitation. M test/automated/src/classes/org/mozilla/webclient/impl/wrapper_native/WrapperFactoryImplTest.java - remove unneeded test metdod git-svn-id: svn://10.0.0.236/trunk@155219 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -93,7 +93,7 @@
|
||||
</patternset>
|
||||
|
||||
<patternset>
|
||||
<include name="org/mozilla/webclient/impl/wrapper_native/win32/*"
|
||||
<include name="org/mozilla/webclient/impl/wrapper_native/Win32*"
|
||||
if="build.win32.classes"/>
|
||||
</patternset>
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
<target name="compile.win32.canvas.headers" if="build.win32.classes">
|
||||
|
||||
<javah destdir="${basedir}/src_moz/win32"
|
||||
class="org.mozilla.webclient.impl.wrapper_native.win32.Win32BrowserControlCanvas">
|
||||
class="org.mozilla.webclient.impl.wrapper_native.Win32BrowserControlCanvas">
|
||||
<classpath refid="compile.classpath"/>
|
||||
</javah>
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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]);
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<nsIWebBrowser> webBrowser;
|
||||
mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
|
||||
|
||||
// and set the visibility on the thing
|
||||
nsCOMPtr<nsIBaseWindow> baseWindow = do_QueryInterface(webBrowser);
|
||||
baseWindow->SetVisibility(PR_TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
NativeBrowserControl::Hide(void)
|
||||
{
|
||||
// Get the nsIWebBrowser object for our embedded window.
|
||||
nsCOMPtr<nsIWebBrowser> webBrowser;
|
||||
mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
|
||||
|
||||
// and set the visibility on the thing
|
||||
nsCOMPtr<nsIBaseWindow> 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
|
||||
|
||||
@@ -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);
|
||||
|
||||
//
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
*********************/
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
**/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user