Plasma Engine  2.0
Loading...
Searching...
No Matches
InputDevice_uwp.h
1#pragma once
2
3#include <Core/Input/DeviceTypes/MouseKeyboard.h>
4
5#include <windows.applicationmodel.core.h>
6#include <wrl/client.h>
7
9{
10 PL_ADD_DYNAMIC_REFLECTION(plStandardInputDevice, plInputDeviceMouseKeyboard);
11
12public:
13 plStandardInputDevice(ABI::Windows::UI::Core::ICoreWindow* coreWindow);
15
17 virtual plMouseCursorClipMode::Enum GetClipMouseCursor() const override { return m_ClipCursorMode; }
18
19 virtual void SetShowMouseCursor(bool bShow) override;
20 virtual bool GetShowMouseCursor() const override;
21
22private:
23 HRESULT OnKeyEvent(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::IKeyEventArgs* args);
24 HRESULT OnCharacterReceived(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::ICharacterReceivedEventArgs* args);
25 HRESULT OnPointerMovePressEnter(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::IPointerEventArgs* args);
26 HRESULT OnPointerWheelChange(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::IPointerEventArgs* args);
27 HRESULT OnPointerReleasedOrExited(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::IPointerEventArgs* args);
28 HRESULT OnPointerCaptureLost(ABI::Windows::UI::Core::ICoreWindow* coreWindow, ABI::Windows::UI::Core::IPointerEventArgs* args);
29 HRESULT OnMouseMoved(ABI::Windows::Devices::Input::IMouseDevice* mouseDevice, ABI::Windows::Devices::Input::IMouseEventArgs* args);
30
31
32
33 HRESULT UpdateMouseButtonStates(ABI::Windows::UI::Input::IPointerPoint* pointerPoint);
34
35 virtual void InitializeDevice() override;
36 virtual void RegisterInputSlots() override;
37 virtual void ResetInputSlotValues() override;
38
39 bool m_bShowCursor = true;
41
42
43 Microsoft::WRL::ComPtr<ABI::Windows::UI::Core::ICoreWindow> m_coreWindow;
44 Microsoft::WRL::ComPtr<ABI::Windows::UI::Core::ICoreCursor> m_cursorBeforeHide;
45 Microsoft::WRL::ComPtr<ABI::Windows::Devices::Input::IMouseDevice> m_mouseDevice;
46
47 EventRegistrationToken m_eventRegistration_keyDown;
48 EventRegistrationToken m_eventRegistration_keyUp;
49 EventRegistrationToken m_eventRegistration_characterReceived;
50 EventRegistrationToken m_eventRegistration_pointerMoved;
51 EventRegistrationToken m_eventRegistration_pointerEntered;
52 EventRegistrationToken m_eventRegistration_pointerExited;
53 EventRegistrationToken m_eventRegistration_pointerCaptureLost;
54 EventRegistrationToken m_eventRegistration_pointerPressed;
55 EventRegistrationToken m_eventRegistration_pointerReleased;
56 EventRegistrationToken m_eventRegistration_pointerWheelChanged;
57 EventRegistrationToken m_eventRegistration_mouseMoved;
58};
This is the base class for all input devices that handle mouse and keyboard input.
Definition MouseKeyboard.h:26
Android standard input device.
Definition InputDevice_android.h:10
virtual bool GetShowMouseCursor() const override
Returns whether the mouse cursor is shown.
virtual void RegisterInputSlots() override
Override this to register all the input slots that this device exposes.
virtual void InitializeDevice() override
Override this if you need to do device specific initialization before the first use.
virtual void ResetInputSlotValues() override
Override this, if you need to reset certain input slot values to zero, after the plInputManager is fi...
virtual void SetShowMouseCursor(bool bShow) override
Shows or hides the mouse cursor inside the application window.
virtual plMouseCursorClipMode::Enum GetClipMouseCursor() const override
Returns whether the mouse is confined to the application window or not.
Definition InputDevice_uwp.h:17
virtual void SetClipMouseCursor(plMouseCursorClipMode::Enum mode) override
Will trap the mouse inside the application window. Should usually be enabled, to prevent accidental t...
Enum
Definition MouseKeyboard.h:10
@ NoClip
The mouse can move unrestricted and leave the application window.
Definition MouseKeyboard.h:11