]> rtime.felk.cvut.cz Git - vajnamar/orte.git/blobdiff - orte/contrib/shape/MyQFrame.cpp
Shape: Capture wheel event in QWidget and use it for scaling and rotation
[vajnamar/orte.git] / orte / contrib / shape / MyQFrame.cpp
index 08b2140b8035b3a014f3a41f9bc8c8b1fc5c0a15..370e3202cbfca9c091afac886a1c5a247129125c 100644 (file)
@@ -8,6 +8,7 @@
 #include <QPolygon>
 #include <QMouseEvent>
 #include <QPaintEvent>
+#include <QWheelEvent>
 #include <QKeyEvent>
 
 MyQFrame::MyQFrame( QWidget *parent)
@@ -16,6 +17,8 @@ MyQFrame::MyQFrame( QWidget *parent)
     mousePressed=0;
     objects[0]=objects[1]=objects[2]=objects[3]=objects[4]=0;
     rotation_mode=0;
+    wheel_delta=0;
+    scale_factor=1;
 
     setFocusPolicy(Qt::StrongFocus);
 
@@ -96,6 +99,16 @@ void MyQFrame::mouseReleaseEvent (QMouseEvent *)
 {
     mousePressed=0;
 }
+
+void MyQFrame::wheelEvent (QWheelEvent *e)
+{
+    if(!rotation_mode)
+      wheel_delta += e->delta()/120;
+    else
+      scale_factor += (double)e->delta()/1200;
+    e->accept();
+}
+
 void MyQFrame::keyPressEvent (QKeyEvent *e)
 {
     if (e->key() == Qt::Key_Control)