2022-03-08 21:19:19 +03:30
|
|
|
#pragma once
|
|
|
|
|
2025-07-10 13:29:03 +03:30
|
|
|
#include <input/events/event.hpp>
|
2022-03-08 21:19:19 +03:30
|
|
|
#include <sstream>
|
|
|
|
|
|
|
|
namespace Light {
|
|
|
|
|
|
|
|
class KeyPressedEvent: public Event
|
|
|
|
{
|
|
|
|
public:
|
2025-07-05 14:23:01 +03:30
|
|
|
KeyPressedEvent(int key): m_key(key)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_key() const -> int
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
2025-07-05 14:23:01 +03:30
|
|
|
return m_key;
|
2025-07-05 13:28:41 +03:30
|
|
|
}
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_info_lt_log() const -> std::string override
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
std::stringstream ss;
|
2025-07-05 14:23:01 +03:30
|
|
|
ss << "KeyPressed: " << m_key;
|
2022-03-08 21:19:19 +03:30
|
|
|
return ss.str();
|
|
|
|
}
|
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
event_type(KeyPressed);
|
|
|
|
|
|
|
|
event_category(InputEventCategory | KeyboardEventCategory);
|
|
|
|
|
2022-03-08 21:19:19 +03:30
|
|
|
private:
|
2025-07-05 14:23:01 +03:30
|
|
|
const int m_key;
|
2025-07-05 16:07:51 +03:30
|
|
|
};
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
class KeyRepeatEvent: public Event
|
|
|
|
{
|
2022-03-08 21:19:19 +03:30
|
|
|
public:
|
2025-07-05 14:23:01 +03:30
|
|
|
KeyRepeatEvent(int key): m_key(key)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_key() const -> int
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
2025-07-05 14:23:01 +03:30
|
|
|
return m_key;
|
2025-07-05 13:28:41 +03:30
|
|
|
}
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_info_lt_log() const -> std::string override
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
std::stringstream ss;
|
2025-07-05 14:23:01 +03:30
|
|
|
ss << "KeyRepeated: " << m_key;
|
2022-03-08 21:19:19 +03:30
|
|
|
return ss.str();
|
|
|
|
}
|
2025-07-06 14:02:50 +03:30
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
event_type(KeyRepeated);
|
2025-07-06 14:02:50 +03:30
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
event_category(InputEventCategory | KeyboardEventCategory);
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
private:
|
2025-07-05 14:23:01 +03:30
|
|
|
const int m_key;
|
2025-07-05 16:07:51 +03:30
|
|
|
};
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
class KeyReleasedEvent: public Event
|
|
|
|
{
|
2022-03-08 21:19:19 +03:30
|
|
|
public:
|
2025-07-05 14:23:01 +03:30
|
|
|
KeyReleasedEvent(int key): m_key(key)
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_key() const -> int
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
2025-07-05 14:23:01 +03:30
|
|
|
return m_key;
|
2025-07-05 13:28:41 +03:30
|
|
|
}
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-06 16:52:50 +03:30
|
|
|
[[nodiscard]] auto get_info_lt_log() const -> std::string override
|
2022-03-08 21:19:19 +03:30
|
|
|
{
|
|
|
|
std::stringstream ss;
|
2025-07-05 14:23:01 +03:30
|
|
|
ss << "KeyReleased: " << m_key;
|
2022-03-08 21:19:19 +03:30
|
|
|
return ss.str();
|
|
|
|
}
|
2025-07-05 16:07:51 +03:30
|
|
|
|
|
|
|
event_type(KeyReleased);
|
2025-07-06 14:02:50 +03:30
|
|
|
|
2025-07-05 16:07:51 +03:30
|
|
|
event_category(InputEventCategory | KeyboardEventCategory);
|
|
|
|
|
|
|
|
private:
|
|
|
|
const int m_key;
|
2022-03-08 21:19:19 +03:30
|
|
|
};
|
|
|
|
|
2025-07-05 13:28:41 +03:30
|
|
|
} // namespace Light
|