Changeset 47396 in vbox
- Timestamp:
- Jul 25, 2013 1:58:12 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 87546
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.cpp
r46542 r47396 163 163 { 164 164 CMouseCapabilityChangedEvent es(pEvent); 165 emit sigMouseCapabilityChange(es.GetSupportsAbsolute(), es.GetSupportsRelative(), es.Get NeedsHostCursor());165 emit sigMouseCapabilityChange(es.GetSupportsAbsolute(), es.GetSupportsRelative(), es.GetSupportsMultiTouch(), es.GetNeedsHostCursor()); 166 166 break; 167 167 } -
trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMainEventListener.h
r46542 r47396 66 66 /* All Console Signals */ 67 67 void sigMousePointerShapeChange(bool fVisible, bool fAlpha, QPoint hotCorner, QSize size, QVector<uint8_t> shape); 68 void sigMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool f NeedsHostCursor);68 void sigMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool fSupportsMultiTouch, bool fNeedsHostCursor); 69 69 void sigKeyboardLedsChangeEvent(bool fNumLock, bool fCapsLock, bool fScrollLock); 70 70 void sigStateChange(KMachineState state); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.cpp
r46542 r47396 91 91 Qt::QueuedConnection); 92 92 93 connect(pListener->getWrapped(), SIGNAL(sigMouseCapabilityChange(bool, bool, bool )),94 this, SIGNAL(sigMouseCapabilityChange(bool, bool, bool )),93 connect(pListener->getWrapped(), SIGNAL(sigMouseCapabilityChange(bool, bool, bool, bool)), 94 this, SIGNAL(sigMouseCapabilityChange(bool, bool, bool, bool)), 95 95 Qt::QueuedConnection); 96 96 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIConsoleEventHandler.h
r46542 r47396 41 41 signals: 42 42 void sigMousePointerShapeChange(bool fVisible, bool fAlpha, QPoint hotCorner, QSize size, QVector<uint8_t> shape); 43 void sigMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool f NeedsHostCursor);43 void sigMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool fSupportsMultiTouch, bool fNeedsHostCursor); 44 44 void sigKeyboardLedsChangeEvent(bool fNumLock, bool fCapsLock, bool fScrollLock); 45 45 void sigStateChange(KMachineState state); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
r47160 r47396 456 456 bool fIsMouseSupportsAbsolute = uisession()->isMouseSupportsAbsolute(); 457 457 bool fIsMouseSupportsRelative = uisession()->isMouseSupportsRelative(); 458 bool fIsMouseSupportsMultiTouch = uisession()->isMouseSupportsMultiTouch(); 458 459 bool fIsMouseHostCursorNeeded = uisession()->isMouseHostCursorNeeded(); 460 461 /* For now MT stuff is not important for MI action: */ 462 Q_UNUSED(fIsMouseSupportsMultiTouch); 459 463 460 464 /* Update action state: */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp
r47103 r47396 94 94 /* No need for background drawing: */ 95 95 setAttribute(Qt::WA_OpaquePaintEvent); 96 /* Enable multi-touch support: */ 97 setAttribute(Qt::WA_AcceptTouchEvents); 96 98 } 97 99 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp
r47099 r47396 21 21 #include <QDesktopWidget> 22 22 #include <QMouseEvent> 23 #include <QTouchEvent> 23 24 24 25 /* GUI includes: */ … … 594 595 pMouseEvent->buttons(), 0, Qt::Horizontal)) 595 596 return true; 597 break; 598 } 599 case QEvent::TouchBegin: 600 case QEvent::TouchUpdate: 601 case QEvent::TouchEnd: 602 { 603 if (uisession()->isMouseSupportsMultiTouch()) 604 return multiTouchEvent(static_cast<QTouchEvent*>(pEvent), uScreenId); 596 605 break; 597 606 } … … 877 886 } 878 887 888 bool UIMouseHandler::multiTouchEvent(QTouchEvent *pTouchEvent, ulong uScreenId) 889 { 890 /* Eat if machine isn't running: */ 891 if (!uisession()->isRunning()) 892 return true; 893 894 /* Eat if such view & viewport aren't registered: */ 895 if (!m_views.contains(uScreenId) || !m_viewports.contains(uScreenId)) 896 return true; 897 898 /* Get mouse: */ 899 CMouse mouse = session().GetConsole().GetMouse(); 900 901 /* Pass all multi-touch events into guest: */ 902 foreach (const QTouchEvent::TouchPoint &touchPoint, pTouchEvent->touchPoints()) 903 { 904 /* Get touch-point origin: */ 905 QPoint currentTouchPoint = touchPoint.pos().toPoint(); 906 907 /* Get touch-point state: */ 908 LONG iTouchPointState = KTouchContactState_None; 909 switch (touchPoint.state()) 910 { 911 case Qt::TouchPointPressed: 912 case Qt::TouchPointMoved: 913 case Qt::TouchPointStationary: 914 iTouchPointState = KTouchContactState_InContact | KTouchContactState_InRange; 915 break; 916 default: 917 break; 918 } 919 920 /* Pass absolute touch-point data: */ 921 LogRelFlow(("UIMouseHandler::multiTouchEvent: Origin: %dx%d, State: %d\n", 922 currentTouchPoint.x(), currentTouchPoint.y(), iTouchPointState)); 923 mouse.PutMouseEventMultiTouch((LONG)currentTouchPoint.x(), (LONG)currentTouchPoint.y(), 924 (LONG)touchPoint.id(), iTouchPointState); 925 } 926 927 /* Eat by default? */ 928 return true; 929 } 930 879 931 #ifdef Q_WS_WIN 880 932 /* This method is actually required only because under win-host -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.h
r44529 r47396 31 31 /* Forward declarations: */ 32 32 class QWidget; 33 class QTouchEvent; 33 34 class UISession; 34 35 class UIMachineLogic; … … 105 106 int wheelDelta, Qt::Orientation wheelDirection); 106 107 108 /* Separate function to handle incoming multi-touch events: */ 109 bool multiTouchEvent(QTouchEvent *pTouchEvent, ulong uScreenId); 110 107 111 #ifdef Q_WS_WIN 108 112 /* This method is actually required only because under win-host -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
r47100 r47396 101 101 , m_fIsMouseSupportsAbsolute(false) 102 102 , m_fIsMouseSupportsRelative(false) 103 , m_fIsMouseSupportsMultiTouch(false) 103 104 , m_fIsMouseHostCursorNeeded(false) 104 105 , m_fIsMouseCaptured(false) … … 651 652 } 652 653 653 void UISession::sltMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool fNeedsHostCursor) 654 { 654 void UISession::sltMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool fSupportsMultiTouch, bool fNeedsHostCursor) 655 { 656 LogRelFlow(("UISession::sltMouseCapabilityChange: " 657 "Supports absolute: %s, Supports relative: %s, " 658 "Supports multi-touch: %s, Needs host cursor: %s\n", 659 fSupportsAbsolute ? "TRUE" : "FALSE", fSupportsRelative ? "TRUE" : "FALSE", 660 fSupportsMultiTouch ? "TRUE" : "FALSE", fNeedsHostCursor ? "TRUE" : "FALSE")); 661 655 662 /* Check if something had changed: */ 656 663 if ( m_fIsMouseSupportsAbsolute != fSupportsAbsolute 657 664 || m_fIsMouseSupportsRelative != fSupportsRelative 665 || m_fIsMouseSupportsMultiTouch != fSupportsMultiTouch 658 666 || m_fIsMouseHostCursorNeeded != fNeedsHostCursor) 659 667 { … … 661 669 m_fIsMouseSupportsAbsolute = fSupportsAbsolute; 662 670 m_fIsMouseSupportsRelative = fSupportsRelative; 671 m_fIsMouseSupportsMultiTouch = fSupportsMultiTouch; 663 672 m_fIsMouseHostCursorNeeded = fNeedsHostCursor; 664 673 … … 803 812 this, SLOT(sltMousePointerShapeChange(bool, bool, QPoint, QSize, QVector<uint8_t>))); 804 813 805 connect(gConsoleEvents, SIGNAL(sigMouseCapabilityChange(bool, bool, bool )),806 this, SLOT(sltMouseCapabilityChange(bool, bool, bool )));814 connect(gConsoleEvents, SIGNAL(sigMouseCapabilityChange(bool, bool, bool, bool)), 815 this, SLOT(sltMouseCapabilityChange(bool, bool, bool, bool))); 807 816 808 817 connect(gConsoleEvents, SIGNAL(sigKeyboardLedsChangeEvent(bool, bool, bool)), -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
r46813 r47396 135 135 bool isMouseSupportsAbsolute() const { return m_fIsMouseSupportsAbsolute; } 136 136 bool isMouseSupportsRelative() const { return m_fIsMouseSupportsRelative; } 137 bool isMouseSupportsMultiTouch() const { return m_fIsMouseSupportsMultiTouch; } 137 138 bool isMouseHostCursorNeeded() const { return m_fIsMouseHostCursorNeeded; } 138 139 bool isMouseCaptured() const { return m_fIsMouseCaptured; } … … 214 215 /* Console events slots */ 215 216 void sltMousePointerShapeChange(bool fVisible, bool fAlpha, QPoint hotCorner, QSize size, QVector<uint8_t> shape); 216 void sltMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool f NeedsHostCursor);217 void sltMouseCapabilityChange(bool fSupportsAbsolute, bool fSupportsRelative, bool fSupportsMultiTouch, bool fNeedsHostCursor); 217 218 void sltKeyboardLedsChangeEvent(bool fNumLock, bool fCapsLock, bool fScrollLock); 218 219 void sltStateChange(KMachineState state); … … 300 301 bool m_fIsMouseSupportsAbsolute : 1; 301 302 bool m_fIsMouseSupportsRelative : 1; 303 bool m_fIsMouseSupportsMultiTouch: 1; 302 304 bool m_fIsMouseHostCursorNeeded : 1; 303 305 bool m_fIsMouseCaptured : 1;
Note:
See TracChangeset
for help on using the changeset viewer.