Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkEventAdapter.h"
00019 #include <mitkInteractionConst.h>
00020 #include <mitkWheelEvent.h>
00021
00022 #include <QPoint>
00023 #include <QCursor>
00024
00025 mitk::MouseEvent
00026 QmitkEventAdapter::AdaptMouseEvent(mitk::BaseRenderer* sender, QMouseEvent* mouseEvent)
00027 {
00028 mitk::Point2D p;
00029 p[0] = mouseEvent->x();
00030 p[1] = mouseEvent->y();
00031
00032 int modifiers = mouseEvent->modifiers();
00033 int state = 0;
00034
00035 switch (mouseEvent->type())
00036 {
00037 case QEvent::MouseButtonRelease:
00038 state |= mouseEvent->button();
00039 break;
00040 case QEvent::MouseMove:
00041 state |= mouseEvent->buttons();
00042 break;
00043 default:
00044 break;
00045 }
00046
00047 if (modifiers & Qt::ShiftModifier)
00048 state |= mitk::BS_ShiftButton;
00049 if (modifiers & Qt::ControlModifier)
00050 state |= mitk::BS_ControlButton;
00051 if (modifiers & Qt::AltModifier)
00052 state |= mitk::BS_AltButton;
00053 if (modifiers & Qt::MetaModifier)
00054 state |= mitk::BS_MetaButton;
00055 if (modifiers & Qt::KeypadModifier)
00056 state |= mitk::BS_Keypad;
00057
00058 mitk::MouseEvent mitkEvent(sender, mouseEvent->type(), mouseEvent->button(),
00059 state, mitk::Key_none, p);
00060
00061 return mitkEvent;
00062 }
00063
00064 mitk::WheelEvent
00065 QmitkEventAdapter::AdaptWheelEvent(mitk::BaseRenderer* sender, QWheelEvent* wheelEvent)
00066 {
00067 mitk::Point2D p;
00068 p[0] = wheelEvent->x();
00069 p[1] = wheelEvent->y();
00070
00071 int modifiers = wheelEvent->modifiers();
00072 int state = 0;
00073
00074 state = wheelEvent->buttons();
00075
00076 if (modifiers & Qt::ShiftModifier)
00077 state |= mitk::BS_ShiftButton;
00078 if (modifiers & Qt::ControlModifier)
00079 state |= mitk::BS_ControlButton;
00080 if (modifiers & Qt::AltModifier)
00081 state |= mitk::BS_AltButton;
00082 if (modifiers & Qt::MetaModifier)
00083 state |= mitk::BS_MetaButton;
00084 if (modifiers & Qt::KeypadModifier)
00085 state |= mitk::BS_Keypad;
00086
00087 mitk::WheelEvent mitkEvent(sender, wheelEvent->type(), wheelEvent->buttons(),
00088 state, mitk::Key_none, p, wheelEvent->delta());
00089
00090 return mitkEvent;
00091 }
00092
00093
00094 mitk::KeyEvent
00095 QmitkEventAdapter::AdaptKeyEvent(mitk::BaseRenderer* sender, QKeyEvent* keyEvent, const QPoint& cp)
00096 {
00097 int key = keyEvent->key();
00098
00099
00100 if (key >= 0x01000000 && key <= 0x01000060)
00101 key -= (0x01000000 - 0x1000);
00102 else if(key >= 0x01001120 && key <= 0x01001262)
00103 key -= 0x01000000;
00104
00105 mitk::Point2D p;
00106 p[0] = cp.x();
00107 p[1] = cp.y();
00108
00109 int modifiers = keyEvent->modifiers();
00110 int state = 0;
00111 if (modifiers & Qt::ShiftModifier)
00112 state |= mitk::BS_ShiftButton;
00113 if (modifiers & Qt::ControlModifier)
00114 state |= mitk::BS_ControlButton;
00115 if (modifiers & Qt::AltModifier)
00116 state |= mitk::BS_AltButton;
00117 if (modifiers & Qt::MetaModifier)
00118 state |= mitk::BS_MetaButton;
00119
00120
00121
00122 mitk::KeyEvent mke(sender, keyEvent->type(), mitk::BS_NoButton, state, key, keyEvent->text().toStdString(), p);
00123
00124 return mke;
00125 }