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:
edburns%acm.org
2004-04-20 16:17:43 +00:00
parent f441c02895
commit c1919441ed
16 changed files with 262 additions and 139 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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);
//

View File

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

View File

@@ -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;