newlobby: show how many games out of how many are displayed with current filter

This commit is contained in:
Tomasz Śniatowski 2009-07-13 15:36:08 +01:00
parent 382a1f134e
commit 9fd6ca0e4b
2 changed files with 23 additions and 10 deletions

View file

@ -236,6 +236,10 @@ void tlobby_main::update_gamelist()
{
gamelistbox_->clear();
lobby_info_.apply_game_filter();
std::stringstream ss;
ss << "Games: Showing " << lobby_info_.games_filtered().size()
<< " out of " << lobby_info_.games().size();
gamelistbox_->get_widget<tlabel>("map", false).set_label(ss.str());
foreach (const game_info *gp, lobby_info_.games_filtered())
{
const game_info& game = *gp;
@ -379,6 +383,7 @@ void tlobby_main::pre_show(CVideo& /*video*/, twindow& window)
boost::bind(&tlobby_main::game_filter_keypress_callback, this, _1, _2, _3, _4));
room_window_open("lobby", true);
game_filter_reload();
}
void tlobby_main::post_show(twindow& /*window*/)
@ -830,16 +835,7 @@ bool tlobby_main::chat_input_keypress_callback(twidget* widget, SDLKey key,
return false;
}
bool tlobby_main::game_filter_keypress_callback(twidget* widget, SDLKey key,
SDLMod /*mod*/, Uint16 /*unicode*/)
{
if (key == SDLK_RETURN) {
game_filter_change_callback(*widget->get_window());
}
return false;
}
void tlobby_main::game_filter_change_callback(gui2::twindow &/*window*/)
void tlobby_main::game_filter_reload()
{
lobby_info_.clear_game_filter();
@ -860,6 +856,21 @@ void tlobby_main::game_filter_change_callback(gui2::twindow &/*window*/)
new game_filter_value<size_t, &game_info::vacant_slots, std::greater<size_t> >(0));
}
lobby_info_.set_game_filter_invert(filter_invert_->get_value());
}
bool tlobby_main::game_filter_keypress_callback(twidget* /*widget*/, SDLKey key,
SDLMod /*mod*/, Uint16 /*unicode*/)
{
if (key == SDLK_RETURN) {
game_filter_reload();
update_gamelist();
}
return false;
}
void tlobby_main::game_filter_change_callback(gui2::twindow &/*window*/)
{
game_filter_reload();
update_gamelist();
}

View file

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