diff --git a/src/construct_dialog.hpp b/src/construct_dialog.hpp index 772cbebdafb..6af39ace7ff 100644 --- a/src/construct_dialog.hpp +++ b/src/construct_dialog.hpp @@ -80,8 +80,8 @@ public: label *caption() const { return caption_; } void draw_contents(); - handler_vector handler_members() { - handler_vector h; + sdl_handler_vector handler_members() { + sdl_handler_vector h; if(caption_) h.push_back(caption_); return h; } @@ -101,8 +101,8 @@ public: label *get_label() const { return label_; } - handler_vector handler_members() { - handler_vector h = textbox::handler_members(); + sdl_handler_vector handler_members() { + sdl_handler_vector h = textbox::handler_members(); if(label_) h.push_back(label_); return h; } diff --git a/src/controller_base.hpp b/src/controller_base.hpp index b8c8b8cd936..ee451239768 100644 --- a/src/controller_base.hpp +++ b/src/controller_base.hpp @@ -31,7 +31,7 @@ namespace events { class mouse_handler_base; } -class controller_base : public hotkey::command_executor, public events::handler +class controller_base : public hotkey::command_executor, public events::sdl_handler { public: controller_base(const int ticks, const config& game_config, CVideo& video); diff --git a/src/dialogs.cpp b/src/dialogs.cpp index 96996ade570..f5dbd0e7108 100644 --- a/src/dialogs.cpp +++ b/src/dialogs.cpp @@ -1027,9 +1027,9 @@ unit_preview_pane::unit_preview_pane(const gui::filter_textbox *filter, TYPE typ } -handler_vector unit_preview_pane::handler_members() +sdl_handler_vector unit_preview_pane::handler_members() { - handler_vector h; + sdl_handler_vector h; h.push_back(&details_button_); return h; } diff --git a/src/dialogs.hpp b/src/dialogs.hpp index a6c044ad34f..d4feb92b6cc 100644 --- a/src/dialogs.hpp +++ b/src/dialogs.hpp @@ -94,7 +94,7 @@ public: bool left_side() const; void set_selection(int index); - handler_vector handler_members(); + sdl_handler_vector handler_members(); protected: int index_; diff --git a/src/editor/palette/common_palette.hpp b/src/editor/palette/common_palette.hpp index 5daf44de87e..3c97dd85d55 100644 --- a/src/editor/palette/common_palette.hpp +++ b/src/editor/palette/common_palette.hpp @@ -49,7 +49,7 @@ public: //event handling - virtual handler_vector handler_members() { return handler_vector(); } + virtual sdl_handler_vector handler_members() { return sdl_handler_vector(); } virtual void select_fg_item(const std::string& item_id) = 0; virtual void select_bg_item(const std::string& item_id) = 0; diff --git a/src/editor/palette/editor_palettes.cpp b/src/editor/palette/editor_palettes.cpp index 8337c58388e..c6ac76a0a0e 100644 --- a/src/editor/palette/editor_palettes.cpp +++ b/src/editor/palette/editor_palettes.cpp @@ -32,17 +32,17 @@ namespace editor { template -handler_vector editor_palette::handler_members() +sdl_handler_vector editor_palette::handler_members() { - handler_vector h; + sdl_handler_vector h; BOOST_FOREACH(gui::widget& b, buttons_) { h.push_back(&b); } return h; } -template handler_vector editor_palette::handler_members(); -template handler_vector editor_palette::handler_members(); -template handler_vector editor_palette::handler_members(); +template sdl_handler_vector editor_palette::handler_members(); +template sdl_handler_vector editor_palette::handler_members(); +template sdl_handler_vector editor_palette::handler_members(); template void editor_palette::expand_palette_groups_menu(std::vector& items) diff --git a/src/editor/palette/editor_palettes.hpp b/src/editor/palette/editor_palettes.hpp index 20072602a6c..00464e77cd0 100644 --- a/src/editor/palette/editor_palettes.hpp +++ b/src/editor/palette/editor_palettes.hpp @@ -56,7 +56,7 @@ public: - virtual handler_vector handler_members(); + virtual sdl_handler_vector handler_members(); void set_start_item(size_t index) { items_start_ = index; } diff --git a/src/editor/palette/palette_manager.cpp b/src/editor/palette/palette_manager.cpp index 24819d11839..c6584261c95 100644 --- a/src/editor/palette/palette_manager.cpp +++ b/src/editor/palette/palette_manager.cpp @@ -141,7 +141,7 @@ void palette_manager::draw_contents() // set_dirty(false); } -handler_vector palette_manager::handler_members() +sdl_handler_vector palette_manager::handler_members() { //handler_vector h; // BOOST_FOREACH(gui::widget& b, active_palette().get_widgets()) { diff --git a/src/editor/palette/palette_manager.hpp b/src/editor/palette/palette_manager.hpp index 6af52791329..f9c70b5fcaf 100644 --- a/src/editor/palette/palette_manager.hpp +++ b/src/editor/palette/palette_manager.hpp @@ -54,7 +54,7 @@ public: void adjust_size(); - handler_vector handler_members(); + sdl_handler_vector handler_members(); virtual void handle_event(const SDL_Event& event); /** diff --git a/src/events.cpp b/src/events.cpp index f46c8365e20..de75acc69fc 100644 --- a/src/events.cpp +++ b/src/events.cpp @@ -18,7 +18,6 @@ #include "cursor.hpp" #include "events.hpp" #include "log.hpp" -#include "preferences_display.hpp" #include "sound.hpp" #include "video.hpp" #if defined _WIN32 @@ -48,18 +47,18 @@ struct context { } - void add_handler(handler* ptr); - bool remove_handler(handler* ptr); + void add_handler(sdl_handler* ptr); + bool remove_handler(sdl_handler* ptr); int cycle_focus(); - void set_focus(const handler* ptr); + void set_focus(const sdl_handler* ptr); - std::vector handlers; + std::vector handlers; int focused_handler; void delete_handler_index(size_t handler); }; -void context::add_handler(handler* ptr) +void context::add_handler(sdl_handler* ptr) { handlers.push_back(ptr); } @@ -75,7 +74,7 @@ void context::delete_handler_index(size_t handler) handlers.erase(handlers.begin()+handler); } -bool context::remove_handler(handler* ptr) +bool context::remove_handler(sdl_handler* ptr) { if(handlers.empty()) { return false; @@ -89,7 +88,7 @@ bool context::remove_handler(handler* ptr) if(handlers.back() == ptr) { delete_handler_index(handlers.size()-1); } else { - const std::vector::iterator i = std::find(handlers.begin(),handlers.end(),ptr); + const std::vector::iterator i = std::find(handlers.begin(),handlers.end(),ptr); if(i != handlers.end()) { delete_handler_index(i - handlers.begin()); } else { @@ -125,9 +124,9 @@ int context::cycle_focus() return focused_handler; } -void context::set_focus(const handler* ptr) +void context::set_focus(const sdl_handler* ptr) { - const std::vector::const_iterator i = std::find(handlers.begin(),handlers.end(),ptr); + const std::vector::const_iterator i = std::find(handlers.begin(),handlers.end(),ptr); if(i != handlers.end() && (**i).requires_event_focus()) { focused_handler = int(i - handlers.begin()); } @@ -164,7 +163,7 @@ event_context::~event_context() event_contexts.pop_back(); } -handler::handler(const bool auto_join) +sdl_handler::sdl_handler(const bool auto_join) #if SDL_VERSION_ATLEAST(2, 0, 0) : unicode_(1) #else @@ -183,7 +182,7 @@ handler::handler(const bool auto_join) } } -handler::~handler() +sdl_handler::~sdl_handler() { leave(); #if !SDL_VERSION_ATLEAST(2, 0, 0) @@ -191,7 +190,7 @@ handler::~handler() #endif } -void handler::join() +void sdl_handler::join() { if(has_joined_) { leave(); // should not be in multiple event contexts @@ -201,19 +200,19 @@ void handler::join() has_joined_ = true; //instruct members to join - handler_vector members = handler_members(); + sdl_handler_vector members = handler_members(); if(!members.empty()) { - for(handler_vector::iterator i = members.begin(); i != members.end(); ++i) { + for(sdl_handler_vector::iterator i = members.begin(); i != members.end(); ++i) { (*i)->join(); } } } -void handler::leave() +void sdl_handler::leave() { - handler_vector members = handler_members(); + sdl_handler_vector members = handler_members(); if(!members.empty()) { - for(handler_vector::iterator i = members.begin(); i != members.end(); ++i) { + for(sdl_handler_vector::iterator i = members.begin(); i != members.end(); ++i) { (*i)->leave(); } } else { @@ -227,14 +226,14 @@ void handler::leave() has_joined_ = false; } -void focus_handler(const handler* ptr) +void focus_handler(const sdl_handler* ptr) { if(event_contexts.empty() == false) { event_contexts.back().set_focus(ptr); } } -bool has_focus(const handler* hand, const SDL_Event* event) +bool has_focus(const sdl_handler* hand, const SDL_Event* event) { if(event_contexts.empty()) { return true; @@ -253,7 +252,7 @@ bool has_focus(const handler* hand, const SDL_Event* event) return true; } - handler *const foc_hand = event_contexts.back().handlers[foc_i]; + sdl_handler *const foc_hand = event_contexts.back().handlers[foc_i]; if(foc_hand == hand){ return true; } else if(!foc_hand->requires_event_focus(event)) { @@ -261,7 +260,7 @@ bool has_focus(const handler* hand, const SDL_Event* event) //allow the most recent interested handler to take care of it int back_i = event_contexts.back().handlers.size() - 1; for(int i=back_i; i>=0; --i) { - handler *const thief_hand = event_contexts.back().handlers[i]; + sdl_handler *const thief_hand = event_contexts.back().handlers[i]; if(i != foc_i && thief_hand->requires_event_focus(event)) { //steal focus focus_handler(thief_hand); @@ -422,7 +421,7 @@ void pump() if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; //events may cause more event handlers to be added and/or removed, //so we must use indexes instead of iterators here. @@ -442,7 +441,7 @@ void raise_process_event() { if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; //events may cause more event handlers to be added and/or removed, //so we must use indexes instead of iterators here. @@ -456,7 +455,7 @@ void raise_draw_event() { if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; //events may cause more event handlers to be added and/or removed, //so we must use indexes instead of iterators here. @@ -470,7 +469,7 @@ void raise_volatile_draw_event() { if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; //events may cause more event handlers to be added and/or removed, //so we must use indexes instead of iterators here. @@ -484,7 +483,7 @@ void raise_volatile_undraw_event() { if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; //events may cause more event handlers to be added and/or removed, //so we must use indexes instead of iterators here. @@ -498,7 +497,7 @@ void raise_help_string_event(int mousex, int mousey) { if(event_contexts.empty() == false) { - const std::vector& event_handlers = event_contexts.back().handlers; + const std::vector& event_handlers = event_contexts.back().handlers; for(size_t i1 = 0, i2 = event_handlers.size(); i1 != i2 && i1 < event_handlers.size(); ++i1) { event_handlers[i1]->process_help_string(mousex,mousey); diff --git a/src/events.hpp b/src/events.hpp index c23e3b42bd6..d1c2133226f 100644 --- a/src/events.hpp +++ b/src/events.hpp @@ -37,7 +37,7 @@ namespace events //NOTE: an event_context object must be initialized before a handler object //can be initialized, and the event_context must be destroyed after //the handler is destroyed. -class handler +class sdl_handler { public: virtual void handle_event(const SDL_Event& event) = 0; @@ -56,11 +56,11 @@ public: virtual void leave(); /*leave the event context*/ protected: - handler(const bool auto_join=true); - virtual ~handler(); - virtual std::vector handler_members() + sdl_handler(const bool auto_join=true); + virtual ~sdl_handler(); + virtual std::vector handler_members() { - return std::vector(); + return std::vector(); } private: @@ -68,10 +68,10 @@ private: bool has_joined_; }; -void focus_handler(const handler* ptr); +void focus_handler(const sdl_handler* ptr); void cycle_focus(); -bool has_focus(const handler* ptr, const SDL_Event* event); +bool has_focus(const sdl_handler* ptr, const SDL_Event* event); //event_context objects control the handler objects that SDL events are sent //to. When an event_context is created, it will become the current event context. @@ -126,7 +126,7 @@ void discard_input(); } -typedef std::vector handler_vector; +typedef std::vector sdl_handler_vector; #if ! SDL_VERSION_ATLEAST(2,0,0) diff --git a/src/game_initialization/multiplayer_wait.cpp b/src/game_initialization/multiplayer_wait.cpp index bc224567643..9cb3a66fc31 100644 --- a/src/game_initialization/multiplayer_wait.cpp +++ b/src/game_initialization/multiplayer_wait.cpp @@ -177,8 +177,8 @@ void wait::leader_preview_pane::set_selection(int selection) } } -handler_vector wait::leader_preview_pane::handler_members() { - handler_vector h; +sdl_handler_vector wait::leader_preview_pane::handler_members() { + sdl_handler_vector h; h.push_back(&combo_leader_); h.push_back(&combo_gender_); return h; diff --git a/src/game_initialization/multiplayer_wait.hpp b/src/game_initialization/multiplayer_wait.hpp index b9238f8888f..485c866bb68 100644 --- a/src/game_initialization/multiplayer_wait.hpp +++ b/src/game_initialization/multiplayer_wait.hpp @@ -50,7 +50,7 @@ private: bool left_side() const; void set_selection(int index); - handler_vector handler_members(); + sdl_handler_vector handler_members(); private: virtual void process_event(); diff --git a/src/game_preferences_display.cpp b/src/game_preferences_display.cpp index ee8c61d0de7..7a22dbca345 100644 --- a/src/game_preferences_display.cpp +++ b/src/game_preferences_display.cpp @@ -98,7 +98,7 @@ public: TYPE type; }; - virtual handler_vector handler_members(); + virtual sdl_handler_vector handler_members(); private: void process_event(); @@ -533,9 +533,9 @@ preferences_dialog::preferences_dialog(display& disp, const config& game_cfg) set_friends_menu(); } -handler_vector preferences_dialog::handler_members() +sdl_handler_vector preferences_dialog::handler_members() { - handler_vector h; + sdl_handler_vector h; h.push_back(&music_slider_); h.push_back(&sound_slider_); h.push_back(&bell_slider_); diff --git a/src/gui/auxiliary/event/handler.cpp b/src/gui/auxiliary/event/handler.cpp index f9011232c5e..9e5df4e8902 100644 --- a/src/gui/auxiliary/event/handler.cpp +++ b/src/gui/auxiliary/event/handler.cpp @@ -121,7 +121,7 @@ static Uint32 timer_sdl_poll_events(Uint32, void*) * * It's a new experimental class. */ -class thandler : public events::handler +class thandler : public events::sdl_handler { friend bool gui2::is_in_dialog(); @@ -130,7 +130,7 @@ public: ~thandler(); - /** Inherited from events::handler. */ + /** Inherited from events::sdl_handler. */ void handle_event(const SDL_Event& event); /** @@ -162,7 +162,7 @@ private: /***** Handlers *****/ /** Fires a draw event. */ - using events::handler::draw; + using events::sdl_handler::draw; void draw(const bool force); /** @@ -293,7 +293,7 @@ private: }; thandler::thandler() - : events::handler(false) + : events::sdl_handler(false) , mouse_focus(NULL) , dispatchers_() , keyboard_focus_(NULL) diff --git a/src/hotkey/command_executor.hpp b/src/hotkey/command_executor.hpp index 6f6b0edc055..aee2c53380b 100644 --- a/src/hotkey/command_executor.hpp +++ b/src/hotkey/command_executor.hpp @@ -142,7 +142,7 @@ void execute_command(display& disp, const hotkey_command& command, command_execu // Object which will ensure that basic keyboard events like escape // are handled properly for the duration of its lifetime. -struct basic_handler : public events::handler { +struct basic_handler : public events::sdl_handler { basic_handler(display* disp, command_executor* exec=NULL); void handle_event(const SDL_Event& event); diff --git a/src/hotkey/hotkey_preferences_display.cpp b/src/hotkey/hotkey_preferences_display.cpp index ee962472cc4..a2e8c765827 100644 --- a/src/hotkey/hotkey_preferences_display.cpp +++ b/src/hotkey/hotkey_preferences_display.cpp @@ -62,14 +62,14 @@ public: private: - /// overrides events::handler::process_event + /// overrides events::sdl_handler::process_event void process_event(); /// overrides gui::widget::update_location void update_location(SDL_Rect const &rect); /// overrides gui::preview_pane::handler_members - virtual handler_vector handler_members(); + virtual sdl_handler_vector handler_members(); /// implements gui::preview_pane::set_selection void set_selection(int index); @@ -424,8 +424,8 @@ void hotkey_preferences_dialog::set_hotkey_menu(bool keep_viewport) { } -handler_vector hotkey_preferences_dialog::handler_members() { - handler_vector h; +sdl_handler_vector hotkey_preferences_dialog::handler_members() { + sdl_handler_vector h; h.push_back(&add_button_); h.push_back(&clear_button_); h.push_back(&general_hotkeys_); diff --git a/src/preferences_display.cpp b/src/preferences_display.cpp index 4769487a0ab..6f4f25811a4 100644 --- a/src/preferences_display.cpp +++ b/src/preferences_display.cpp @@ -247,7 +247,7 @@ void set_idle_anim_rate(int rate) { } namespace { -class escape_handler : public events::handler { +class escape_handler : public events::sdl_handler { public: escape_handler() : escape_pressed_(false) {} bool escape_pressed() const { return escape_pressed_; } diff --git a/src/show_dialog.hpp b/src/show_dialog.hpp index 1a02fa3c73b..7478e8d2e75 100644 --- a/src/show_dialog.hpp +++ b/src/show_dialog.hpp @@ -174,7 +174,7 @@ public: virtual bool show_above() const { return false; } virtual bool left_side() const = 0; virtual void set_selection(int index) = 0; - virtual handler_vector handler_members() { return widget::handler_members(); } + virtual sdl_handler_vector handler_members() { return widget::handler_members(); } }; //if a menu is given, then returns -1 if the dialog was canceled, and the diff --git a/src/widgets/scrollarea.cpp b/src/widgets/scrollarea.cpp index fcc94cc445a..b747af40eb8 100644 --- a/src/widgets/scrollarea.cpp +++ b/src/widgets/scrollarea.cpp @@ -37,9 +37,9 @@ bool scrollarea::has_scrollbar() const return shown_size_ < full_size_ && scrollbar_.is_valid_height(location().h); } -handler_vector scrollarea::handler_members() +sdl_handler_vector scrollarea::handler_members() { - handler_vector h; + sdl_handler_vector h; h.push_back(&scrollbar_); return h; } diff --git a/src/widgets/scrollarea.hpp b/src/widgets/scrollarea.hpp index 590cc606fa6..4388c0a4c42 100644 --- a/src/widgets/scrollarea.hpp +++ b/src/widgets/scrollarea.hpp @@ -35,7 +35,7 @@ public: virtual void hide(bool value = true); protected: - virtual handler_vector handler_members(); + virtual sdl_handler_vector handler_members(); virtual void update_location(SDL_Rect const &rect); virtual void handle_event(const SDL_Event& event); virtual void process_event(); diff --git a/src/widgets/scrollbar.cpp b/src/widgets/scrollbar.cpp index c5b77230054..5cb57337acb 100644 --- a/src/widgets/scrollbar.cpp +++ b/src/widgets/scrollbar.cpp @@ -75,9 +75,9 @@ scrollbar::scrollbar(CVideo &video) } } -handler_vector scrollbar::handler_members() +sdl_handler_vector scrollbar::handler_members() { - handler_vector h; + sdl_handler_vector h; h.push_back(&uparrow_); h.push_back(&downarrow_); return h; diff --git a/src/widgets/scrollbar.hpp b/src/widgets/scrollbar.hpp index feb7818a335..44fbad9375e 100644 --- a/src/widgets/scrollbar.hpp +++ b/src/widgets/scrollbar.hpp @@ -78,7 +78,7 @@ public: void scroll_up(); protected: - virtual handler_vector handler_members(); + virtual sdl_handler_vector handler_members(); virtual void update_location(SDL_Rect const &rect); virtual void handle_event(const SDL_Event& event); virtual void process_event(); diff --git a/src/widgets/widget.cpp b/src/widgets/widget.cpp index ce796e6735c..04a6886a56a 100644 --- a/src/widgets/widget.cpp +++ b/src/widgets/widget.cpp @@ -33,7 +33,7 @@ namespace gui { bool widget::mouse_lock_ = false; widget::widget(const widget &o) - : events::handler(), focus_(o.focus_), video_(o.video_), restorer_(o.restorer_), rect_(o.rect_), + : events::sdl_handler(), focus_(o.focus_), video_(o.video_), restorer_(o.restorer_), rect_(o.rect_), needs_restore_(o.needs_restore_), state_(o.state_), hidden_override_(o.hidden_override_), enabled_(o.enabled_), clip_(o.clip_), clip_rect_(o.clip_rect_), volatile_(o.volatile_), help_text_(o.help_text_), tooltip_text_(o.tooltip_text_), help_string_(o.help_string_), id_(o.id_), mouse_lock_local_(o.mouse_lock_local_) @@ -41,7 +41,7 @@ widget::widget(const widget &o) } widget::widget(CVideo& video, const bool auto_join) - : handler(auto_join), focus_(true), video_(&video), rect_(EmptyRect), needs_restore_(false), + : sdl_handler(auto_join), focus_(true), video_(&video), rect_(EmptyRect), needs_restore_(false), state_(UNINIT), hidden_override_(false), enabled_(true), clip_(false), clip_rect_(EmptyRect), volatile_(false), help_string_(0), mouse_lock_local_(false) { diff --git a/src/widgets/widget.hpp b/src/widgets/widget.hpp index 8e1748f8aea..967df25feea 100644 --- a/src/widgets/widget.hpp +++ b/src/widgets/widget.hpp @@ -22,7 +22,7 @@ class CVideo; namespace gui { -class widget : public events::handler +class widget : public events::sdl_handler { public: SDL_Rect const &location() const; @@ -87,7 +87,7 @@ protected: virtual void update_location(SDL_Rect const &rect); const SDL_Rect* clip_rect() const; - virtual handler_vector member_handlers() { return handler::handler_members(); } + virtual sdl_handler_vector member_handlers() { return sdl_handler::handler_members(); } virtual void handle_event(SDL_Event const &/*event*/) {} bool focus_; // Should user input be ignored?