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

📄 dom2_eventsimpl.cpp

📁 khtml在gtk上的移植版本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}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;    m_relatedTarget = relatedTargetArg;    if (m_relatedTarget)	m_relatedTarget->ref();    m_clipboard = clipboardArg;    if (m_clipboard)	m_clipboard->ref();    computeLayerPos();}void MouseEventImpl::computeLayerPos(){    m_layerX = m_clientX;    m_layerY = m_clientY;    DocumentImpl *doc = view()->document();    if (!doc) {	return;    }    khtml::RenderObject::NodeInfo renderInfo(true, false);    doc->renderer()->layer()->nodeAtPoint(renderInfo, m_clientX, m_clientY);    NodeImpl *node = renderInfo.innerNonSharedNode();    while (node && !node->renderer()) {	node = node->parent();    }    if (!node) {	return;    }    node->renderer()->enclosingLayer()->updateLayerPosition();        for (khtml::RenderLayer *layer = node->renderer()->enclosingLayer(); layer != NULL; layer = layer->parent()) {	m_layerX -= layer->xPos();	m_layerY -= layer->yPos();    }}MouseEventImpl::~MouseEventImpl(){    if (m_relatedTarget)	m_relatedTarget->deref();    if (m_clipboard)	m_clipboard->deref();}void MouseEventImpl::initMouseEvent(const DOMString &typeArg,                                    bool canBubbleArg,                                    bool cancelableArg,                                    const AbstractView &viewArg,                                    long detailArg,                                    long screenXArg,                                    long screenYArg,                                    long clientXArg,                                    long clientYArg,                                    bool ctrlKeyArg,                                    bool altKeyArg,                                    bool shiftKeyArg,                                    bool metaKeyArg,                                    unsigned short buttonArg,                                    const Node &relatedTargetArg){    UIEventImpl::initUIEvent(typeArg,canBubbleArg,cancelableArg,viewArg,detailArg);    if (m_relatedTarget)	m_relatedTarget->deref();    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;    m_relatedTarget = relatedTargetArg.handle();    if (m_relatedTarget)	m_relatedTarget->ref();    computeLayerPos();}bool MouseEventImpl::isMouseEvent() const{    return true;}bool MouseEventImpl::isDragEvent() const{    return (m_id == EventImpl::DRAGENTER_EVENT || m_id == EventImpl::DRAGOVER_EVENT            || m_id == EventImpl::DRAGLEAVE_EVENT || m_id == EventImpl::DROP_EVENT             || m_id == EventImpl::DRAGSTART_EVENT || m_id == EventImpl::DRAG_EVENT            || m_id == EventImpl::DRAGEND_EVENT);}//---------------------------------------------------------------------------------------------KeyboardEventImpl::KeyboardEventImpl(){  m_keyEvent = 0;  m_keyIdentifier = 0;  m_keyLocation = KeyboardEvent::DOM_KEY_LOCATION_STANDARD;  m_ctrlKey = false;  m_shiftKey = false;  m_altKey = false;  m_metaKey = false;  m_altGraphKey = false;}KeyboardEventImpl::KeyboardEventImpl(QKeyEvent *key, AbstractViewImpl *view)  : UIEventImpl(key->type() == QEvent::KeyRelease ? KEYUP_EVENT : key->isAutoRepeat() ? KEYPRESS_EVENT : KEYDOWN_EVENT,                true,true,view,0){#if APPLE_CHANGES    m_keyEvent = new QKeyEvent(*key);#else    m_keyEvent = new QKeyEvent(key->type(), key->key(), key->ascii(), key->state(), key->text(), key->isAutoRepeat(), key->count());#endif#if APPLE_CHANGES    DOMString identifier(key->keyIdentifier());    m_keyIdentifier = identifier.implementation();    m_keyIdentifier->ref();#else    m_keyIdentifier = 0;    // need the equivalent of the above for KDE#endif    int keyState = key->state();    m_ctrlKey = keyState & Qt::ControlButton;    m_shiftKey = keyState & Qt::ShiftButton;    m_altKey = keyState & Qt::AltButton;    m_metaKey = keyState & Qt::MetaButton;    m_altGraphKey = false; // altGraphKey is not supported by Qt.        // Note: we only support testing for num pad    m_keyLocation = (keyState & Qt::Keypad) ? KeyboardEvent::DOM_KEY_LOCATION_NUMPAD : KeyboardEvent::DOM_KEY_LOCATION_STANDARD;}KeyboardEventImpl::KeyboardEventImpl(EventId _id,                                        bool canBubbleArg,                                        bool cancelableArg,                                        AbstractViewImpl *viewArg,                                         const DOMString &keyIdentifierArg,                                         unsigned long keyLocationArg,                                         bool ctrlKeyArg,                                         bool shiftKeyArg,                                         bool altKeyArg,                                         bool metaKeyArg,                                         bool altGraphKeyArg)  : UIEventImpl(_id,canBubbleArg,cancelableArg,viewArg,0){    m_keyEvent = 0;    m_keyIdentifier = keyIdentifierArg.implementation();    if (m_keyIdentifier)        m_keyIdentifier->ref();    m_keyLocation = keyLocationArg;    m_ctrlKey = ctrlKeyArg;    m_shiftKey = shiftKeyArg;    m_altKey = altKeyArg;    m_metaKey = metaKeyArg;    m_altGraphKey = altGraphKeyArg;}KeyboardEventImpl::~KeyboardEventImpl(){    delete m_keyEvent;    if (m_keyIdentifier)        m_keyIdentifier->deref();}void KeyboardEventImpl::initKeyboardEvent(const DOMString &typeArg,                        bool canBubbleArg,                        bool cancelableArg,                        const AbstractView &viewArg,                         const DOMString &keyIdentifierArg,                         unsigned long keyLocationArg,                         bool ctrlKeyArg,                         bool shiftKeyArg,                         bool altKeyArg,                         bool metaKeyArg,                         bool altGraphKeyArg){    if (m_keyIdentifier)        m_keyIdentifier->deref();    UIEventImpl::initUIEvent(typeArg, canBubbleArg, cancelableArg, viewArg, 0);    m_keyIdentifier = keyIdentifierArg.implementation();    if (m_keyIdentifier)        m_keyIdentifier->ref();    m_keyLocation = keyLocationArg;    m_ctrlKey = ctrlKeyArg;    m_shiftKey = shiftKeyArg;    m_altKey = altKeyArg;    m_metaKey = metaKeyArg;    m_altGraphKey = altGraphKeyArg;}int KeyboardEventImpl::keyCode() const{    if (!m_keyEvent) {        return 0;    }    switch (m_id) {        case KEYDOWN_EVENT:        case KEYUP_EVENT:#if APPLE_CHANGES            return m_keyEvent->WindowsKeyCode();#else            // need the equivalent of the above for KDE#endif        default:            return charCode();    }}int KeyboardEventImpl::charCode() const{    if (!m_keyEvent) {        return 0;    }    QString text = m_keyEvent->text();    if (text.length() != 1) {        return 0;    }    return text[0].unicode();}bool KeyboardEventImpl::isKeyboardEvent() const{    return true;}// -----------------------------------------------------------------------------MutationEventImpl::MutationEventImpl(){    m_relatedNode = 0;    m_prevValue = 0;    m_newValue = 0;    m_attrName = 0;    m_attrChange = 0;}MutationEventImpl::MutationEventImpl(EventId _id,				     bool canBubbleArg,				     bool cancelableArg,				     const Node &relatedNodeArg,				     const DOMString &prevValueArg,				     const DOMString &newValueArg,				     const DOMString &attrNameArg,				     unsigned short attrChangeArg)		      : EventImpl(_id,canBubbleArg,cancelableArg){    m_relatedNode = relatedNodeArg.handle();    if (m_relatedNode)	m_relatedNode->ref();    m_prevValue = prevValueArg.implementation();    if (m_prevValue)	m_prevValue->ref();    m_newValue = newValueArg.implementation();    if (m_newValue)	m_newValue->ref();    m_attrName = attrNameArg.implementation();    if (m_newValue)	m_newValue->ref();    m_attrChange = attrChangeArg;}MutationEventImpl::~MutationEventImpl(){    if (m_relatedNode)	m_relatedNode->deref();    if (m_prevValue)	m_prevValue->deref();    if (m_newValue)	m_newValue->deref();    if (m_attrName)	m_attrName->deref();}void MutationEventImpl::initMutationEvent(const DOMString &typeArg,					  bool canBubbleArg,					  bool cancelableArg,					  const Node &relatedNodeArg,					  const DOMString &prevValueArg,					  const DOMString &newValueArg,					  const DOMString &attrNameArg,					  unsigned short attrChangeArg){    EventImpl::initEvent(typeArg,canBubbleArg,cancelableArg);    if (m_relatedNode)	m_relatedNode->deref();    if (m_prevValue)	m_prevValue->deref();    if (m_newValue)	m_newValue->deref();    if (m_attrName)	m_attrName->deref();    m_relatedNode = relatedNodeArg.handle();    if (m_relatedNode)	m_relatedNode->ref();    m_prevValue = prevValueArg.implementation();    if (m_prevValue)	m_prevValue->ref();    m_newValue = newValueArg.implementation();    if (m_newValue)	m_newValue->ref();    m_attrName = attrNameArg.implementation();    if (m_newValue)	m_newValue->ref();    m_attrChange = attrChangeArg;}bool MutationEventImpl::isMutationEvent() const{    return true;}// -----------------------------------------------------------------------------ClipboardEventImpl::ClipboardEventImpl(){    m_clipboard = 0;}ClipboardEventImpl::ClipboardEventImpl(EventId _id, bool canBubbleArg, bool cancelableArg, ClipboardImpl *clipboardArg)  : EventImpl(_id, canBubbleArg, cancelableArg), m_clipboard(clipboardArg){      if (m_clipboard)          m_clipboard->ref();}ClipboardEventImpl::~ClipboardEventImpl(){    if (m_clipboard)        m_clipboard->deref();}bool ClipboardEventImpl::isClipboardEvent() const{    return true;}// -----------------------------------------------------------------------------RegisteredEventListener::RegisteredEventListener(EventImpl::EventId _id, EventListener *_listener, bool _useCapture){    id = _id;    listener = _listener;    useCapture = _useCapture;    listener->ref();}RegisteredEventListener::~RegisteredEventListener() {    listener->deref();}bool RegisteredEventListener::operator==(const RegisteredEventListener &other){    return (id == other.id &&	    listener == other.listener &&	    useCapture == other.useCapture);}// -----------------------------------------------------------------------------ClipboardImpl::ClipboardImpl(){}ClipboardImpl::~ClipboardImpl(){}

⌨️ 快捷键说明

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