From 34c03e1857d977ef7ec913628a358092f749394b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 31 Jul 2019 10:03:26 +1000 Subject: [PATCH 2/4] include: Add IDirectManipulationPrimaryContent interface --- include/directmanipulation.idl | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/include/directmanipulation.idl b/include/directmanipulation.idl index 443b31a0ce..a49f368d11 100644 --- a/include/directmanipulation.idl +++ b/include/directmanipulation.idl @@ -88,6 +88,39 @@ typedef enum DIRECTMANIPULATION_MOTION_TYPES DIRECTMANIPULATION_MOTION_CENTERY } DIRECTMANIPULATION_MOTION_TYPES; +typedef enum DIRECTMANIPULATION_SNAPPOINT_TYPE +{ + DIRECTMANIPULATION_SNAPPOINT_MANDATORY = 0, + DIRECTMANIPULATION_SNAPPOINT_OPTIONAL = 1, + DIRECTMANIPULATION_SNAPPOINT_MANDATORY_SINGLE = 2, + DIRECTMANIPULATION_SNAPPOINT_OPTIONAL_SINGLE = 3 +} DIRECTMANIPULATION_SNAPPOINT_TYPE; + +typedef enum DIRECTMANIPULATION_SNAPPOINT_COORDINATE +{ + DIRECTMANIPULATION_COORDINATE_BOUNDARY = 0x00, + DIRECTMANIPULATION_COORDINATE_ORIGIN = 0x01, + DIRECTMANIPULATION_COORDINATE_MIRRORED = 0x10 +} DIRECTMANIPULATION_SNAPPOINT_COORDINATE; + +typedef enum DIRECTMANIPULATION_HORIZONTALALIGNMENT +{ + DIRECTMANIPULATION_HORIZONTALALIGNMENT_NONE = 0x00, + DIRECTMANIPULATION_HORIZONTALALIGNMENT_LEFT = 0x01, + DIRECTMANIPULATION_HORIZONTALALIGNMENT_CENTER = 0x02, + DIRECTMANIPULATION_HORIZONTALALIGNMENT_RIGHT = 0x04, + DIRECTMANIPULATION_HORIZONTALALIGNMENT_UNLOCKCENTER = 0x08 +} DIRECTMANIPULATION_HORIZONTALALIGNMENT; + +typedef enum DIRECTMANIPULATION_VERTICALALIGNMENT +{ + DIRECTMANIPULATION_VERTICALALIGNMENT_NONE = 0x00, + DIRECTMANIPULATION_VERTICALALIGNMENT_TOP = 0x01, + DIRECTMANIPULATION_VERTICALALIGNMENT_CENTER = 0x02, + DIRECTMANIPULATION_VERTICALALIGNMENT_BOTTOM = 0x04, + DIRECTMANIPULATION_VERTICALALIGNMENT_UNLOCKCENTER = 0x08 +} DIRECTMANIPULATION_VERTICALALIGNMENT; + typedef enum DIRECTMANIPULATION_INPUT_MODE { DIRECTMANIPULATION_INPUT_MODE_AUTOMATIC = 0, @@ -309,6 +342,34 @@ interface IDirectManipulationManager2 : IDirectManipulationManager HRESULT CreateBehavior([in] REFCLSID clsid, [in] REFIID riid, [out, iid_is(riid), retval] void **obj); } +[ + local, + object, + uuid(c12851e4-1698-4625-b9b1-7ca3ec18630b), + pointer_default(unique) +] +interface IDirectManipulationPrimaryContent : IUnknown +{ + HRESULT SetSnapInterval([in] DIRECTMANIPULATION_MOTION_TYPES motion, [in] float interval, [in] float offset); + + HRESULT SetSnapPoints([in] DIRECTMANIPULATION_MOTION_TYPES motion, [in] const float *points, [in] DWORD count); + + HRESULT SetSnapType([in] DIRECTMANIPULATION_MOTION_TYPES motion, [in] DIRECTMANIPULATION_SNAPPOINT_TYPE type); + + HRESULT SetSnapCoordinate([in] DIRECTMANIPULATION_MOTION_TYPES motion, [in] DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate, + [in] float origin); + + HRESULT SetZoomBoundaries([in] float minimum, [in] float maximum); + + HRESULT SetHorizontalAlignment([in] DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment); + + HRESULT SetVerticalAlignment([in] DIRECTMANIPULATION_VERTICALALIGNMENT alignment); + + HRESULT GetInertiaEndTransform([out] float *matrix, [in] DWORD count); + + HRESULT GetCenterPoint([out] float *x, [out] float *y); +} + [ uuid(9fbedf98-f6d8-4e3b-b488-fa66dbf5e9f3), version(1.0) -- 2.17.1