feat: slightly adjusted how handle_input_event and handle_window_event are called

This commit is contained in:
Sara Gerretsen 2025-09-12 15:00:59 +02:00
parent 561fdbbb6b
commit d2cfedf993

View file

@ -30,33 +30,41 @@ void initialize_imgui() {
extern void handle_input_event(sf::Event const &evt);
extern void handle_window_event(sf::Event const &evt);
void try_handle_input_event(sf::Event const &event) {
bool const is_input_event{
event.is<sf::Event::JoystickButtonPressed>() || event.is<sf::Event::JoystickButtonReleased>() ||
event.is<sf::Event::JoystickMoved>() ||
event.is<sf::Event::JoystickConnected>() || event.is<sf::Event::JoystickDisconnected>() ||
event.is<sf::Event::KeyPressed>() || event.is<sf::Event::KeyReleased>() ||
event.is<sf::Event::TouchBegan>() || event.is<sf::Event::TouchEnded>() ||
event.is<sf::Event::TouchMoved>() ||
event.is<sf::Event::MouseButtonPressed>() || event.is<sf::Event::MouseButtonReleased>() ||
event.is<sf::Event::MouseMoved>() || event.is<sf::Event::MouseMovedRaw>()
};
if (is_input_event) {
handle_input_event(event);
}
}
void try_handle_window_event(sf::Event const &event) {
bool const is_window_event{
event.is<sf::Event::FocusGained>() ||
event.is<sf::Event::FocusLost>() ||
event.is<sf::Event::Resized>()
};
if (is_window_event) {
handle_window_event(event);
}
}
void poll_events() {
while (std::optional const event{ window.pollEvent() })
{
ImGui::SFML::ProcessEvent(window, *event);
if (event->is<sf::Event::Closed>()) {
window.close();
} else if (event->is<sf::Event::JoystickButtonPressed>() || event->is<sf::Event::JoystickButtonReleased>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::JoystickMoved>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::JoystickConnected>() || event->is<sf::Event::JoystickDisconnected>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::KeyPressed>() || event->is<sf::Event::KeyReleased>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::TouchBegan>() || event->is<sf::Event::TouchEnded>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::TouchMoved>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::MouseButtonPressed>() || event->is<sf::Event::MouseButtonReleased>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::MouseMoved>() || event->is<sf::Event::MouseMovedRaw>()) {
handle_input_event(*event);
} else if (event->is<sf::Event::FocusGained>() || event->is<sf::Event::FocusLost>()) {
handle_window_event(*event);
} else if (event->is<sf::Event::Resized>()) {
handle_window_event(*event);
}
try_handle_input_event(*event);
try_handle_window_event(*event);
if (event->is<sf::Event::Closed>()) { window.close(); }
}
}