bool SlideNavmesh::mouseDown(const float x, const float y) { if (!m_expanded) { if (hitCorner(x,y)) { startDrag(1, x,y, m_pos); return true; } } else { int bidx = hitButtons(x-m_pos[0],y-m_pos[1]); if (bidx != -1) { return true; } else if (hitCorner(x,y)) { startDrag(1, x,y, m_pos); return true; } else if (hitArea(x,y)) { const float lx = x - (m_pos[0]+PADDING_SIZE); const float ly = y - (m_pos[1]+PADDING_SIZE); float pos[2] = {lx,ly}; float nearest[2] = {lx,ly}; if (m_scene.nav) navmeshFindNearestTri(m_scene.nav, pos, nearest); if (SDL_GetModState() & KMOD_SHIFT) { agentMoveAndAdjustCorridor(&m_scene.agents[0], nearest, m_scene.nav); vcpy(m_scene.agents[0].oldpos, m_scene.agents[0].pos); vset(m_scene.agents[0].corner, FLT_MAX,FLT_MAX); } else { vcpy(m_scene.agents[0].target, nearest); vcpy(m_scene.agents[0].oldpos, m_scene.agents[0].pos); agentFindPath(&m_scene.agents[0], m_scene.nav); vset(m_scene.agents[0].corner, FLT_MAX,FLT_MAX); } return true; } } return false; }
void Scene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if(itemAt(event->scenePos(), QTransform())) startDrag(event->scenePos()); QGraphicsScene::mouseMoveEvent(event); }
void CardsList::mouseMoveEvent(QMouseEvent *event) { int index = itemAt(event->pos()); if(index != -1) { quint32 id = ls[index]; if(currentCardId != id) { currentCardId = id; tower->changeCurrentId(ls[index]); } needRefreshId = false; } if(event->buttons() & Qt::LeftButton) { int dist = (event->pos() - startPos).manhattanLength(); if(dist >= QApplication::startDragDistance() && index != -1) { current = -1; startDrag(index); } } else if(current != index) { current = index; update(); } QWidget::mouseMoveEvent(event); }
void ComponentSceneItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if (QLineF(event->screenPos(), event->buttonDownScreenPos(Qt::LeftButton)).length() >= QApplication::startDragDistance()) { startDrag(); } QGraphicsObject::mouseMoveEvent(event); }
/** * Tablet events are handled here * @param event event info */ bool CanvasView::viewportEvent(QEvent *event) { if(event->type() == QEvent::TabletMove) { // Stylus moved QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure()); if(!_prevpoint.intSame(point)) { if(_isdragging) moveDrag(tabev->x(), tabev->y()); else { if(_pendown) { if(point.pressure()==0) { // Missed a release event _pendown = NOTDOWN; onPenUp(); } else { onPenMove(point); } } updateOutline(point); } _prevpoint = point; } } else if(event->type() == QEvent::TabletPress) { // Stylus touches the tablet surface QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); if(_dragbtndown) { startDrag(tabev->x(), tabev->y(), _dragbtndown); } else { if(_pendown == NOTDOWN) { const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure()); _pendown = TABLETDOWN; onPenDown(point, false); updateOutline(point); _prevpoint = point; } } } else if(event->type() == QEvent::TabletRelease) { // Stylus lifted QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); if(_isdragging) { stopDrag(); } else if(_pendown == TABLETDOWN) { dpcore::Point point(mapToScene(tabev->pos()), 0); updateOutline(point); _prevpoint = point; _pendown = NOTDOWN; onPenUp(); } } else { return QGraphicsView::viewportEvent(event); } return true; }
void Draggable::onEvent(Event* event) { //if (event->currentTarget.get() != _actor) // return; TouchEvent* te = safeCast<TouchEvent*>(event); switch (te->type) { case TouchEvent::TOUCH_DOWN: { startDrag(te->localPosition); } break; case TouchEvent::TOUCH_UP: { _pressed = false; _actor->_getStage()->removeEventListeners(this); if (getTimeMS() - _startTm < 2) { _actor->setPosition(_clientPos); } } break; case TouchEvent::MOVE: { onMove(te->localPosition); } break; } }
void PoolTreeView::mouseMoveEvent(QMouseEvent* _event) { CursorManager cursorMan(this, _event, state() == PoolTreeView::DraggingState); if (!(_event->buttons() & Qt::LeftButton)) { WalletTreeView::mouseMoveEvent(_event); QModelIndex index = indexAt(_event->pos()); if (index.isValid() && index.column() != MinerModel::COLUMN_REMOVE) { selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); } else { selectionModel()->clearSelection(); } return; } if (!m_pressedIndex.isValid()) { WalletTreeView::mouseMoveEvent(_event); return; } if ((_event->pos() - m_pressedPosition).manhattanLength() < QApplication::startDragDistance()) { WalletTreeView::mouseMoveEvent(_event); return; } if (m_pressedTime.msecsTo(QDateTime::currentDateTime()) < QApplication::startDragTime()) { WalletTreeView::mouseMoveEvent(_event); return; } startDrag(model()->supportedDragActions()); }
SourceWidget::SourceWidget(QWidget *parent) : QWidget(parent) { QFile imageFile(":/images/example.svg"); imageFile.open(QIODevice::ReadOnly); imageData = imageFile.readAll(); imageFile.close(); QScrollArea *imageArea = new QScrollArea; imageLabel = new QSvgWidget; imageLabel->renderer()->load(imageData); imageArea->setWidget(imageLabel); //imageLabel->setMinimumSize(imageLabel->renderer()->viewBox().size()); QLabel *instructTopLabel = new QLabel(tr("This is an SVG drawing:")); QLabel *instructBottomLabel = new QLabel( tr("Drag the icon to copy the drawing as a PNG file:")); instructBottomLabel->setWordWrap(true); QPushButton *dragIcon = new QPushButton(tr("Export")); dragIcon->setIcon(QIcon(":/images/drag.png")); connect(dragIcon, SIGNAL(pressed()), this, SLOT(startDrag())); QGridLayout *layout = new QGridLayout; layout->addWidget(instructTopLabel, 0, 0, 1, 2); layout->addWidget(imageArea, 1, 0, 2, 2); layout->addWidget(instructBottomLabel, 3, 0); layout->addWidget(dragIcon, 3, 1); setLayout(layout); setWindowTitle(tr("Delayed Encoding")); }
/** * Tablet events are handled here * @param event event info */ bool EditorView::viewportEvent(QEvent *event) { if(event->type() == QEvent::TabletMove) { // Stylus moved QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure()); if(!prevpoint_.intSame(point)) { if(isdragging_) moveDrag(tabev->x(), tabev->y()); else { if(pendown_) { if(point.pressure()==0) { // Missed a release event pendown_ = NOTDOWN; emit penUp(); } else { emit penMove(point); } } updateOutline(point); } prevpoint_ = point; } } else if(event->type() == QEvent::TabletPress) { // Stylus touches the tablet surface QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); if(dragbtndown_) { startDrag(tabev->x(), tabev->y(), dragbtndown_); } else { if(pendown_ == NOTDOWN) { const dpcore::Point point(mapToScene(tabev->pos()), tabev->pressure()); pendown_ = TABLETDOWN; emit penDown(point); updateOutline(point); prevpoint_ = point; } } } else if(event->type() == QEvent::TabletRelease) { // Stylus lifted QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); if(isdragging_) { stopDrag(); } else if(pendown_ == TABLETDOWN) { dpcore::Point point(mapToScene(tabev->pos()), 0); updateOutline(point); prevpoint_ = point; pendown_ = NOTDOWN; emit penUp(); } } else { return QGraphicsView::viewportEvent(event); } return true; }
void CSVWorld::Table::mouseMoveEvent (QMouseEvent* event) { if (event->buttons() & Qt::LeftButton) { startDrag(*this); } }
//! Handle mouse press events void CanvasView::mousePressEvent(QMouseEvent *event) { /** @todo why do we sometimes get mouse events for tablet strokes? */ if(_pendown != NOTDOWN) return; if(event->button() == Qt::MidButton || _dragbtndown) { ViewTransform mode; if(_dragbtndown == DRAG_NOTRANSFORM) { if((event->modifiers() & Qt::ControlModifier)) mode = DRAG_ZOOM; else if((event->modifiers() & Qt::ShiftModifier)) mode = DRAG_QUICKADJUST1; else mode = DRAG_TRANSLATE; } else mode = _dragbtndown; startDrag(event->x(), event->y(), mode); } else if((event->button() == Qt::LeftButton || event->button() == Qt::RightButton) && _isdragging==DRAG_NOTRANSFORM) { _pendown = MOUSEDOWN; _pointerdistance = 0; _pointervelocity = 0; _specialpenmode = event->modifiers() & Qt::ControlModifier; onPenDown(mapToScene(event->pos(), mapPressure(1.0, false)), event->button() == Qt::RightButton); } }
void CardView::contentsMouseMoveEvent( QMouseEvent *e ) { // resizing if ( d->mResizeAnchor ) { int x = e->x(); if ( x != d->mRubberBandAnchor ) drawRubberBands( x ); return; } if ( d->mLastClickOnItem && (e->buttons() & Qt::LeftButton) && ((e->pos() - d->mLastClickPos).manhattanLength() > 4)) { startDrag(); return; } d->mTimer->start( 500 ); // see if we are over a separator // only if we actually have them painted? if ( d->mDrawSeparators ) { int colcontentw = d->mItemWidth + (2 * d->mItemSpacing); int colw = colcontentw + d->mSepWidth; int m = e->x() % colw; if ( m >= colcontentw && m > 0 ) { setCursor( Qt::SplitHCursor ); d->mOnSeparator = true; } else { setCursor( Qt::ArrowCursor ); d->mOnSeparator = false; } } }
/// Mouse Move Event and handler for dragging to ScreenSetup widget void Tuning::mouseMoveEvent(QMouseEvent *event) { // Handle drag to ScreenWidget if (event->button() == Qt::LeftButton) { startDrag(); } }
void ImageButton::mouseMoveEvent( QMouseEvent *event ) { if ( (event->buttons() & Qt::LeftButton) && (event->pos() - mDragStartPos).manhattanLength() > KGlobalSettings::dndEventDelay() ) { startDrag(); } }
/** * Tablet events are handled here * @param event event info */ bool CanvasView::viewportEvent(QEvent *event) { if(event->type() == QEvent::Gesture) { gestureEvent(static_cast<QGestureEvent*>(event)); } else if(event->type() == QEvent::TabletMove && _enableTabletEvents) { // Stylus moved QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); paintcore::Point point = mapToScene(tabev->posF(), tabev->pressure()); updateOutline(point); if(!_prevpoint.intSame(point)) { if(_isdragging) moveDrag(tabev->x(), tabev->y()); else { if(_pendown) { _pointervelocity = point.distance(_prevpoint); _pointerdistance += _pointervelocity; point.setPressure(mapPressure(point.pressure(), true)); onPenMove(point, false, tabev->modifiers() & Qt::ShiftModifier, tabev->modifiers() & Qt::AltModifier); } } _prevpoint = point; } } else if(event->type() == QEvent::TabletPress && _enableTabletEvents) { // Stylus touches the tablet surface QTabletEvent *tabev = static_cast<QTabletEvent*>(event); tabev->accept(); if(_dragbtndown) { startDrag(tabev->x(), tabev->y(), _dragbtndown); } else { if(_pendown == NOTDOWN) { _pointerdistance = 0; _pointervelocity = 0; const paintcore::Point point = mapToScene(tabev->posF(), mapPressure(tabev->pressure(), true)); _specialpenmode = tabev->modifiers() & Qt::ControlModifier; /* note: modifiers doesn't seem to work, at least on Qt 5.2.0 */ _pendown = TABLETDOWN; onPenDown(point, false); updateOutline(point); _prevpoint = point; } } } else if(event->type() == QEvent::TabletRelease && _enableTabletEvents) { // Stylus lifted // Ignore this event: a mouseRelease event is also generated, so we let // the mouseRleaseEvent function handle this. } else { return QGraphicsView::viewportEvent(event); } return true; }
void BookmarksListBox::contentsMouseMoveEvent(QMouseEvent *event) { if (event->state() & LeftButton) { int distance = (event->pos() - dragPos).manhattanLength(); if (distance > QApplication::startDragDistance()) startDrag(); } QListBox::contentsMouseMoveEvent(event); }
void ProjectListWidget::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton) { int distance = (event->pos() - startPos).manhattanLength(); if (distance >= QApplication::startDragDistance()) startDrag(); } QListWidget::mouseMoveEvent(event); }
void ListView::startDrag() { #if QT_VERSION < 300 if (m_mousePressPos.isNull()) return; m_mousePressPos = QPoint(0, 0); #endif emit dragStart(); startDrag(dragObject()); }
void Desktop::mouseMoveEvent( QMouseEvent *ev ) { if ( !KPagerConfigDialog::m_windowDragging ) return; if ( (ev->state() & LeftButton) == 0 ) return; QPoint p( ev->pos() - pressPos ); if ( p.manhattanLength() >= qApp->startDragDistance() ) startDrag( pressPos ); }
void GUITabbedTitleBar::tabDragged(UINT32 tabIdx, const Vector2I& dragPos) { INT32 idx = uniqueIdxToSeqIdx(tabIdx); if(idx != -1) { Rect2I bounds = _getLayoutData().area; if(bounds.contains(dragPos)) { if(!mDragInProgress) startDrag(idx, dragPos); mDragBtnOffset = dragPos.x - mInitialDragOffset; for(INT32 i = 0; i < idx; i++) { UINT32 width = mTabButtons[i]->_getLayoutData().area.width; INT32 centerX = mTabButtons[i]->_getLayoutData().area.x + width / 2; if(dragPos.x < centerX) { GUITabButton* temp = mTabButtons[i]; mTabButtons[i] = mTabButtons[idx]; mTabButtons[idx] = temp; break; } } for(UINT32 i = idx + 1; i < (UINT32)mTabButtons.size(); i++) { UINT32 width = mTabButtons[i]->_getLayoutData().area.width; INT32 centerX = mTabButtons[i]->_getLayoutData().area.x + width / 2; if(dragPos.x > centerX) { GUITabButton* temp = mTabButtons[i]; mTabButtons[i] = mTabButtons[idx]; mTabButtons[idx] = temp; break; } } _markLayoutAsDirty(); } else { endDrag(); _markLayoutAsDirty(); if(!onTabDraggedOff.empty()) onTabDraggedOff(tabIdx); } } }
void TB_PokemonItem::mouseMoveEvent(QGraphicsSceneMouseEvent * event) { if(event->buttons() & Qt::LeftButton) { int distance = int((event->pos()-startPos).manhattanLength()); if(distance >= QApplication::startDragDistance()) { startDrag(); } } }
void WindowManager::timerEvent(QTimerEvent *event) { if (event->timerId() == _dragTimer.timerId()) { _dragTimer.stop(); if (_target) { startDrag(_target.data(), _globalDragPoint); } } else { return QObject::timerEvent(event); } }
void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event) { Q_Q(QDockWidget); int fw = q->style()->pixelMetric(QStyle::PM_DockWidgetFrameWidth, 0, q); QRect geo = q->geometry(); QRect titleRect = q->frameGeometry(); #ifdef Q_WS_MAC if ((features & QDockWidget::DockWidgetVerticalTitleBar)) { titleRect.setTop(geo.top()); titleRect.setBottom(geo.bottom()); titleRect.setRight(geo.left() - 1); } else #endif { titleRect.setLeft(geo.left()); titleRect.setRight(geo.right()); titleRect.setBottom(geo.top() - 1); titleRect.adjust(0, fw, 0, 0); } switch (event->type()) { case QEvent::NonClientAreaMouseButtonPress: if (!titleRect.contains(event->globalPos())) break; if (state != 0) break; if (qobject_cast<QMainWindow*>(parent) == 0) break; if (isAnimating()) break; initDrag(event->pos(), true); if (state == 0) break; state->ctrlDrag = event->modifiers() & Qt::ControlModifier; startDrag(); break; case QEvent::NonClientAreaMouseMove: if (state == 0 || !state->dragging) break; if (state->nca) { endDrag(); } break; case QEvent::NonClientAreaMouseButtonRelease: break; case QEvent::NonClientAreaMouseButtonDblClick: _q_toggleTopLevel(); break; default: break; } }
void ListView::contentsMouseMoveEvent(QMouseEvent *e) { #if QT_VERSION < 300 if (e->state() & QObject::LeftButton){ if (!m_mousePressPos.isNull() && currentItem() && (QPoint(e->pos() - m_mousePressPos).manhattanLength() > QApplication::startDragDistance())){ startDrag(); } } #endif QListView::contentsMouseMoveEvent(e); }
void QProjectList::mouseMoveEvent(QMouseEvent *e) { if(e->buttons() & Qt::LeftButton) { int distance=(e->pos()-startPos).manhattanLength(); if(distance >= QApplication::startDragDistance())//QApplication::startDragDistance() 默认是4个像素 { startDrag();// 开始拖动 调用函数 } QListWidget::mouseMoveEvent(e); } }
void OperatorLibraryView::mouseMoveEvent(QMouseEvent* event) { if(event->buttons() & Qt::LeftButton) { int distance = (event->pos() - m_startPos).manhattanLength(); if(distance >= QApplication::startDragDistance()) startDrag(); } QTreeView::mouseMoveEvent(event); }
void MyFileSystemView::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton) { int distance = (event->pos() - m_startPos).manhattanLength(); if (distance >= QApplication::startDragDistance()) { startDrag(); } } QTreeView::mouseMoveEvent(event); }
void TeamPokeButton::mouseMoveEvent(QMouseEvent * event) { if(event->buttons() & Qt::LeftButton) { int distance = (event->pos()-startPos).manhattanLength(); if(distance >= QApplication::startDragDistance()) { startDrag(); } } QPushButton::mouseMoveEvent(event); }
void DraggableListView::mouseMoveEvent(QMouseEvent *e) { if (_dragEnabled && e->buttons() & Qt::LeftButton && _pressPos != QPoint(-1, -1)) { QPoint delta = e->pos() - _pressPos; if (delta.manhattanLength() > QApplication::startDragDistance()) { _pressPos = QPoint(-1, -1); startDrag(); } e->accept(); } else { Q3ListView::mouseMoveEvent(e); } }
//! Handle mouse press events void CanvasView::mousePressEvent(QMouseEvent *event) { /** @todo why do we sometimes get mouse events for tablet strokes? */ if(_pendown != NOTDOWN) return; if(event->button() == Qt::MidButton || _dragbtndown) { startDrag(event->x(), event->y(), _dragbtndown!=ROTATE?TRANSLATE:ROTATE); } else if((event->button() == Qt::LeftButton || event->button() == Qt::RightButton) && _isdragging==NOTRANSFORM) { _pendown = MOUSEDOWN; onPenDown(dpcore::Point(mapToScene(event->pos()), 1.0), event->button() == Qt::RightButton); } }