Final fix for maemo dependency and fix the release of keys in the Qt frontend

This commit is contained in:
Xawotihs
2010-12-18 19:37:16 +00:00
parent 9ea61766cd
commit 3459a04d2a
2 changed files with 36 additions and 71 deletions

View File

@@ -327,6 +327,16 @@ void JGEQtRenderer::mousePressEvent(QMouseEvent *event)
g_engine->LeftClicked((lastPos.x()*SCREEN_WIDTH)/actualWidth, (lastPos.y()*SCREEN_HEIGHT)/actualHeight);
event->accept();
}
else if(event->button() == Qt::RightButton)
{ /* next phase please */
g_engine->HoldKey_NoRepeat(JGE_BTN_PREV);
event->accept();
}
else if(event->button() == Qt::MidButton)
{ /* interrupt please */
g_engine->HoldKey_NoRepeat(JGE_BTN_SEC);
event->accept();
}
else
{
QGLWidget::mousePressEvent(event);
@@ -341,12 +351,12 @@ void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
}
else if(event->button() == Qt::RightButton)
{ /* next phase please */
g_engine->HoldKey_NoRepeat(JGE_BTN_PREV);
g_engine->ReleaseKey(JGE_BTN_PREV);
event->accept();
}
else if(event->button() == Qt::MidButton)
{ /* interrupt please */
g_engine->HoldKey_NoRepeat(JGE_BTN_SEC);
g_engine->ReleaseKey(JGE_BTN_SEC);
event->accept();
}
else
@@ -355,7 +365,6 @@ void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
}
}
void JGEQtRenderer::mouseMoveEvent(QMouseEvent *event)
{
// this is intended to convert window coordinate into game coordinate.
@@ -367,63 +376,6 @@ void JGEQtRenderer::mouseMoveEvent(QMouseEvent *event)
event->accept();
}
/*
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();
if(abs(dx) > abs(dy) && dx > 5)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_RIGHT);
}
else if(abs(dx) > abs(dy) && dx < -5)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_LEFT);
}
else if(abs(dx) < abs(dy) && dy < -5)
{
g_engine->HoldKey_NoRepeat(JGE_BTN_UP);
}
else if(abs(dx) < abs(dy) && dy > 5)
{
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)
@@ -462,7 +414,6 @@ void JGEQtRenderer::wheelEvent(QWheelEvent *event)
event->accept();
}
void JGEQtRenderer::keyPressEvent(QKeyEvent *event)
{
switch(event->key())
@@ -488,6 +439,29 @@ void JGEQtRenderer::keyPressEvent(QKeyEvent *event)
return;
}
void JGEQtRenderer::keyReleaseEvent(QKeyEvent *event)
{
switch(event->key())
{
#ifdef Q_WS_MAEMO_5
case Qt::Key_F7:
/* interrupt please */
g_engine->ReleaseKey(JGE_BTN_SEC);
break;
case Qt::Key_F8:
/* next phase please */
g_engine->ReleaseKey(JGE_BTN_PREV);
break;
#endif // Q_WS_MAEMO_5
default:
g_engine->ReleaseKey((LocalKeySym)event->key());
}
event->accept();
QWidget::keyReleaseEvent(event);
return;
}
void JGEQtRenderer::showEvent ( QShowEvent * event )
{
if(!timerStarted)
@@ -512,15 +486,6 @@ void JGEQtRenderer::hideEvent ( QHideEvent * event )
}
}
void JGEQtRenderer::keyReleaseEvent(QKeyEvent *event)
{
g_engine->ReleaseKey((LocalKeySym)event->key());
event->accept();
QWidget::keyReleaseEvent(event);
return;
}
int main(int argc, char* argv[])
{
QApplication a( argc, argv );