added support of right and middle mouse button and also wheel mouse while I was at it.

This commit is contained in:
Xawotihs
2010-09-28 20:00:31 +00:00
parent b79c7eea53
commit 2881543b78
+58 -2
View File
@@ -37,6 +37,8 @@ protected:
void mouseReleaseEvent(QMouseEvent *event);
void wheelEvent(QWheelEvent *event);
protected:
QPoint lastPos;
@@ -223,12 +225,21 @@ void JGEQtRenderer::timerEvent( QTimerEvent* )
void JGEQtRenderer::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
lastPos = event->pos();
event->accept();
}
else
{
QGLWidget::mousePressEvent(event);
}
}
void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
QPoint currentPos = event->pos();
int dx = currentPos.x() - lastPos.x();
int dy = currentPos.y() - lastPos.y();
@@ -249,16 +260,61 @@ void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_DOWN);
}
event->accept();
}
else if(event->button() == Qt::RightButton)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_PREV);
event->accept();
}
else if(event->button() == Qt::MidButton)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_SEC);
event->accept();
}
else
{
QGLWidget::mouseReleaseEvent(event);
}
}
void JGEQtRenderer::mouseDoubleClickEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
event->accept();
}
else
{
QGLWidget::mouseDoubleClickEvent(event);
}
}
void JGEQtRenderer::wheelEvent(QWheelEvent *event)
{
if(event->orientation() == Qt::Vertical)
{
if(event->delta() > 0)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_UP);
}
else
{
g_engine->HoldKey_NoRepeat(JGE_BTN_DOWN);
}
}
else if(event->orientation() == Qt::Horizontal)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_LEFT);
}
else
{
g_engine->HoldKey_NoRepeat(JGE_BTN_RIGHT);
}
event->accept();
}