diff options
Diffstat (limited to 'drivers/ginput/touch/QWidget/example/mywidget.cpp')
-rw-r--r-- | drivers/ginput/touch/QWidget/example/mywidget.cpp | 54 |
1 files changed, 54 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); +} |