le2d v0.4.7
2D game engine framework
 
Loading...
Searching...
No Matches
listener.hpp
Go to the documentation of this file.
1#pragma once
2#include "le2d/event.hpp"
3#include <klib/base_types.hpp>
4#include <gsl/pointers>
5
6namespace le::input {
7class Dispatch;
8
9class Listener : public klib::Polymorphic {
10 public:
11 Listener(Listener const&) = delete;
12 auto operator=(Listener const&) -> Listener& = delete;
13
14 Listener() = default;
15
16 explicit Listener(gsl::not_null<Dispatch*> dispatch);
17
18 Listener(Listener&& rhs) noexcept;
19 auto operator=(Listener&& rhs) noexcept -> Listener&;
20
21 ~Listener() override;
22
23 virtual auto consume_cursor_move(glm::vec2 /*pos*/) -> bool { return false; }
24 virtual auto consume_codepoint(event::Codepoint /*codepoint*/) -> bool { return false; }
25 virtual auto consume_key(event::Key const& /*key*/) -> bool { return false; }
26 virtual auto consume_mouse_button(event::MouseButton const& /*button*/) -> bool { return false; }
27 virtual auto consume_scroll(event::Scroll const& /*scroll*/) -> bool { return false; }
28 virtual auto consume_drop(event::Drop const& /*drop*/) -> bool { return false; }
29
30 virtual void disengage_input() {}
31
32 [[nodiscard]] auto get_dispatch() const -> Dispatch* { return m_dispatch; }
33 [[nodiscard]] auto is_attached() const -> bool { return get_dispatch() != nullptr; }
34
35 private:
36 Dispatch* m_dispatch{};
37
38 friend class Dispatch;
39};
40} // namespace le::input
Definition dispatch.hpp:7
Definition listener.hpp:9
virtual auto consume_key(event::Key const &) -> bool
Definition listener.hpp:25
Listener(Listener const &)=delete
virtual auto consume_codepoint(event::Codepoint) -> bool
Definition listener.hpp:24
virtual void disengage_input()
Definition listener.hpp:30
auto operator=(Listener &&rhs) noexcept -> Listener &
~Listener() override
auto is_attached() const -> bool
Definition listener.hpp:33
auto operator=(Listener const &) -> Listener &=delete
virtual auto consume_cursor_move(glm::vec2) -> bool
Definition listener.hpp:23
Listener(Listener &&rhs) noexcept
Listener(gsl::not_null< Dispatch * > dispatch)
auto get_dispatch() const -> Dispatch *
Definition listener.hpp:32
virtual auto consume_drop(event::Drop const &) -> bool
Definition listener.hpp:28
virtual auto consume_scroll(event::Scroll const &) -> bool
Definition listener.hpp:27
virtual auto consume_mouse_button(event::MouseButton const &) -> bool
Definition listener.hpp:26
kvf::Codepoint Codepoint
Definition event.hpp:37
Definition action.hpp:4
Definition event.hpp:59
Definition event.hpp:39
Definition event.hpp:47
Definition event.hpp:55