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

📄 dom2_eventsimpl.cpp

📁 konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版本源码包.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                                    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_pageX   = clientXArg;    m_pageY   = clientYArg;    KHTMLView* v;    if ( view() && view()->document() && ( v = view()->document()->view() ) ) {        m_pageX += v->contentsX();        m_pageY += v->contentsY();    }    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();    // ### make this on-demand. its soo sloooow    computeLayerPos();    m_qevent = 0;}bool MouseEventImpl::isMouseEvent() const{    return true;}//---------------------------------------------------------------------------------------------TextEventImpl::TextEventImpl(){    m_keyEvent = 0;}TextEventImpl::TextEventImpl(QKeyEvent *key, bool keypress, AbstractViewImpl *view)  : UIEventImpl(KEYDOWN_EVENT,true,true,view,0){  m_keyEvent = new QKeyEvent(key->type(), key->key(), key->ascii(), key->state(), key->text(), key->isAutoRepeat(), key->count() );  // Events are supposed to be accepted by default in Qt!  // This line made QLineEdit's keyevents be ignored, so they were sent to the khtmlview  // (and e.g. space would make it scroll down)  //m_keyEvent->ignore();  if( keypress )    m_id = KEYPRESS_EVENT;  else if( key->type() == QEvent::KeyPress )    m_id = KEYDOWN_EVENT;  else if( key->type() == QEvent::KeyRelease )    m_id = KEYUP_EVENT;  m_detail = key->count();  m_numPad = false;  m_keyVal = key->ascii();  m_virtKeyVal = DOM_VK_UNDEFINED;  m_inputGenerated = true;  switch(key->key())  {  case Qt::Key_Enter:      m_numPad = true;      /* fall through */  case Qt::Key_Return:      m_virtKeyVal = DOM_VK_ENTER;      break;  case Qt::Key_NumLock:      m_numPad = true;      m_virtKeyVal = DOM_VK_NUM_LOCK;      break;  case Qt::Key_Alt:      m_virtKeyVal = DOM_VK_RIGHT_ALT;      // ### DOM_VK_LEFT_ALT;      break;  case Qt::Key_Control:      m_virtKeyVal = DOM_VK_LEFT_CONTROL;      // ### DOM_VK_RIGHT_CONTROL      break;  case Qt::Key_Shift:      m_virtKeyVal = DOM_VK_LEFT_SHIFT;      // ### DOM_VK_RIGHT_SHIFT      break;  case Qt::Key_Meta:      m_virtKeyVal = DOM_VK_META;      break;  case Qt::Key_CapsLock:      m_virtKeyVal = DOM_VK_CAPS_LOCK;      break;  case Qt::Key_Delete:      m_virtKeyVal = DOM_VK_DELETE;      break;  case Qt::Key_End:      m_virtKeyVal = DOM_VK_END;      break;  case Qt::Key_Escape:      m_virtKeyVal = DOM_VK_ESCAPE;      break;  case Qt::Key_Home:      m_virtKeyVal = DOM_VK_HOME;      break;//   case Qt::Key_Insert://       m_virtKeyVal = DOM_VK_INSERT;//       break;  case Qt::Key_Pause:      m_virtKeyVal = DOM_VK_PAUSE;      break;  case Qt::Key_Print:      m_virtKeyVal = DOM_VK_PRINTSCREEN;      break;  case Qt::Key_ScrollLock:      m_virtKeyVal = DOM_VK_SCROLL_LOCK;      break;  case Qt::Key_Left:      m_virtKeyVal = DOM_VK_LEFT;      break;  case Qt::Key_Right:      m_virtKeyVal = DOM_VK_RIGHT;      break;  case Qt::Key_Up:      m_virtKeyVal = DOM_VK_UP;      break;  case Qt::Key_Down:      m_virtKeyVal = DOM_VK_DOWN;      break;  case Qt::Key_Next:      m_virtKeyVal = DOM_VK_PAGE_DOWN;      break;  case Qt::Key_Prior:      m_virtKeyVal = DOM_VK_PAGE_UP;      break;  case Qt::Key_F1:      m_virtKeyVal = DOM_VK_F1;      break;  case Qt::Key_F2:      m_virtKeyVal = DOM_VK_F2;      break;  case Qt::Key_F3:      m_virtKeyVal = DOM_VK_F3;      break;  case Qt::Key_F4:      m_virtKeyVal = DOM_VK_F4;      break;  case Qt::Key_F5:      m_virtKeyVal = DOM_VK_F5;      break;  case Qt::Key_F6:      m_virtKeyVal = DOM_VK_F6;      break;  case Qt::Key_F7:      m_virtKeyVal = DOM_VK_F7;      break;  case Qt::Key_F8:      m_virtKeyVal = DOM_VK_F8;      break;  case Qt::Key_F9:      m_virtKeyVal = DOM_VK_F9;      break;  case Qt::Key_F10:      m_virtKeyVal = DOM_VK_F10;      break;  case Qt::Key_F11:      m_virtKeyVal = DOM_VK_F11;      break;  case Qt::Key_F12:      m_virtKeyVal = DOM_VK_F12;      break;  case Qt::Key_F13:      m_virtKeyVal = DOM_VK_F13;      break;  case Qt::Key_F14:      m_virtKeyVal = DOM_VK_F14;      break;  case Qt::Key_F15:      m_virtKeyVal = DOM_VK_F15;      break;  case Qt::Key_F16:      m_virtKeyVal = DOM_VK_F16;      break;  case Qt::Key_F17:      m_virtKeyVal = DOM_VK_F17;      break;  case Qt::Key_F18:      m_virtKeyVal = DOM_VK_F18;      break;  case Qt::Key_F19:      m_virtKeyVal = DOM_VK_F19;      break;  case Qt::Key_F20:      m_virtKeyVal = DOM_VK_F20;      break;  case Qt::Key_F21:      m_virtKeyVal = DOM_VK_F21;      break;  case Qt::Key_F22:      m_virtKeyVal = DOM_VK_F22;      break;  case Qt::Key_F23:      m_virtKeyVal = DOM_VK_F23;      break;  case Qt::Key_F24:      m_virtKeyVal = DOM_VK_F24;      break;  default:      m_virtKeyVal = DOM_VK_UNDEFINED;      break;  }  // m_keyVal should contain the unicode value  // of the pressed key if available.  if (m_virtKeyVal == DOM_VK_UNDEFINED && !key->text().isEmpty())      m_keyVal = key->text().unicode()[0];  //  m_numPad = ???  // key->state returns enum ButtonState, which is ShiftButton, ControlButton and AltButton or'ed together.  m_modifier = key->state();  // key->text() returns the unicode sequence as a QString  m_outputString = DOMString(key->text());}TextEventImpl::TextEventImpl(EventId _id,			   bool canBubbleArg,			   bool cancelableArg,			   AbstractViewImpl *viewArg,			   unsigned short detailArg,			   DOMString &outputStringArg,			   unsigned long keyValArg,			   unsigned long virtKeyValArg,			   bool inputGeneratedArg,			   bool numPadArg)  : UIEventImpl(_id,canBubbleArg,cancelableArg,viewArg,detailArg){  m_keyEvent = 0;  m_keyVal = keyValArg;  m_virtKeyVal = virtKeyValArg;  m_inputGenerated = inputGeneratedArg;  m_outputString = outputStringArg;  m_numPad = numPadArg;  m_modifier = 0;}TextEventImpl::~TextEventImpl(){    delete m_keyEvent;}bool TextEventImpl::checkModifier(unsigned long modifierArg){  return ((m_modifier & modifierArg) == modifierArg);}void TextEventImpl::initTextEvent(const DOMString &typeArg,				bool canBubbleArg,				bool cancelableArg,				const AbstractView &viewArg,				long detailArg,				const DOMString &outputStringArg,				unsigned long keyValArg,				unsigned long virtKeyValArg,				bool inputGeneratedArg,				bool numPadArg){  UIEventImpl::initUIEvent(typeArg, canBubbleArg, cancelableArg, viewArg, detailArg);  m_outputString = outputStringArg;  m_keyVal = keyValArg;  m_virtKeyVal = virtKeyValArg;  m_inputGenerated = inputGeneratedArg;  m_numPad = numPadArg;}void TextEventImpl::initModifier(unsigned long modifierArg,				bool valueArg){  if (valueArg)      m_modifier |= modifierArg;  else      m_modifier &= (modifierArg ^ 0xFFFFFFFF);}int TextEventImpl::keyCode() const{    if (!m_keyEvent)        return 0;    if (m_virtKeyVal != DOM_VK_UNDEFINED) {        return m_virtKeyVal;    } else {        int c = charCode();        if (c != 0) {            return QChar(c).upper().unicode();        } else {            c = m_keyEvent->key();            if (c == Qt::Key_unknown)                kdDebug( 6020 ) << "Unknown key" << endl;            return c;        }    }}int TextEventImpl::charCode() const{    if (!m_keyEvent)        return 0;    if (m_outputString.length() != 1)        return 0;    return m_outputString[0].unicode();}bool TextEventImpl::isTextEvent() 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_attrName)	m_attrName->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;}

⌨️ 快捷键说明

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