亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dom2_eventsimpl.cpp

?? It is WEB browser core module with source code. Very good!
?? 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;
}

static const char * const eventNames[EventImpl::numEventIds] = {
    0,
    "DOMFocusIn",
    "DOMFocusOut",
    "DOMActivate",
    "click",
    "mousedown",
    "mouseup",
    "mouseover",
    "mousemove",
    "mouseout",
    "onbeforecut",
    "oncut",
    "onbeforecopy",
    "oncopy",
    "onbeforepaste",
    "onpaste",
    "dragenter",
    "dragover",
    "dragleave",
    "drop",
    "dragstart",
    "drag",
    "dragend",
    "selectstart",
    "DOMSubtreeModified",
    "DOMNodeInserted",
    "DOMNodeRemoved",
    "DOMNodeRemovedFromDocument",
    "DOMNodeInsertedIntoDocument",
    "DOMAttrModified",
    "DOMCharacterDataModified",
    "load",
    "unload",
    "abort",
    "error",
    "select",
    "change",
    "submit",
    "reset",
    "focus",
    "blur",
    "resize",
    "scroll",
    "contextmenu",
#if APPLE_CHANGES
    "search",
#endif
    "input",
    "keydown",
    "keyup",
    "textInput", // FIXME: is the capital I correct?
    0, // KHTML_DBLCLICK_EVENT
    0, // KHTML_CLICK_EVENT
    0, // KHTML_DRAGDROP_EVENT
    0, // KHTML_ERROR_EVENT
    "keypress",
    0, // KHTML_MOVE_EVENT
    0, // KHTML_ORIGCLICK_MOUSEUP_EVENT
    "readystatechange",
};

EventImpl::EventId EventImpl::typeToId(const DOMString &type)
{
    for (int i = 0; i < numEventIds; ++i) {
        const char *n = eventNames[i];
        if (n && type == n)
            return static_cast<EventId>(i);
    }
    return UNKNOWN_EVENT;
}

DOMString EventImpl::idToType(EventId id)
{
    switch (id) {
	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";
        default:
            break;
    }
    if (id >= numEventIds)
        return DOMString();
    return eventNames[id];
}

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();
}

void UIEventImpl::initUIEvent(const DOMString &typeArg,
			      bool canBubbleArg,
			      bool cancelableArg,
			      const AbstractView &viewArg,
			      long detailArg)
{
    EventImpl::initEvent(typeArg,canBubbleArg,cancelableArg);

    if (m_view)
	m_view->deref();

    m_view = viewArg.handle();
    if (m_view)
	m_view->ref();
    m_detail = detailArg;
}

bool UIEventImpl::isUIEvent() const
{
    return true;
}

// -----------------------------------------------------------------------------

MouseEventImpl::MouseEventImpl()
{
    m_screenX = 0;
    m_screenY = 0;
    m_clientX = 0;
    m_clientY = 0;
    m_ctrlKey = false;
    m_altKey = false;
    m_shiftKey = false;
    m_metaKey = false;
    m_button = 0;
    m_relatedTarget = 0;
    m_clipboard = 0;
}

