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

📄 kwqkhtmlpartbrowserextension.cpp

📁 khtml在gtk上的移植版本
💻 CPP
字号:
/* * Copyright (C) 2003 Apple Computer, Inc.  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 "KWQKHTMLPartBrowserExtension.h"#include "khtml_part.h"#include "WebCoreBridge.h"KHTMLPartBrowserExtension::KHTMLPartBrowserExtension(KHTMLPart *part)    : _part(KWQ(part)), _browserInterface(_part){}void KHTMLPartBrowserExtension::openURLRequest(const KURL &url, 					       const KParts::URLArgs &args){    if (url.protocol().lower() == "javascript") {	_part->createEmptyDocument();	_part->replaceContentsWithScriptResult(url);     } else {	_part->openURLRequest(url, args);    }}void KHTMLPartBrowserExtension::openURLNotify(){}void KHTMLPartBrowserExtension::createNewWindow(const KURL &url, 						const KParts::URLArgs &urlArgs) {    createNewWindow(url, urlArgs, KParts::WindowArgs(), NULL);}void KHTMLPartBrowserExtension::createNewWindow(const KURL &url, 						const KParts::URLArgs &urlArgs, 						const KParts::WindowArgs &winArgs, 						KParts::ReadOnlyPart *&part){    createNewWindow(url, urlArgs, winArgs, &part);}void KHTMLPartBrowserExtension::createNewWindow(const KURL &url, 						const KParts::URLArgs &urlArgs, 						const KParts::WindowArgs &winArgs, 						KParts::ReadOnlyPart **partResult){    WebCoreBridge *bridge;    if (!urlArgs.frameName.isEmpty()) {        // FIXME: is utf8 right format here? -- psalmi	bridge = _part->bridge()->findFrameNamed(urlArgs.frameName.utf8());	if (bridge) {	    if (!url.isEmpty()) {		bridge->loadURL(url.url().utf8(), _part->bridge()->referrer(), urlArgs.reload, false, 0,0,0,0);	    }	    bridge->focusWindow();	    if (partResult) *partResult = bridge->part();	    return;	}    }    // FIXME: is utf8 right one here -- psalmi    bridge = _part->bridge()->createWindowWithURL(url.url().utf8(), urlArgs.frameName.utf8());    if (!bridge) {	if (partResult) 	    *partResult = 0;	return;    }           if (!winArgs.toolBarsVisible) {	bridge->setToolbarsVisible(false);    }        if (!winArgs.statusBarVisible) {	bridge->setStatusBarVisible(false);    }        if (!winArgs.scrollbarsVisible) {	bridge->setScrollbarsVisible(false);    }        if (!winArgs.resizable) {	bridge->setWindowIsResizable(false);    }        if (winArgs.xSet || winArgs.ySet || winArgs.widthSet || winArgs.heightSet) {        GdkRectangle * frame = g_new0(GdkRectangle, 1);	bridge->windowFrame(frame);        GdkRectangle * contentRect = g_new0(GdkRectangle, 1);        bridge->windowContentRect(contentRect);	if (winArgs.xSet) {	    frame->x = winArgs.x;	}		if (winArgs.ySet) {	    //float heightForFlip = NSMaxY([[[NSScreen screens] objectAtIndex:0] frame]);	    //frame.origin.y = heightForFlip - (winArgs.y + frame.size.height);	    frame->y = winArgs.y + frame->height;	}		if (winArgs.widthSet) {	    frame->width = frame->width + winArgs.width - contentRect->width;	}		if (winArgs.heightSet) {	    float heightDelta = winArgs.height - contentRect->height;	    frame->height = int( frame->height +  heightDelta );	    frame->y = int( frame->y - heightDelta );	}        bridge->setWindowFrame(frame);    }        bridge->showWindow();        if (partResult) *partResult = bridge->part();}void KHTMLPartBrowserExtension::setIconURL(const KURL &url){    // FIXME: utf8??  -- psalmi    _part->bridge()->setIconURL(url.url().utf8());}void KHTMLPartBrowserExtension::setTypedIconURL(const KURL &url, const QString &type){    // FIXME: utf8??  -- psalmi    _part->bridge()->setIconURL(url.url().utf8(), type.utf8());}

⌨️ 快捷键说明

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