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();
    }
}