diff options
Diffstat (limited to 'drivers/ginput/touch/QWidget/example')
-rw-r--r-- | drivers/ginput/touch/QWidget/example/mywidget.cpp | 54 | ||||
-rw-r--r-- | drivers/ginput/touch/QWidget/example/mywidget.h | 18 | ||||
-rw-r--r-- | drivers/ginput/touch/QWidget/example/readme.txt | 3 |
3 files changed, 75 insertions, 0 deletions
diff --git a/drivers/ginput/touch/QWidget/example/mywidget.cpp b/drivers/ginput/touch/QWidget/example/mywidget.cpp new file mode 100644 index 00000000..b14713b1 --- /dev/null +++ b/drivers/ginput/touch/QWidget/example/mywidget.cpp @@ -0,0 +1,54 @@ +#include "mywidget.h" +#include "ugfx/src/ginput/ginput_driver_mouse.h" + +extern GMouse* qwidgetMouse; +extern coord_t qwidgetMouseX; +extern coord_t qwidgetMouseY; +extern coord_t qwidgetMouseZ; +extern uint16_t qwidgetMouseButtons; + +MyWidget::MyWidget(QWidget* parent) : QWidget(parent) +{ + // GMouse + if (!qwidgetMouse) { + qFatal("MyWidget::MyWidget(): Invalid GMouse (nullptr)."); + } + qwidgetMouse->display = nullptr; // Set your display here! +} + +void MyWidget::mousePressEvent(QMouseEvent* event) +{ + event->accept(); + + qwidgetMouseX = event->x(); + qwidgetMouseY = event->y(); + qwidgetMouseZ = 1; + + if (event->buttons() & Qt::LeftButton) { + qwidgetMouseButtons = GINPUT_MOUSE_BTN_LEFT; + } else if (event->buttons() & Qt::RightButton) { + qwidgetMouseButtons = GINPUT_MOUSE_BTN_RIGHT; + } + + _gmouseWakeup(qwidgetMouse); +} + +void MyWidget::mouseReleaseEvent(QMouseEvent* event) +{ + event->accept(); + + qwidgetMouseZ = 0; + qwidgetMouseButtons = 0; + + _gmouseWakeup(qwidgetMouse); +} + +void MyWidget::mouseMoveEvent(QMouseEvent* event) +{ + event->accept(); + + qwidgetMouseX = event->x(); + qwidgetMouseY = event->y(); + + _gmouseWakeup(qwidgetMouse); +} diff --git a/drivers/ginput/touch/QWidget/example/mywidget.h b/drivers/ginput/touch/QWidget/example/mywidget.h new file mode 100644 index 00000000..f3e329d3 --- /dev/null +++ b/drivers/ginput/touch/QWidget/example/mywidget.h @@ -0,0 +1,18 @@ +#pragma once + +class MyWidget : public QWidget +{ + Q_OBJECT + +public: + MyWidget(QWidget* parent = nullptr); + virtual ~MyWidget() = default; + +protected: + virtual void mousePressEvent(QMouseEvent* event) override; + virtual void mouseReleaseEvent(QMouseEvent* event) override; + virtual void mouseMoveEvent(QMouseEvent* event) override; + +private: + Q_DISABLE_COPY(MyWidget) +}; diff --git a/drivers/ginput/touch/QWidget/example/readme.txt b/drivers/ginput/touch/QWidget/example/readme.txt new file mode 100644 index 00000000..df127019 --- /dev/null +++ b/drivers/ginput/touch/QWidget/example/readme.txt @@ -0,0 +1,3 @@ +This example shows how a QWidget can be used as touch input. + +Important note: The GDisplay pointer must be set to a valid display in mywidget.cpp:16 for this to work. |