Beispiel #1
0
void PWidget::eventMove(QObject *, QEvent *e)  
{
  PukeMessage pm;
  widgetId wI;

  QMoveEvent *me = Q_MOVE_EVENT(e);
  
  wI = widgetIden();
  pm.iCommand = - e->type() - 1020; // 1020 offset for events
  pm.iWinId = wI.iWinId;
  pm.iArg = 0;

  // special cArg handling
  pm.iTextSize = 4*sizeof(int);
  int *icArg = new int[4];
  icArg[0] = me->pos().x();
  icArg[1] = me->pos().y();
  icArg[2] = me->oldPos().x();
  icArg[3] = me->oldPos().y();
  pm.cArg = (char *) icArg;

  emit outputMessage(wI.fd, &pm);

  delete[] icArg;
  
}
Beispiel #2
0
bool CACanvasItem::eventFilter(QObject* o, QEvent* e)
{
    if (o == m_koCanvasGraphicsWidget) {
        if (e->type() == QEvent::Move) {
            m_shouldIgnoreGeometryChange = true;
            QMoveEvent *moveEvent = static_cast<QMoveEvent*>(e);
            setPos(QPointF(moveEvent->pos()));
        } else if (e->type() == QEvent::Resize) {
            m_shouldIgnoreGeometryChange = true;
            QResizeEvent *resizeEvent = static_cast<QResizeEvent*>(e);
            setWidth(resizeEvent->size().width());
            setHeight(resizeEvent->size().height());
        } else if (m_editable) {
            return false;
        } else if (e->type() == QEvent::MouseButtonPress ||
                   e->type() == QEvent::MouseButtonRelease ||
                   e->type() == QEvent::MouseMove ||
                   e->type() == QEvent::MouseTrackingChange)  {
            return true;
        } else {
            return false;
        }
    }
    QTimer::singleShot(0, this, SLOT(resetShouldIgnoreGeometryChange()));
    return QDeclarativeItem::eventFilter(o, e);
}
Beispiel #3
0
bool ExtendWidget::eventFilter(QObject *o, QEvent *e)
{
    Q_D(ExtendWidget);

    if (o == d->target) {
        if (e->type() == QEvent::Resize) {
            QResizeEvent *event = static_cast<QResizeEvent *>(e);
            if (event) {
                QSize size = event->size();

                if (size.width() != d->old_size.width()) {
                    emit widthChanged(size.width());
                }

                if (size.height() != d->old_size.height()) {
                    emit heightChanged(size.height());
                }

                if (size != d->old_size) {
                    emit sizeChanged(size);
                }

                d->old_size = size;
            }
        } else if (e->type() == QEvent::Move) {
            QMoveEvent *event = static_cast<QMoveEvent *>(e);

            if (event) {
                QPoint pos = event->pos();

                if (pos.x() != d->old_pos.x()) {
                    emit xChanged(pos.x());
                }

                if (pos.y() != d->old_pos.y()) {
                    emit yChanged(pos.y());
                }

                if (pos != d->old_pos) {
                    emit positionChanged(pos);
                }

                d->old_pos = pos;
            }
        }
    }

    return false;
}
static PyObject *meth_QMoveEvent_pos(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = NULL;

    {
        QMoveEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QMoveEvent, &sipCpp))
        {
            QPoint *sipRes;

            Py_BEGIN_ALLOW_THREADS
            sipRes = new QPoint(sipCpp->pos());
            Py_END_ALLOW_THREADS

            return sipConvertFromNewType(sipRes,sipType_QPoint,NULL);
        }
    }
