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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user