void unit_recall::rename_unit(window& window) { listbox& list = find_widget<listbox>(&window, "recall_list", false); const int index = list.get_selected_row(); unit& selected_unit = const_cast<unit&>(*recall_list_[index].get()); std::string name = selected_unit.name(); const std::string dialog_title(_("Rename Unit")); const std::string dialog_label(_("Name:")); if(gui2::dialogs::edit_text::execute(dialog_title, dialog_label, name)) { selected_unit.rename(name); find_widget<label>(list.get_row_grid(index), "unit_name", false).set_label(name); filter_options_.erase(filter_options_.begin() + index); std::ostringstream filter_text; filter_text << selected_unit.type_name() << " " << name << " " << std::to_string(selected_unit.level()); for(const std::string& trait : selected_unit.trait_names()) { filter_text << " " << trait; } filter_options_.insert(filter_options_.begin() + index, filter_text.str()); list_item_clicked(window); window.invalidate_layout(); } }
void custom_tod::update_tod_display(window& window) { ::image::set_color_adjustment(tod_red_field_->get_value(), tod_green_field_->get_value(), tod_blue_field_->get_value()); // Prevent a floating slice of window appearing alone over the // theme UI sidebar after redrawing tiles and before we have a // chance to redraw the rest of this window. window.undraw(); // NOTE: We only really want to re-render the gamemap tiles here. // Redrawing everything is a significantly more expensive task. // At this time, tiles are the only elements on which ToD tint is // meant to have a visible effect. This is very strongly tied to // the image caching mechanism. // // If this ceases to be the case in the future, you'll need to call // redraw_everything() instead. // invalidate all tiles so they are redrawn with the new ToD tint next display_.invalidate_all(); // redraw tiles display_.draw(false); window.invalidate_layout(); }
void lobby_main::show_preferences_button_callback(window& window) { if(preferences_callback_) { preferences_callback_(); /** * The screen size might have changed force an update of the size. * * @todo This might no longer be needed when gui2 is done. */ window.invalidate_layout(); wesnothd_connection_.send_data(config("refresh_lobby")); } }