summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2019-03-25 18:05:35 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2019-03-27 11:33:53 +0900
commita50412ee101e355a8ba6f39c0f693c3572672157 (patch)
tree7934dc10618bfd0354281c13dd60e8115354a2f4 /include
parentfb6d2b740ccb3be8474ed6f4fa1469dd870deb44 (diff)
tdf#124146 add (general) gesture event support to VCL
Reviewed-on: https://gerrit.libreoffice.org/69655 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 6b476080da0678faa59606ef814760bd4235de24) Change-Id: I766930bb35071442e132b91477cd3d55e8f00f48
Diffstat (limited to 'include')
-rw-r--r--include/vcl/GestureEvent.hxx42
-rw-r--r--include/vcl/commandevent.hxx25
-rw-r--r--include/vcl/svapp.hxx3
-rw-r--r--include/vcl/vclevent.hxx1
4 files changed, 71 insertions, 0 deletions
diff --git a/include/vcl/GestureEvent.hxx b/include/vcl/GestureEvent.hxx
new file mode 100644
index 000000000000..2070fc76d39a
--- /dev/null
+++ b/include/vcl/GestureEvent.hxx
@@ -0,0 +1,42 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_GESTUREEVENT_HXX
+#define INCLUDED_VCL_GESTUREEVENT_HXX
+
+#include <vcl/dllapi.h>
+
+enum class GestureEventType
+{
+ PanningBegin,
+ PanningUpdate,
+ PanningEnd
+};
+
+enum class PanningOrientation
+{
+ Horizontal,
+ Vertical
+};
+
+class VCL_DLLPUBLIC GestureEvent
+{
+public:
+ sal_Int32 mnX;
+ sal_Int32 mnY;
+ GestureEventType meEventType;
+
+ sal_Int32 mnOffset;
+ PanningOrientation meOrientation;
+};
+
+#endif // INCLUDED_VCL_GESTUREEVENT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/commandevent.hxx b/include/vcl/commandevent.hxx
index 778348b3d1a3..1b2d5ab55425 100644
--- a/include/vcl/commandevent.hxx
+++ b/include/vcl/commandevent.hxx
@@ -27,6 +27,8 @@
#include <vcl/keycod.hxx>
#include <vcl/font.hxx>
#include <o3tl/typed_flags_set.hxx>
+#include <rtl/ustring.hxx>
+#include <vcl/GestureEvent.hxx>
class CommandExtTextInputData;
class CommandWheelData;
@@ -37,6 +39,8 @@ class CommandMediaData;
class CommandSelectionChangeData;
class CommandSwipeData;
class CommandLongPressData;
+class CommandGestureData;
+
enum class CommandEventId;
enum class ExtTextInputAttr {
@@ -86,6 +90,7 @@ public:
const CommandSelectionChangeData* GetSelectionChangeData() const;
const CommandSwipeData* GetSwipeData() const;
const CommandLongPressData* GetLongPressData() const;
+ const CommandGestureData* GetGestureData() const;
};
class VCL_DLLPUBLIC CommandExtTextInputData
@@ -305,6 +310,25 @@ public:
double getY() const { return mnY; }
};
+class VCL_DLLPUBLIC CommandGestureData
+{
+public:
+ double const mfX;
+ double const mfY;
+ GestureEventType const meEventType;
+
+ double const mfOffset;
+ PanningOrientation const meOrientation;
+
+ CommandGestureData(double fX, double fY, GestureEventType eEventType, double fOffset, PanningOrientation eOrientation)
+ : mfX(fX)
+ , mfY(fY)
+ , meEventType(eEventType)
+ , mfOffset(fOffset)
+ , meOrientation(eOrientation)
+ {}
+};
+
enum class CommandEventId
{
NONE = 0,
@@ -328,6 +352,7 @@ enum class CommandEventId
QueryCharPosition = 20,
Swipe = 21,
LongPress = 22,
+ Gesture = 23,
};
#endif // INCLUDED_VCL_COMMANDEVENT_HXX
diff --git a/include/vcl/svapp.hxx b/include/vcl/svapp.hxx
index 3cbb01d8b336..f65285aaae44 100644
--- a/include/vcl/svapp.hxx
+++ b/include/vcl/svapp.hxx
@@ -60,6 +60,7 @@ class Reflection;
class NotifyEvent;
class KeyEvent;
class MouseEvent;
+class GestureEvent;
struct ImplSVEvent;
struct ConvertData;
@@ -753,6 +754,8 @@ public:
*/
static ImplSVEvent * PostMouseEvent( VclEventId nEvent, vcl::Window *pWin, MouseEvent const * pMouseEvent );
+ static ImplSVEvent* PostGestureEvent(VclEventId nEvent, vcl::Window* pWin, GestureEvent const * pGestureEvent);
+
/** Remove mouse and keypress events from a window... any also zoom and scroll events
if the platform supports it.
diff --git a/include/vcl/vclevent.hxx b/include/vcl/vclevent.hxx
index 8f15df2228c4..9e771bf59502 100644
--- a/include/vcl/vclevent.hxx
+++ b/include/vcl/vclevent.hxx
@@ -174,6 +174,7 @@ enum class VclEventId
WindowShow,
WindowStartDocking, // pData = DockingData
WindowToggleFloating,
+ WindowGestureEvent,
};
class VCL_DLLPUBLIC VclSimpleEvent