зеркало из https://github.com/mozilla/pjs.git
work on getting status messages to the widget that is embedding. link gtk libraries explicitely for platforms that need all symbols resolved at compile time.
This commit is contained in:
Родитель
ca266f01cc
Коммит
3f17f6c4c3
|
@ -21,9 +21,9 @@
|
|||
|
||||
#include "GtkMozEmbedChrome.h"
|
||||
#include "nsCWebBrowser.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsCRT.h"
|
||||
|
||||
static NS_DEFINE_CID(kWebBrowserCID, NS_WEBBROWSER_CID);
|
||||
#include "prlog.h"
|
||||
|
||||
// this is a define to make sure that we don't call certain function
|
||||
// before the object has been properly initialized
|
||||
|
@ -34,21 +34,29 @@ static NS_DEFINE_CID(kWebBrowserCID, NS_WEBBROWSER_CID);
|
|||
return NS_ERROR_NOT_INITIALIZED; \
|
||||
PR_END_MACRO
|
||||
|
||||
static PRLogModuleInfo *mozEmbedLm = NULL;
|
||||
|
||||
// constructor and destructor
|
||||
GtkMozEmbedChrome::GtkMozEmbedChrome()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
mNewBrowserCB = nsnull;
|
||||
mNewBrowserCB = nsnull;
|
||||
mNewBrowserCBData = nsnull;
|
||||
mDestroyCB = nsnull;
|
||||
mDestroyCBData = nsnull;
|
||||
mVisibilityCB = nsnull;
|
||||
mDestroyCB = nsnull;
|
||||
mDestroyCBData = nsnull;
|
||||
mVisibilityCB = nsnull;
|
||||
mVisibilityCBData = nsnull;
|
||||
mBounds.x = 0;
|
||||
mBounds.y = 0;
|
||||
mBounds.width = 0;
|
||||
mBounds.height = 0;
|
||||
mVisibility = PR_FALSE;
|
||||
mBounds.x = 0;
|
||||
mBounds.y = 0;
|
||||
mBounds.width = 0;
|
||||
mBounds.height = 0;
|
||||
mVisibility = PR_FALSE;
|
||||
mLinkMessage = NULL;
|
||||
mJSStatus = NULL;
|
||||
mLocation = NULL;
|
||||
mTitle = NULL;
|
||||
if (!mozEmbedLm)
|
||||
mozEmbedLm = PR_NewLogModule("GtkMozEmbedChrome");
|
||||
}
|
||||
|
||||
GtkMozEmbedChrome::~GtkMozEmbedChrome()
|
||||
|
@ -74,14 +82,14 @@ NS_INTERFACE_MAP_END
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::Init(GtkWidget *aOwningWidget)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::Init\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::Init\n"));
|
||||
mOwningGtkWidget = aOwningWidget;
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetNewBrowserCallback(GtkMozEmbedChromeCB *aCallback, void *aData)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetNewBrowserCallback\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetNewBrowserCallback\n"));
|
||||
NS_ENSURE_ARG_POINTER(aCallback);
|
||||
// it's ok to pass in null for the data if you want...
|
||||
mNewBrowserCB = aCallback;
|
||||
|
@ -91,7 +99,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetNewBrowserCallback(GtkMozEmbedChromeCB *aCal
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetDestroyCallback(GtkMozEmbedDestroyCB *aCallback, void *aData)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetDestroyCallback\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetDestroyCallback\n"));
|
||||
NS_ENSURE_ARG_POINTER(aCallback);
|
||||
mDestroyCB = aCallback;
|
||||
mDestroyCBData = aData;
|
||||
|
@ -100,7 +108,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetDestroyCallback(GtkMozEmbedDestroyCB *aCallb
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetVisibilityCallback(GtkMozEmbedVisibilityCB *aCallback, void *aData)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetVisibilityCallback\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetVisibilityCallback\n"));
|
||||
NS_ENSURE_ARG_POINTER(aCallback);
|
||||
mVisibilityCB = aCallback;
|
||||
mVisibilityCBData = aData;
|
||||
|
@ -109,18 +117,41 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetVisibilityCallback(GtkMozEmbedVisibilityCB *
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetLinkMessage (const char **retval)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetLinkMessage\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetLinkMessage\n"));
|
||||
NS_ENSURE_ARG_POINTER(retval);
|
||||
*retval = mLinkMessage;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetJSStatus (const char **retval)
|
||||
{
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetJSStatus\n"));
|
||||
NS_ENSURE_ARG_POINTER(retval);
|
||||
*retval = mJSStatus;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetLocation (const char **retval)
|
||||
{
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetLocation\n"));
|
||||
NS_ENSURE_ARG_POINTER(retval);
|
||||
*retval = mLocation;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetTitleChar (const char **retval)
|
||||
{
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetTitleChar\n"));
|
||||
NS_ENSURE_ARG_POINTER(retval);
|
||||
*retval = mTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// nsIInterfaceRequestor interface
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetInterface(const nsIID &aIID, void** aInstancePtr)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetInterface\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetInterface\n"));
|
||||
return QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
|
||||
|
@ -128,53 +159,56 @@ NS_IMETHODIMP GtkMozEmbedChrome::GetInterface(const nsIID &aIID, void** aInstanc
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetJSStatus(const PRUnichar *status)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetJSStatus\n");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetJSStatus\n"));
|
||||
nsString jsStatusString(status);
|
||||
mJSStatus = jsStatusString.ToNewCString();
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("js status is %s\n", (const char *)mJSStatus));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetJSDefaultStatus(const PRUnichar *status)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetJSDefaultStatus\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetJSDefaultStatus\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetOverLink(const PRUnichar *link)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetOverLink\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetOverLink\n"));
|
||||
nsString linkMessageString(link);
|
||||
mLinkMessage = linkMessageString.ToNewCString();
|
||||
g_print("message is %s\n", (const char *)mLinkMessage);
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("message is %s\n", (const char *)mLinkMessage));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetWebBrowser(nsIWebBrowser * *aWebBrowser)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetWebBrowser\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetWebBrowser\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetWebBrowser(nsIWebBrowser * aWebBrowser)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetWebBrowser\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetWebBrowser\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetChromeMask(PRUint32 *aChromeMask)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetChromeMask\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetChromeMask\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetChromeMask(PRUint32 aChromeMask)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetChromeMask\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetChromeMask\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetNewBrowser(PRUint32 chromeMask,
|
||||
nsIWebBrowser **_retval)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetNewBrowser\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetNewBrowser\n"));
|
||||
NS_ENSURE_STATE(mNewBrowserCB);
|
||||
if (mNewBrowserCB)
|
||||
{
|
||||
|
@ -186,19 +220,19 @@ NS_IMETHODIMP GtkMozEmbedChrome::GetNewBrowser(PRUint32 chromeMask,
|
|||
NS_IMETHODIMP GtkMozEmbedChrome::FindNamedBrowserItem(const PRUnichar *aName,
|
||||
nsIDocShellTreeItem **_retval)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::FindNamedBrowserItem\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::FindNamedBrowserItem\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SizeBrowserTo(PRInt32 aCX, PRInt32 aCY)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SizeBrowserTo\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SizeBrowserTo\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::ShowAsModal(void)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::ShowAsModal\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::ShowAsModal\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@ -206,13 +240,13 @@ NS_IMETHODIMP GtkMozEmbedChrome::ShowAsModal(void)
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::OnStartURIOpen(nsIURI *aURI, const char *aWindowTarget, PRBool *aAbortOpen)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnStartURIOpen\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnStartURIOpen\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetProtocolHandler(nsIURI *aURI, nsIProtocolHandler **aProtocolHandler)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetProtocolHandler\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetProtocolHandler\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@ -220,7 +254,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::DoContent(const char *aContentType, nsURILoadCo
|
|||
const char *aWindowTarget, nsIChannel *aOpenedChannel,
|
||||
nsIStreamListener **aContentHandler, PRBool *aAbortProcess)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::DoContent\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::DoContent\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@ -228,11 +262,11 @@ NS_IMETHODIMP GtkMozEmbedChrome::IsPreferred(const char *aContentType, nsURILoad
|
|||
const char *aWindowTarget, char **aDesiredContentType,
|
||||
PRBool *aCanHandleContent)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::IsPreferred\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::IsPreferred\n"));
|
||||
NS_ENSURE_ARG_POINTER(aCanHandleContent);
|
||||
if (aContentType)
|
||||
{
|
||||
g_print("checking content type %s\n", aContentType);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("checking content type %s\n", aContentType));
|
||||
if (nsCRT::strcasecmp(aContentType, "text/html") == 0
|
||||
|| nsCRT::strcasecmp(aContentType, "text/xul") == 0
|
||||
|| nsCRT::strcasecmp(aContentType, "text/rdf") == 0
|
||||
|
@ -255,31 +289,31 @@ NS_IMETHODIMP GtkMozEmbedChrome::CanHandleContent(const char *aContentType, nsUR
|
|||
const char *aWindowTarget, char **aDesiredContentType,
|
||||
PRBool *_retval)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::CanHandleContent\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::CanHandleContent\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetLoadCookie(nsISupports * *aLoadCookie)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetLoadCookie\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetLoadCookie\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetLoadCookie(nsISupports * aLoadCookie)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetLoadCookie\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetLoadCookie\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetParentContentListener(nsIURIContentListener * *aParentContentListener)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetParentContentListener\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetParentContentListener\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetParentContentListener(nsIURIContentListener * aParentContentListener)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetParentContentListener\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetParentContentListener\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@ -289,16 +323,17 @@ NS_IMETHODIMP GtkMozEmbedChrome::OnProgressChange(nsIChannel *channel, PRInt32 c
|
|||
PRInt32 maxSelfProgress, PRInt32 curTotalProgress,
|
||||
PRInt32 maxTotalProgress)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnProgressChange\n");
|
||||
g_print("maxTotalProgress is %d and curTotalProgress is %d\n", maxTotalProgress, curTotalProgress);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnProgressChange\n"));
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("maxTotalProgress is %d and curTotalProgress is %d\n",
|
||||
maxTotalProgress, curTotalProgress));
|
||||
if (maxTotalProgress)
|
||||
{
|
||||
PRUint32 percentage = (curTotalProgress * 100) / maxTotalProgress;
|
||||
g_print("%d%% percent\n", percentage);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("%d%% percent\n", percentage));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_print("Unknown percent\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("Unknown percent\n"));
|
||||
}
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -306,52 +341,57 @@ NS_IMETHODIMP GtkMozEmbedChrome::OnProgressChange(nsIChannel *channel, PRInt32 c
|
|||
NS_IMETHODIMP GtkMozEmbedChrome::OnChildProgressChange(nsIChannel *channel, PRInt32 curChildProgress,
|
||||
PRInt32 maxChildProgress)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnChildProgressChange\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnChildProgressChange\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::OnStatusChange(nsIChannel *channel, PRInt32 aStatus)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnStatusChange\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnStatusChange\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_start)
|
||||
g_print("flag_net_start\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_start\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_dns)
|
||||
g_print("flag_net_dns\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_dns\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_connecting)
|
||||
g_print("flag_net_connecting\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_connecting\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_redirecting)
|
||||
g_print("flag_net_redirecting\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_redirecting\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_negotiating)
|
||||
g_print("flag_net_negotiating\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_negotiating\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_transferring)
|
||||
g_print("flag_net_transferring\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_transferring\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_failedDNS)
|
||||
g_print("flag_net_failedDNS\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_failedDNS\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_failedConnect)
|
||||
g_print("flag_net_failedConnect\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_failedConnect\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_failedTransfer)
|
||||
g_print("flag_net_failedTransfer\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_failedTransfer\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_failedTimeout)
|
||||
g_print("flag_net_failedTimeout\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_failedTimeout\n"));
|
||||
if (aStatus & nsIWebProgress::flag_net_userCancelled)
|
||||
g_print("flag_net_userCancelled\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_net_userCancelled\n"));
|
||||
if (aStatus & nsIWebProgress::flag_win_start)
|
||||
g_print("flag_win_start\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_win_start\n"));
|
||||
if (aStatus & nsIWebProgress::flag_win_stop)
|
||||
g_print("flag_win_stop\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("flag_win_stop\n"));
|
||||
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::OnChildStatusChange(nsIChannel *channel, PRInt32 progressStatusFlags)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnChildStatusChange\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnChildStatusChange\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::OnLocationChange(nsIURI *location)
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::OnLocationChange(nsIURI *aLocation)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::OnLocationChange\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::OnLocationChange\n"));
|
||||
char *newURIString = NULL;
|
||||
NS_ENSURE_ARG_POINTER(aLocation);
|
||||
aLocation->GetSpec(&newURIString);
|
||||
mLocation = newURIString;
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("new location is %s\n", (const char *)mLocation));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@ -362,25 +402,25 @@ NS_IMETHODIMP GtkMozEmbedChrome::InitWindow(nativeWindow parentNativeWindow,
|
|||
PRInt32 x, PRInt32 y,
|
||||
PRInt32 cx, PRInt32 cy)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::InitWindow\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::InitWindow\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::Create(void)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::Create\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::Create\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::Destroy(void)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::Destory\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::Destory\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetPosition(PRInt32 x, PRInt32 y)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetPosition\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetPosition\n"));
|
||||
mBounds.x = x;
|
||||
mBounds.y = y;
|
||||
return NS_OK;
|
||||
|
@ -388,7 +428,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetPosition(PRInt32 x, PRInt32 y)
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetPosition(PRInt32 *x, PRInt32 *y)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetPosition\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetPosition\n"));
|
||||
NS_ENSURE_ARG_POINTER(x);
|
||||
NS_ENSURE_ARG_POINTER(y);
|
||||
*x = mBounds.x;
|
||||
|
@ -398,7 +438,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::GetPosition(PRInt32 *x, PRInt32 *y)
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetSize\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetSize\n"));
|
||||
mBounds.width = cx;
|
||||
mBounds.height = cy;
|
||||
return NS_OK;
|
||||
|
@ -406,7 +446,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetSize(PRInt32 *cx, PRInt32 *cy)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetSize\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetSize\n"));
|
||||
NS_ENSURE_ARG_POINTER(cx);
|
||||
NS_ENSURE_ARG_POINTER(cy);
|
||||
*cx = mBounds.width;
|
||||
|
@ -418,8 +458,8 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetPositionAndSize(PRInt32 x, PRInt32 y,
|
|||
PRInt32 cx, PRInt32 cy,
|
||||
PRBool fRepaint)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetPositionAndSize %d %d %d %d\n",
|
||||
x, y, cx, cy);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetPositionAndSize %d %d %d %d\n",
|
||||
x, y, cx, cy));
|
||||
mBounds.x = x;
|
||||
mBounds.y = y;
|
||||
mBounds.width = cx;
|
||||
|
@ -430,8 +470,8 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetPositionAndSize(PRInt32 x, PRInt32 y,
|
|||
NS_IMETHODIMP GtkMozEmbedChrome::GetPositionAndSize(PRInt32 *x, PRInt32 *y,
|
||||
PRInt32 *cx, PRInt32 *cy)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetPositionAndSize %d %d %d %d\n",
|
||||
mBounds.x, mBounds.y, mBounds.width, mBounds.height);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetPositionAndSize %d %d %d %d\n",
|
||||
mBounds.x, mBounds.y, mBounds.width, mBounds.height));
|
||||
NS_ENSURE_ARG_POINTER(x);
|
||||
NS_ENSURE_ARG_POINTER(y);
|
||||
NS_ENSURE_ARG_POINTER(cx);
|
||||
|
@ -445,37 +485,37 @@ NS_IMETHODIMP GtkMozEmbedChrome::GetPositionAndSize(PRInt32 *x, PRInt32 *y,
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::Repaint(PRBool force)
|
||||
{
|
||||
g_print("GtkMozEmbedCHrome::Repaint\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedCHrome::Repaint\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetParentWidget(nsIWidget * *aParentWidget)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetParentWidget\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetParentWidget\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetParentWidget(nsIWidget * aParentWidget)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetParentWidget\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetParentWidget\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetParentNativeWindow(nativeWindow *aParentNativeWindow)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetParentNativeWindow\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetParentNativeWindow\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetParentNativeWindow(nativeWindow aParentNativeWindow)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetParentNativeWindow\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetParentNativeWindow\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetVisibility(PRBool *aVisibility)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetVisibility\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetVisibility\n"));
|
||||
NS_ENSURE_ARG_POINTER(aVisibility);
|
||||
*aVisibility = mVisibility;
|
||||
return NS_OK;
|
||||
|
@ -483,7 +523,7 @@ NS_IMETHODIMP GtkMozEmbedChrome::GetVisibility(PRBool *aVisibility)
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetVisibility(PRBool aVisibility)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetVisibility for %p\n", this);
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetVisibility for %p\n", this));
|
||||
if (mVisibilityCB)
|
||||
mVisibilityCB(aVisibility, mVisibilityCBData);
|
||||
mVisibility = aVisibility;
|
||||
|
@ -492,33 +532,41 @@ NS_IMETHODIMP GtkMozEmbedChrome::SetVisibility(PRBool aVisibility)
|
|||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetMainWidget(nsIWidget * *aMainWidget)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetMainWidget\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetMainWidget\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetFocus(void)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetFocus\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetFocus\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::FocusAvailable(nsIBaseWindow *aCurrentFocus,
|
||||
PRBool *aTookFocus)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::FocusAvailable\n");
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::FocusAvailable\n"));
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::GetTitle(PRUnichar * *aTitle)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::GetTitle\n");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::GetTitle\n"));
|
||||
NS_ENSURE_ARG_POINTER(aTitle);
|
||||
*aTitle = nsnull;
|
||||
if (mTitle)
|
||||
*aTitle = mTitleUnicode.ToNewUnicode();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP GtkMozEmbedChrome::SetTitle(const PRUnichar * aTitle)
|
||||
{
|
||||
g_print("GtkMozEmbedChrome::SetTitle\n");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetTitle\n"));
|
||||
nsString newTitleString(aTitle);
|
||||
mTitleUnicode = aTitle;
|
||||
mTitle = newTitleString.ToNewCString();
|
||||
PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("title is %s\n", (const char *)mTitle));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,9 @@ public:
|
|||
NS_IMETHOD SetDestroyCallback (GtkMozEmbedDestroyCB *aCallback, void *aData);
|
||||
NS_IMETHOD SetVisibilityCallback (GtkMozEmbedVisibilityCB *aCallback, void *aData);
|
||||
NS_IMETHOD GetLinkMessage (const char **retval);
|
||||
NS_IMETHOD GetJSStatus (const char **retval);
|
||||
NS_IMETHOD GetLocation (const char **retval);
|
||||
NS_IMETHOD GetTitleChar (const char **retval);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
|
@ -84,6 +87,10 @@ private:
|
|||
nsRect mBounds;
|
||||
PRBool mVisibility;
|
||||
nsXPIDLCString mLinkMessage;
|
||||
nsXPIDLCString mJSStatus;
|
||||
nsXPIDLCString mLocation;
|
||||
nsXPIDLCString mTitle;
|
||||
nsString mTitleUnicode;
|
||||
};
|
||||
|
||||
#endif /* __GtkMozEmbedChrome_h */
|
||||
|
|
|
@ -42,6 +42,12 @@ EXTRA_DSO_LDOPTS = \
|
|||
-lgtksuperwin \
|
||||
$(NULL)
|
||||
|
||||
ifndef MOZ_MONOLITHIC_TOOLKIT
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_GTK_LDFLAGS)
|
||||
else
|
||||
EXTRA_DSO_LDOPTS += $(TK_LIBS)
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
CXXFLAGS += $(MOZ_GTK_CFLAGS)
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include "nsISupportsArray.h"
|
||||
#include "nsVoidArray.h"
|
||||
|
||||
static NS_DEFINE_CID(kWebBrowserCID, NS_WEBBROWSER_CID);
|
||||
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
|
||||
class GtkMozEmbedPrivate
|
||||
|
@ -191,7 +190,7 @@ gtk_moz_embed_init(GtkMozEmbed *embed)
|
|||
// create our private struct
|
||||
embed_private = new GtkMozEmbedPrivate();
|
||||
// create an nsIWebBrowser object
|
||||
embed_private->webBrowser = do_CreateInstance(kWebBrowserCID);
|
||||
embed_private->webBrowser = do_CreateInstance(NS_WEBBROWSER_PROGID);
|
||||
g_return_if_fail(embed_private->webBrowser);
|
||||
// create our glue widget
|
||||
GtkMozEmbedChrome *chrome = new GtkMozEmbedChrome();
|
||||
|
@ -265,6 +264,44 @@ gtk_moz_embed_get_link_message (GtkWidget *widget)
|
|||
return retval;
|
||||
}
|
||||
|
||||
const char *
|
||||
gtk_moz_embed_get_js_status (GtkWidget *widget)
|
||||
{
|
||||
GtkMozEmbed *embed;
|
||||
GtkMozEmbedPrivate *embed_private;
|
||||
const char *retval = NULL;
|
||||
|
||||
g_return_val_if_fail ((widget != NULL), NULL);
|
||||
g_return_val_if_fail ((GTK_IS_MOZ_EMBED(widget)), NULL);
|
||||
|
||||
embed = GTK_MOZ_EMBED(widget);
|
||||
|
||||
embed_private = (GtkMozEmbedPrivate *)embed->data;
|
||||
|
||||
embed_private->embed->GetJSStatus(&retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
const char *
|
||||
gtk_moz_embed_get_title (GtkWidget *widget)
|
||||
{
|
||||
GtkMozEmbed *embed;
|
||||
GtkMozEmbedPrivate *embed_private;
|
||||
const char *retval = NULL;
|
||||
|
||||
g_return_val_if_fail ((widget != NULL), NULL);
|
||||
g_return_val_if_fail ((GTK_IS_MOZ_EMBED(widget)), NULL);
|
||||
|
||||
embed = GTK_MOZ_EMBED(widget);
|
||||
|
||||
embed_private = (GtkMozEmbedPrivate *)embed->data;
|
||||
|
||||
embed_private->embed->GetTitleChar(&retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
void
|
||||
gtk_moz_embed_realize(GtkWidget *widget)
|
||||
{
|
||||
|
@ -373,6 +410,9 @@ gtk_moz_embed_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
|
|||
|
||||
widget->allocation = *allocation;
|
||||
|
||||
g_print("gtk_moz_embed_size allocate for %p to %d %d %d %d\n", widget,
|
||||
allocation->x, allocation->y, allocation->width, allocation->height);
|
||||
|
||||
if (GTK_WIDGET_REALIZED(widget))
|
||||
{
|
||||
gdk_window_move_resize(widget->window,
|
||||
|
@ -384,7 +424,6 @@ gtk_moz_embed_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
|
|||
nsCOMPtr<nsIBaseWindow> embedBaseWindow = do_QueryInterface(embed_private->embed);
|
||||
embedBaseWindow->SetPositionAndSize(0, 0, allocation->width, allocation->height, PR_TRUE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -467,7 +506,8 @@ gtk_moz_embed_handle_new_browser(PRUint32 chromeMask, nsIWebBrowser **_retval, v
|
|||
newEmbedPrivate = (GtkMozEmbedPrivate *)newEmbed->data;
|
||||
|
||||
// track visibility requests
|
||||
newEmbedPrivate->embed->SetVisibilityCallback(gtk_moz_embed_handle_toplevel_visibility_change, newMozEmbed);
|
||||
newEmbedPrivate->embed->SetVisibilityCallback(gtk_moz_embed_handle_toplevel_visibility_change,
|
||||
newMozEmbed);
|
||||
|
||||
*_retval = newEmbedPrivate->webBrowser;
|
||||
g_print("returning new toplevel web browser as %p\n", *_retval);
|
||||
|
@ -481,6 +521,7 @@ gtk_moz_embed_handle_toplevel_visibility_change(PRBool aVisibility, void *aData)
|
|||
{
|
||||
GtkMozEmbed *embed;
|
||||
GtkMozEmbedPrivate *embed_private;
|
||||
GtkWidget *topLevelWidget;
|
||||
|
||||
g_print("gtk_moz_embed_handle_toplevel_visibility_change\n");
|
||||
|
||||
|
@ -493,8 +534,10 @@ gtk_moz_embed_handle_toplevel_visibility_change(PRBool aVisibility, void *aData)
|
|||
// the ->parent is always going to be the GtkWindow
|
||||
if (aVisibility)
|
||||
{
|
||||
gtk_widget_show(GTK_WIDGET(embed));
|
||||
gtk_widget_show(GTK_WIDGET(embed)->parent);
|
||||
topLevelWidget = gtk_widget_get_toplevel(GTK_WIDGET(embed));
|
||||
gtk_widget_show_all(topLevelWidget);
|
||||
//gtk_widget_show(GTK_WIDGET(embed));
|
||||
//gtk_widget_show(GTK_WIDGET(embed)->parent);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -53,6 +53,8 @@ extern GtkType gtk_moz_embed_get_type (void);
|
|||
extern GtkWidget *gtk_moz_embed_new (void);
|
||||
extern void gtk_moz_embed_load_url (GtkWidget *widget, const char *url);
|
||||
extern const char *gtk_moz_embed_get_link_message (GtkWidget *widget);
|
||||
extern const char *gtk_moz_embed_get_js_status (GtkWidget *widget);
|
||||
extern const char *gtk_moz_embed_get_title (GtkWidget *widget);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -46,6 +46,9 @@ public:
|
|||
NS_IMETHOD SetDestroyCallback (GtkMozEmbedDestroyCB *aCallback, void *aData) = 0;
|
||||
NS_IMETHOD SetVisibilityCallback (GtkMozEmbedVisibilityCB *aCallback, void *aData) = 0;
|
||||
NS_IMETHOD GetLinkMessage (const char **retval) = 0;
|
||||
NS_IMETHOD GetJSStatus (const char **retval) = 0;
|
||||
NS_IMETHOD GetLocation (const char **retval) = 0;
|
||||
NS_IMETHOD GetTitleChar (const char **retval) = 0;
|
||||
};
|
||||
|
||||
#endif /* __nsIGtkEmbed_h__ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче