Beispiel #1
0
bool UIWidget::propagateOnMouseRelease(const Point& mousePos, Fw::MouseButton button)
{
    // do a backup of children list, because it may change while looping it
    UIWidgetList children;
    for(const UIWidgetPtr& child : m_children) {
        // events on hidden or disabled widgets are discarded
        if(!child->isExplicitlyEnabled() || !child->isExplicitlyVisible())
            continue;

        // mouse release events go to all children
        children.push_back(child);
    }

    for(const UIWidgetPtr& child : children) {
        if(child->propagateOnMouseRelease(mousePos, button))
            return true;
    }

    bool ret = onMouseRelease(mousePos, button);

    if(isPressed() && button == Fw::MouseLeftButton)
        setPressed(false);

    return ret;
}
Beispiel #2
0
void DockAppItem::mouseReleaseEvent(QMouseEvent *event)
{
    //mouse event accept area are app-icon-area in FashionMode
    if (m_dockModeData->getDockMode() != Dock::FashionMode)
        onMouseRelease(event);
    else
        QFrame::mouseReleaseEvent(event);
}
Beispiel #3
0
void Record::mouseReleaseEvent(QMouseEvent *event) {
    if(event->button() == Qt::LeftButton) {
        // konstatnta 100 == aktuální zoom

        if (m_StartTime != oldStartTime) {
            relocateByMouseMove(m_Id, oldStartTime);
        }
        onMouseRelease(m_Id, m_StartTime, m_EndTime, m_Name);
    }
    this->setToolTip("Name: " + m_Name + "\n" + "StartTime: " + QString::number(m_StartTime) + "\n" + "EndTime: " + QString::number(m_EndTime));
    this->setToolTipDuration(0);
    event->ignore();
}
bool DesignerEventHandler::eventFilter(QObject* o, QEvent* e)
{
  switch (e->type()){
//    case QEvent::ContextMenu:
//      qDebug () << "context menu event !!!";
//    break;
    case QEvent::MouseButtonPress:
      //context_widget = dynamic_cast<VtlWidget*>(o);
      onMousePress((QMouseEvent*)e);
    break;
    case QEvent::MouseMove:
      onMouseMove((QMouseEvent*)e);
    break;
    case QEvent::MouseButtonRelease:	
      onMouseRelease((QMouseEvent*)e);
      //context_widget = 0;
    break;
    case QEvent::MouseButtonDblClick:
    	showWidgetProperties();
        break;
    case QEvent::ContextMenu:
        //qDebug () << o->className();
        qDebug () << "context menu event !!!";
        onContextMenu((QContextMenuEvent*)e);
    break;
    case QEvent::KeyPress:
      onKeyPress((QKeyEvent*)e);
    break;
//    case QEvent::Paint:
//      onPaintEvent ( static_cast<QPaintEvent*>(e) );
//    break;
    case OutsideEvent::Outside:{
      VtlWidget * w = ((OutsideEvent *)e)->widget();
      if (selections[w]){
        selections[w]->updateSelectionPos();
      }
    }
    return true;
    case AddToSelEvent::AddToSel:
      if (static_cast<AddToSelEvent*>(e)->clearSel())
        clearSelection( );
      addWidgetToSelection(static_cast<AddToSelEvent*>(e)->widget());
    return true;
    default:
    break;
  }
  return QObject::eventFilter(o, e);
}
void ofxDatGuiComponent::update(bool acceptEvents)
{
// if window does not have focus x & y will both be zero //
    if (acceptEvents && mEnabled && mVisible){
        bool mp = ofGetMousePressed();
        ofPoint mouse = ofPoint(ofGetMouseX() - mParentPosition.x, ofGetMouseY() - mParentPosition.y);
        if (hitTest(mouse)){
            if (!mMouseOver){
                onMouseEnter(mouse);
            }
            if (!mMouseDown && mp){
                onMousePress(mouse);
                if (!mFocused) onFocus();
            }
        }   else{
    // the mouse is not over the component //
            if (mMouseOver){
                onMouseLeave(mouse);
            }
            if (!mMouseDown && mp && mFocused){
                onFocusLost();
            }
        }
        if (mMouseDown) {
            if (mp){
                onMouseDrag(mouse);
            }   else{
                onMouseRelease(mouse);
            }
        }
    }
// don't update children unless they're visible //
    if (this->getIsExpanded()) {
        for(int i=0; i<children.size(); i++) {
            children[i]->update(acceptEvents);
            if (children[i]->getFocused()){
                if (acceptEvents == false ) children[i]->setFocused(false);
                acceptEvents = false;
            }
        }
    }
}
bool updateMouse() {
    if (mouse_fd < 0) {
        return false;
    }

    struct input_event mousee;
    while ( readMouseEvent(&mousee) ) {
        
        mouse.velX=0;
        mouse.velY=0;

        float x,y = 0.0f;
        int button = 0;

        switch(mousee.type) {
            // Update Mouse Event
            case EV_KEY:
                switch (mousee.code) {
                    case BTN_LEFT:
                        if (mousee.value == 1){
                            button = 1;
                        }
                        break;
                    case BTN_RIGHT:
                        if(mousee.value == 1){
                            button = 2;
                        }
                        break;
                    case BTN_MIDDLE:
                        if(mousee.value == 1){
                            button = 3;
                        }
                        break;
                    default:
                        button = 0;
                        break;
                }
                if (button != mouse.button) {
                    mouse.button = button;
                    if(mouse.button == 0){
                        onMouseRelease(mouse.x,mouse.y);
                    } else {
                        onMouseClick(mouse.x,mouse.y,mouse.button);
                    }
                }
                break;
            case EV_REL:
                switch (mousee.code) {
                    case REL_X:
                        mouse.velX = mousee.value;
                        break;
                    case REL_Y:
                        mousee.value = mousee.value * -1;
                        mouse.velY = mousee.value;
                        break;
                    // case REL_WHEEL:
                    //     if (mousee.value > 0)
                    //         std::cout << "Mouse wheel Forward" << std::endl;
                    //     else if(mousee.value < 0)
                    //         std::cout << "Mouse wheel Backward" << std::endl;
                    //     break;
                    default:
                        break;
                }
                mouse.x+=mouse.velX;
                mouse.y+=mouse.velY;

                // Clamp values
                if (mouse.x < 0) mouse.x=0;
                if (mouse.y < 0) mouse.y=0;
                if (mouse.x > viewport.z) mouse.x = viewport.z;
                if (mouse.y > viewport.w) mouse.y = viewport.w;

                if (mouse.button != 0) {
                    onMouseDrag(mouse.x,mouse.y,mouse.button);
                } else {
                    onMouseMove(mouse.x,mouse.y);
                }
                break;
            case EV_ABS:
                switch (mousee.code) {
                    case ABS_X:
                        x = ((float)mousee.value/4095.0f)*viewport.z;
                        mouse.velX = x - mouse.x;
                        mouse.x = x;
                        break;
                    case ABS_Y:
                        y = (1.0-((float)mousee.value/4095.0f))*viewport.w;
                        mouse.velY = y - mouse.y;
                        mouse.y = y;
                        break;
                    default:
                        break;
                }
                if (mouse.button != 0) {
                    onMouseDrag(mouse.x,mouse.y,mouse.button);
                } else {
                    onMouseMove(mouse.x,mouse.y);
                }
                break;
            default:
                break;
        }
    }
    return true;
}
InMapItemDialog::InMapItemDialog(MapInfo* mapinfo,MapManager* manager,MapItem* mapitem,QWidget *parent) :
    QDialog(parent),
    mapInfo(mapinfo),
    mapManager(manager),
    returnItem(mapitem),
    selectScene(new QGraphicsScene(this)),
    selectRect(0),
    baseItems(new Sprite()),
    ui(new Ui::InMapItemDialog)
{
    ui->setupUi(this);
    if(returnItem) {
        ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("修改"));
        this->change = true;
    } else {
        ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("确定"));
        this->change = false;
    }

    ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("取消"));

    ui->tileHeight->setSingleStep(DEF_MAPBASE_HEIGHT);
    ui->tileHeight->setPageStep(DEF_MAPBASE_HEIGHT);
    ui->tileWidth->setSingleStep(DEF_MAPBASE_WIDTH);
    ui->tileWidth->setPageStep(DEF_MAPBASE_WIDTH);
    connect(ui->tileWidth,SIGNAL(sliderReleased()),this,SLOT(rule_slider()));
    connect(ui->tileHeight,SIGNAL(sliderReleased()),this,SLOT(rule_slider()));

    connect(ui->buttonBox,SIGNAL(accepted()),this,SLOT(ok_click()));
    connect(ui->buttonBox,SIGNAL(rejected()),this,SLOT(cancel_click()));
    connect(ui->tileWidth,SIGNAL(sliderMoved(int)),ui->tileWidthLabel,SLOT(setNum(int)));
    connect(ui->tileHeight,SIGNAL(sliderMoved(int)),ui->tileHeightLabel,SLOT(setNum(int)));
    connect(ui->tileWidth,SIGNAL(valueChanged(int)),ui->tileWidthLabel,SLOT(setNum(int)));
    connect(ui->tileHeight,SIGNAL(valueChanged(int)),ui->tileHeightLabel,SLOT(setNum(int)));

    ui->itemView->setScene(selectScene);
    baseItems->setPixmap(this->mapInfo->base);
    connect(baseItems,SIGNAL(onMouseRelease(qreal,qreal,Qt::MouseButtons)),this,SLOT(select_item_on_mouse_press(qreal,qreal,Qt::MouseButtons)));
    this->selectScene->addItem(baseItems);

    if(this->returnItem) { //判断是否是修改MapItem对象
        this->ui->checkTypeBox->setValue(this->returnItem->checkType);

        this->ui->crossTypeBox->setValue(this->returnItem->crossType);

        this->ui->tileWidth->setValue(this->returnItem->getWidth());
        this->ui->tileWidthLabel->setNum(this->returnItem->getWidth());
        this->ui->tileHeight->setValue(this->returnItem->getHeight());
        this->ui->tileHeightLabel->setNum(this->returnItem->getHeight());
        this->ui->xSpinBox->setValue(this->returnItem->mapX);
        this->ui->ySpinBox->setValue(this->returnItem->mapY);
        this->ui->zSpinBox->setValue(this->returnItem->mapZ);
        this->ui->specialSpinBox->setValue(this->returnItem->special);
        this->ui->staminaSpinBox->setValue(this->returnItem->breakType);
        this->ui->itemNameEdit->setText(this->returnItem->typeName);
        this->changeSelectBase(this->returnItem->hindex,this->returnItem->vindex);
        this->ui->itemView->centerOn(this->selectRect);
    } else {
        this->returnItem = new MapItem(this->mapInfo->base);
        select_item_on_mouse_press(1.0,1.0,0); // 默认选择贴图1,1
    }

}
Beispiel #8
0
void Sprite::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
    emit onMouseRelease(event->pos().x(),event->pos().y(),event->buttons());
}