⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 browserimpl.cpp

📁 JDesktop Integration Components (JDIC)
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}NS_IMETHODIMP CBrowserImpl::SetFocus(){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->SetFocus();    return NS_OK;}NS_IMETHODIMP CBrowserImpl::GetTitle(PRUnichar** aTitle){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->GetBrowserFrameTitle(aTitle);    return NS_OK;}NS_IMETHODIMP CBrowserImpl::SetTitle(const PRUnichar* aTitle){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->SetBrowserFrameTitle(aTitle);	char buf[1024];    PRInt32 id = m_pBrowserFrame->GetBrowserId();    sprintf(buf, "%s", NS_ConvertUCS2toUTF8(aTitle).get());    SendSocketMessage(id, CEVENT_TITLE_CHANGE, buf);    return NS_OK;}NS_IMETHODIMP CBrowserImpl::GetVisibility(PRBool *aVisibility){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->GetBrowserFrameVisibility(aVisibility);    return NS_OK;}NS_IMETHODIMP CBrowserImpl::SetVisibility(PRBool aVisibility){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->ShowBrowserFrame(aVisibility);    return NS_OK;}//*****************************************************************************// CBrowserImpl::nsIEmbeddingSiteWindow2//*****************************************************************************NS_IMETHODIMP CBrowserImpl::Blur(){    return NS_OK;}//*****************************************************************************// CBrowserImpl::nsITooltipListener//*****************************************************************************/* void onShowTooltip (in long aXCoords, in long aYCoords, in wstring aTipText); */NS_IMETHODIMP CBrowserImpl::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, const PRUnichar *aTipText){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->ShowTooltip(aXCoords, aYCoords, aTipText);    return NS_OK;}/* void onHideTooltip (); */NS_IMETHODIMP CBrowserImpl::OnHideTooltip(){    if (! m_pBrowserFrame || gQuitMode)        return NS_ERROR_FAILURE;    m_pBrowserFrame->HideTooltip();    return NS_OK;}//*****************************************************************************// CBrowserImpl::nsIWebProgressListener Implementation//*****************************************************************************//// - Implements browser progress update functionality//   while loading a page into the embedded browser//// - Calls methods via the IBrowserFrameGlue interace//    (available thru' the m_pBrowserFrame member var)//    to do the actual statusbar/progress bar updates.//NS_IMETHODIMP CBrowserImpl::OnProgressChange(nsIWebProgress *progress,                                             nsIRequest *request,                                             PRInt32 curSelfProgress,                                             PRInt32 maxSelfProgress,                                             PRInt32 curTotalProgress,                                             PRInt32 maxTotalProgress){    if (! m_pBrowserFrame || gQuitMode) {        // always return NS_OK        return NS_OK;    }    PRInt32 nProgress = curTotalProgress;    PRInt32 nProgressMax = maxTotalProgress;    if (nProgressMax == 0)        nProgressMax = LONG_MAX;    if (nProgress > nProgressMax)        nProgress = nProgressMax; // Progress complete    m_pBrowserFrame->UpdateProgress(nProgress, nProgressMax);    char buf[20];    PRInt32 id = m_pBrowserFrame->GetBrowserId();    sprintf(buf, "%d", nProgress * 100 / nProgressMax);    SendSocketMessage(id, CEVENT_DOWNLOAD_PROGRESS, buf);    return NS_OK;}NS_IMETHODIMP CBrowserImpl::OnStateChange(nsIWebProgress *progress,                                          nsIRequest *request,                                          PRUint32 progressStateFlags,                                          nsresult status){    if (! m_pBrowserFrame || gQuitMode) {        // always return NS_OK        return NS_OK;    }    PRInt32 id = m_pBrowserFrame->GetBrowserId();    if (progressStateFlags & STATE_IS_DOCUMENT) {        if (progressStateFlags & STATE_START) {            // Navigation has begun            m_pBrowserFrame->UpdateBusyState(PR_TRUE);            // Fire a DownloadBegin event            SendSocketMessage(id, CEVENT_DOWNLOAD_STARTED);        }        else if (progressStateFlags & STATE_STOP) {            nsCOMPtr<nsIWebBrowserFocus> focus(do_GetInterface(mWebBrowser));            if (focus)                focus->Activate();            // We've completed the navigation            m_pBrowserFrame->UpdateBusyState(PR_FALSE);            m_pBrowserFrame->UpdateProgress(0, 100);       // Clear the prog bar            m_pBrowserFrame->UpdateStatusBarText(nsnull);  // Clear the status bar            // Fire a DownloadComplete event            SendSocketMessage(id, CEVENT_DOWNLOAD_COMPLETED);        }    }    if (progressStateFlags & STATE_IS_NETWORK) {        if (progressStateFlags & STATE_START) {        }        else if (progressStateFlags & STATE_STOP) {            // Fire a DocumentComplete event, the document finishes loading.            SendSocketMessage(id, CEVENT_DOCUMENT_COMPLETED);            // Fire a CommandStateChange event            char buf[20];            nsCOMPtr<nsIWebNavigation> webNav(do_QueryInterface(mWebBrowser));            PRBool aCanGoForward = PR_FALSE;            webNav->GetCanGoForward(&aCanGoForward);            sprintf(buf, "forward=%d", aCanGoForward ? 1 : 0);            SendSocketMessage(id, CEVENT_COMMAND_STATE_CHANGE, buf);            PRBool aCanGoBack = PR_FALSE;            webNav->GetCanGoBack(&aCanGoBack);            sprintf(buf, "back=%d", aCanGoBack ? 1 : 0);            SendSocketMessage(id, CEVENT_COMMAND_STATE_CHANGE, buf);        }    }    return NS_OK;}NS_IMETHODIMP CBrowserImpl::OnLocationChange(nsIWebProgress* aWebProgress,                                                 nsIRequest* aRequest,                                                 nsIURI *location){    if (! m_pBrowserFrame || gQuitMode) {        // always return NS_OK        return NS_OK;    }    PRBool isSubFrameLoad = PR_FALSE; // Is this a subframe load    if (aWebProgress) {        nsCOMPtr<nsIDOMWindow>  domWindow;        nsCOMPtr<nsIDOMWindow>  topDomWindow;        aWebProgress->GetDOMWindow(getter_AddRefs(domWindow));        if (domWindow) { // Get root domWindow            domWindow->GetTop(getter_AddRefs(topDomWindow));        }        if (domWindow != topDomWindow)            isSubFrameLoad = PR_TRUE;    }    if (!isSubFrameLoad) // Update urlbar only if it is not a subframe load        m_pBrowserFrame->UpdateCurrentURI(location);    return NS_OK;}NS_IMETHODIMPCBrowserImpl::OnStatusChange(nsIWebProgress* aWebProgress,                                 nsIRequest* aRequest,                                 nsresult aStatus,                                 const PRUnichar* aMessage){    if (m_pBrowserFrame) {        m_pBrowserFrame->UpdateStatusBarText(aMessage);        char buf[1024];        PRInt32 id = m_pBrowserFrame->GetBrowserId();        sprintf(buf, "%s", NS_ConvertUCS2toUTF8(aMessage).get());        SendSocketMessage(id, CEVENT_STATUSTEXT_CHANGE, buf);    }    return NS_OK;}NS_IMETHODIMPCBrowserImpl::OnSecurityChange(nsIWebProgress *aWebProgress,                                    nsIRequest *aRequest,                                    PRUint32 state){    m_pBrowserFrame->UpdateSecurityStatus(state);    return NS_OK;}//*****************************************************************************// CBrowserImpl::nsIURIContentListener Implementation//*****************************************************************************NS_IMETHODIMP CBrowserImpl::OnStartURIOpen(nsIURI *pURI, PRBool *aAbortOpen){    *aAbortOpen = PR_FALSE;    nsCAutoString uriString;    nsresult rv = pURI->GetAsciiSpec(uriString);    if (NS_FAILED(rv))        return NS_ERROR_ABORT;    PRInt32 id = m_pBrowserFrame->GetBrowserId();    if (id >= 0) {        // native browser needs a yes or no confirmation from the         // Java side for event CEVENT_BEFORE_NAVIGATE.        int bCmdCanceled = -1, waitCount = 0;        AddTrigger(id, CEVENT_BEFORE_NAVIGATE, &bCmdCanceled);        SendSocketMessage(id, CEVENT_BEFORE_NAVIGATE, uriString.get());        while (bCmdCanceled < 0 && waitCount++ < MAX_WAIT) {            Sleep(1);        }        WBTRACE("waitCount = %d\n", waitCount);        if (bCmdCanceled == 1) {            *aAbortOpen = PR_TRUE;            return NS_ERROR_ABORT;        }    }    return NS_OK;}NS_IMETHODIMP CBrowserImpl::DoContent(const char *aContentType, PRBool aIsContentPreferred, nsIRequest *request, nsIStreamListener **aContentHandler, PRBool *aAbortProcess){    return NS_ERROR_NOT_IMPLEMENTED;}NS_IMETHODIMP CBrowserImpl::IsPreferred(const char *aContentType, char **aDesiredContentType, PRBool *_retval){    return CanHandleContent(aContentType, PR_TRUE, aDesiredContentType, _retval);}NS_IMETHODIMP CBrowserImpl::CanHandleContent(const char *aContentType, PRBool aIsContentPreferred, char **aDesiredContentType, PRBool *_retval){    if (aContentType)    {        nsCOMPtr<nsICategoryManager> catMgr;        nsresult rv;        catMgr = do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);        nsXPIDLCString value;        rv = catMgr->GetCategoryEntry("Gecko-Content-Viewers",            aContentType,            getter_Copies(value));        // If the category manager can't find what we're looking for        // it returns NS_ERROR_NOT_AVAILABLE, we don't want to propagate        // that to the caller since it's really not a failure        if (NS_FAILED(rv) && rv != NS_ERROR_NOT_AVAILABLE)            return rv;        if (value && *value)            *_retval = PR_TRUE;    }    return NS_OK;}NS_IMETHODIMP CBrowserImpl::GetLoadCookie(nsISupports * *aLoadCookie){    return NS_ERROR_NOT_IMPLEMENTED;}NS_IMETHODIMP CBrowserImpl::SetLoadCookie(nsISupports * aLoadCookie){    return NS_ERROR_NOT_IMPLEMENTED;}NS_IMETHODIMP CBrowserImpl::GetParentContentListener(nsIURIContentListener * *aParentContentListener){    return NS_ERROR_NOT_IMPLEMENTED;}NS_IMETHODIMP CBrowserImpl::SetParentContentListener(nsIURIContentListener * aParentContentListener){    return NS_ERROR_NOT_IMPLEMENTED;}//*****************************************************************************// CBrowserImpl::nsIContextMenuListener2//*****************************************************************************NS_IMETHODIMP CBrowserImpl::OnShowContextMenu(PRUint32 aContextFlags, nsIContextMenuInfo *aInfo){    if(m_pBrowserFrame)        m_pBrowserFrame->ShowContextMenu(aContextFlags, aInfo);    return NS_OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -