The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
dispatcher.hpp File Reference
#include "gui/core/event/handler.hpp"
#include "hotkey/hotkey_command.hpp"
#include "utils/general.hpp"
#include <SDL3/SDL_events.h>
#include <functional>
#include <list>
#include <map>
Include dependency graph for dispatcher.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  gui2::event::dispatcher
 Base class for event handling. More...
 
struct  gui2::event::dispatcher::signal_type< T >
 Helper struct to generate the various signal types. More...
 
struct  gui2::event::dispatcher::signal_queue< T >
 Helper struct to generate the various event queues. More...
 

Namespaces

namespace  gui2
 Generic file dialog.
 
namespace  gui2::event
 

Typedefs

template<typename... T>
using gui2::event::dispatcher_callback = std::function< void(widget &, const ui_event, bool &, bool &, T...)>
 Callback function signature alias template.
 
using gui2::event::signal = dispatcher_callback<>
 Used for events in event_category::general.
 
using gui2::event::signal_mouse = dispatcher_callback< const point & >
 Used for events in event_category::mouse.
 
using gui2::event::signal_keyboard = dispatcher_callback< const SDL_Keycode, const SDL_Keymod, const std::string & >
 Used for events in event_category::keyboard.
 
using gui2::event::signal_touch_motion = dispatcher_callback< const point &, const point & >
 Used for events in event_category::touch_motion.
 
using gui2::event::signal_touch_gesture = dispatcher_callback< const point &, float, float, uint8_t >
 Used for events in event_category::touch_gesture.
 
using gui2::event::signal_notification = dispatcher_callback< void * >
 Used for events in event_category::notification.
 
using gui2::event::signal_message = dispatcher_callback< const message & >
 Used for events in event_category::message.
 
using gui2::event::signal_raw_event = dispatcher_callback< const SDL_Event & >
 Used for events in event_category::raw_event.
 
using gui2::event::signal_text_input = dispatcher_callback< const std::string &, int32_t, int32_t >
 Used for eventsin event_category::text_input.
 
using gui2::event::hotkey_function = std::function< bool(widget &dispatcher, hotkey::HOTKEY_COMMAND id)>
 Hotkey function handler signature.
 

Functions

void gui2::event::connect_signal_pre_key_press (dispatcher &dispatcher, const signal_keyboard &signal)
 Connects the signal for 'snooping' on the keypress.
 
void gui2::event::connect_signal_mouse_left_click (dispatcher &dispatcher, const signal &signal)
 Connects a signal handler for a left mouse button click.
 
void gui2::event::disconnect_signal_mouse_left_click (dispatcher &dispatcher, const signal &signal)
 Disconnects a signal handler for a left mouse button click.
 
void gui2::event::connect_signal_mouse_left_release (dispatcher &dispatcher, const signal &signal)
 Connects a signal handler for a left mouse button release.
 
void gui2::event::disconnect_signal_mouse_left_release (dispatcher &dispatcher, const signal &signal)
 Disconnects a signal handler for a left mouse button release.
 
void gui2::event::connect_signal_mouse_left_double_click (dispatcher &dispatcher, const signal &signal)
 Connects a signal handler for a left mouse button double click.
 
void gui2::event::connect_signal_notify_modified (dispatcher &dispatcher, const signal_notification &signal)
 Connects a signal handler for getting a notification upon modification.