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

📄 chromeclientwx.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
字号:
/* * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com> * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#include "config.h"#include "ChromeClientWx.h"#include "FileChooser.h"#include "FloatRect.h"#include "FrameLoadRequest.h"#include "NotImplemented.h"#include "PlatformString.h"#include <stdio.h>#include <wx/wxprec.h>#ifndef WX_PRECOMP    #include <wx/wx.h>#endif#include <wx/textdlg.h>#include <wx/tooltip.h>#include "WebBrowserShell.h"#include "WebView.h"#include "WebViewPrivate.h"namespace WebCore {ChromeClientWx::ChromeClientWx(wxWebView* webView){    m_webView = webView;}ChromeClientWx::~ChromeClientWx(){}void ChromeClientWx::chromeDestroyed(){    notImplemented();}void ChromeClientWx::setWindowRect(const FloatRect&){    notImplemented();}FloatRect ChromeClientWx::windowRect(){    notImplemented();    return FloatRect();}FloatRect ChromeClientWx::pageRect(){    notImplemented();    return FloatRect();}float ChromeClientWx::scaleFactor(){    notImplemented();    return 0.0;}void ChromeClientWx::focus(){    notImplemented();}void ChromeClientWx::unfocus(){    notImplemented();}bool ChromeClientWx::canTakeFocus(FocusDirection){    notImplemented();    return false;}void ChromeClientWx::takeFocus(FocusDirection){    notImplemented();}Page* ChromeClientWx::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures&){    // FIXME: Create a EVT_WEBKIT_NEW_WINDOW event, and only run this code    // when that event is not handled.        Page* myPage = 0;    wxWebBrowserShell* newFrame = new wxWebBrowserShell(wxTheApp->GetAppName());        if (newFrame->webview) {        newFrame->webview->LoadURL(request.resourceRequest().url().string());        newFrame->Show(true);        WebViewPrivate* impl = newFrame->webview->m_impl;        if (impl)            myPage = impl->page;    }        return myPage;}Page* ChromeClientWx::createModalDialog(Frame*, const FrameLoadRequest&){    notImplemented();    return 0;}void ChromeClientWx::show(){    notImplemented();}bool ChromeClientWx::canRunModal(){    notImplemented();    return false;}void ChromeClientWx::runModal(){    notImplemented();}void ChromeClientWx::setToolbarsVisible(bool){    notImplemented();}bool ChromeClientWx::toolbarsVisible(){    notImplemented();    return false;}void ChromeClientWx::setStatusbarVisible(bool){    notImplemented();}bool ChromeClientWx::statusbarVisible(){    notImplemented();    return false;}void ChromeClientWx::setScrollbarsVisible(bool){    notImplemented();}bool ChromeClientWx::scrollbarsVisible(){    notImplemented();    return false;}void ChromeClientWx::setMenubarVisible(bool){    notImplemented();}bool ChromeClientWx::menubarVisible(){    notImplemented();    return false;}void ChromeClientWx::setResizable(bool){    notImplemented();}void ChromeClientWx::addMessageToConsole(const String& message,                                          unsigned int lineNumber,                                          const String& sourceID){    if (m_webView) {        wxWebViewConsoleMessageEvent wkEvent(m_webView);        wkEvent.SetMessage(message);        wkEvent.SetLineNumber(lineNumber);        wkEvent.SetSourceID(sourceID);        m_webView->GetEventHandler()->ProcessEvent(wkEvent);    }}bool ChromeClientWx::canRunBeforeUnloadConfirmPanel(){    notImplemented();    return true;}bool ChromeClientWx::runBeforeUnloadConfirmPanel(const String& string,                                                  Frame* frame){    wxMessageDialog dialog(NULL, string, wxT("Confirm Action?"), wxYES_NO);    return dialog.ShowModal() == wxYES;}void ChromeClientWx::closeWindowSoon(){    notImplemented();}/*    Sites for testing prompts:     Alert - just type in a bad web address or http://www.htmlite.com/JS002.php    Prompt - http://www.htmlite.com/JS007.php    Confirm - http://www.htmlite.com/JS006.php*/void ChromeClientWx::runJavaScriptAlert(Frame* frame, const String& string){    wxMessageBox(string, wxT("JavaScript Alert"), wxOK);}bool ChromeClientWx::runJavaScriptConfirm(Frame* frame, const String& string){    wxMessageDialog dialog(NULL, string, wxT("JavaScript Confirm"), wxYES_NO);    dialog.Centre();    return (dialog.ShowModal() == wxID_YES);}bool ChromeClientWx::runJavaScriptPrompt(Frame* frame, const String& message, const String& defaultValue, String& result){    wxTextEntryDialog dialog(NULL, message, wxT("JavaScript Prompt"), wxEmptyString, wxOK | wxCANCEL);    dialog.Centre();    if (dialog.ShowModal() == wxID_OK) {        result = dialog.GetValue();        return true;    }        return false;}void ChromeClientWx::setStatusbarText(const String&){    notImplemented();}bool ChromeClientWx::shouldInterruptJavaScript(){    notImplemented();    return false;}bool ChromeClientWx::tabsToLinks() const{    notImplemented();    return false;}IntRect ChromeClientWx::windowResizerRect() const{    notImplemented();    return IntRect();}void ChromeClientWx::repaint(const IntRect& rect, bool contentChanged, bool immediate, bool repaintContentOnly){    if (!m_webView)        return;        if (contentChanged)        m_webView->RefreshRect(rect);        if (immediate) {        m_webView->Update();    }}IntRect ChromeClientWx::windowToScreen(const IntRect& rect) const{    notImplemented();    return rect;}IntPoint ChromeClientWx::screenToWindow(const IntPoint& point) const{    notImplemented();    return point;}PlatformWidget ChromeClientWx::platformWindow() const{    return 0;}void ChromeClientWx::contentsSizeChanged(Frame*, const IntSize&) const{    notImplemented();}void ChromeClientWx::scrollBackingStore(int dx, int dy,                     const IntRect& scrollViewRect,                     const IntRect& clipRect){    notImplemented();}void ChromeClientWx::updateBackingStore(){    notImplemented();}void ChromeClientWx::mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags){    notImplemented();}void ChromeClientWx::setToolTip(const String& tip){    wxToolTip* tooltip = m_webView->GetToolTip();    if (!tooltip || tooltip->GetTip() != wxString(tip))        m_webView->SetToolTip(tip);}void ChromeClientWx::print(Frame*){    notImplemented();}void ChromeClientWx::exceededDatabaseQuota(Frame*, const String&){    notImplemented();}void ChromeClientWx::scroll(const IntSize&, const IntRect&, const IntRect&){    notImplemented();}void ChromeClientWx::runOpenPanel(Frame*, PassRefPtr<FileChooser>){    notImplemented();}}

⌨️ 快捷键说明

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