rename events::handler to events::sdl_handler

This is much less confusing, as we have many different types of
event handlers, and will probably have more soon...
This commit is contained in:
Chris Beck 2014-12-12 21:54:46 -05:00
parent b19af20165
commit 223521fa44
25 changed files with 79 additions and 80 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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_;

View File

@ -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;

View File

@ -32,17 +32,17 @@
namespace editor {
template<class Item>
handler_vector editor_palette<Item>::handler_members()
sdl_handler_vector editor_palette<Item>::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<t_translation::t_terrain>::handler_members();
template handler_vector editor_palette<unit_type>::handler_members();
template handler_vector editor_palette<overlay>::handler_members();
template sdl_handler_vector editor_palette<t_translation::t_terrain>::handler_members();
template sdl_handler_vector editor_palette<unit_type>::handler_members();
template sdl_handler_vector editor_palette<overlay>::handler_members();
template<class Item>
void editor_palette<Item>::expand_palette_groups_menu(std::vector<std::string>& items)

View File

@ -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; }

View File

@ -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()) {

View File

@ -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);
/**

View File

@ -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<handler*> handlers;
std::vector<sdl_handler*> 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<handler*>::iterator i = std::find(handlers.begin(),handlers.end(),ptr);
const std::vector<sdl_handler*>::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<handler*>::const_iterator i = std::find(handlers.begin(),handlers.end(),ptr);
const std::vector<sdl_handler*>::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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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<handler*>& event_handlers = event_contexts.back().handlers;
const std::vector<sdl_handler*>& 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);

View File

@ -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*> handler_members()
sdl_handler(const bool auto_join=true);
virtual ~sdl_handler();
virtual std::vector<sdl_handler*> handler_members()
{
return std::vector<handler*>();
return std::vector<sdl_handler*>();
}
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<events::handler*> handler_vector;
typedef std::vector<events::sdl_handler*> sdl_handler_vector;
#if ! SDL_VERSION_ATLEAST(2,0,0)

View File

@ -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;

View File

@ -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();

View File

@ -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_);

View File

@ -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)

View File

@ -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);

View File

@ -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_);

View File

@ -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_; }

View File

@ -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

View File

@ -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;
}

View File

@ -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();

View File

@ -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;

View File

@ -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();

View File

@ -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)
{

View File

@ -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?