=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: include: Add interactioncontext.h.
Alexandre Julliard
julliard at winehq.org
Fri Jun 22 18:32:38 CDT 2018
Module: wine
Branch: master
Commit: 6acc2309d5469cc0ed4e4586e52ae76756f788cd
URL: https://source.winehq.org/git/wine.git/?a=commit;h=6acc2309d5469cc0ed4e4586e52ae76756f788cd
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Thu Jun 21 16:19:41 2018 +0200
include: Add interactioncontext.h.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/Makefile.in | 1 +
include/interactioncontext.h | 195 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 196 insertions(+)
diff --git a/include/Makefile.in b/include/Makefile.in
index 78ab095..72a7010 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -314,6 +314,7 @@ SOURCES = \
inputscope.idl \
inseng.idl \
inspectable.idl \
+ interactioncontext.h \
intshcut.h \
ipexport.h \
iphlpapi.h \
diff --git a/include/interactioncontext.h b/include/interactioncontext.h
new file mode 100644
index 0000000..a643b62
--- /dev/null
+++ b/include/interactioncontext.h
@@ -0,0 +1,195 @@
+/*
+ * Copyright 2018 Józef Kucia
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef INTERACTION_CONTEXT_H
+#define INTERACTION_CONTEXT_H
+
+#include <windows.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+DECLARE_HANDLE(HINTERACTIONCONTEXT);
+
+typedef enum INTERACTION_CONTEXT_PROPERTY
+{
+ INTERACTION_CONTEXT_PROPERTY_MEASUREMENT_UNITS = 1,
+ INTERACTION_CONTEXT_PROPERTY_INTERACTION_UI_FEEDBACK = 2,
+ INTERACTION_CONTEXT_PROPERTY_FILTER_POINTERS = 3,
+ INTERACTION_CONTEXT_PROPERTY_MAX = 0xffffffff,
+} INTERACTION_CONTEXT_PROPERTY;
+
+typedef enum INTERACTION_ID
+{
+ INTERACTION_ID_NONE = 0,
+ INTERACTION_ID_MANIPULATION = 1,
+ INTERACTION_ID_TAP = 2,
+ INTERACTION_ID_SECONDARY_TAP = 3,
+ INTERACTION_ID_HOLD = 4,
+ INTERACTION_ID_DRAG = 5,
+ INTERACTION_ID_CROSS_SLIDE = 6,
+ INTERACTION_ID_MAX = 0xffffffff,
+} INTERACTION_ID;
+
+typedef enum INTERACTION_FLAGS
+{
+ INTERACTION_FLAG_NONE = 0x00000000,
+ INTERACTION_FLAG_BEGIN = 0x00000001,
+ INTERACTION_FLAG_END = 0x00000002,
+ INTERACTION_FLAG_CANCEL = 0x00000004,
+ INTERACTION_FLAG_INERTIA = 0x00000008,
+ INTERACTION_FLAG_MAX = 0xffffffff,
+} INTERACTION_FLAGS;
+
+typedef enum INTERACTION_CONFIGURATION_FLAGS
+{
+ INTERACTION_CONFIGURATION_FLAG_NONE = 0x00000000,
+
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION = 0x00000001,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_X = 0x00000002,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_Y = 0x00000004,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_ROTATION = 0x00000008,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING = 0x00000010,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_TRANSLATION_INERTIA = 0x00000020,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_ROTATION_INERTIA = 0x00000040,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_SCALING_INERTIA = 0x00000080,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_RAILS_X = 0x00000100,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_RAILS_Y = 0x00000200,
+ INTERACTION_CONFIGURATION_FLAG_MANIPULATION_EXACT = 0x00000400,
+
+ INTERACTION_CONFIGURATION_FLAG_TAP = 0x00000001,
+ INTERACTION_CONFIGURATION_FLAG_TAP_DOUBLE = 0x00000002,
+
+ INTERACTION_CONFIGURATION_FLAG_SECONDARY_TAP = 0x00000001,
+
+ INTERACTION_CONFIGURATION_FLAG_HOLD = 0x00000001,
+ INTERACTION_CONFIGURATION_FLAG_HOLD_MOUSE = 0x00000002,
+
+ INTERACTION_CONFIGURATION_FLAG_DRAG = 0x00000001,
+
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE = 0x00000001,
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_HORIZONTAL = 0x00000002,
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_SELECT = 0x00000004,
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_SPEED_BUMP = 0x00000008,
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_REARRANGE = 0x00000010,
+ INTERACTION_CONFIGURATION_FLAG_CROSS_SLIDE_EXACT = 0x00000020,
+
+ INTERACTION_CONFIGURATION_FLAG_MAX = 0xffffffff,
+} INTERACTION_CONFIGURATION_FLAGS;
+
+typedef struct INTERACTION_CONTEXT_CONFIGURATION
+{
+ INTERACTION_ID interactionId;
+ INTERACTION_CONFIGURATION_FLAGS enable;
+
+} INTERACTION_CONTEXT_CONFIGURATION;
+
+typedef struct MANIPULATION_TRANSFORM
+{
+ float translationX;
+ float translationY;
+ float scale;
+ float expansion;
+ float rotation;
+} MANIPULATION_TRANSFORM;
+
+typedef struct MANIPULATION_VELOCITY
+{
+ float velocityX;
+ float velocityY;
+ float velocityExapnsion;
+ float velocityAngular;
+} MANIPULATION_VELOCITY;
+
+typedef enum MANIPULATION_RAILS_STATE
+{
+ MANIPULATION_RAILS_STATE_UNDECIDED = 0,
+ MANIPULATION_RAILS_STATE_FREE = 1,
+ MANIPULATION_RAILS_STATE_RAILED = 2,
+ MANIPULATION_RAILS_STATE_MAX = 0xffffffff,
+} MANIPULATION_RAILS_STATE;
+
+typedef struct INTERACTION_ARGUMENTS_MANIPULATION
+{
+ MANIPULATION_TRANSFORM delta;
+ MANIPULATION_TRANSFORM cumulative;
+ MANIPULATION_VELOCITY veolcity;
+ MANIPULATION_RAILS_STATE railsState;
+} INTERACTION_ARGUMENTS_MANIPULATION;
+
+typedef struct INTERACTION_ARGUMENTS_TAP
+{
+ UINT32 count;
+} INTERACTION_ARGUMENTS_TAP;
+
+typedef enum CROSS_SLIDE_FLAGS
+{
+ CROSS_SLIDE_FLAGS_NONE = 0x00000000,
+ CROSS_SLIDE_FLAGS_SELECT = 0x00000001,
+ CROSS_SLIDE_FLAGS_SPEED_BUMP = 0x00000002,
+ CROSS_SLIDE_FLAGS_REARRANGE = 0x00000004,
+ CROSS_SLIDE_FLAGS_MAX = 0xffffffff,
+} CROSS_SLIDE_FLAGS;
+
+typedef struct INTERACTION_ARGUMENTS_CROSS_SLIDE
+{
+ CROSS_SLIDE_FLAGS flags;
+} INTERACTION_ARGUMENTS_CROSS_SLIDE;
+
+typedef struct INTERACTION_CONTEXT_OUTPUT
+{
+ INTERACTION_ID interactionId;
+ INTERACTION_FLAGS interactionFlags;
+ POINTER_INPUT_TYPE inputType;
+ float x;
+ float y;
+ union
+ {
+ INTERACTION_ARGUMENTS_MANIPULATION manipulation;
+ INTERACTION_ARGUMENTS_TAP tap;
+ INTERACTION_ARGUMENTS_CROSS_SLIDE crossSlide;
+ } arguments;
+} INTERACTION_CONTEXT_OUTPUT;
+
+typedef void (CALLBACK *INTERACTION_CONTEXT_OUTPUT_CALLBACK)(void *data,
+ const INTERACTION_CONTEXT_OUTPUT *output);
+
+HRESULT WINAPI CreateInteractionContext(HINTERACTIONCONTEXT *context);
+HRESULT WINAPI DestroyInteractionContext(HINTERACTIONCONTEXT context);
+
+HRESULT WINAPI ProcessInertiaInteractionContext(HINTERACTIONCONTEXT context);
+
+HRESULT WINAPI RegisterOutputCallbackInteractionContext(HINTERACTIONCONTEXT context,
+ INTERACTION_CONTEXT_OUTPUT_CALLBACK callback, void *data);
+
+HRESULT WINAPI GetInteractionConfigurationInteractionContext(HINTERACTIONCONTEXT context,
+ UINT32 count, INTERACTION_CONTEXT_CONFIGURATION *configuration);
+HRESULT WINAPI SetInteractionConfigurationInteractionContext(HINTERACTIONCONTEXT context,
+ UINT32 count, const INTERACTION_CONTEXT_CONFIGURATION *configuration);
+
+HRESULT WINAPI GetPropertyInteractionContext(HINTERACTIONCONTEXT context,
+ INTERACTION_CONTEXT_PROPERTY proerty, UINT32 *value);
+HRESULT WINAPI SetPropertyInteractionContext(HINTERACTIONCONTEXT context,
+ INTERACTION_CONTEXT_PROPERTY property, UINT32 value);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif
More information about the wine-cvs
mailing list