MouseEventImpl::MouseEventImpl(EventId _id,
			       bool canBubbleArg,
			       bool cancelableArg,
			       AbstractViewImpl *viewArg,
			       long detailArg,
			       long screenXArg,
			       long screenYArg,
			       long clientXArg,
			       long clientYArg,
			       bool ctrlKeyArg,
			       bool altKeyArg,
			       bool shiftKeyArg,
			       bool metaKeyArg,
			       unsigned short buttonArg,
			       NodeImpl *relatedTargetArg,
                               ClipboardImpl *clipboardArg)
		   : UIEventImpl(_id,canBubbleArg,cancelableArg,viewArg,detailArg)
{
    m_screenX = screenXArg;
    m_screenY = screenYArg;
    m_clientX = clientXArg;
    m_clientY = clientYArg;
    m_ctrlKey = ctrlKeyArg;
    m_altKey = altKeyArg;
    m_shiftKey = shiftKeyArg;
    m_metaKey = metaKeyArg;
    m_button = buttonArg;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级片免费看| 96av麻豆蜜桃一区二区| 亚洲一区二区在线免费观看视频 | 精品一区二区在线免费观看| 国产精品麻豆网站| 国产精品久久精品日日| 中文字幕av一区二区三区免费看| 国产情人综合久久777777| 精品理论电影在线| 久久精品亚洲麻豆av一区二区| 欧美大片国产精品| 久久久午夜电影| 国产精品日产欧美久久久久| 国产精品高清亚洲| 亚洲亚洲人成综合网络| 午夜电影网亚洲视频| 日本亚洲一区二区| 国产精品自拍一区| 成人精品免费网站| 色哟哟精品一区| 欧美精品在线一区二区| 精品欧美一区二区在线观看| 国产欧美日韩中文久久| 亚洲少妇30p| 日韩电影免费在线看| 激情五月婷婷综合| 成人aa视频在线观看| 在线国产电影不卡| 日韩精品一区二区三区视频在线观看 | 成人av手机在线观看| 欧美一a一片一级一片| 日韩亚洲欧美高清| 中文字幕国产精品一区二区| 亚洲国产精品一区二区久久| 久久精品国产99| 91一区一区三区| 日韩视频在线观看一区二区| 国产精品嫩草影院com| 日韩av电影免费观看高清完整版 | 久久99日本精品| 99久久精品免费精品国产| 欧美三级中文字幕在线观看| 久久亚洲精华国产精华液 | 亚洲免费高清视频在线| 美女mm1313爽爽久久久蜜臀| 97se亚洲国产综合在线| 精品久久久久香蕉网| 一区二区国产视频| 国产精品18久久久久久vr| 欧美高清视频在线高清观看mv色露露十八 | 激情五月婷婷综合| 欧美视频一二三区| 国产女主播视频一区二区| 日韩国产欧美在线播放| 不卡av在线网| 久久夜色精品国产噜噜av | 日韩女优av电影| 一区二区日韩av| 国产成人在线影院| 亚洲日本乱码在线观看| 久久99精品久久久久久国产越南 | 国产精品毛片久久久久久久| 日本欧美久久久久免费播放网| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品羞羞答答xxdd| 日韩一二三区视频| 丝袜诱惑制服诱惑色一区在线观看 | 国产成人免费在线视频| 日韩欧美黄色影院| 五月综合激情网| 欧美日韩国产天堂| 午夜欧美在线一二页| 91黄色激情网站| 亚洲女同女同女同女同女同69| 国产成人精品影院| 中国av一区二区三区| 粉嫩av一区二区三区在线播放| 精品噜噜噜噜久久久久久久久试看 | 午夜精品久久久久影视| 欧美性色黄大片手机版| 亚洲影视在线播放| 91色婷婷久久久久合中文| 《视频一区视频二区| 成人午夜碰碰视频| 亚洲欧洲日韩在线| 在线亚洲一区二区| 亚洲国产中文字幕| 9191久久久久久久久久久| 奇米888四色在线精品| 精品国产乱码久久久久久影片| 青青草精品视频| 欧美大度的电影原声| 精品一区在线看| 久久久一区二区三区| 白白色 亚洲乱淫| 亚洲综合一区二区精品导航| 欧美一区二区在线不卡| 狠狠色伊人亚洲综合成人| 久久伊人中文字幕| 成人av第一页| 午夜欧美2019年伦理| 日韩欧美国产综合| 国产91富婆露脸刺激对白| 国产精品家庭影院| 欧美精品日韩一本| 国产成人在线视频网站| 成人欧美一区二区三区黑人麻豆 | 精品国产免费人成在线观看| 国产高清在线观看免费不卡| 亚洲色图第一区| 欧美一区永久视频免费观看| 国产成人av福利| 亚洲va韩国va欧美va| 久久尤物电影视频在线观看| 一本大道久久a久久综合| 美腿丝袜亚洲三区| 亚洲三级在线观看| 欧美一二三四区在线| 91免费观看视频在线| 日本中文字幕不卡| 综合亚洲深深色噜噜狠狠网站| 国产91丝袜在线播放| 亚洲va韩国va欧美va| 91小视频在线观看| 亚洲人成网站在线| 日韩女优av电影| 在线观看欧美黄色| 日韩制服丝袜av| 日韩欧美亚洲国产另类| 国产精品丝袜一区| 欧美一级理论性理论a| 99久久国产综合精品色伊| 裸体歌舞表演一区二区| 亚洲综合免费观看高清完整版在线| 精品盗摄一区二区三区| 欧美群妇大交群中文字幕| 91亚洲资源网| 粗大黑人巨茎大战欧美成人| 国产在线观看一区二区| 日韩成人一级大片| 亚洲第一主播视频| 亚洲综合精品久久| 亚洲欧美一区二区三区孕妇| 久久精品一区蜜桃臀影院| 欧美夫妻性生活| 欧美精品三级在线观看| 欧美三级蜜桃2在线观看| 成人性生交大片免费看中文| 国产一区二区三区黄视频 | 亚洲欧美日韩中文播放 | 奇米四色…亚洲| 视频一区国产视频| 日韩综合一区二区| 日韩国产一区二| 免费人成在线不卡| 久久狠狠亚洲综合| 九九九久久久精品| 精品一区二区三区欧美| 国内精品伊人久久久久av影院| 蜜桃视频免费观看一区| 久久精品99久久久| 国产精品一区二区你懂的| 国产精品一区在线观看你懂的| 国产二区国产一区在线观看| 国产精品一卡二卡在线观看| 国产精品一区在线| 成人国产精品免费网站| 91网站在线播放| 欧美三片在线视频观看| 884aa四虎影成人精品一区| 欧美一卡二卡在线观看| 精品第一国产综合精品aⅴ| 日本一区二区三区四区在线视频| 国产婷婷一区二区| 亚洲欧洲99久久| 午夜电影一区二区三区| 韩国女主播成人在线| 成人国产在线观看| 欧美日韩一区二区在线观看| 88在线观看91蜜桃国自产| 久久色视频免费观看| 亚洲视频在线一区| 奇米影视一区二区三区小说| 国产黄色精品网站| 欧美日韩免费不卡视频一区二区三区| 欧美久久久久久久久| 精品国产一区二区三区忘忧草| 日本一区二区不卡视频| 亚洲r级在线视频| 国产精品538一区二区在线| 91蜜桃网址入口| 精品久久久久久久人人人人传媒 | 555www色欧美视频| 国产亚洲综合在线| 亚洲午夜一二三区视频| 激情图区综合网| 欧美视频一区二区三区| 中文字幕久久午夜不卡| 色爱区综合激月婷婷| 精品成人在线观看|