added support of right and middle mouse button and also wheel mouse while I was at it.
This commit is contained in:
+58
-2
@@ -37,6 +37,8 @@ protected:
|
|||||||
|
|
||||||
void mouseReleaseEvent(QMouseEvent *event);
|
void mouseReleaseEvent(QMouseEvent *event);
|
||||||
|
|
||||||
|
void wheelEvent(QWheelEvent *event);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QPoint lastPos;
|
QPoint lastPos;
|
||||||
|
|
||||||
@@ -223,12 +225,21 @@ void JGEQtRenderer::timerEvent( QTimerEvent* )
|
|||||||
|
|
||||||
void JGEQtRenderer::mousePressEvent(QMouseEvent *event)
|
void JGEQtRenderer::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
if(event->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
lastPos = event->pos();
|
lastPos = event->pos();
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
QGLWidget::mousePressEvent(event);
|
QGLWidget::mousePressEvent(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
|
void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
if(event->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
QPoint currentPos = event->pos();
|
QPoint currentPos = event->pos();
|
||||||
int dx = currentPos.x() - lastPos.x();
|
int dx = currentPos.x() - lastPos.x();
|
||||||
int dy = currentPos.y() - lastPos.y();
|
int dy = currentPos.y() - lastPos.y();
|
||||||
@@ -249,16 +260,61 @@ void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
{
|
{
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_DOWN);
|
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);
|
QGLWidget::mouseReleaseEvent(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void JGEQtRenderer::mouseDoubleClickEvent(QMouseEvent *event)
|
void JGEQtRenderer::mouseDoubleClickEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
if(event->button() == Qt::LeftButton)
|
||||||
|
{
|
||||||
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
|
g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
|
||||||
event->accept();
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user