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

📄 dom2_eventsimpl.cpp

📁 khtml在gtk上的移植版本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/** * This file is part of the DOM implementation for KDE. * * (C) 2001 Peter Kelly (pmk@post.com) * (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) * Copyright (C) 2003 Apple Computer, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#include "dom/dom2_views.h"#include "xml/dom2_eventsimpl.h"#include "xml/dom_stringimpl.h"#include "xml/dom_nodeimpl.h"#include "xml/dom_docimpl.h"#include "rendering/render_object.h"#include "rendering/render_layer.h"#include <kdebug.h>using namespace DOM;EventImpl::EventImpl(){    m_type = 0;    m_canBubble = false;    m_cancelable = false;    m_propagationStopped = false;    m_defaultPrevented = false;    m_cancelBubble = false;    m_id = UNKNOWN_EVENT;    m_currentTarget = 0;    m_eventPhase = 0;    m_target = 0;    m_createTime = QDateTime::currentDateTime();    m_defaultHandled = false;}EventImpl::EventImpl(EventId _id, bool canBubbleArg, bool cancelableArg){    DOMString t = EventImpl::idToType(_id);    m_type = t.implementation();    if (m_type)	m_type->ref();    m_canBubble = canBubbleArg;    m_cancelable = cancelableArg;    m_propagationStopped = false;    m_defaultPrevented = false;    m_cancelBubble = false;    m_id = _id;    m_currentTarget = 0;    m_eventPhase = 0;    m_target = 0;    m_createTime = QDateTime::currentDateTime();    m_defaultHandled = false;}EventImpl::~EventImpl(){    if (m_type)        m_type->deref();    if (m_target)        m_target->deref();}DOMString EventImpl::type() const{    return m_type;}NodeImpl *EventImpl::target() const{    return m_target;}void EventImpl::setTarget(NodeImpl *_target){    if (m_target)        m_target->deref();    m_target = _target;    if (m_target)        m_target->ref();}NodeImpl *EventImpl::currentTarget() const{    return m_currentTarget;}void EventImpl::setCurrentTarget(NodeImpl *_currentTarget){    m_currentTarget = _currentTarget;}unsigned short EventImpl::eventPhase() const{    return m_eventPhase;}void EventImpl::setEventPhase(unsigned short _eventPhase){    m_eventPhase = _eventPhase;}bool EventImpl::bubbles() const{    return m_canBubble;}bool EventImpl::cancelable() const{    return m_cancelable;}DOMTimeStamp EventImpl::timeStamp(){    QDateTime epoch(QDate(1970,1,1),QTime(0,0));    // ### kjs does not yet support long long (?) so the value wraps around    return epoch.secsTo(m_createTime)*1000+m_createTime.time().msec();}void EventImpl::stopPropagation(){    m_propagationStopped = true;}void EventImpl::preventDefault(){    if (m_cancelable)	m_defaultPrevented = true;}void EventImpl::initEvent(const DOMString &eventTypeArg, bool canBubbleArg, bool cancelableArg){    // ### ensure this is not called after we have been dispatched (also for subclasses)    if (m_type)	m_type->deref();    m_type = eventTypeArg.implementation();    if (m_type)	m_type->ref();    m_id = typeToId(eventTypeArg);    m_canBubble = canBubbleArg;    m_cancelable = cancelableArg;}EventImpl::EventId EventImpl::typeToId(DOMString type){    if (type == "DOMFocusIn")	return DOMFOCUSIN_EVENT;    else if (type == "DOMFocusOut")	return DOMFOCUSOUT_EVENT;    else if (type == "DOMActivate")	return DOMACTIVATE_EVENT;    else if (type == "click")	return CLICK_EVENT;    else if (type == "mousedown")	return MOUSEDOWN_EVENT;    else if (type == "mouseup")	return MOUSEUP_EVENT;    else if (type == "mouseover")	return MOUSEOVER_EVENT;    else if (type == "mousemove")	return MOUSEMOVE_EVENT;    else if (type == "mouseout")	return MOUSEOUT_EVENT;    else if (type == "onbeforecut")	return BEFORECUT_EVENT;    else if (type == "oncut")	return CUT_EVENT;    else if (type == "onbeforecopy")	return BEFORECOPY_EVENT;    else if (type == "oncopy")	return COPY_EVENT;    else if (type == "onbeforepaste")	return BEFOREPASTE_EVENT;    else if (type == "onpaste")	return PASTE_EVENT;    else if (type == "dragenter")	return DRAGENTER_EVENT;    else if (type == "dragover")	return DRAGOVER_EVENT;    else if (type == "dragleave")	return DRAGLEAVE_EVENT;    else if (type == "drop")	return DROP_EVENT;    else if (type == "dragstart")	return DRAGSTART_EVENT;    else if (type == "drag")	return DRAG_EVENT;    else if (type == "dragend")	return DRAGEND_EVENT;    else if (type == "selectstart")	return SELECTSTART_EVENT;    else if (type == "DOMSubtreeModified")	return DOMSUBTREEMODIFIED_EVENT;    else if (type == "DOMNodeInserted")	return DOMNODEINSERTED_EVENT;    else if (type == "DOMNodeRemoved")	return DOMNODEREMOVED_EVENT;    else if (type == "DOMNodeRemovedFromDocument")	return DOMNODEREMOVEDFROMDOCUMENT_EVENT;    else if (type == "DOMNodeInsertedIntoDocument")	return DOMNODEINSERTEDINTODOCUMENT_EVENT;    else if (type == "DOMAttrModified")	return DOMATTRMODIFIED_EVENT;    else if (type == "DOMCharacterDataModified")	return DOMCHARACTERDATAMODIFIED_EVENT;    else if (type == "load")	return LOAD_EVENT;    else if (type == "unload")	return UNLOAD_EVENT;    else if (type == "abort")	return ABORT_EVENT;    else if (type == "error")	return ERROR_EVENT;    else if (type == "select")	return SELECT_EVENT;    else if (type == "change")	return CHANGE_EVENT;    else if (type == "submit")	return SUBMIT_EVENT;    else if (type == "reset")	return RESET_EVENT;    else if (type == "focus")	return FOCUS_EVENT;    else if (type == "blur")	return BLUR_EVENT;    else if (type == "resize")	return RESIZE_EVENT;    else if (type == "scroll")	return SCROLL_EVENT;    else if (type == "contextmenu")	return CONTEXTMENU_EVENT;    else if (type == "keydown")	return KEYDOWN_EVENT;    else if (type == "keyup")	return KEYUP_EVENT;#if APPLE_CHANGES    else if (type == "search")	return SEARCH_EVENT;#endif    else if (type == "input")        return INPUT_EVENT;    else if (type == "textInput")	return TEXTINPUT_EVENT;    else if (type == "readystatechange")	return KHTML_READYSTATECHANGE_EVENT;    // ignore: KHTML_DBLCLICK_EVENT    // ignore: KHTML_CLICK_EVENT    return UNKNOWN_EVENT;}DOMString EventImpl::idToType(EventImpl::EventId id){    switch (id) {	case DOMFOCUSIN_EVENT:	    return "DOMFocusIn";	case DOMFOCUSOUT_EVENT:	    return "DOMFocusOut";	case DOMACTIVATE_EVENT:	    return "DOMActivate";	case CLICK_EVENT:	    return "click";	case MOUSEDOWN_EVENT:	    return "mousedown";	case MOUSEUP_EVENT:	    return "mouseup";	case MOUSEOVER_EVENT:	    return "mouseover";	case MOUSEMOVE_EVENT:	    return "mousemove";	case MOUSEOUT_EVENT:	    return "mouseout";        case BEFORECUT_EVENT:            return "onbeforecut";	case CUT_EVENT:            return "oncut";	case BEFORECOPY_EVENT:            return "onbeforecopy";	case COPY_EVENT:            return "oncopy";	case BEFOREPASTE_EVENT:            return "onbeforepaste";	case PASTE_EVENT:            return "onpaste";	case DRAGENTER_EVENT:            return "dragenter";	case DRAGOVER_EVENT:            return "dragover";	case DRAGLEAVE_EVENT:            return "dragleave";	case DROP_EVENT:	    return "drop";	case DRAGSTART_EVENT:	    return "dragstart";	case DRAG_EVENT:	    return "drag";	case DRAGEND_EVENT:	    return "dragend";	case SELECTSTART_EVENT:	    return "selectstart";	case DOMSUBTREEMODIFIED_EVENT:	    return "DOMSubtreeModified";	case DOMNODEINSERTED_EVENT:	    return "DOMNodeInserted";	case DOMNODEREMOVED_EVENT:	    return "DOMNodeRemoved";	case DOMNODEREMOVEDFROMDOCUMENT_EVENT:	    return "DOMNodeRemovedFromDocument";	case DOMNODEINSERTEDINTODOCUMENT_EVENT:	    return "DOMNodeInsertedIntoDocument";	case DOMATTRMODIFIED_EVENT:	    return "DOMAttrModified";	case DOMCHARACTERDATAMODIFIED_EVENT:	    return "DOMCharacterDataModified";	case LOAD_EVENT:	    return "load";	case UNLOAD_EVENT:	    return "unload";	case ABORT_EVENT:	    return "abort";	case ERROR_EVENT:	    return "error";	case SELECT_EVENT:	    return "select";	case CHANGE_EVENT:	    return "change";	case SUBMIT_EVENT:	    return "submit";	case RESET_EVENT:	    return "reset";	case FOCUS_EVENT:	    return "focus";	case BLUR_EVENT:	    return "blur";	case RESIZE_EVENT:	    return "resize";	case SCROLL_EVENT:	    return "scroll";        case CONTEXTMENU_EVENT:            return "contextmenu";	case KEYDOWN_EVENT:            return "keydown";	case KEYUP_EVENT:            return "keyup";        case KEYPRESS_EVENT:            return "keypress";	case TEXTINPUT_EVENT:            return "textInput";#if APPLE_CHANGES        case SEARCH_EVENT:            return "search";#endif        case INPUT_EVENT:            return "input";	// khtml extensions	case KHTML_DBLCLICK_EVENT:            return "dblclick";	case KHTML_CLICK_EVENT:            return "click";	case KHTML_DRAGDROP_EVENT:            return "khtml_dragdrop";	case KHTML_ERROR_EVENT:            return "khtml_error";	case KHTML_MOVE_EVENT:            return "khtml_move";        case KHTML_ORIGCLICK_MOUSEUP_EVENT:            return "khtml_origclick_mouseup_event";        case KHTML_READYSTATECHANGE_EVENT:	    return "readystatechange";	default:	    return DOMString();	    break;    }}bool EventImpl::isUIEvent() const{    return false;}bool EventImpl::isMouseEvent() const{    return false;}bool EventImpl::isMutationEvent() const{    return false;}bool EventImpl::isKeyboardEvent() const{    return false;}bool EventImpl::isDragEvent() const{    return false;}bool EventImpl::isClipboardEvent() const{    return false;}// -----------------------------------------------------------------------------UIEventImpl::UIEventImpl(){    m_view = 0;    m_detail = 0;}UIEventImpl::UIEventImpl(EventId _id, bool canBubbleArg, bool cancelableArg,		AbstractViewImpl *viewArg, long detailArg)		: EventImpl(_id,canBubbleArg,cancelableArg){    m_view = viewArg;    if (m_view)        m_view->ref();    m_detail = detailArg;}UIEventImpl::~UIEventImpl(){    if (m_view)        m_view->deref();

⌨️ 快捷键说明

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