示例#1
0
void Screen::mousePressEvent(QMouseEvent *event) {
	if (m_conns->mousePressEvent(event)) {
		repaint();
		return;
	}

	if (event->button() == Qt::RightButton) {
		ScreenObject *object = getObject(event->x(), event->y());
		if (object) {
			int pin = getPin(object, event->x(), event->y());
			if (pin == -1) {
				showObjectMenu(object, event->globalPos());
			}
			else {
				showPinMenu(object, pin, event->globalPos());
			}
			
		}
		else {
			showScreenMenu(event->globalPos());
		}
	}
	else if (event->button() == Qt::LeftButton) {
		ScreenObject *object = getObject(event->x(), event->y());
		if (!object) {
			return;
		}

		if (object->clicked(event->pos()) && m_wrappers[object]) {
			m_wrappers[object]->reschedule();
		}
	}
}
void EditorSceneWidget::mouseReleaseEvent(QMouseEvent *evt)
{
	if(!hasFocus())
		setFocus();
	if(evt->button() == Qt::LeftButton)
	{
		EditorRoot::Instance()->OnMouseLeftUp(evt->x(),evt->y(),getMouseButton(evt->buttons(),evt->button()));
	}
	else if(evt->button() == Qt::RightButton)
	{
		EditorRoot::Instance()->OnMouseRightUp(evt->x(),evt->y(),getMouseButton(evt->buttons(),evt->button()));
	}
	else if(evt->button() == Qt::MiddleButton)
	{
		EditorRoot::Instance()->OnMouseMiddleUp(evt->x(),evt->y(),getMouseButton(evt->buttons(),evt->button()));
	}

	if(m_Captured == true)	//
	{
		SetCursorPos(m_savedpos.x,m_savedpos.y);
		
		ShowCursor(true);
		m_Captured = false;

		ReleaseCapture();
	}

	if(!MouseMovedSincePress && evt->button() == Qt::RightButton)
	{
		showObjectMenu();
	}
}