Beispiel #1
0
bool EHLevel::handleEvent(Event * event)
{
    bool ret = false;

    switch(event->type()) {
        case EVENT_MOUSE_CLICK:
        {
            EMouse * mouseEvent = static_cast<EMouse *>(event);
            //Logger::write(Logger::ss << "Mouse Click " << mouseEvent->position().toString());
            if(mouseEvent->button() == MOUSE_BUTTON_LEFT) {
                mouseLeftClick(mouseEvent->position());
            }
            else if(mouseEvent->button() == MOUSE_BUTTON_RIGHT) {
                mouseRightClick(mouseEvent->position());
            }

            ret = true;
            break;
        }
        case EVENT_MOUSE_MOTION:
        {
            EMouse * mouseEvent = static_cast<EMouse *>(event);
            mouseMotion(mouseEvent->position());

            ret = true;
            break;
        }
        case EVENT_GAME_QUIT:
        {
            Game::instance()->setQuit(true);

            ret = true;
            break;
        }

        case EVENT_KEY_PRESS:
        {
            EKeyPress * keyEvent = static_cast<EKeyPress *>(event);
            keyPress(keyEvent->keyType());

            ret = true;
            break;
        }
    }
    return ret;
}
// virtual
void ClickableLabel::mouseReleaseEvent(QMouseEvent * event)
{
	if ((event->pos() - mouseStartPoint).manhattanLength() < QApplication::startDragDistance()) {
		switch (event->button()) {
			case Qt::LeftButton:
				emit mouseLeftClick(event);
				break;
			case Qt::RightButton:
				emit mouseRightClick(event);
				break;
			case Qt::MidButton:
				emit mouseMiddleClick(event);
				break;
			default:
				break;
		}
	}
}