change gui2::tselectable (and hence ttoggle_button)...

...state_change callback to use a boost::function instead of a
function pointer. note that since a a function pointer can be converted
to a respective boost::function this actually requires very few
changes.
This commit is contained in:
Tomasz Śniatowski 2009-07-21 00:15:17 +01:00
parent 132f40b926
commit 650493a1be
5 changed files with 14 additions and 12 deletions

View file

@ -424,13 +424,13 @@ void tlobby_main::pre_show(CVideo& /*video*/, twindow& window)
filter_text_= &window.get_widget<ttext_box>("filter_text", false);
filter_friends_->set_callback_state_change(
dialog_callback<tlobby_main, &tlobby_main::game_filter_change_callback>);
boost::bind(&tlobby_main::game_filter_change_callback, this, _1));
filter_ignored_->set_callback_state_change(
dialog_callback<tlobby_main, &tlobby_main::game_filter_change_callback>);
boost::bind(&tlobby_main::game_filter_change_callback, this, _1));
filter_slots_->set_callback_state_change(
dialog_callback<tlobby_main, &tlobby_main::game_filter_change_callback>);
boost::bind(&tlobby_main::game_filter_change_callback, this, _1));
filter_invert_->set_callback_state_change(
dialog_callback<tlobby_main, &tlobby_main::game_filter_change_callback>);
boost::bind(&tlobby_main::game_filter_change_callback, this, _1));
filter_text_->set_key_press_callback(
boost::bind(&tlobby_main::game_filter_keypress_callback, this, _1, _2, _3, _4));
@ -926,7 +926,7 @@ bool tlobby_main::game_filter_keypress_callback(twidget* /*widget*/, SDLKey key,
return false;
}
void tlobby_main::game_filter_change_callback(gui2::twindow &/*window*/)
void tlobby_main::game_filter_change_callback(gui2::twidget* /*widget*/)
{
game_filter_reload();
update_gamelist();

View file

@ -260,7 +260,7 @@ private:
void game_filter_reload();
void game_filter_change_callback(twindow& window);
void game_filter_change_callback(twidget* widget);
bool game_filter_keypress_callback(twidget* widget, SDLKey key, SDLMod mod, Uint16 unicode);

View file

@ -15,6 +15,8 @@
#ifndef GUI_WIDGETS_SELECTABLE_HPP_INCLUDED
#define GUI_WIDGETS_SELECTABLE_HPP_INCLUDED
#include <boost/function.hpp>
namespace gui2 {
class twidget;
@ -40,7 +42,7 @@ public:
* When the user does something to change the widget state this event is
* fired. Most of the time it will be a left click on the widget.
*/
virtual void set_callback_state_change(void (*callback) (twidget*)) = 0;
virtual void set_callback_state_change(boost::function<void (twidget*)> callback) = 0;
};
} // namespace gui2

View file

@ -33,7 +33,7 @@ public:
tcontrol(COUNT),
state_(ENABLED),
retval_(0),
callback_state_change_(0),
callback_state_change_(),
icon_name_()
{
}
@ -84,7 +84,7 @@ public:
void set_retval(const int retval);
/** Inherited from tselectable_. */
void set_callback_state_change(void (*callback) (twidget*))
void set_callback_state_change(boost::function<void (twidget*)> callback)
{ callback_state_change_ = callback; }
void set_icon_name(const std::string& icon_name)
@ -124,7 +124,7 @@ private:
int retval_;
/** See tselectable_::set_callback_state_change. */
void (*callback_state_change_) (twidget*);
boost::function<void (twidget*)> callback_state_change_;
/**
* The toggle button can contain an icon next to the text.

View file

@ -127,7 +127,7 @@ public:
void set_retval(const int retval);
/** Inherited from tselectable_. */
void set_callback_state_change(void (*callback) (twidget*))
void set_callback_state_change(boost::function<void (twidget*)> callback)
{ callback_state_change_ = callback; }
private:
@ -164,7 +164,7 @@ private:
int retval_;
/** See tselectable_::set_callback_state_change. */
void (*callback_state_change_) (twidget*);
boost::function<void (twidget*)> callback_state_change_;
/** Inherited from tpanel. */
void impl_draw_background(surface& frame_buffer)