16 #include <directmanipulation.h>
19 #define PINCH_SCALE_FACTOR 125.0f
29 :
public Microsoft::WRL::RuntimeClass<
30 Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::RuntimeClassType::ClassicCom>,
31 Microsoft::WRL::Implements<
32 Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::RuntimeClassType::ClassicCom>,
33 Microsoft::WRL::FtmBase,
34 IDirectManipulationViewportEventHandler>> {
45 DIRECTMANIPULATION_STATUS current,
46 DIRECTMANIPULATION_STATUS previous)
override;
48 HRESULT STDMETHODCALLTYPE
OnViewportUpdated(IDirectManipulationViewport *viewport)
override;
50 HRESULT STDMETHODCALLTYPE
OnContentUpdated(IDirectManipulationViewport *viewport,
51 IDirectManipulationContent *content)
override;
54 enum { GESTURE_NONE, GESTURE_PAN, GESTURE_PINCH } gesture_state;
56 int32_t last_x, last_y, last_scale;
59 DIRECTMANIPULATION_STATUS dm_status;
106 Microsoft::WRL::ComPtr<IDirectManipulationManager> directManipulationManager,
107 Microsoft::WRL::ComPtr<IDirectManipulationUpdateManager> directManipulationUpdateManager,
108 Microsoft::WRL::ComPtr<IDirectManipulationViewport> directManipulationViewport,
109 Microsoft::WRL::ComPtr<GHOST_DirectManipulationViewportEventHandler>
110 directManipulationEventHandler,
111 DWORD directManipulationViewportHandlerCookie,
112 bool isScrollDirectionInverted);
118 static bool getScrollDirectionFromReg();
123 void registerScrollDirectionChangeListener();
127 HKEY m_scrollDirectionRegKey;
128 HANDLE m_scrollDirectionChangeEvent;
130 Microsoft::WRL::ComPtr<IDirectManipulationManager> m_directManipulationManager;
131 Microsoft::WRL::ComPtr<IDirectManipulationUpdateManager> m_directManipulationUpdateManager;
132 Microsoft::WRL::ComPtr<IDirectManipulationViewport> m_directManipulationViewport;
133 Microsoft::WRL::ComPtr<GHOST_DirectManipulationViewportEventHandler>
134 m_directManipulationEventHandler;
135 DWORD m_directManipulationViewportHandlerCookie;
137 bool m_isScrollDirectionInverted;
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
void setDPI(uint16_t dpi)
~GHOST_DirectManipulationHelper()
void onPointerHitTest(UINT32 pointerId)
static GHOST_DirectManipulationHelper * create(HWND hWnd, uint16_t dpi)
GHOST_TTrackpadInfo getTrackpadInfo()
void resetViewport(IDirectManipulationViewport *viewport)
HRESULT STDMETHODCALLTYPE OnContentUpdated(IDirectManipulationViewport *viewport, IDirectManipulationContent *content) override
HRESULT STDMETHODCALLTYPE OnViewportUpdated(IDirectManipulationViewport *viewport) override
GHOST_DirectManipulationViewportEventHandler(uint16_t dpi)
HRESULT STDMETHODCALLTYPE OnViewportStatusChanged(IDirectManipulationViewport *viewport, DIRECTMANIPULATION_STATUS current, DIRECTMANIPULATION_STATUS previous) override
bool isScrollDirectionInverted