From 911760e1fa8006837e82dbb1b2f6b5d971300b47 Mon Sep 17 00:00:00 2001 From: t-moe Date: Mon, 25 May 2015 20:16:55 +0200 Subject: [PATCH] Added "Mouse Position"-Label to Emulator. --- emulator/qt/mainwindow.cpp | 23 +++++++++++++++++++++++ emulator/qt/mainwindow.h | 1 + emulator/qt/mainwindow.ui | 7 +++++++ 3 files changed, 31 insertions(+) diff --git a/emulator/qt/mainwindow.cpp b/emulator/qt/mainwindow.cpp index 3756730..80341f3 100644 --- a/emulator/qt/mainwindow.cpp +++ b/emulator/qt/mainwindow.cpp @@ -34,6 +34,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), image(DISPLAY_WID ui->setupUi(this); image.fill(Qt::black); currentScale = 1; + ui->widgetDisplay->setMouseTracking(true); + ui->widgetDisplay->installEventFilter(this); } void MainWindow::draw_line(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color) @@ -159,7 +161,28 @@ void MainWindow::mouseMoveEvent(QMouseEvent *evt) { //qDebug() << "move" << evt->pos(); checkAndSendEvent(evt->pos(),true); +} + +bool MainWindow::eventFilter(QObject *obj, QEvent *evt) +{ + if(obj==ui->widgetDisplay) { + switch(evt->type()) { + case QEvent::MouseMove: + { + QMouseEvent* mouseEvent = static_cast(evt); + QPoint p = (mouseEvent->pos()-QPoint(1,1))/currentScale; + if(p.x()txtMousePos->setText(QString("Mouse Position: (%1,%2)").arg(p.x()).arg(p.y())); + } + } + break; + + default: break; + } + } + + return false; } diff --git a/emulator/qt/mainwindow.h b/emulator/qt/mainwindow.h index ad14809..e9034e1 100644 --- a/emulator/qt/mainwindow.h +++ b/emulator/qt/mainwindow.h @@ -25,6 +25,7 @@ public: void draw_char(uint16_t x, uint16_t y, uint16_t color, uint16_t bgcolor, QFont font, char c); protected: + bool eventFilter(QObject * obj , QEvent * env); void paintEvent(QPaintEvent * evt); void mousePressEvent(QMouseEvent* evt); void mouseReleaseEvent(QMouseEvent* evt); diff --git a/emulator/qt/mainwindow.ui b/emulator/qt/mainwindow.ui index 293d0a3..8fca011 100644 --- a/emulator/qt/mainwindow.ui +++ b/emulator/qt/mainwindow.ui @@ -43,6 +43,13 @@ + + + + Mouse Position: out of bounds + + +