diff options
Diffstat (limited to 'vcl/ios/iosinst.cxx')
-rw-r--r-- | vcl/ios/iosinst.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx index e7cec9f9d046..3605288f026e 100644 --- a/vcl/ios/iosinst.cxx +++ b/vcl/ios/iosinst.cxx @@ -426,6 +426,34 @@ void lo_tap(int x, int y) } extern "C" +void lo_mouse_drag(int x, int y, LOMouseButtonState state) +{ + SalFrame *pFocus = IosSalInstance::getInstance()->getFocusFrame(); + + if (pFocus) { + MouseEvent aEvent; + sal_uLong nEvent; + + switch(state) { + case DOWN: + aEvent = MouseEvent(Point(x, y), 1, MOUSE_SIMPLECLICK, MOUSE_LEFT); + nEvent = VCLEVENT_WINDOW_MOUSEBUTTONDOWN; + break; + case MOVE: + aEvent = MouseEvent(Point(x, y), 1, MOUSE_SIMPLEMOVE, MOUSE_LEFT); + nEvent = VCLEVENT_WINDOW_MOUSEMOVE; + break; + case UP: + aEvent = MouseEvent(Point(x, y), 1, MOUSE_SIMPLECLICK, MOUSE_LEFT); + nEvent = VCLEVENT_WINDOW_MOUSEBUTTONUP; + break; + } + + Application::PostMouseEvent(nEvent, pFocus->GetWindow(), &aEvent); + } +} + +extern "C" void lo_pan(int deltaX, int deltaY) { SalFrame *pFocus = IosSalInstance::getInstance()->getFocusFrame(); |