Example #1
0
void
GlutWindowInventor::OnMouse(int button, int state, int x, int y)
{
    GlutWindow::OnMouse(button,state,x,y);

    SoMouseButtonEvent event;

    switch (button)
    {
    default:
    case GLUT_LEFT_BUTTON:   event.setButton(SoMouseButtonEvent::BUTTON1); break;
    case GLUT_MIDDLE_BUTTON: event.setButton(SoMouseButtonEvent::BUTTON2); break;
    case GLUT_RIGHT_BUTTON:  event.setButton(SoMouseButtonEvent::BUTTON3); break;
    }

    switch (state)
    {
    default:
    case GLUT_UP:   event.setState(SoButtonEvent::UP);   break;
    case GLUT_DOWN: event.setState(SoButtonEvent::DOWN); break;
    }

    event.setPosition(SbVec2s(x,_viewport.height()-y));

    processEvent(&event);
    inventorTick();
}
void QCtkXipSGWidget::mousePressEvent(QMouseEvent *event)
{
  if(mInteractingField)
    mInteractingField->setValue(1);

  // store old pos for delta mode
  mOldPos = SbVec2s(event->pos().x(), event->pos().y());



  event->accept();

  // Pass the QT mouse button event to open inventor
  SbTime time;
  time.setToTimeOfDay();
  SoMouseButtonEvent e;
  e.setTime(time);

  switch (event->button())
  {
  default:
  case Qt::LeftButton:    e.setButton(SoMouseButtonEvent::BUTTON1); break;
  case Qt::MidButton:        e.setButton(SoMouseButtonEvent::BUTTON2); break;
  case Qt::RightButton:    e.setButton(SoMouseButtonEvent::BUTTON3); break;
  }
  if (event->modifiers() & Qt::ShiftModifier)
    e.setShiftDown(TRUE);
  if (event->modifiers() & Qt::ControlModifier)
    e.setCtrlDown(TRUE);
  e.setState(SoButtonEvent::DOWN);
  e.setPosition(SbVec2s(event->pos().x(), mHeight - event->pos().y()));

  if (mSceneManager->processEvent(&e))
  {
    //processDelayQueue();
    //repaint();
    updateCursor(true);
  }
  else
  {
    updateCursor(false);
  }
}
Example #3
0
void QXipIvWidget::mouseReleaseEvent(QMouseEvent* event)
{
	event->accept();

	if (m_mouseMode == RESIZE_NONE)
	{
		SbTime time;
		time.setToTimeOfDay();
		SoMouseButtonEvent e;
		e.setTime(time);

		switch (event->button())
		{
		    default:
		    case Qt::LeftButton:	e.setButton(SoMouseButtonEvent::BUTTON1); break;
		    case Qt::MidButton:		e.setButton(SoMouseButtonEvent::BUTTON2); break;
		    case Qt::RightButton:	e.setButton(SoMouseButtonEvent::BUTTON3); break;
		}
		if (event->modifiers() & Qt::ShiftModifier) e.setShiftDown(TRUE);
		if (event->modifiers() & Qt::ControlModifier) e.setCtrlDown(TRUE);

		e.setState(SoButtonEvent::UP);
		e.setPosition(SbVec2s(event->pos().x(), m_height - event->pos().y()));

		if (m_sceneManager->processEvent(&e))
		{
			processDelayQueue();
			updateCursor(true);
		}
		else
		{
			updateCursor(false);
		}
	}

	m_mouseMode = RESIZE_NONE;
}
Example #4
0
void QXipIvWidget::mousePressEvent(QMouseEvent* event)
{
	//m_mouseMode = RESIZE_NONE;
	//if ((event->pos().x() > (this->width() - 10)) || (event->pos().y() > (this->height() - 10)))
	//{
	//	//if ((event->pos().x() > (this->width() - 10)) || (event->pos().y() > (this->height() - 10)))
	//	{
	//		if ((event->pos().x() > (this->width() - 10)) && (event->pos().y() > (this->height() - 10)))
	//		{
	//			m_mouseMode = RESIZE_CORNER;

	//			setCursor(Qt::SizeFDiagCursor);
	//		}
	//		else if (event->pos().x() > (this->width() - 10))
	//		{
	//			m_mouseMode = RESIZE_WIDTH;

	//			setCursor(Qt::SizeHorCursor);
	//		}
	//		else if (event->pos().y() > (this->height() - 10))
	//		{
	//			m_mouseMode = RESIZE_HEIGHT;

	//			setCursor(Qt::SizeVerCursor);
	//		}
	//	}

	//	event->accept();

	//	return;
	//}

	event->accept();

    // Pass the QT mouse button event to open inventor
	SbTime time;
	time.setToTimeOfDay();
	SoMouseButtonEvent e;
	e.setTime(time);

	switch (event->button())
	{
	    default:
	        case Qt::LeftButton:	e.setButton(SoMouseButtonEvent::BUTTON1); break;
	        case Qt::MidButton:     e.setButton(SoMouseButtonEvent::BUTTON2); break;
            case Qt::RightButton:   emit mouseRightButtonPressed(); break;
	}
	if (event->modifiers() & Qt::ShiftModifier) 
        e.setShiftDown(TRUE);
	if (event->modifiers() & Qt::ControlModifier)
        e.setCtrlDown(TRUE);
	e.setState(SoButtonEvent::DOWN);
	e.setPosition(SbVec2s(event->pos().x(), m_height - event->pos().y()));

	if (m_sceneManager->processEvent(&e))
	{
		processDelayQueue();
		updateCursor(true);
	}
	else
	{
		updateCursor(false);
	}
}