diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-17 20:55:04 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-17 20:55:04 +0100 |
| commit | 854c827911b898d38fd54cdfab6bbd57296d3842 (patch) | |
| tree | ebc6cc52261c4e1ffaa86a465385113fadab87d1 /src/input | |
| parent | bc937e3e711e53774e2c9fa26d13125427f6378b (diff) | |
input manager progress
Diffstat (limited to 'src/input')
| -rw-r--r-- | src/input/InputManager.cpp | 32 | ||||
| -rw-r--r-- | src/input/InputManager.hpp | 7 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/input/InputManager.cpp b/src/input/InputManager.cpp index b57205e1..e2e88b9e 100644 --- a/src/input/InputManager.cpp +++ b/src/input/InputManager.cpp @@ -22,4 +22,36 @@ void CInputManager::onMouseWarp(wlr_event_pointer_motion_absolute* e) { Vector2D CInputManager::getMouseCoordsInternal() { return m_vMouseCoords; +} + +void CInputManager::newKeyboard(wlr_input_device* keyboard) { + m_dKeyboards.push_back(SKeyboard()); + + const auto PNEWKEYBOARD = &m_dKeyboards.back(); + + PNEWKEYBOARD->keyboard = keyboard; + + xkb_rule_names rules; + + const auto CONTEXT = xkb_context_new(XKB_CONTEXT_NO_FLAGS); + const auto KEYMAP = xkb_keymap_new_from_names(CONTEXT, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); + + wlr_keyboard_set_keymap(keyboard->keyboard, KEYMAP); + xkb_keymap_unref(KEYMAP); + xkb_context_unref(CONTEXT); + wlr_keyboard_set_repeat_info(keyboard->keyboard, 25, 600); + + wl_signal_add(&keyboard->keyboard->events.modifiers, &PNEWKEYBOARD->listen_keyboardMod); + wl_signal_add(&keyboard->keyboard->events.key, &PNEWKEYBOARD->listen_keyboardKey); + wl_signal_add(&keyboard->events.destroy, &PNEWKEYBOARD->listen_keyboardDestroy); + + wlr_seat_set_keyboard(g_pCompositor->m_sWLRSeat, keyboard); +} + +void CInputManager::onKeyboardKey(wlr_event_keyboard_key* event) { + +} + +void CInputManager::onKeyboardMod(void* data) { + }
\ No newline at end of file diff --git a/src/input/InputManager.hpp b/src/input/InputManager.hpp index 60fbedb7..b750ad4c 100644 --- a/src/input/InputManager.hpp +++ b/src/input/InputManager.hpp @@ -1,13 +1,18 @@ #pragma once #include "../defines.hpp" +#include <deque> +#include "../helpers/WLClasses.hpp" class CInputManager { public: void onMouseMoved(wlr_event_pointer_motion*); void onMouseWarp(wlr_event_pointer_motion_absolute*); + void onKeyboardKey(wlr_event_keyboard_key*); + void onKeyboardMod(void*); + void newKeyboard(wlr_input_device*); Vector2D getMouseCoordsInternal(); @@ -15,6 +20,8 @@ private: Vector2D m_vMouseCoords = Vector2D(0,0); Vector2D m_vWLRMouseCoords = Vector2D(0,0); + std::deque<SKeyboard> m_dKeyboards; + }; inline std::unique_ptr<CInputManager> g_pInputManager;
\ No newline at end of file |
