diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-05-24 23:28:06 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-05-24 23:45:01 +0200 |
commit | fa97a8b91becb44c2bd56d91a603b76a16c34304 (patch) | |
tree | c524d0c26eb4193e63b9dc0e927a58a41d7c665b /vcl/source/window/openglwin.cxx | |
parent | 2d8941eea664031567f4d70f8347dc15befe8880 (diff) |
some work on mouse scrolling and improved mouse dragging
Change-Id: I3265e26530183b2fc4fd7f67319f3dc124353c2e
Diffstat (limited to 'vcl/source/window/openglwin.cxx')
-rw-r--r-- | vcl/source/window/openglwin.cxx | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/vcl/source/window/openglwin.cxx b/vcl/source/window/openglwin.cxx index 9fd3935df210..455e455feaf9 100644 --- a/vcl/source/window/openglwin.cxx +++ b/vcl/source/window/openglwin.cxx @@ -57,24 +57,42 @@ void OpenGLWindow::Paint(const Rectangle&) void OpenGLWindow::MouseButtonDown( const MouseEvent& rMEvt ) { - Point aPoint = rMEvt.GetPosPixel(); + maStartPoint = rMEvt.GetPosPixel(); +} - Color aColor = GetPixel(aPoint); - SAL_WARN("vcl.opengl", aColor.GetColor()); - if(mpRenderer) - mpRenderer->clickedAt(aPoint); +void OpenGLWindow::MouseButtonUp( const MouseEvent& rMEvt ) +{ + Point aPoint = rMEvt.GetPosPixel(); + if(aPoint == maStartPoint) + { + Color aColor = GetPixel(aPoint); + SAL_WARN("vcl.opengl", aColor.GetColor()); + if(mpRenderer) + mpRenderer->clickedAt(aPoint); + } + else + { + mpRenderer->mouseDragMove(maStartPoint, aPoint, + rMEvt.GetButtons()); + } } -void OpenGLWindow::MouseButtonUp( const MouseEvent& /* rMEvt */ ) +void OpenGLWindow::Command( const CommandEvent& rCEvt ) { - // in case we need to track button state ourselves. + if(rCEvt.GetCommand() == COMMAND_WHEEL) + { + const CommandWheelData* pData = rCEvt.GetWheelData(); + if(pData->GetMode() == COMMAND_WHEEL_SCROLL) + { + long nDelta = pData->GetDelta(); + if(mpRenderer) + mpRenderer->scroll(nDelta); + } + } } -void OpenGLWindow::MouseMove( const MouseEvent& rMEvt ) +void OpenGLWindow::MouseMove( const MouseEvent& /*rMEvt*/ ) { - if(rMEvt.GetButtons()) - mpRenderer->mouseDragMove(rMEvt.GetPosPixel(), - rMEvt.GetButtons()); } void OpenGLWindow::setRenderer(IRenderer* pRenderer) |