diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-09 12:46:55 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-09 12:46:55 +0200 |
| commit | 47404534d0cf94b969daee5e0e4dc20c65c35fb2 (patch) | |
| tree | 87af91c66e810d09f9affcbe577915b62a2fa24d /src/managers/input/InputManager.hpp | |
| parent | 248ce664593feddd84d6897ae6b40a3a5fa145c0 (diff) | |
added tablet v2 support (alpha alpha)
Diffstat (limited to 'src/managers/input/InputManager.hpp')
| -rw-r--r-- | src/managers/input/InputManager.hpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp new file mode 100644 index 00000000..e83a1e34 --- /dev/null +++ b/src/managers/input/InputManager.hpp @@ -0,0 +1,63 @@ +#pragma once + +#include "../../defines.hpp" +#include <list> +#include "../../helpers/WLClasses.hpp" +#include "../../Window.hpp" + +class CInputManager { +public: + + void onMouseMoved(wlr_pointer_motion_event*); + void onMouseWarp(wlr_pointer_motion_absolute_event*); + void onMouseButton(wlr_pointer_button_event*); + void onKeyboardKey(wlr_keyboard_key_event*, SKeyboard*); + void onKeyboardMod(void*, SKeyboard*); + + void newKeyboard(wlr_input_device*); + void newMouse(wlr_input_device*); + void destroyKeyboard(SKeyboard*); + void destroyMouse(wlr_input_device*); + + void constrainMouse(SMouse*, wlr_pointer_constraint_v1*); + void recheckConstraint(SMouse*); + + Vector2D getMouseCoordsInternal(); + void refocus(); + + void setKeyboardLayout(); + + void updateDragIcon(); + void updateCapabilities(wlr_input_device*); + + + // for dragging floating windows + CWindow* currentlyDraggedWindow = nullptr; + int dragButton = -1; + + SDrag m_sDrag; + + std::list<SConstraint> m_lConstraints; + std::list<SKeyboard> m_lKeyboards; + std::list<SMouse> m_lMice; + + // tablets + std::list<STablet> m_lTablets; + std::list<STabletTool> m_lTabletTools; + std::list<STabletPad> m_lTabletPads; + + void newTabletTool(wlr_input_device*); + void newTabletPad(wlr_input_device*); + + SKeyboard* m_pActiveKeyboard = nullptr; + + private: + + uint32_t m_uiCapabilities = 0; + + void mouseMoveUnified(uint32_t, bool refocus = false); + + STabletTool* ensureTabletToolPresent(STablet*, wlr_tablet_tool*); +}; + +inline std::unique_ptr<CInputManager> g_pInputManager;
\ No newline at end of file |