bool CandidateWindowProxy::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == window) {
        if (event->type() == QEvent::Move) {
            QWidget *widget = QApplication::focusWidget();
            if (widget) {
                QRect rect
                    = widget->inputMethodQuery(Qt::ImMicroFocus).toRect();
                QPoint p = widget->mapToGlobal(rect.topLeft());
                layoutWindow(p.x(), p.y(), rect.height());
            } else {
                QMoveEvent *moveEvent = static_cast<QMoveEvent *>(event);
                QPoint p = moveEvent->pos() - moveEvent->oldPos();
                execute("move_candwin\f" + QString::number(p.x()) + '\f'
                    + QString::number(p.y()));
            }
        }
        return false;
    }
    return QObject::eventFilter(obj, event);
}
bool UIVMInformationDialog::event(QEvent *pEvent)
{
    /* Pre-process through base-class: */
    const bool fResult = QIMainWindow::event(pEvent);

    /* Process required events: */
    switch (pEvent->type())
    {
        /* Handle Resize event to keep track of the geometry: */
        case QEvent::Resize:
        {
            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
            {
                QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent);
                m_geometry.setSize(pResizeEvent->size());
            }
            break;
        }
        /* Handle Move event to keep track of the geometry: */
        case QEvent::Move:
        {
            if (isVisible() && (windowState() & (Qt::WindowMaximized | Qt::WindowMinimized | Qt::WindowFullScreen)) == 0)
            {
#ifdef VBOX_WS_MAC
                QMoveEvent *pMoveEvent = static_cast<QMoveEvent*>(pEvent);
                m_geometry.moveTo(pMoveEvent->pos());
#else /* VBOX_WS_MAC */
                m_geometry.moveTo(geometry().x(), geometry().y());
#endif /* !VBOX_WS_MAC */
            }
            break;
        }
        default:
            break;
    }

    /* Return result: */
    return fResult;
}
Beispiel #7
0
bool QtEvent::eventFilter(QObject *target, QEvent *event)
{
    int type = event->type();
    void *func = m_hash.value(type);
    if (func != 0) {
        int accept = event->isAccepted() ? 1 : 0;
        switch(type) {
        case QEvent::Create:
        case QEvent::Close:
        case QEvent::Show:
        case QEvent::Hide:
        case QEvent::Enter:
        case QEvent::Leave: {
            base_event ev = {accept};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::FocusIn:
        case QEvent::FocusOut: {
            QFocusEvent *e = (QFocusEvent*)event;
            focus_event ev = {accept,e->reason()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::Timer: {
            QTimerEvent *e = (QTimerEvent*)event;
            timer_event ev = {accept,e->timerId()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::HoverEnter:
        case QEvent::HoverLeave:
        case QEvent::HoverMove: {
            QHoverEvent *e = (QHoverEvent*)event;
            const QPoint &pt = e->pos();
            const QPoint &opt = e->oldPos();
            hover_event ev = {accept,pt.x(),pt.y(),opt.x(),opt.y()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::KeyPress:
        case QEvent::KeyRelease: {
            QKeyEvent *e = (QKeyEvent*)event;
            string_head sh;
            drvSetString(&sh,e->text());
            key_event ev = {accept,e->modifiers(),e->count(),e->isAutoRepeat()?1:0,e->key(),e->nativeModifiers(),e->nativeScanCode(),e->nativeVirtualKey(),&sh};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::MouseButtonPress:
        case QEvent::MouseButtonRelease:
        case QEvent::MouseButtonDblClick:
        case QEvent::MouseMove: {
            QMouseEvent *e = (QMouseEvent*)event;
            const QPoint &gpt = e->globalPos();
            const QPoint &pt = e->pos();
            mouse_event ev = {accept,e->modifiers(),e->button(),e->buttons(),gpt.x(),gpt.y(),pt.x(),pt.y()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::Move: {
            QMoveEvent *e = (QMoveEvent*)event;
            const QPoint &pt = e->pos();
            const QPoint &opt = e->oldPos();
            move_event ev = {accept,pt.x(),pt.y(),opt.x(),opt.y()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::Resize: {
            QResizeEvent *e = (QResizeEvent*)event;
            const QSize &sz = e->size();
            const QSize &osz = e->oldSize();
            resize_event ev = {accept,sz.width(),sz.height(),osz.width(),osz.height()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        case QEvent::Paint: {
            QPaintEvent *e = (QPaintEvent*)event;
            const QRect &rc = e->rect();
            paint_event ev = {accept,rc.x(),rc.y(),rc.width(),rc.height()};
            drv_callback(func,&ev,0,0,0);
            event->setAccepted(ev.accept != 0);
            break;
        }
        default: {
            return QObject::eventFilter(target,event);
        }
        }
        return true;
    }
    return QObject::eventFilter(target,event);
}
Beispiel #8
0
bool AQEventFilter::eventFilter(QObject *obj, QEvent *ev)
#endif
{
  if (AQWEBAPP->ignoreEvents_ || ev->aq_ignore || !obj->isWidgetType())
#ifdef AQ_USE_NOTIFY
    return QApplication::notify(obj, ev);
#else
    return false;
#endif

  switch (ev->type()) {
    case QEvent::Show: {
      ev->aq_ignore = true;
      QApplication::sendEvent(obj, ev);
      ev->aq_ignore = false;
      AQWEBAPP->postAQEvent(new AQEvent(obj, new QEvent(QEvent::Show)));
      return true;
    }

    case QEvent::Hide: {
      ev->aq_ignore = true;
      QApplication::sendEvent(obj, ev);
      ev->aq_ignore = false;
      QWidget *w = AQ_WIDGET(obj);
      if (w->isTopLevel()) {
        //printf("hide %p %s\n", w, w->QObject::name());
        //if (AQWEBAPP->lastDeactivate_)
        //  printf("hide lastDeactivate_ %p %s\n", AQWEBAPP->lastDeactivate_, AQWEBAPP->lastDeactivate_->QObject::name());
        if (AQWEBAPP->lastDeactivate_ == w)
          AQWEBAPP->lastDeactivate_ = 0;
        AQWidgetInfo *wInfo = AQWEBAPP->createdWidgets_.find(w);
        if (wInfo && wInfo->backActive_) {
          //printf("hide backActive_ %p %s\n", wInfo->backActive_, wInfo->backActive_->QObject::name());
          if (AQWEBAPP->createdWidgets_.find(wInfo->backActive_))
            wInfo->backActive_->setActiveWindow();
          wInfo->backActive_ = 0;
        }
      }
      AQWEBAPP->postAQEvent(new AQEvent(obj, new QEvent(QEvent::Hide)));
      //break;
      return true;
    }

    case QEvent::Move: {
      QMoveEvent *mv = static_cast<QMoveEvent *>(ev);
      if (mv->pos() != mv->oldPos())
        AQWEBAPP->postAQEvent(new AQEvent(obj, new QMoveEvent(mv->pos(), mv->oldPos())));
      break;
    }

    case QEvent::Resize: {
      QResizeEvent *rs = static_cast<QResizeEvent *>(ev);
      if (rs->size() != rs->oldSize())
        AQWEBAPP->postAQEvent(new AQEvent(obj, new QResizeEvent(rs->size(), rs->oldSize())));
      break;
    }

    case QEvent::Reparent: {
      AQWEBAPP->postAQEvent(new AQEvent(obj, new QEvent(QEvent::Reparent)));
      break;
    }

    case QEvent::WindowActivate: {
      QWidget *w = AQ_WIDGET(obj);
      if (w->isTopLevel()) {
        //printf("activate %p %s\n", w, w->QObject::name());
        if (AQWEBAPP->lastDeactivate_ && AQWEBAPP->lastDeactivate_ != w) {
          AQWidgetInfo *wInfo = AQWEBAPP->createdWidgets_.find(w);
          if (wInfo) {
            wInfo->backActive_ = AQWEBAPP->lastDeactivate_;
            //printf("activate backActive_ %p %s\n", wInfo->backActive_, wInfo->backActive_->QObject::name());
          }
        }
        AQWEBAPP->postAQEvent(new AQEvent(obj, new QEvent(QEvent::WindowActivate)));
      }
      break;
    }

    case QEvent::WindowDeactivate: {
      QWidget *w = AQ_WIDGET(obj);
      if (w->isTopLevel()) {
        //printf("deactivate %p %s\n", w, w->QObject::name());
        AQWEBAPP->lastDeactivate_ = w;
        AQWEBAPP->postAQEvent(new AQEvent(obj, new QEvent(QEvent::WindowDeactivate)));
      }
      break;
    }

    case QEvent::CaptionChange: {
      QWidget *w = AQ_WIDGET(obj);
      if (w->isTopLevel() && !w->isPopup())
        aq_notify_gui_args_event(w, "xgen",
                                 QString::fromLatin1("caption:") +
                                 w->caption());
      break;
    }

    case QEvent::IconChange: {
      QWidget *w = AQ_WIDGET(obj);
      if (w->isTopLevel() && !w->isPopup())
        aq_notify_gui_args_event(w, "xgen",
                                 QString::fromLatin1("icon:") +
                                 QString::number(aq_store_pixmap(w, w->icon()), 36));
      break;
    }
  }

#ifdef AQ_USE_NOTIFY
  return QApplication::notify(obj, ev);
#else
  return false;
#endif
}
Beispiel #9
0
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
    if (obj == m_renderWindow) {
        switch (ev->type()) {
        case QEvent::Close:
            emulationStop();
            return false;
            break;
        case QEvent::MouseButtonDblClick:
            actionFullScreen->toggle();
            return true;
            break;
        case QEvent::KeyRelease:
            {
                QKeyEvent* qke = static_cast<QKeyEvent*>(ev);
                foreach (QObject* child, children()) {
                    if (QAction*a = qobject_cast<QAction*>(child)) {
                        QKeySequence seq(qke->key() + qke->modifiers());
                        if (seq == a->shortcut()) {
                            a->activate(QAction::Trigger);
                        }
                    }
                }
            }
            // fall through
        case QEvent::KeyPress:
            {
                QKeyEvent* qke = static_cast<QKeyEvent*>(ev);
                core::WPARAM wParam = 0;
                core::LPARAM lParam = 0;
                int key = qke->key();
                if ((key >= Qt::Key_0 && key <= Qt::Key_9)
                    || (key >= Qt::Key_A && key <= Qt::Key_Z)) {
                        // In these cases the Qt and windows definitions match
                    wParam = (core::WPARAM) key;
                } else if (key >= Qt::Key_Left && key <= Qt::Key_Down) {
                    wParam = (core::WPARAM) key - Qt::Key_Down + VK_DOWN;
                } else if (key == Qt::Key_Return || key == Qt::Key_Enter) {
                    wParam = VK_RETURN;
                } else if (key == Qt::Key_Space) {
                    wParam = VK_SPACE;
                }
                if (ev->type() == QEvent::KeyRelease) {
                    core::keyUp(wParam, lParam);
                } else {
                    core::keyDown(wParam, lParam);
                }
            }
            return false;
            break;
        case QEvent::Move:
            {
                if (core::moveScreen) {
                    QMoveEvent* qme = static_cast<QMoveEvent*>(ev);
                    QPoint p = qme->pos();
                    core::moveScreen(p.x(), p.y());
                }
            }
            return false;
            break;
        default:
            return false;
            break;
        }
    } else {
        return QMainWindow::eventFilter(obj, ev);