2025-07-05 13:28:41 +03:30
|
|
|
#include <engine/events/char.hpp>
|
|
|
|
#include <engine/events/event.hpp>
|
|
|
|
#include <engine/events/keyboard.hpp>
|
|
|
|
#include <engine/events/mouse.hpp>
|
|
|
|
#include <engine/events/window.hpp>
|
|
|
|
#include <engine/layer/layer.hpp>
|
|
|
|
|
|
|
|
namespace Light {
|
|
|
|
|
2025-07-05 14:23:01 +03:30
|
|
|
Layer::Layer(const std::string &name): m_layer_name(name)
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
bool Layer::on_event(const Event &event)
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
2025-07-05 15:36:53 +03:30
|
|
|
switch (event.get_event_type())
|
2025-07-05 13:28:41 +03:30
|
|
|
{
|
|
|
|
/* mouse */
|
|
|
|
// cursor
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::MouseMoved: return on_mouse_moved((MouseMovedEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
// button
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::ButtonPressed: return on_button_pressed((ButtonPressedEvent &)event);
|
|
|
|
case EventType::ButtonReleased: return on_button_released((ButtonReleasedEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
// wheel
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::WheelScrolled: return on_wheel_scrolled((WheelScrolledEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
|
|
|
|
/* keyboard */
|
|
|
|
// key
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::KeyPressed: return on_key_pressed((KeyPressedEvent &)event);
|
|
|
|
case EventType::KeyRepeated: return on_key_repeat((KeyRepeatEvent &)event);
|
|
|
|
case EventType::KeyReleased: return on_key_released((KeyReleasedEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
// char
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::SetChar: return on_set_char((SetCharEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
|
|
|
|
/* window */
|
|
|
|
// termination
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::WindowClosed: return on_window_closed((WindowClosedEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
// size/position
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::WindowResized: return on_window_resized((WindowResizedEvent &)event);
|
|
|
|
case EventType::WindowMoved: return on_window_moved((WindowMovedEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
// focus
|
2025-07-05 15:36:53 +03:30
|
|
|
case EventType::WindowLostFocus: return on_window_lost_focus((WindowLostFocusEvent &)event);
|
|
|
|
case EventType::WindowGainFocus: return on_window_gain_focus((WindowGainFocusEvent &)event);
|
2025-07-05 13:28:41 +03:30
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace Light
|