void BleWindowsCaptureSource::drawCursor(QPaintDevice *pd) { QPainter p(pd); QPixmap pix = cursorPixmap(); QPoint point = QCursor::pos(); p.drawPixmap(point.x() - m_x, point.y() - m_y, pix.width(), pix.height(), pix); }
void IDBTabButtonBarButton::mouseMoveEvent(QMouseEvent *event) { int newX = event->screenPos().x()+mouseOffset_; // IDBTabButtonBarList *list = qobject_cast<IDBTabButtonBarList *>(parentWidget()); if (event->pos().y() > -20 && event->pos().y() < HEIGHT_DEFULT+20 && newX > -WIDTH_DEFULT && newX < parentWindow_->width() - 200 ) { move(newX,0); int newTabIndex = (newX+WIDTH_DEFULT/2)/WIDTH_DEFULT; parentWindow_->moveButton(tabIndex_,newTabIndex); }else{ parentWindow_->removeButton(tabIndex_); QByteArray itemData; QDataStream dataStream(&itemData, QIODevice::WriteOnly); QString tabName = text(); dataStream << tabName; QMimeData *mimeData = new QMimeData(); mimeData->setData("tab/x-idblayoutwindow-idbtab", itemData); QPixmap pixmap(300,200); pixmap.fill( Qt::black ); QPainter painter(&pixmap); painter.setPen( Qt::gray ); painter.fillRect(QRectF(20,0,200,25),Qt::gray); painter.drawRect(0,0,299,199); painter.setPen( Qt::black ); QPoint point = QPoint( 30, 15 ); painter.drawText( point, tabName ); IDBDrag drag(this); drag.setMimeData(mimeData); drag.setHotSpot(QPoint(0, 0)); drag.setPixmap(pixmap); QPixmap cursorPixmap(1,1); cursorPixmap.fill(); drag.setDragCursor(cursorPixmap,Qt::IgnoreAction); switch (drag.exec(Qt::MoveAction)) { case Qt::MoveAction: mouseOffset_ = 0; moveByIndex(); break; case Qt::IgnoreAction: mouseOffset_ = 0; IDBLayoutManager::instance().createWindow(this); break; default: break; } IDBLayoutManager::instance().tryCloseWindow(); } }