#include <event_handler.hpp>
Public Member Functions | |
tevent_handler () | |
At construction we should get the state and from that moment on we keep track of the changes ourselves, not yet sure what happens when an input blocker is used. | |
virtual | ~tevent_handler () |
void | process_events () |
void | handle_event (const SDL_Event &event) |
Implement events::handler::handle_event(). | |
virtual twindow & | get_window ()=0 |
virtual const twindow & | get_window () const =0 |
virtual twidget * | find_widget (const tpoint &coordinate, const bool must_be_active)=0 |
See twidget::find_widget() for the description. | |
virtual const twidget * | find_widget (const tpoint &coordinate, const bool must_be_active) const =0 |
The const version of find_widget. | |
void | mouse_capture (const bool capture=true) |
void | keyboard_capture (twidget *widget) |
tpoint | get_mouse () const |
void | show_tooltip (const t_string &tooltip, const unsigned timeout) |
We impement the handling of the tip, but call the do functions which are virtual. | |
void | remove_tooltip () |
void | show_help_popup (const t_string &help_popup, const unsigned timeout) |
void | remove_help_popup () |
Private Member Functions | |
void | mouse_enter (const SDL_Event &event, twidget *mouse_over) |
void | mouse_move (const SDL_Event &event, twidget *mouse_over) |
void | mouse_hover (const SDL_Event &event, twidget *mouse_over) |
void | mouse_leave (const SDL_Event &event, twidget *mouse_over) |
void | mouse_button_down (const SDL_Event &event, twidget *mouse_over, tmouse_button &button) |
void | mouse_button_up (const SDL_Event &event, twidget *mouse_over, tmouse_button &button) |
void | mouse_click (twidget *widget, tmouse_button &button) |
void | set_hover (const bool test_on_widget=false) |
void | key_down (const SDL_Event &event) |
virtual void | do_show_tooltip (const tpoint &location, const t_string &tooltip)=0 |
virtual void | do_remove_tooltip ()=0 |
virtual void | do_show_help_popup (const tpoint &location, const t_string &help_popup)=0 |
virtual void | do_remove_help_popup ()=0 |
Private Attributes | |
events::event_context | event_context_ |
we create a new event context so we're always modal. | |
int | mouse_x_ |
int | mouse_y_ |
The current mouse x. | |
tmouse_button | left_ |
The current mouse y. | |
tmouse_button | middle_ |
tmouse_button | right_ |
bool | hover_pending_ |
unsigned | hover_id_ |
Is there a hover event pending? | |
SDL_Rect | hover_box_ |
Id of the pending hover event. | |
bool | had_hover_ |
The area the mouse can move in, moving outside invalidates the pending hover event. | |
twidget * | tooltip_ |
A widget only gets one hover event per enter cycle. | |
twidget * | help_popup_ |
twidget * | mouse_focus_ |
bool | mouse_captured_ |
twidget * | keyboard_focus_ |
Classes | |
struct | tmouse_button |
Definition at line 33 of file event_handler.hpp.
gui2::tevent_handler::tevent_handler | ( | ) |
At construction we should get the state and from that moment on we keep track of the changes ourselves, not yet sure what happens when an input blocker is used.
Definition at line 79 of file event_handler.cpp.
References events::handler::join().
virtual gui2::tevent_handler::~tevent_handler | ( | ) | [inline, virtual] |
void gui2::tevent_handler::process_events | ( | ) | [inline] |
Definition at line 40 of file event_handler.hpp.
References events::pump().
Referenced by gui2::twindow::show().
void gui2::tevent_handler::handle_event | ( | const SDL_Event & | event | ) | [virtual] |
Implement events::handler::handle_event().
Implements events::handler.
Definition at line 123 of file event_handler.cpp.
References DBG_G_E, find_widget(), get_window(), handle_system_event(), HOVER_EVENT, HOVER_REMOVE_POPUP_EVENT, key_down(), left_, middle_, mouse_button_down(), mouse_button_up(), mouse_hover(), mouse_move(), mouse_x_, mouse_y_, remove_help_popup(), remove_tooltip(), right_, gui2::twindow::window_resize(), and WRN_G_E.
virtual twindow& gui2::tevent_handler::get_window | ( | ) | [pure virtual] |
Implemented in gui2::twindow.
Referenced by get_mouse(), handle_event(), key_down(), show_help_popup(), and show_tooltip().
virtual const twindow& gui2::tevent_handler::get_window | ( | ) | const [pure virtual] |
Implemented in gui2::twindow.
virtual twidget* gui2::tevent_handler::find_widget | ( | const tpoint & | coordinate, | |
const bool | must_be_active | |||
) | [pure virtual] |
See twidget::find_widget() for the description.
Implemented in gui2::twindow.
Referenced by handle_event().
void gui2::tevent_handler::mouse_capture | ( | const bool | capture = true |
) |
void gui2::tevent_handler::keyboard_capture | ( | twidget * | widget | ) | [inline] |
Definition at line 57 of file event_handler.hpp.
References keyboard_focus_.
Referenced by gui2::tmp_method_selection::show(), and gui2::taddon_connect::show().
tpoint gui2::tevent_handler::get_mouse | ( | ) | const |
Definition at line 238 of file event_handler.cpp.
References gui2::twindow::client_position(), get_window(), mouse_x_, and mouse_y_.
void gui2::tevent_handler::show_tooltip | ( | const t_string & | tooltip, | |
const unsigned | timeout | |||
) |
We impement the handling of the tip, but call the do functions which are virtual.
Definition at line 243 of file event_handler.cpp.
References DBG_G_E, do_show_tooltip(), get_window(), help_popup_, mouse_focus_, mouse_x_, mouse_y_, gui2::popup_callback(), remove_help_popup(), and tooltip_.
void gui2::tevent_handler::remove_tooltip | ( | ) |
Definition at line 262 of file event_handler.cpp.
References do_remove_tooltip(), and tooltip_.
Referenced by handle_event(), mouse_leave(), and show_help_popup().
void gui2::tevent_handler::show_help_popup | ( | const t_string & | help_popup, | |
const unsigned | timeout | |||
) |
Definition at line 273 of file event_handler.cpp.
References DBG_G_E, do_show_help_popup(), get_window(), had_hover_, help_popup_, hover_pending_, mouse_focus_, mouse_x_, mouse_y_, gui2::popup_callback(), remove_tooltip(), and tooltip_.
void gui2::tevent_handler::remove_help_popup | ( | ) |
Definition at line 299 of file event_handler.cpp.
References do_remove_help_popup(), and help_popup_.
Referenced by handle_event(), mouse_leave(), and show_tooltip().
void gui2::tevent_handler::mouse_enter | ( | const SDL_Event & | event, | |
twidget * | mouse_over | |||
) | [private] |
Definition at line 310 of file event_handler.cpp.
References DBG_G_E, gui2::tevent_executor::mouse_enter(), mouse_focus_, and set_hover().
Referenced by mouse_button_up(), and mouse_move().
void gui2::tevent_handler::mouse_move | ( | const SDL_Event & | event, | |
twidget * | mouse_over | |||
) | [private] |
Definition at line 338 of file event_handler.cpp.
References mouse_captured_, mouse_enter(), mouse_focus_, mouse_leave(), gui2::tevent_executor::mouse_move(), and set_hover().
Referenced by handle_event().
void gui2::tevent_handler::mouse_hover | ( | const SDL_Event & | event, | |
twidget * | mouse_over | |||
) | [private] |
Definition at line 322 of file event_handler.cpp.
References had_hover_, hover_id_, hover_pending_, mouse_focus_, and gui2::tevent_executor::mouse_hover().
Referenced by handle_event().
void gui2::tevent_handler::mouse_leave | ( | const SDL_Event & | event, | |
twidget * | mouse_over | |||
) | [private] |
Definition at line 363 of file event_handler.cpp.
References had_hover_, hover_pending_, mouse_focus_, gui2::tevent_executor::mouse_leave(), remove_help_popup(), and remove_tooltip().
Referenced by mouse_button_up(), and mouse_move().
void gui2::tevent_handler::mouse_button_down | ( | const SDL_Event & | event, | |
twidget * | mouse_over, | |||
tmouse_button & | button | |||
) | [private] |
Definition at line 377 of file event_handler.cpp.
References gui2::tevent_handler::tmouse_button::down, gui2::tevent_handler::tmouse_button::focus, hover_pending_, gui2::tevent_handler::tmouse_button::is_down, mouse_captured_, mouse_focus_, gui2::tevent_handler::tmouse_button::name, and WRN_G_E.
Referenced by handle_event().
void gui2::tevent_handler::mouse_button_up | ( | const SDL_Event & | event, | |
twidget * | mouse_over, | |||
tmouse_button & | button | |||
) | [private] |
Definition at line 405 of file event_handler.cpp.
References gui2::tevent_handler::tmouse_button::focus, gui2::tevent_handler::tmouse_button::is_down, left_, middle_, mouse_captured_, mouse_click(), mouse_enter(), mouse_focus_, mouse_leave(), gui2::tevent_handler::tmouse_button::name, right_, set_hover(), gui2::tevent_handler::tmouse_button::up, and WRN_G_E.
Referenced by handle_event().
void gui2::tevent_handler::mouse_click | ( | twidget * | widget, | |
tmouse_button & | button | |||
) | [private] |
Definition at line 440 of file event_handler.cpp.
References gui2::tevent_handler::tmouse_button::click, gui2::tevent_handler::tmouse_button::double_click, gui2::settings::double_click_time, gui2::tevent_handler::tmouse_button::last_click_stamp, and gui2::tevent_handler::tmouse_button::wants_double_click.
Referenced by mouse_button_up().
void gui2::tevent_handler::set_hover | ( | const bool | test_on_widget = false |
) | [private] |
Definition at line 461 of file event_handler.cpp.
References gui2::create_rect(), had_hover_, hover_box_, gui2::hover_callback(), hover_id_, hover_pending_, gui2::tevent_handler::tmouse_button::is_down, left_, middle_, mouse_focus_, mouse_x_, mouse_y_, point_in_rect(), gui2::settings::popup_show_delay, right_, and gui2::tevent_executor::wants_mouse_hover().
Referenced by mouse_button_up(), mouse_enter(), and mouse_move().
void gui2::tevent_handler::key_down | ( | const SDL_Event & | event | ) | [private] |
Definition at line 501 of file event_handler.cpp.
References get_window(), gui2::tevent_executor::help_key(), gui2::tevent_executor::key_press(), keyboard_focus_, and mouse_focus_.
Referenced by handle_event().
virtual void gui2::tevent_handler::do_remove_tooltip | ( | ) | [private, pure virtual] |
virtual void gui2::tevent_handler::do_remove_help_popup | ( | ) | [private, pure virtual] |
we create a new event context so we're always modal.
Maybe this has to change, but not sure yet.
Definition at line 115 of file event_handler.hpp.
int gui2::tevent_handler::mouse_x_ [private] |
Definition at line 117 of file event_handler.hpp.
Referenced by get_mouse(), handle_event(), set_hover(), show_help_popup(), and show_tooltip().
int gui2::tevent_handler::mouse_y_ [private] |
The current mouse x.
Definition at line 118 of file event_handler.hpp.
Referenced by get_mouse(), handle_event(), set_hover(), show_help_popup(), and show_tooltip().
tmouse_button gui2::tevent_handler::left_ [private] |
The current mouse y.
Definition at line 120 of file event_handler.hpp.
Referenced by handle_event(), mouse_button_up(), and set_hover().
tmouse_button gui2::tevent_handler::middle_ [private] |
Definition at line 121 of file event_handler.hpp.
Referenced by handle_event(), mouse_button_up(), and set_hover().
tmouse_button gui2::tevent_handler::right_ [private] |
Definition at line 122 of file event_handler.hpp.
Referenced by handle_event(), mouse_button_up(), and set_hover().
bool gui2::tevent_handler::hover_pending_ [private] |
Definition at line 124 of file event_handler.hpp.
Referenced by mouse_button_down(), mouse_hover(), mouse_leave(), set_hover(), and show_help_popup().
unsigned gui2::tevent_handler::hover_id_ [private] |
Is there a hover event pending?
Definition at line 125 of file event_handler.hpp.
Referenced by mouse_hover(), and set_hover().
SDL_Rect gui2::tevent_handler::hover_box_ [private] |
Id of the pending hover event.
Definition at line 126 of file event_handler.hpp.
Referenced by set_hover().
bool gui2::tevent_handler::had_hover_ [private] |
The area the mouse can move in, moving outside invalidates the pending hover event.
Definition at line 128 of file event_handler.hpp.
Referenced by mouse_hover(), mouse_leave(), set_hover(), and show_help_popup().
twidget* gui2::tevent_handler::tooltip_ [private] |
A widget only gets one hover event per enter cycle.
The widget that created the tooltip / tooltip.
Reimplemented in gui2::twindow.
Definition at line 131 of file event_handler.hpp.
Referenced by remove_tooltip(), show_help_popup(), and show_tooltip().
twidget* gui2::tevent_handler::help_popup_ [private] |
Reimplemented in gui2::twindow.
Definition at line 132 of file event_handler.hpp.
Referenced by remove_help_popup(), show_help_popup(), and show_tooltip().
twidget* gui2::tevent_handler::mouse_focus_ [private] |
Definition at line 135 of file event_handler.hpp.
Referenced by key_down(), mouse_button_down(), mouse_button_up(), mouse_capture(), mouse_enter(), mouse_hover(), mouse_leave(), mouse_move(), set_hover(), show_help_popup(), and show_tooltip().
bool gui2::tevent_handler::mouse_captured_ [private] |
Definition at line 136 of file event_handler.hpp.
Referenced by mouse_button_down(), mouse_button_up(), mouse_capture(), and mouse_move().
twidget* gui2::tevent_handler::keyboard_focus_ [private] |
Generated by doxygen 1.5.5 on 23 May 2008 for The Battle for Wesnoth | Gna! | Forum | Wiki | CIA | devdocs |