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
6
namespace
le::input
{
7
class
Dispatch;
8
9
class
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
le::input::Dispatch
Definition
dispatch.hpp:7
le::input::Listener
Definition
listener.hpp:9
le::input::Listener::consume_key
virtual auto consume_key(event::Key const &) -> bool
Definition
listener.hpp:25
le::input::Listener::Listener
Listener(Listener const &)=delete
le::input::Listener::consume_codepoint
virtual auto consume_codepoint(event::Codepoint) -> bool
Definition
listener.hpp:24
le::input::Listener::disengage_input
virtual void disengage_input()
Definition
listener.hpp:30
le::input::Listener::operator=
auto operator=(Listener &&rhs) noexcept -> Listener &
le::input::Listener::~Listener
~Listener() override
le::input::Listener::is_attached
auto is_attached() const -> bool
Definition
listener.hpp:33
le::input::Listener::operator=
auto operator=(Listener const &) -> Listener &=delete
le::input::Listener::consume_cursor_move
virtual auto consume_cursor_move(glm::vec2) -> bool
Definition
listener.hpp:23
le::input::Listener::Listener
Listener(Listener &&rhs) noexcept
le::input::Listener::Listener
Listener(gsl::not_null< Dispatch * > dispatch)
le::input::Listener::get_dispatch
auto get_dispatch() const -> Dispatch *
Definition
listener.hpp:32
le::input::Listener::Listener
Listener()=default
le::input::Listener::consume_drop
virtual auto consume_drop(event::Drop const &) -> bool
Definition
listener.hpp:28
le::input::Listener::consume_scroll
virtual auto consume_scroll(event::Scroll const &) -> bool
Definition
listener.hpp:27
le::input::Listener::consume_mouse_button
virtual auto consume_mouse_button(event::MouseButton const &) -> bool
Definition
listener.hpp:26
event.hpp
le::event::Codepoint
kvf::Codepoint Codepoint
Definition
event.hpp:37
le::input
Definition
action.hpp:4
le::event::Drop
Definition
event.hpp:59
le::event::Key
Definition
event.hpp:39
le::event::MouseButton
Definition
event.hpp:47
le::event::Scroll
Definition
event.hpp:55
lib
include
le2d
input
listener.hpp
Generated by
1.9.8