find widget signature changes
This commit is contained in:
parent
43e1d183e5
commit
c7d9c0f5b0
101 changed files with 1249 additions and 1268 deletions
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "game_config_manager.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/drawing.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -49,10 +48,10 @@ achievements_dialog::achievements_dialog()
|
|||
void achievements_dialog::pre_show(window& win)
|
||||
{
|
||||
std::vector<config> content_list;
|
||||
content_names_ = &find_widget<menu_button>(&win, "selected_achievements_list", false);
|
||||
content_names_ = &find_widget<menu_button>("selected_achievements_list");
|
||||
connect_signal_notify_modified(*content_names_, std::bind(&achievements_dialog::set_achievements_row, this));
|
||||
|
||||
achievements_box_ = find_widget<listbox>(&win, "achievements_list", false, true);
|
||||
achievements_box_ = find_widget<listbox>("achievements_list", false, true);
|
||||
|
||||
std::vector<achievement_group> groups = game_config_manager::get()->get_achievements();
|
||||
int selected = 0;
|
||||
|
@ -133,7 +132,7 @@ void achievements_dialog::set_achievements_row()
|
|||
set_sub_achievements(newrow, ach);
|
||||
}
|
||||
|
||||
label* achieved_label = find_widget<label>(get_window(), "achievement_count", false, true);
|
||||
label* achieved_label = find_widget<label>("achievement_count", false, true);
|
||||
achieved_label->set_label(_("Completed")+" "+std::to_string(achieved_count)+"/"+std::to_string(list.achievements_.size()));
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "gui/dialogs/addon/addon_auth.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/menu_button.hpp"
|
||||
#include "gui/widgets/password_box.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -41,7 +40,7 @@ addon_auth::addon_auth(config& cfg)
|
|||
|
||||
void addon_auth::pre_show(window& win)
|
||||
{
|
||||
text_box* pwd = find_widget<text_box>(&win, "password", false, true);
|
||||
text_box* pwd = find_widget<text_box>("password", false, true);
|
||||
win.add_to_tab_order(pwd);
|
||||
pwd->set_value(cfg_["passphrase"].str(""));
|
||||
|
||||
|
@ -51,15 +50,15 @@ void addon_auth::pre_show(window& win)
|
|||
for(const auto& author : utils::split(cfg_["secondary_authors"].str(""), ',')) {
|
||||
content_list.emplace_back("label", author);
|
||||
}
|
||||
find_widget<menu_button>(&win, "choose_uploader", false).set_values(content_list);
|
||||
find_widget<menu_button>("choose_uploader").set_values(content_list);
|
||||
}
|
||||
|
||||
void addon_auth::post_show(window& win)
|
||||
{
|
||||
if(get_retval() == gui2::retval::OK)
|
||||
{
|
||||
cfg_["passphrase"] = find_widget<password_box>(&win, "password", false).get_real_value();
|
||||
cfg_["uploader"] = find_widget<menu_button>(&win, "choose_uploader", false).get_value_string();
|
||||
cfg_["passphrase"] = find_widget<password_box>("password").get_real_value();
|
||||
cfg_["uploader"] = find_widget<menu_button>("choose_uploader").get_value_string();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/addon/connect.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -44,11 +43,11 @@ void addon_connect::help_button_callback()
|
|||
|
||||
void addon_connect::pre_show(window& window)
|
||||
{
|
||||
find_widget<button>(&window, "remove_addons", false)
|
||||
find_widget<button>("remove_addons")
|
||||
.set_active(allow_remove_);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_help", false),
|
||||
find_widget<button>("show_help"),
|
||||
std::bind(&addon_connect::help_button_callback, this));
|
||||
}
|
||||
|
||||
|
@ -56,7 +55,7 @@ void addon_connect::post_show(window& window)
|
|||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
text_box& host_widget
|
||||
= find_widget<text_box>(&window, "host_name", false);
|
||||
= find_widget<text_box>("host_name");
|
||||
|
||||
host_widget.save_to_history();
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "install_dependencies.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/addon_list.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -29,14 +28,14 @@ REGISTER_DIALOG(install_dependencies)
|
|||
|
||||
void install_dependencies::pre_show(window& window)
|
||||
{
|
||||
find_widget<label>(&window, "label", false).set_label(t_string(
|
||||
find_widget<label>("label").set_label(t_string(
|
||||
_n(
|
||||
"The selected add-on has the following dependency, which is outdated or not currently installed. Do you wish to install it before continuing?",
|
||||
"The selected add-on has the following dependencies, which are outdated or not currently installed. Do you wish to install them before continuing?",
|
||||
addons_.size())
|
||||
));
|
||||
|
||||
find_widget<addon_list>(&window, "dependencies", false).set_addons(addons_);
|
||||
find_widget<addon_list>("dependencies").set_addons(addons_);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
|
||||
#include "help/help.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/addon/license_prompt.hpp"
|
||||
#include "gui/dialogs/addon/addon_auth.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
|
@ -296,7 +295,7 @@ void addon_manager::pre_show(window& window)
|
|||
{
|
||||
window.set_escape_disabled(true);
|
||||
|
||||
stacked_widget& addr_info = find_widget<stacked_widget>(&window, "server_conn_info", false);
|
||||
stacked_widget& addr_info = find_widget<stacked_widget>("server_conn_info");
|
||||
grid* addr_visible;
|
||||
|
||||
if(client_.using_tls()) {
|
||||
|
@ -325,9 +324,9 @@ void addon_manager::pre_show(window& window)
|
|||
}
|
||||
}
|
||||
|
||||
addon_list& list = find_widget<addon_list>(&window, "addons", false);
|
||||
addon_list& list = find_widget<addon_list>("addons");
|
||||
|
||||
text_box& filter = find_widget<text_box>(&window, "filter", false);
|
||||
text_box& filter = find_widget<text_box>("filter");
|
||||
filter.set_text_changed_callback(std::bind(&addon_manager::apply_filters, this));
|
||||
|
||||
list.set_install_function(std::bind(&addon_manager::install_addon,
|
||||
|
@ -347,7 +346,7 @@ void addon_manager::pre_show(window& window)
|
|||
fetch_addons_list();
|
||||
load_addon_list();
|
||||
|
||||
menu_button& status_filter = find_widget<menu_button>(&window, "install_status_filter", false);
|
||||
menu_button& status_filter = find_widget<menu_button>("install_status_filter");
|
||||
|
||||
std::vector<config> status_filter_entries;
|
||||
for(const auto& f : status_filter_types_) {
|
||||
|
@ -360,7 +359,7 @@ void addon_manager::pre_show(window& window)
|
|||
std::bind(&addon_manager::apply_filters, this));
|
||||
|
||||
// The tag filter
|
||||
auto& tag_filter = find_widget<multimenu_button>(&window, "tag_filter", false);
|
||||
auto& tag_filter = find_widget<multimenu_button>("tag_filter");
|
||||
|
||||
std::vector<config> tag_filter_entries;
|
||||
for(const auto& f : tag_filter_types_) {
|
||||
|
@ -375,7 +374,7 @@ void addon_manager::pre_show(window& window)
|
|||
connect_signal_notify_modified(tag_filter, std::bind(&addon_manager::apply_filters, this));
|
||||
|
||||
// The type filter
|
||||
multimenu_button& type_filter = find_widget<multimenu_button>(&window, "type_filter", false);
|
||||
multimenu_button& type_filter = find_widget<multimenu_button>("type_filter");
|
||||
|
||||
std::vector<config> type_filter_entries;
|
||||
for(const auto& f : type_filter_types_) {
|
||||
|
@ -408,7 +407,7 @@ void addon_manager::pre_show(window& window)
|
|||
language_filter_types_.emplace_back(language_filter_types_.size(), std::move(i));
|
||||
}
|
||||
// The language filter
|
||||
multimenu_button& language_filter = find_widget<multimenu_button>(&window, "language_filter", false);
|
||||
multimenu_button& language_filter = find_widget<multimenu_button>("language_filter");
|
||||
std::vector<config> language_filter_entries;
|
||||
for(const auto& f : language_filter_types_) {
|
||||
language_filter_entries.emplace_back("label", f.second, "checkbox", false);
|
||||
|
@ -420,7 +419,7 @@ void addon_manager::pre_show(window& window)
|
|||
std::bind(&addon_manager::apply_filters, this));
|
||||
|
||||
// Sorting order
|
||||
menu_button& order_dropdown = find_widget<menu_button>(&window, "order_dropdown", false);
|
||||
menu_button& order_dropdown = find_widget<menu_button>("order_dropdown");
|
||||
|
||||
std::vector<config> order_dropdown_entries;
|
||||
for(const auto& f : all_orders_) {
|
||||
|
@ -455,8 +454,8 @@ void addon_manager::pre_show(window& window)
|
|||
func = order_it->sort_func_desc;
|
||||
++index;
|
||||
}
|
||||
find_widget<menu_button>(&window, "order_dropdown", false).set_value(index, false);
|
||||
auto& addons = find_widget<addon_list>(&window, "addons", false);
|
||||
find_widget<menu_button>("order_dropdown").set_value(index);
|
||||
auto& addons = find_widget<addon_list>("addons");
|
||||
addons.set_addon_order(func);
|
||||
addons.select_first_addon();
|
||||
}
|
||||
|
@ -466,51 +465,51 @@ void addon_manager::pre_show(window& window)
|
|||
connect_signal_notify_modified(order_dropdown,
|
||||
std::bind(&addon_manager::order_addons, this));
|
||||
|
||||
label& url_label = find_widget<label>(&window, "url", false);
|
||||
label& url_label = find_widget<label>("url");
|
||||
|
||||
url_label.set_use_markup(true);
|
||||
url_label.set_link_aware(true);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "install", false),
|
||||
find_widget<button>("install"),
|
||||
std::bind(&addon_manager::install_selected_addon, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "uninstall", false),
|
||||
find_widget<button>("uninstall"),
|
||||
std::bind(&addon_manager::uninstall_selected_addon, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "update", false),
|
||||
find_widget<button>("update"),
|
||||
std::bind(&addon_manager::update_selected_addon, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "publish", false),
|
||||
find_widget<button>("publish"),
|
||||
std::bind(&addon_manager::publish_selected_addon, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "delete", false),
|
||||
find_widget<button>("delete"),
|
||||
std::bind(&addon_manager::delete_selected_addon, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "update_all", false),
|
||||
find_widget<button>("update_all"),
|
||||
std::bind(&addon_manager::update_all_addons, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_help", false),
|
||||
find_widget<button>("show_help"),
|
||||
std::bind(&addon_manager::show_help, this));
|
||||
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(&window, "main_stack", false, false)) {
|
||||
button& btn = find_widget<button>(&window, "details_toggle", false);
|
||||
if(stacked_widget* stk = &find_widget<stacked_widget>("main_stack", false)) {
|
||||
button& btn = find_widget<button>("details_toggle");
|
||||
connect_signal_mouse_left_click(btn, std::bind(&addon_manager::toggle_details, this, std::ref(btn), std::ref(*stk)));
|
||||
stk->select_layer(0);
|
||||
}
|
||||
|
||||
widget* version_filter_parent = &window;
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(&window, "main_stack", false, false)) {
|
||||
if(stacked_widget* stk = &find_widget<stacked_widget>("main_stack", false)) {
|
||||
version_filter_parent = stk->get_layer_grid(1);
|
||||
}
|
||||
|
||||
menu_button& version_filter = find_widget<menu_button>(version_filter_parent, "version_filter", false);
|
||||
menu_button& version_filter = version_filter_parent->find_widget<menu_button>("version_filter");
|
||||
connect_signal_notify_modified(version_filter,
|
||||
std::bind(&addon_manager::on_selected_version_change, this));
|
||||
|
||||
|
@ -543,7 +542,7 @@ void addon_manager::fetch_addons_list()
|
|||
bool success = client_.request_addons_list(cfg_);
|
||||
if(!success) {
|
||||
gui2::show_error_message(_("An error occurred while downloading the add-ons list from the server."));
|
||||
get_window()->close();
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -583,7 +582,7 @@ void addon_manager::load_addon_list()
|
|||
show_transient_message(_("No Add-ons Available"), _("There are no add-ons available for download from this server."));
|
||||
}
|
||||
|
||||
addon_list& list = find_widget<addon_list>(get_window(), "addons", false);
|
||||
addon_list& list = find_widget<addon_list>("addons");
|
||||
list.set_addons(addons_);
|
||||
|
||||
bool has_upgradable_addons = false;
|
||||
|
@ -595,7 +594,7 @@ void addon_manager::load_addon_list()
|
|||
}
|
||||
}
|
||||
|
||||
find_widget<button>(get_window(), "update_all", false).set_active(has_upgradable_addons);
|
||||
find_widget<button>("update_all").set_active(has_upgradable_addons);
|
||||
|
||||
apply_filters();
|
||||
}
|
||||
|
@ -605,13 +604,13 @@ void addon_manager::reload_list_and_reselect_item(const std::string id)
|
|||
load_addon_list();
|
||||
|
||||
// Reselect the add-on.
|
||||
find_widget<addon_list>(get_window(), "addons", false).select_addon(id);
|
||||
find_widget<addon_list>("addons").select_addon(id);
|
||||
on_addon_select();
|
||||
}
|
||||
|
||||
boost::dynamic_bitset<> addon_manager::get_name_filter_visibility() const
|
||||
{
|
||||
const text_box& name_filter = find_widget<const text_box>(get_window(), "filter", false);
|
||||
const text_box& name_filter = find_widget<const text_box>("filter");
|
||||
const std::string& text = name_filter.get_value();
|
||||
|
||||
filter_transform filter(utils::split(text, ' '));
|
||||
|
@ -635,7 +634,7 @@ boost::dynamic_bitset<> addon_manager::get_name_filter_visibility() const
|
|||
|
||||
boost::dynamic_bitset<> addon_manager::get_status_filter_visibility() const
|
||||
{
|
||||
const menu_button& status_filter = find_widget<const menu_button>(get_window(), "install_status_filter", false);
|
||||
const menu_button& status_filter = find_widget<const menu_button>("install_status_filter");
|
||||
const ADDON_STATUS_FILTER selection = status_filter_types_[status_filter.get_value()].first;
|
||||
|
||||
boost::dynamic_bitset<> res;
|
||||
|
@ -656,7 +655,7 @@ boost::dynamic_bitset<> addon_manager::get_status_filter_visibility() const
|
|||
|
||||
boost::dynamic_bitset<> addon_manager::get_tag_filter_visibility() const
|
||||
{
|
||||
const auto& tag_filter = find_widget<const multimenu_button>(get_window(), "tag_filter", false);
|
||||
const auto& tag_filter = find_widget<const multimenu_button>("tag_filter");
|
||||
const auto toggle_states = tag_filter.get_toggle_states();
|
||||
if(toggle_states.none()) {
|
||||
// Nothing selected. It means that all add-ons are shown.
|
||||
|
@ -688,7 +687,7 @@ boost::dynamic_bitset<> addon_manager::get_tag_filter_visibility() const
|
|||
|
||||
boost::dynamic_bitset<> addon_manager::get_type_filter_visibility() const
|
||||
{
|
||||
const multimenu_button& type_filter = find_widget<const multimenu_button>(get_window(), "type_filter", false);
|
||||
const multimenu_button& type_filter = find_widget<const multimenu_button>("type_filter");
|
||||
|
||||
boost::dynamic_bitset<> toggle_states = type_filter.get_toggle_states();
|
||||
if(toggle_states.none()) {
|
||||
|
@ -713,7 +712,7 @@ boost::dynamic_bitset<> addon_manager::get_type_filter_visibility() const
|
|||
|
||||
boost::dynamic_bitset<> addon_manager::get_lang_filter_visibility() const
|
||||
{
|
||||
const multimenu_button& lang_filter = find_widget<const multimenu_button>(get_window(), "language_filter", false);
|
||||
const multimenu_button& lang_filter = find_widget<const multimenu_button>("language_filter");
|
||||
|
||||
boost::dynamic_bitset<> toggle_states = lang_filter.get_toggle_states();
|
||||
|
||||
|
@ -756,7 +755,7 @@ void addon_manager::apply_filters()
|
|||
// way that would seem random unless the user realised that they were typing into a filter box.
|
||||
//
|
||||
// Quick workaround is to not process the new filter if the list isn't visible.
|
||||
auto list = find_widget<addon_list>(get_window(), "addons", false, false);
|
||||
auto list = find_widget<addon_list>("addons", false, false);
|
||||
if(!list) {
|
||||
return;
|
||||
}
|
||||
|
@ -772,7 +771,7 @@ void addon_manager::apply_filters()
|
|||
|
||||
void addon_manager::order_addons()
|
||||
{
|
||||
const menu_button& order_menu = find_widget<const menu_button>(get_window(), "order_dropdown", false);
|
||||
const menu_button& order_menu = find_widget<const menu_button>("order_dropdown");
|
||||
const addon_order& order_struct = all_orders_.at(order_menu.get_value() / 2);
|
||||
sort_order::type order = order_menu.get_value() % 2 == 0 ? sort_order::type::ascending : sort_order::type::descending;
|
||||
addon_list::addon_sort_func func;
|
||||
|
@ -782,14 +781,14 @@ void addon_manager::order_addons()
|
|||
func = order_struct.sort_func_desc;
|
||||
}
|
||||
|
||||
find_widget<addon_list>(get_window(), "addons", false).set_addon_order(func);
|
||||
find_widget<addon_list>("addons").set_addon_order(func);
|
||||
prefs::get().set_addon_manager_saved_order_name(order_struct.as_preference);
|
||||
prefs::get().set_addon_manager_saved_order_direction(order);
|
||||
}
|
||||
|
||||
void addon_manager::on_order_changed(unsigned int sort_column, sort_order::type order)
|
||||
{
|
||||
menu_button& order_menu = find_widget<menu_button>(get_window(), "order_dropdown", false);
|
||||
menu_button& order_menu = find_widget<menu_button>("order_dropdown");
|
||||
auto order_it = std::find_if(all_orders_.begin(), all_orders_.end(),
|
||||
[sort_column](const addon_order& order) {return order.column_index == static_cast<int>(sort_column);});
|
||||
int index = 2 * (std::distance(all_orders_.begin(), order_it));
|
||||
|
@ -805,12 +804,12 @@ template<void(addon_manager::*fptr)(const addon_info& addon)>
|
|||
void addon_manager::execute_action_on_selected_addon()
|
||||
{
|
||||
// Explicitly return to the main page if we're in low-res mode so the list is visible.
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(get_window(), "main_stack", false, false)) {
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>("main_stack", false, false)) {
|
||||
stk->select_layer(0);
|
||||
find_widget<button>(get_window(), "details_toggle", false).set_label(_("Add-on Details"));
|
||||
find_widget<button>("details_toggle").set_label(_("Add-on Details"));
|
||||
}
|
||||
|
||||
addon_list& addons = find_widget<addon_list>(get_window(), "addons", false);
|
||||
addon_list& addons = find_widget<addon_list>("addons");
|
||||
const addon_info* addon = addons.get_selected_addon();
|
||||
|
||||
if(addon == nullptr) {
|
||||
|
@ -827,12 +826,11 @@ void addon_manager::execute_action_on_selected_addon()
|
|||
void addon_manager::install_addon(const addon_info& addon)
|
||||
{
|
||||
addon_info versioned_addon = addon;
|
||||
widget* parent = get_window();
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(get_window(), "main_stack", false, false)) {
|
||||
parent = stk->get_layer_grid(1);
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>("main_stack", false, false)) {
|
||||
set_parent(stk->get_layer_grid(1));
|
||||
}
|
||||
if(addon.id == find_widget<addon_list>(get_window(), "addons", false).get_selected_addon()->id) {
|
||||
versioned_addon.current_version = find_widget<menu_button>(parent, "version_filter", false).get_value_string();
|
||||
if(addon.id == find_widget<addon_list>("addons").get_selected_addon()->id) {
|
||||
versioned_addon.current_version = find_widget<menu_button>("version_filter").get_value_string();
|
||||
}
|
||||
|
||||
addons_client::install_result result = client_.install_addon_with_checks(addons_, versioned_addon);
|
||||
|
@ -1047,37 +1045,36 @@ static std::string format_addon_time(std::time_t time)
|
|||
|
||||
void addon_manager::on_addon_select()
|
||||
{
|
||||
widget* parent = get_window();
|
||||
widget* parent_of_addons_list = parent;
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(get_window(), "main_stack", false, false)) {
|
||||
parent = stk->get_layer_grid(1);
|
||||
widget* parent_of_addons_list = parent();
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>("main_stack", false, false)) {
|
||||
set_parent(stk->get_layer_grid(1));
|
||||
parent_of_addons_list = stk->get_layer_grid(0);
|
||||
}
|
||||
|
||||
const addon_info* info = find_widget<addon_list>(parent_of_addons_list, "addons", false).get_selected_addon();
|
||||
const addon_info* info = parent_of_addons_list->find_widget<addon_list>("addons").get_selected_addon();
|
||||
|
||||
if(info == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
find_widget<drawing>(parent, "image", false).set_label(info->display_icon());
|
||||
find_widget<drawing>("image").set_label(info->display_icon());
|
||||
|
||||
find_widget<styled_widget>(parent, "title", false).set_label(info->display_title_translated_or_original());
|
||||
find_widget<styled_widget>(parent, "description", false).set_label(info->description_translated());
|
||||
menu_button& version_filter = find_widget<menu_button>(parent, "version_filter", false);
|
||||
find_widget<styled_widget>(parent, "author", false).set_label(info->author);
|
||||
find_widget<styled_widget>(parent, "type", false).set_label(info->display_type());
|
||||
find_widget<styled_widget>("title").set_label(info->display_title_translated_or_original());
|
||||
find_widget<styled_widget>("description").set_label(info->description_translated());
|
||||
menu_button& version_filter = find_widget<menu_button>("version_filter");
|
||||
find_widget<styled_widget>("author").set_label(info->author);
|
||||
find_widget<styled_widget>("type").set_label(info->display_type());
|
||||
|
||||
styled_widget& status = find_widget<styled_widget>(parent, "status", false);
|
||||
styled_widget& status = find_widget<styled_widget>("status");
|
||||
status.set_label(describe_status_verbose(tracking_info_[info->id]));
|
||||
status.set_use_markup(true);
|
||||
|
||||
find_widget<styled_widget>(parent, "size", false).set_label(size_display_string(info->size));
|
||||
find_widget<styled_widget>(parent, "downloads", false).set_label(std::to_string(info->downloads));
|
||||
find_widget<styled_widget>(parent, "created", false).set_label(format_addon_time(info->created));
|
||||
find_widget<styled_widget>(parent, "updated", false).set_label(format_addon_time(info->updated));
|
||||
find_widget<styled_widget>("size").set_label(size_display_string(info->size));
|
||||
find_widget<styled_widget>("downloads").set_label(std::to_string(info->downloads));
|
||||
find_widget<styled_widget>("created").set_label(format_addon_time(info->created));
|
||||
find_widget<styled_widget>("updated").set_label(format_addon_time(info->updated));
|
||||
|
||||
find_widget<styled_widget>(parent, "dependencies", false).set_label(!info->depends.empty()
|
||||
find_widget<styled_widget>("dependencies").set_label(!info->depends.empty()
|
||||
? make_display_dependencies(info->id, addons_, tracking_info_)
|
||||
: _("addon_dependencies^None"));
|
||||
|
||||
|
@ -1093,32 +1090,32 @@ void addon_manager::on_addon_select()
|
|||
}
|
||||
}
|
||||
|
||||
find_widget<styled_widget>(parent, "translations", false).set_label(!languages.empty() ? languages : _("translations^None"));
|
||||
find_widget<styled_widget>("translations").set_label(!languages.empty() ? languages : _("translations^None"));
|
||||
|
||||
const std::string& feedback_url = info->feedback_url;
|
||||
find_widget<label>(parent, "url", false).set_label(!feedback_url.empty() ? feedback_url : _("url^None"));
|
||||
find_widget<label>(parent, "id", false).set_label(info->id);
|
||||
find_widget<label>("url").set_label(!feedback_url.empty() ? feedback_url : _("url^None"));
|
||||
find_widget<label>("id").set_label(info->id);
|
||||
|
||||
bool installed = is_installed_addon_status(tracking_info_[info->id].state);
|
||||
bool updatable = tracking_info_[info->id].state == ADDON_INSTALLED_UPGRADABLE;
|
||||
|
||||
stacked_widget& action_stack = find_widget<stacked_widget>(parent, "action_stack", false);
|
||||
stacked_widget& action_stack = find_widget<stacked_widget>("action_stack");
|
||||
// #TODO: Add tooltips with upload time and pack size
|
||||
std::vector<config> version_filter_entries;
|
||||
|
||||
if(!tracking_info_[info->id].can_publish) {
|
||||
action_stack.select_layer(0);
|
||||
|
||||
stacked_widget& install_update_stack = find_widget<stacked_widget>(parent, "install_update_stack", false);
|
||||
stacked_widget& install_update_stack = find_widget<stacked_widget>("install_update_stack");
|
||||
install_update_stack.select_layer(updatable ? 1 : 0);
|
||||
|
||||
if(!updatable) {
|
||||
find_widget<button>(parent, "install", false).set_active(!installed);
|
||||
find_widget<button>("install").set_active(!installed);
|
||||
} else {
|
||||
find_widget<button>(parent, "update", false).set_active(true);
|
||||
find_widget<button>("update").set_active(true);
|
||||
}
|
||||
|
||||
find_widget<button>(parent, "uninstall", false).set_active(installed);
|
||||
find_widget<button>("uninstall").set_active(installed);
|
||||
|
||||
for(const auto& f : info->versions) {
|
||||
version_filter_entries.emplace_back("label", f.str());
|
||||
|
@ -1127,8 +1124,8 @@ void addon_manager::on_addon_select()
|
|||
action_stack.select_layer(1);
|
||||
|
||||
// Always enable the publish button, but disable the delete button if not yet published.
|
||||
find_widget<button>(parent, "publish", false).set_active(true);
|
||||
find_widget<button>(parent, "delete", false).set_active(!info->local_only);
|
||||
find_widget<button>("publish").set_active(true);
|
||||
find_widget<button>("delete").set_active(!info->local_only);
|
||||
|
||||
// Show only the version to be published
|
||||
version_filter_entries.emplace_back("label", info->current_version.str());
|
||||
|
@ -1140,14 +1137,13 @@ void addon_manager::on_addon_select()
|
|||
|
||||
void addon_manager::on_selected_version_change()
|
||||
{
|
||||
widget* parent = get_window();
|
||||
widget* parent_of_addons_list = parent;
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>(get_window(), "main_stack", false, false)) {
|
||||
parent = stk->get_layer_grid(1);
|
||||
widget* parent_of_addons_list = parent();
|
||||
if(stacked_widget* stk = find_widget<stacked_widget>("main_stack", false, false)) {
|
||||
set_parent(stk->get_layer_grid(1));
|
||||
parent_of_addons_list = stk->get_layer_grid(0);
|
||||
}
|
||||
|
||||
const addon_info* info = find_widget<addon_list>(parent_of_addons_list, "addons", false).get_selected_addon();
|
||||
const addon_info* info = parent_of_addons_list->find_widget<addon_list>("addons").get_selected_addon();
|
||||
|
||||
if(info == nullptr) {
|
||||
return;
|
||||
|
@ -1155,13 +1151,13 @@ void addon_manager::on_selected_version_change()
|
|||
|
||||
if(!tracking_info_[info->id].can_publish && is_installed_addon_status(tracking_info_[info->id].state)) {
|
||||
bool updatable = tracking_info_[info->id].installed_version
|
||||
!= find_widget<menu_button>(parent, "version_filter", false).get_value_string();
|
||||
stacked_widget& action_stack = find_widget<stacked_widget>(parent, "action_stack", false);
|
||||
!= find_widget<menu_button>("version_filter").get_value_string();
|
||||
stacked_widget& action_stack = find_widget<stacked_widget>("action_stack");
|
||||
action_stack.select_layer(0);
|
||||
|
||||
stacked_widget& install_update_stack = find_widget<stacked_widget>(parent, "install_update_stack", false);
|
||||
stacked_widget& install_update_stack = find_widget<stacked_widget>("install_update_stack");
|
||||
install_update_stack.select_layer(1);
|
||||
find_widget<button>(parent, "update", false).set_active(updatable);
|
||||
find_widget<button>("update").set_active(updatable);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "gui/dialogs/addon/uninstall_list.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
|
@ -29,7 +28,7 @@ REGISTER_DIALOG(addon_uninstall_list)
|
|||
|
||||
void addon_uninstall_list::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "addons_list", false);
|
||||
listbox& list = find_widget<listbox>("addons_list");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
this->selections_.clear();
|
||||
|
@ -54,7 +53,7 @@ void addon_uninstall_list::pre_show(window& window)
|
|||
|
||||
void addon_uninstall_list::post_show(window& window)
|
||||
{
|
||||
const listbox& list = find_widget<listbox>(&window, "addons_list", false);
|
||||
const listbox& list = find_widget<listbox>("addons_list");
|
||||
const unsigned rows = list.get_item_count();
|
||||
|
||||
assert(rows == this->ids_.size() && rows == this->titles_map_.size());
|
||||
|
@ -64,9 +63,9 @@ void addon_uninstall_list::post_show(window& window)
|
|||
}
|
||||
|
||||
for(unsigned k = 0; k < rows; ++k) {
|
||||
grid const* g = list.get_row_grid(k);
|
||||
const grid* g = list.get_row_grid(k);
|
||||
const toggle_button& checkbox
|
||||
= find_widget<const toggle_button>(g, "checkbox", false);
|
||||
= g->find_widget<const toggle_button>("checkbox");
|
||||
this->selections_[this->ids_[k]] = checkbox.get_value_bool();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include "formula/variant.hpp"
|
||||
#include "game_board.hpp"
|
||||
#include "game_config.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/drawing.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -82,13 +81,18 @@ void attack_predictions::set_data(window& window, const combatant_data& attacker
|
|||
};
|
||||
|
||||
// Helpers for setting or hiding labels
|
||||
const auto set_label_helper = [&](const std::string& id, const std::string& value) {
|
||||
find_widget<label>(&window, get_prefixed_widget_id(id), false).set_label(value);
|
||||
const auto set_label_helper = [&, this](const std::string& id, const std::string& value) {
|
||||
// MSVC does not compile without this-> (26-09-2024)
|
||||
label& lbl = this->find_widget<label>(get_prefixed_widget_id(id));
|
||||
lbl.set_label(value);
|
||||
};
|
||||
|
||||
const auto hide_label_helper = [&](const std::string& id) {
|
||||
find_widget<label>(&window, get_prefixed_widget_id(id), false).set_visible(widget::visibility::invisible);
|
||||
find_widget<label>(&window, get_prefixed_widget_id(id) + "_label" , false).set_visible(widget::visibility::invisible);
|
||||
const auto hide_label_helper = [&, this](const std::string& id) {
|
||||
// MSVC does not compile without this-> (26-09-2024)
|
||||
label& lbl = this->find_widget<label>(get_prefixed_widget_id(id));
|
||||
lbl.set_visible(widget::visibility::invisible);
|
||||
label& lbl2 = this->find_widget<label>(get_prefixed_widget_id(id) + "_label");
|
||||
lbl2.set_visible(widget::visibility::invisible);
|
||||
};
|
||||
|
||||
std::stringstream ss;
|
||||
|
@ -104,7 +108,7 @@ void attack_predictions::set_data(window& window, const combatant_data& attacker
|
|||
set_label_helper("chance_unscathed", ss.str());
|
||||
|
||||
// HP probability graph
|
||||
drawing& graph_widget = find_widget<drawing>(&window, get_prefixed_widget_id("hp_graph"), false);
|
||||
drawing& graph_widget = window.find_widget<drawing>(get_prefixed_widget_id("hp_graph"));
|
||||
draw_hp_graph(graph_widget, attacker, defender);
|
||||
|
||||
//
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "deprecation.hpp"
|
||||
#include "font/text_formatting.hpp"
|
||||
#include "game_version.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "log.hpp"
|
||||
|
@ -63,7 +62,7 @@ campaign_difficulty::campaign_difficulty(const config& campaign)
|
|||
|
||||
void campaign_difficulty::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "listbox", false);
|
||||
listbox& list = find_widget<listbox>("listbox");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
unsigned difficulty_count = 0;
|
||||
|
@ -99,7 +98,7 @@ void campaign_difficulty::pre_show(window& window)
|
|||
list.select_last_row();
|
||||
}
|
||||
|
||||
styled_widget& widget = find_widget<styled_widget>(&grid, "victory", false);
|
||||
styled_widget& widget = grid.find_widget<styled_widget>("victory");
|
||||
if(prefs::get().is_campaign_completed(campaign_id_, d["define"])) {
|
||||
// Use different laurels according to the difficulty level, following the
|
||||
// pre-existing convention established in campaign_selection class.
|
||||
|
@ -123,7 +122,7 @@ void campaign_difficulty::pre_show(window& window)
|
|||
void campaign_difficulty::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
listbox& list = find_widget<listbox>(&window, "listbox", false);
|
||||
listbox& list = find_widget<listbox>("listbox");
|
||||
selected_difficulty_ = difficulties_.mandatory_child("difficulty", list.get_selected_row())["define"].str();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "filesystem.hpp"
|
||||
#include "font/text_formatting.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/campaign_difficulty.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/menu_button.hpp"
|
||||
|
@ -42,7 +41,7 @@ REGISTER_DIALOG(campaign_selection)
|
|||
|
||||
void campaign_selection::campaign_selected()
|
||||
{
|
||||
tree_view& tree = find_widget<tree_view>(this, "campaign_tree", false);
|
||||
tree_view& tree = find_widget<tree_view>("campaign_tree");
|
||||
if(tree.empty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -53,9 +52,9 @@ void campaign_selection::campaign_selected()
|
|||
auto iter = std::find(page_ids_.begin(), page_ids_.end(), tree.selected_item()->id());
|
||||
|
||||
if(tree.selected_item()->id() == missing_campaign_) {
|
||||
find_widget<button>(this, "ok", false).set_active(false);
|
||||
find_widget<button>("ok").set_active(false);
|
||||
} else {
|
||||
find_widget<button>(this, "ok", false).set_active(true);
|
||||
find_widget<button>("ok").set_active(true);
|
||||
}
|
||||
|
||||
const int choice = std::distance(page_ids_.begin(), iter);
|
||||
|
@ -63,18 +62,18 @@ void campaign_selection::campaign_selected()
|
|||
return;
|
||||
}
|
||||
|
||||
multi_page& pages = find_widget<multi_page>(this, "campaign_details", false);
|
||||
multi_page& pages = find_widget<multi_page>("campaign_details");
|
||||
pages.select_page(choice);
|
||||
|
||||
engine_.set_current_level(choice);
|
||||
|
||||
styled_widget& background = find_widget<styled_widget>(this, "campaign_background", false);
|
||||
styled_widget& background = find_widget<styled_widget>("campaign_background");
|
||||
background.set_label(engine_.current_level().data()["background"].str());
|
||||
|
||||
// Rebuild difficulty menu
|
||||
difficulties_.clear();
|
||||
|
||||
auto& diff_menu = find_widget<menu_button>(this, "difficulty_menu", false);
|
||||
auto& diff_menu = find_widget<menu_button>("difficulty_menu");
|
||||
|
||||
const auto& diff_config = generate_difficulty_config(engine_.current_level().data());
|
||||
diff_menu.set_active(diff_config.child_count("difficulty") > 1);
|
||||
|
@ -143,7 +142,7 @@ void campaign_selection::campaign_selected()
|
|||
|
||||
void campaign_selection::difficulty_selected()
|
||||
{
|
||||
const std::size_t selection = find_widget<menu_button>(this, "difficulty_menu", false).get_value();
|
||||
const std::size_t selection = find_widget<menu_button>("difficulty_menu").get_value();
|
||||
current_difficulty_ = difficulties_.at(std::min(difficulties_.size() - 1, selection));
|
||||
}
|
||||
|
||||
|
@ -191,7 +190,7 @@ void campaign_selection::sort_campaigns(campaign_selection::CAMPAIGN_ORDER order
|
|||
break;
|
||||
}
|
||||
|
||||
tree_view& tree = find_widget<tree_view>(this, "campaign_tree", false);
|
||||
tree_view& tree = find_widget<tree_view>("campaign_tree");
|
||||
|
||||
// Remember which campaign was selected...
|
||||
std::string was_selected;
|
||||
|
@ -224,7 +223,7 @@ void campaign_selection::sort_campaigns(campaign_selection::CAMPAIGN_ORDER order
|
|||
}
|
||||
|
||||
// List of which options has been selected in the completion filter multimenu_button
|
||||
boost::dynamic_bitset<> filter_comp_options = find_widget<multimenu_button>(this, "filter_completion", false).get_toggle_states();
|
||||
boost::dynamic_bitset<> filter_comp_options = find_widget<multimenu_button>("filter_completion").get_toggle_states();
|
||||
|
||||
bool exists_in_filtered_result = false;
|
||||
for(unsigned i = 0; i < levels.size(); ++i) {
|
||||
|
@ -254,7 +253,7 @@ void campaign_selection::sort_campaigns(campaign_selection::CAMPAIGN_ORDER order
|
|||
}
|
||||
|
||||
if(!was_selected.empty() && exists_in_filtered_result) {
|
||||
find_widget<tree_view_node>(this, was_selected, false).select_node();
|
||||
find_widget<tree_view_node>(was_selected).select_node();
|
||||
} else {
|
||||
campaign_selected();
|
||||
}
|
||||
|
@ -284,9 +283,9 @@ void campaign_selection::toggle_sorting_selection(CAMPAIGN_ORDER order)
|
|||
force = true;
|
||||
|
||||
if(order == NAME) {
|
||||
find_widget<toggle_button>(this, "sort_time", false).set_value(0);
|
||||
find_widget<toggle_button>("sort_time").set_value(0);
|
||||
} else if(order == DATE) {
|
||||
find_widget<toggle_button>(this, "sort_name", false).set_value(0);
|
||||
find_widget<toggle_button>("sort_name").set_value(0);
|
||||
}
|
||||
|
||||
force = false;
|
||||
|
@ -309,18 +308,18 @@ void campaign_selection::filter_text_changed(const std::string& text)
|
|||
|
||||
void campaign_selection::pre_show(window& window)
|
||||
{
|
||||
text_box* filter = find_widget<text_box>(&window, "filter_box", false, true);
|
||||
text_box* filter = find_widget<text_box>("filter_box", false, true);
|
||||
filter->set_text_changed_callback(
|
||||
std::bind(&campaign_selection::filter_text_changed, this, std::placeholders::_2));
|
||||
|
||||
/***** Setup campaign tree. *****/
|
||||
tree_view& tree = find_widget<tree_view>(&window, "campaign_tree", false);
|
||||
tree_view& tree = find_widget<tree_view>("campaign_tree");
|
||||
|
||||
connect_signal_notify_modified(tree,
|
||||
std::bind(&campaign_selection::campaign_selected, this));
|
||||
|
||||
toggle_button& sort_name = find_widget<toggle_button>(&window, "sort_name", false);
|
||||
toggle_button& sort_time = find_widget<toggle_button>(&window, "sort_time", false);
|
||||
toggle_button& sort_name = find_widget<toggle_button>("sort_name");
|
||||
toggle_button& sort_time = find_widget<toggle_button>("sort_time");
|
||||
|
||||
connect_signal_notify_modified(sort_name,
|
||||
std::bind(&campaign_selection::toggle_sorting_selection, this, NAME));
|
||||
|
@ -332,9 +331,9 @@ void campaign_selection::pre_show(window& window)
|
|||
window.add_to_keyboard_chain(&tree);
|
||||
|
||||
/***** Setup campaign details. *****/
|
||||
multi_page& pages = find_widget<multi_page>(&window, "campaign_details", false);
|
||||
multi_page& pages = find_widget<multi_page>("campaign_details");
|
||||
|
||||
multimenu_button& filter_comp = find_widget<multimenu_button>(&window, "filter_completion", false);
|
||||
multimenu_button& filter_comp = find_widget<multimenu_button>("filter_completion");
|
||||
connect_signal_notify_modified(filter_comp,
|
||||
std::bind(&campaign_selection::sort_campaigns, this, RANK, 1));
|
||||
for (unsigned j = 0; j < filter_comp.num_options(); j++) {
|
||||
|
@ -393,7 +392,7 @@ void campaign_selection::pre_show(window& window)
|
|||
//
|
||||
// Set up Mods selection dropdown
|
||||
//
|
||||
multimenu_button& mods_menu = find_widget<multimenu_button>(&window, "mods_menu", false);
|
||||
multimenu_button& mods_menu = find_widget<multimenu_button>("mods_menu");
|
||||
|
||||
if(!engine_.get_const_extras_by_type(ng::create_engine::MOD).empty()) {
|
||||
std::vector<config> mod_menu_values;
|
||||
|
@ -420,7 +419,7 @@ void campaign_selection::pre_show(window& window)
|
|||
//
|
||||
// Set up Difficulty dropdown
|
||||
//
|
||||
menu_button& diff_menu = find_widget<menu_button>(this, "difficulty_menu", false);
|
||||
menu_button& diff_menu = find_widget<menu_button>("difficulty_menu");
|
||||
|
||||
diff_menu.set_use_markup(true);
|
||||
connect_signal_notify_modified(diff_menu, std::bind(&campaign_selection::difficulty_selected, this));
|
||||
|
@ -430,7 +429,7 @@ void campaign_selection::pre_show(window& window)
|
|||
|
||||
void campaign_selection::add_campaign_to_tree(const config& campaign)
|
||||
{
|
||||
tree_view& tree = find_widget<tree_view>(this, "campaign_tree", false);
|
||||
tree_view& tree = find_widget<tree_view>("campaign_tree");
|
||||
widget_data data;
|
||||
widget_item item;
|
||||
|
||||
|
@ -477,7 +476,7 @@ void campaign_selection::add_campaign_to_tree(const config& campaign)
|
|||
|
||||
void campaign_selection::post_show(window& window)
|
||||
{
|
||||
tree_view& tree = find_widget<tree_view>(&window, "campaign_tree", false);
|
||||
tree_view& tree = find_widget<tree_view>("campaign_tree");
|
||||
|
||||
if(tree.empty()) {
|
||||
return;
|
||||
|
@ -492,7 +491,7 @@ void campaign_selection::post_show(window& window)
|
|||
}
|
||||
|
||||
|
||||
rng_mode_ = RNG_MODE(std::clamp<unsigned>(find_widget<menu_button>(&window, "rng_menu", false).get_value(), RNG_DEFAULT, RNG_BIASED));
|
||||
rng_mode_ = RNG_MODE(std::clamp<unsigned>(find_widget<menu_button>("rng_menu").get_value(), RNG_DEFAULT, RNG_BIASED));
|
||||
|
||||
prefs::get().set_modifications(engine_.active_mods(), false);
|
||||
}
|
||||
|
@ -500,7 +499,7 @@ void campaign_selection::post_show(window& window)
|
|||
void campaign_selection::mod_toggled()
|
||||
{
|
||||
boost::dynamic_bitset<> new_mod_states =
|
||||
find_widget<multimenu_button>(this, "mods_menu", false).get_toggle_states();
|
||||
find_widget<multimenu_button>("mods_menu").get_toggle_states();
|
||||
|
||||
// Get a mask of any mods that were toggled, regardless of new state
|
||||
mod_states_ = mod_states_ ^ new_mod_states;
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/chat_log.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -364,35 +363,35 @@ public:
|
|||
void bind(window& window)
|
||||
{
|
||||
LOG_CHAT_LOG << "Entering chat_log::view::bind";
|
||||
model_.msg_label = find_widget<styled_widget>(&window, "msg", false, true);
|
||||
model_.msg_label = window.find_widget<styled_widget>("msg", false, true);
|
||||
model_.page_number
|
||||
= find_widget<slider>(&window, "page_number", false, true);
|
||||
= window.find_widget<slider>("page_number", false, true);
|
||||
connect_signal_notify_modified(
|
||||
*model_.page_number,
|
||||
std::bind(&view::handle_page_number_changed, this));
|
||||
|
||||
model_.previous_page
|
||||
= find_widget<button>(&window, "previous_page", false, true);
|
||||
= window.find_widget<button>("previous_page", false, true);
|
||||
model_.previous_page->connect_click_handler(
|
||||
std::bind(&view::previous_page, this));
|
||||
|
||||
model_.next_page = find_widget<button>(&window, "next_page", false, true);
|
||||
model_.next_page = window.find_widget<button>("next_page", false, true);
|
||||
model_.next_page->connect_click_handler(
|
||||
std::bind(&view::next_page, this));
|
||||
|
||||
model_.filter = find_widget<text_box>(&window, "filter", false, true);
|
||||
model_.filter = window.find_widget<text_box>("filter", false, true);
|
||||
model_.filter->set_text_changed_callback(
|
||||
std::bind(&view::filter, this));
|
||||
window.keyboard_capture(model_.filter);
|
||||
|
||||
model_.copy_button = find_widget<button>(&window, "copy", false, true);
|
||||
model_.copy_button = window.find_widget<button>("copy", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*model_.copy_button,
|
||||
std::bind(&view::handle_copy_button_clicked,
|
||||
this,
|
||||
std::ref(window)));
|
||||
|
||||
model_.page_label = find_widget<styled_widget>(&window, "page_label", false, true);
|
||||
model_.page_label = window.find_widget<styled_widget>("page_label", false, true);
|
||||
|
||||
LOG_CHAT_LOG << "Exiting chat_log::view::bind";
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/core_selection.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/multi_page.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -32,11 +31,11 @@ REGISTER_DIALOG(core_selection)
|
|||
void core_selection::core_selected()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(this, "core_list", false)
|
||||
= find_widget<listbox>("core_list")
|
||||
.get_selected_row();
|
||||
|
||||
multi_page& pages
|
||||
= find_widget<multi_page>(this, "core_details", false);
|
||||
= find_widget<multi_page>("core_details");
|
||||
|
||||
pages.select_page(selected_row);
|
||||
}
|
||||
|
@ -44,7 +43,7 @@ void core_selection::core_selected()
|
|||
void core_selection::pre_show(window& window)
|
||||
{
|
||||
/***** Setup core list. *****/
|
||||
listbox& list = find_widget<listbox>(&window, "core_list", false);
|
||||
listbox& list = find_widget<listbox>("core_list");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&core_selection::core_selected, this));
|
||||
|
||||
|
@ -52,7 +51,7 @@ void core_selection::pre_show(window& window)
|
|||
|
||||
/***** Setup core details. *****/
|
||||
multi_page& pages
|
||||
= find_widget<multi_page>(&window, "core_details", false);
|
||||
= find_widget<multi_page>("core_details");
|
||||
|
||||
for(const auto & core : cores_)
|
||||
{
|
||||
|
@ -86,7 +85,7 @@ void core_selection::pre_show(window& window)
|
|||
|
||||
void core_selection::post_show(window& window)
|
||||
{
|
||||
choice_ = find_widget<listbox>(&window, "core_list", false)
|
||||
choice_ = find_widget<listbox>("core_list")
|
||||
.get_selected_row();
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/debug_clock.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/modal_dialog.hpp"
|
||||
#include "gui/widgets/integer_selector.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -37,29 +36,26 @@ debug_clock::debug_clock()
|
|||
, signal_()
|
||||
, time_()
|
||||
{
|
||||
hour_percentage_ = find_widget<progress_bar>(
|
||||
this, "hour_percentage", false, false);
|
||||
minute_percentage_ = find_widget<progress_bar>(
|
||||
this, "minute_percentage", false, false);
|
||||
second_percentage_ = find_widget<progress_bar>(
|
||||
this, "second_percentage", false, false);
|
||||
hour_percentage_ = find_widget<progress_bar>("hour_percentage", false, false);
|
||||
minute_percentage_ = find_widget<progress_bar>("minute_percentage", false, false);
|
||||
second_percentage_ = find_widget<progress_bar>("second_percentage", false, false);
|
||||
|
||||
hour_ = find_widget<integer_selector>(this, "hour", false, false);
|
||||
hour_ = find_widget<integer_selector>("hour", false, false);
|
||||
if(styled_widget *hour = dynamic_cast<styled_widget*>(hour_)) { //Note that the standard specifies that a dynamic cast of a null pointer is null
|
||||
hour->set_active(false);
|
||||
}
|
||||
minute_ = find_widget<integer_selector>(this, "minute", false, false);
|
||||
minute_ = find_widget<integer_selector>("minute", false, false);
|
||||
if(styled_widget *minute = dynamic_cast<styled_widget*>(minute_)) {
|
||||
minute->set_active(false);
|
||||
}
|
||||
second_ = find_widget<integer_selector>(this, "second", false, false);
|
||||
second_ = find_widget<integer_selector>("second", false, false);
|
||||
if(styled_widget *second = dynamic_cast<styled_widget*>(second_)) {
|
||||
second->set_active(false);
|
||||
}
|
||||
|
||||
pane_ = find_widget<pane>(this, "pane", false, false);
|
||||
pane_ = find_widget<pane>("pane", false, false);
|
||||
|
||||
clock_ = find_widget<styled_widget>(this, "clock", false, false);
|
||||
clock_ = find_widget<styled_widget>("clock", false, false);
|
||||
|
||||
time_.set_current_time();
|
||||
update_time(true);
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/depcheck_select_new.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gettext.hpp"
|
||||
|
@ -59,7 +58,7 @@ depcheck_select_new::depcheck_select_new(
|
|||
|
||||
void depcheck_select_new::pre_show(window& window)
|
||||
{
|
||||
listbox& items = find_widget<listbox>(&window, "itemlist", false);
|
||||
listbox& items = find_widget<listbox>("itemlist");
|
||||
|
||||
for(const auto & item : items_)
|
||||
{
|
||||
|
@ -75,7 +74,7 @@ void depcheck_select_new::pre_show(window& window)
|
|||
void depcheck_select_new::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
listbox& items = find_widget<listbox>(&window, "itemlist", false);
|
||||
listbox& items = find_widget<listbox>("itemlist");
|
||||
result_ = items.get_selected_row();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/drop_down_menu.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/event/dispatcher.hpp"
|
||||
#include "gui/dialogs/modal_dialog.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
|
@ -62,14 +61,14 @@ namespace
|
|||
{
|
||||
void callback_flip_embedded_toggle(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "list", true);
|
||||
listbox& list = window.find_widget<listbox>("list", true);
|
||||
|
||||
/* If the currently selected row has a toggle button, toggle it.
|
||||
* Note this cannot be handled in mouse_up_callback since at that point the new row selection has not registered,
|
||||
* meaning the currently selected row's button is toggled.
|
||||
*/
|
||||
grid* row_grid = list.get_row_grid(list.get_selected_row());
|
||||
if(toggle_button* checkbox = find_widget<toggle_button>(row_grid, "checkbox", false, false)) {
|
||||
if(toggle_button* checkbox = row_grid->find_widget<toggle_button>("checkbox", false, false)) {
|
||||
checkbox->set_value_bool(!checkbox->get_value_bool(), true);
|
||||
}
|
||||
}
|
||||
|
@ -110,7 +109,7 @@ void drop_down_menu::mouse_up_callback(bool&, bool&, const point& coordinate)
|
|||
return;
|
||||
}
|
||||
|
||||
listbox& list = find_widget<listbox>(get_window(), "list", true);
|
||||
listbox& list = find_widget<listbox>("list", true);
|
||||
|
||||
/* Disregard clicks on scrollbars and toggle buttons so the dropdown menu can be scrolled or have an embedded
|
||||
* toggle button selected without the menu closing.
|
||||
|
@ -126,7 +125,7 @@ void drop_down_menu::mouse_up_callback(bool&, bool&, const point& coordinate)
|
|||
return;
|
||||
}
|
||||
|
||||
if(dynamic_cast<toggle_button*>(get_window()->find_at(coordinate, true)) != nullptr) {
|
||||
if(dynamic_cast<toggle_button*>(find_at(coordinate, true)) != nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -142,7 +141,7 @@ void drop_down_menu::mouse_up_callback(bool&, bool&, const point& coordinate)
|
|||
list.select_row(sel, false);
|
||||
}
|
||||
|
||||
if(!get_window()->get_rectangle().contains(coordinate)) {
|
||||
if(!get_rectangle().contains(coordinate)) {
|
||||
set_retval(retval::CANCEL);
|
||||
} else if(!keep_open_) {
|
||||
set_retval(retval::OK);
|
||||
|
@ -161,7 +160,7 @@ void drop_down_menu::pre_show(window& window)
|
|||
window.set_variable("button_w", wfl::variant(button_pos_.w));
|
||||
window.set_variable("button_h", wfl::variant(button_pos_.h));
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "list", true);
|
||||
listbox& list = find_widget<listbox>("list", true);
|
||||
|
||||
for(const auto& entry : items_) {
|
||||
widget_data data;
|
||||
|
@ -187,10 +186,10 @@ void drop_down_menu::pre_show(window& window)
|
|||
}
|
||||
|
||||
grid& new_row = list.add_row(data);
|
||||
grid& mi_grid = find_widget<grid>(&new_row, "menu_item", false);
|
||||
grid& mi_grid = new_row.find_widget<grid>("menu_item");
|
||||
|
||||
// Set the tooltip on the whole panel
|
||||
find_widget<toggle_panel>(&new_row, "panel", false).set_tooltip(entry.tooltip);
|
||||
new_row.find_widget<toggle_panel>("panel").set_tooltip(entry.tooltip);
|
||||
|
||||
if(entry.checkbox) {
|
||||
auto checkbox = build_single_widget_instance<toggle_button>(config{"definition", "no_label"});
|
||||
|
@ -242,19 +241,19 @@ void drop_down_menu::pre_show(window& window)
|
|||
|
||||
void drop_down_menu::post_show(window& window)
|
||||
{
|
||||
selected_item_ = find_widget<listbox>(&window, "list", true).get_selected_row();
|
||||
selected_item_ = find_widget<listbox>("list", true).get_selected_row();
|
||||
}
|
||||
|
||||
boost::dynamic_bitset<> drop_down_menu::get_toggle_states() const
|
||||
{
|
||||
const listbox& list = find_widget<const listbox>(get_window(), "list", true);
|
||||
const listbox& list = find_widget<const listbox>("list", true);
|
||||
|
||||
boost::dynamic_bitset<> states;
|
||||
|
||||
for(unsigned i = 0; i < list.get_item_count(); ++i) {
|
||||
const grid* row_grid = list.get_row_grid(i);
|
||||
|
||||
if(const toggle_button* checkbox = find_widget<const toggle_button>(row_grid, "checkbox", false, false)) {
|
||||
if(const toggle_button* checkbox = row_grid->find_widget<const toggle_button>("checkbox", false, false)) {
|
||||
states.push_back(checkbox->get_value_bool());
|
||||
} else {
|
||||
states.push_back(false);
|
||||
|
|
|
@ -43,7 +43,7 @@ edit_text::edit_text(const std::string& title,
|
|||
void edit_text::pre_show(window& window)
|
||||
{
|
||||
if(disallow_empty_) {
|
||||
text_box& text = find_widget<text_box>(&window, "text", false);
|
||||
text_box& text = find_widget<text_box>("text");
|
||||
connect_signal_notify_modified(text, std::bind(&edit_text::on_text_change, this));
|
||||
on_text_change();
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ void edit_text::pre_show(window& window)
|
|||
|
||||
void edit_text::on_text_change()
|
||||
{
|
||||
text_box& text = find_widget<text_box>(get_window(), "text", false);
|
||||
button& ok_button = find_widget<button>(get_window(), "ok", false);
|
||||
text_box& text = find_widget<text_box>("text");
|
||||
button& ok_button = find_widget<button>("ok");
|
||||
|
||||
ok_button.set_active(!boost::trim_copy(text.get_value()).empty());
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "filesystem.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
|
@ -31,7 +30,8 @@ editor_choose_addon::editor_choose_addon(std::string& addon_id)
|
|||
: modal_dialog(window_id())
|
||||
, addon_id_(addon_id)
|
||||
{
|
||||
connect_signal_mouse_left_click(find_widget<toggle_button>(get_window(), "show_all", false),
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<toggle_button>("show_all"),
|
||||
std::bind(&editor_choose_addon::toggle_installed, this));
|
||||
|
||||
populate_list(false);
|
||||
|
@ -43,13 +43,13 @@ void editor_choose_addon::pre_show(window&)
|
|||
|
||||
void editor_choose_addon::post_show(window& win)
|
||||
{
|
||||
listbox& existing_addons = find_widget<listbox>(&win, "existing_addons", false);
|
||||
listbox& existing_addons = find_widget<listbox>("existing_addons");
|
||||
int selected_row = existing_addons.get_selected_row();
|
||||
|
||||
if(selected_row == 0) {
|
||||
addon_id_ = "///newaddon///";
|
||||
prefs::get().set_editor_chosen_addon("");
|
||||
} else if(selected_row == 1 && find_widget<toggle_button>(get_window(), "show_all", false).get_value_bool()) {
|
||||
} else if(selected_row == 1 && find_widget<toggle_button>("show_all").get_value_bool()) {
|
||||
addon_id_ = "mainline";
|
||||
prefs::get().set_editor_chosen_addon("");
|
||||
} else {
|
||||
|
@ -61,13 +61,13 @@ void editor_choose_addon::post_show(window& win)
|
|||
|
||||
void editor_choose_addon::toggle_installed()
|
||||
{
|
||||
toggle_button& show_all = find_widget<toggle_button>(get_window(), "show_all", false);
|
||||
toggle_button& show_all = find_widget<toggle_button>("show_all");
|
||||
populate_list(show_all.get_value_bool());
|
||||
}
|
||||
|
||||
void editor_choose_addon::populate_list(bool show_all)
|
||||
{
|
||||
listbox& existing_addons = find_widget<listbox>(get_window(), "existing_addons", false);
|
||||
listbox& existing_addons = find_widget<listbox>("existing_addons");
|
||||
existing_addons.clear();
|
||||
|
||||
std::vector<std::string> dirs;
|
||||
|
|
|
@ -81,63 +81,63 @@ void custom_tod::pre_show(window& window)
|
|||
{"sound", tod_getter_sound}
|
||||
};
|
||||
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "tod_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "tod_desc", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "tod_id", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("tod_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("tod_desc", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("tod_id", false, true));
|
||||
|
||||
for(const auto& data : metadata_stuff) {
|
||||
button& copy_w = find_widget<button>(&window, "copy_" + data.first, false);
|
||||
button& copy_w = find_widget<button>("copy_" + data.first);
|
||||
|
||||
connect_signal_mouse_left_click(copy_w,
|
||||
std::bind(&custom_tod::copy_to_clipboard_callback, this, data));
|
||||
}
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "browse_image", false),
|
||||
find_widget<button>("browse_image"),
|
||||
std::bind(&custom_tod::select_file<tod_getter_image>, this, "data/core/images/misc"));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "browse_mask", false),
|
||||
find_widget<button>("browse_mask"),
|
||||
std::bind(&custom_tod::select_file<tod_getter_mask>, this, "data/core/images"));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "browse_sound", false),
|
||||
find_widget<button>("browse_sound"),
|
||||
std::bind(&custom_tod::select_file<tod_getter_sound>, this, "data/core/sounds/ambient"));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "preview_image", false),
|
||||
find_widget<button>("preview_image"),
|
||||
std::bind(&custom_tod::update_image, this, "image"));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "preview_mask", false),
|
||||
find_widget<button>("preview_mask"),
|
||||
std::bind(&custom_tod::update_image, this, "mask"));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "preview_sound", false),
|
||||
find_widget<button>("preview_sound"),
|
||||
std::bind(&custom_tod::play_sound, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "next_tod", false),
|
||||
find_widget<button>("next_tod"),
|
||||
std::bind(&custom_tod::do_next_tod, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "previous_tod", false),
|
||||
find_widget<button>("previous_tod"),
|
||||
std::bind(&custom_tod::do_prev_tod, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "new", false),
|
||||
find_widget<button>("new"),
|
||||
std::bind(&custom_tod::do_new_tod, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "delete", false),
|
||||
find_widget<button>("delete"),
|
||||
std::bind(&custom_tod::do_delete_tod, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "preview_color", false),
|
||||
find_widget<button>("preview_color"),
|
||||
std::bind(&custom_tod::preview_schedule, this));
|
||||
|
||||
connect_signal_notify_modified(
|
||||
find_widget<slider>(&window, "lawful_bonus", false),
|
||||
find_widget<slider>("lawful_bonus"),
|
||||
std::bind(&custom_tod::update_lawful_bonus, this));
|
||||
|
||||
connect_signal_notify_modified(
|
||||
|
@ -270,13 +270,13 @@ void custom_tod::color_slider_callback(COLOR_TYPE type)
|
|||
}
|
||||
|
||||
void custom_tod::play_sound() {
|
||||
std::string sound_path = find_widget<text_box>(get_window(), "path_sound", false).get_value();
|
||||
std::string sound_path = find_widget<text_box>("path_sound").get_value();
|
||||
sound::play_sound(sound_path, sound::SOUND_SOURCES);
|
||||
}
|
||||
|
||||
void custom_tod::update_image(const std::string& id_stem) {
|
||||
std::string img_path = find_widget<text_box>(get_window(), "path_"+id_stem, false).get_value();
|
||||
find_widget<image>(get_window(), "current_tod_" + id_stem, false).set_label(img_path);
|
||||
std::string img_path = find_widget<text_box>("path_"+id_stem).get_value();
|
||||
find_widget<image>("current_tod_" + id_stem).set_label(img_path);
|
||||
|
||||
get_window()->invalidate_layout();
|
||||
}
|
||||
|
@ -294,32 +294,32 @@ void custom_tod::update_tod_display()
|
|||
|
||||
void custom_tod::update_lawful_bonus()
|
||||
{
|
||||
times_[current_tod_].lawful_bonus = find_widget<slider>(get_window(), "lawful_bonus", false).get_value();
|
||||
times_[current_tod_].lawful_bonus = find_widget<slider>("lawful_bonus").get_value();
|
||||
}
|
||||
|
||||
void custom_tod::update_selected_tod_info()
|
||||
{
|
||||
const time_of_day& current_tod = get_selected_tod();
|
||||
|
||||
find_widget<text_box>(get_window(), "tod_name", false).set_value(current_tod.name);
|
||||
find_widget<text_box>(get_window(), "tod_desc", false).set_value(current_tod.description);
|
||||
find_widget<text_box>(get_window(), "tod_id", false).set_value(current_tod.id);
|
||||
find_widget<text_box>("tod_name").set_value(current_tod.name);
|
||||
find_widget<text_box>("tod_desc").set_value(current_tod.description);
|
||||
find_widget<text_box>("tod_id").set_value(current_tod.id);
|
||||
|
||||
find_widget<text_box>(get_window(), "path_image", false).set_value(current_tod.image);
|
||||
find_widget<text_box>(get_window(), "path_mask", false).set_value(current_tod.image_mask);
|
||||
find_widget<text_box>(get_window(), "path_sound", false).set_value(current_tod.sounds);
|
||||
find_widget<text_box>("path_image").set_value(current_tod.image);
|
||||
find_widget<text_box>("path_mask").set_value(current_tod.image_mask);
|
||||
find_widget<text_box>("path_sound").set_value(current_tod.sounds);
|
||||
|
||||
find_widget<image>(get_window(), "current_tod_image", false).set_image(current_tod.image);
|
||||
find_widget<image>(get_window(), "current_tod_mask", false).set_image(current_tod.image_mask);
|
||||
find_widget<image>("current_tod_image").set_image(current_tod.image);
|
||||
find_widget<image>("current_tod_mask").set_image(current_tod.image_mask);
|
||||
|
||||
find_widget<slider>(get_window(), "lawful_bonus", false).set_value(current_tod.lawful_bonus);
|
||||
find_widget<slider>("lawful_bonus").set_value(current_tod.lawful_bonus);
|
||||
|
||||
color_field_r_->set_widget_value(current_tod.color.r);
|
||||
color_field_g_->set_widget_value(current_tod.color.g);
|
||||
color_field_b_->set_widget_value(current_tod.color.b);
|
||||
|
||||
const std::string new_index_str = formatter() << (current_tod_ + 1) << "/" << times_.size();
|
||||
find_widget<label>(get_window(), "tod_number", false).set_label(new_index_str);
|
||||
find_widget<label>("tod_number").set_label(new_index_str);
|
||||
|
||||
update_tod_display();
|
||||
}
|
||||
|
@ -327,7 +327,7 @@ void custom_tod::update_selected_tod_info()
|
|||
void custom_tod::copy_to_clipboard_callback(std::pair<std::string, tod_attribute_getter> data)
|
||||
{
|
||||
auto& [type, getter] = data;
|
||||
button& copy_w = find_widget<button>(get_window(), "copy_" + type, false);
|
||||
button& copy_w = find_widget<button>("copy_" + type);
|
||||
desktop::clipboard::copy_to_clipboard(getter(get_selected_tod()).second);
|
||||
copy_w.set_success(true);
|
||||
}
|
||||
|
@ -341,15 +341,15 @@ void custom_tod::preview_schedule()
|
|||
void custom_tod::update_schedule()
|
||||
{
|
||||
/* Update times_ with values from the dialog */
|
||||
times_[current_tod_].name = find_widget<text_box>(get_window(), "tod_name", false).get_value();
|
||||
times_[current_tod_].description = find_widget<text_box>(get_window(), "tod_desc", false).get_value();
|
||||
times_[current_tod_].id = find_widget<text_box>(get_window(), "tod_id", false).get_value();
|
||||
times_[current_tod_].name = find_widget<text_box>("tod_name").get_value();
|
||||
times_[current_tod_].description = find_widget<text_box>("tod_desc").get_value();
|
||||
times_[current_tod_].id = find_widget<text_box>("tod_id").get_value();
|
||||
|
||||
times_[current_tod_].image = find_widget<text_box>(get_window(), "path_image", false).get_value();
|
||||
times_[current_tod_].image_mask = find_widget<text_box>(get_window(), "path_mask", false).get_value();
|
||||
times_[current_tod_].sounds = find_widget<text_box>(get_window(), "path_sound", false).get_value();
|
||||
times_[current_tod_].image = find_widget<text_box>("path_image").get_value();
|
||||
times_[current_tod_].image_mask = find_widget<text_box>("path_mask").get_value();
|
||||
times_[current_tod_].sounds = find_widget<text_box>("path_sound").get_value();
|
||||
|
||||
times_[current_tod_].lawful_bonus = find_widget<slider>(get_window(), "lawful_bonus", false).get_value();
|
||||
times_[current_tod_].lawful_bonus = find_widget<slider>("lawful_bonus").get_value();
|
||||
|
||||
times_[current_tod_].color.r = color_field_r_->get_widget_value();
|
||||
times_[current_tod_].color.g = color_field_g_->get_widget_value();
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/editor/edit_label.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
|
@ -49,8 +48,8 @@ editor_edit_label::editor_edit_label(std::string& text,
|
|||
|
||||
void editor_edit_label::pre_show(window& win)
|
||||
{
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "label", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "category", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("label", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("category", false, true));
|
||||
}
|
||||
|
||||
void editor_edit_label::register_color_component(std::string widget_id, uint8_t color_t::* component) {
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "editor/editor_common.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/editor/edit_pbl_translation.hpp"
|
||||
#include "gui/dialogs/file_dialog.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
|
@ -75,20 +74,20 @@ editor_edit_pbl::editor_edit_pbl(const std::string& pbl, const std::string& curr
|
|||
, dirs_()
|
||||
{
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<toggle_button>(get_window(), "forum_auth", false), std::bind(&editor_edit_pbl::toggle_auth, this));
|
||||
connect_signal_mouse_left_click(find_widget<button>(get_window(), "translations_add", false),
|
||||
find_widget<toggle_button>("forum_auth"), std::bind(&editor_edit_pbl::toggle_auth, this));
|
||||
connect_signal_mouse_left_click(find_widget<button>("translations_add"),
|
||||
std::bind(&editor_edit_pbl::add_translation, this));
|
||||
connect_signal_mouse_left_click(find_widget<button>(get_window(), "translations_delete", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("translations_delete"),
|
||||
std::bind(&editor_edit_pbl::delete_translation, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(get_window(), "validate", false), std::bind(&editor_edit_pbl::validate, this));
|
||||
find_widget<button>("validate"), std::bind(&editor_edit_pbl::validate, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(get_window(), "select_icon", false), std::bind(&editor_edit_pbl::select_icon_file, this));
|
||||
find_widget<button>("select_icon"), std::bind(&editor_edit_pbl::select_icon_file, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<text_box>(get_window(), "icon", false), std::bind(&editor_edit_pbl::update_icon_preview, this));
|
||||
connect_signal_notify_modified(find_widget<text_box>(get_window(), "forum_thread", false),
|
||||
find_widget<text_box>("icon"), std::bind(&editor_edit_pbl::update_icon_preview, this));
|
||||
connect_signal_notify_modified(find_widget<text_box>("forum_thread"),
|
||||
std::bind(&editor_edit_pbl::update_url_preview, this));
|
||||
label& url = find_widget<label>(get_window(), "forum_url", false);
|
||||
label& url = find_widget<label>("forum_url");
|
||||
url.set_link_aware(true);
|
||||
url.set_use_markup(true);
|
||||
// not setting this to some value causes the modified signal to not update the label text
|
||||
|
@ -106,20 +105,20 @@ void editor_edit_pbl::pre_show(window& win)
|
|||
}
|
||||
}
|
||||
|
||||
text_box* name = find_widget<text_box>(&win, "name", false, true);
|
||||
text_box* name = find_widget<text_box>("name", false, true);
|
||||
name->set_value(pbl["title"]);
|
||||
win.keyboard_capture(name);
|
||||
|
||||
find_widget<scroll_text>(&win, "description", false).set_value(pbl["description"]);
|
||||
find_widget<text_box>(&win, "icon", false).set_value(pbl["icon"]);
|
||||
find_widget<scroll_text>("description").set_value(pbl["description"]);
|
||||
find_widget<text_box>("icon").set_value(pbl["icon"]);
|
||||
if(!pbl["icon"].empty()) {
|
||||
drawing& img = find_widget<drawing>(&win, "preview", false);
|
||||
drawing& img = find_widget<drawing>("preview");
|
||||
img.set_label(pbl["icon"]);
|
||||
}
|
||||
find_widget<text_box>(&win, "author", false).set_value(pbl["author"]);
|
||||
find_widget<text_box>(&win, "version", false).set_value(pbl["version"]);
|
||||
find_widget<text_box>("author").set_value(pbl["author"]);
|
||||
find_widget<text_box>("version").set_value(pbl["version"]);
|
||||
|
||||
multimenu_button& dependencies = find_widget<multimenu_button>(&win, "dependencies", false);
|
||||
multimenu_button& dependencies = find_widget<multimenu_button>("dependencies");
|
||||
std::vector<config> addons_list;
|
||||
filesystem::get_files_in_dir(filesystem::get_addons_dir(), nullptr, &dirs_, filesystem::name_mode::FILE_NAME_ONLY);
|
||||
if(dirs_.size() > 0 && std::find(dirs_.begin(), dirs_.end(), current_addon_) != dirs_.end()) {
|
||||
|
@ -139,22 +138,22 @@ void editor_edit_pbl::pre_show(window& win)
|
|||
}
|
||||
|
||||
if(pbl["forum_auth"].to_bool()) {
|
||||
find_widget<toggle_button>(&win, "forum_auth", false).set_value(true);
|
||||
find_widget<text_box>(&win, "email", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(&win, "email_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>(&win, "password", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(&win, "password_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>(&win, "secondary_authors", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>(&win, "secondary_authors_label", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<toggle_button>("forum_auth").set_value(true);
|
||||
find_widget<text_box>("email").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("email_label").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("password").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("password_label").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("secondary_authors").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>("secondary_authors_label").set_visible(gui2::widget::visibility::visible);
|
||||
} else {
|
||||
find_widget<text_box>(&win, "email", false).set_value(pbl["email"]);
|
||||
find_widget<text_box>(&win, "password", false).set_value(pbl["passphrase"]);
|
||||
find_widget<text_box>(&win, "secondary_authors", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(&win, "secondary_authors_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("email").set_value(pbl["email"]);
|
||||
find_widget<text_box>("password").set_value(pbl["passphrase"]);
|
||||
find_widget<text_box>("secondary_authors").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("secondary_authors_label").set_visible(gui2::widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(pbl.has_child("feedback")) {
|
||||
find_widget<text_box>(&win, "forum_thread", false).set_value(pbl.mandatory_child("feedback")["topic_id"]);
|
||||
find_widget<text_box>("forum_thread").set_value(pbl.mandatory_child("feedback")["topic_id"]);
|
||||
}
|
||||
|
||||
unsigned selected = 0;
|
||||
|
@ -165,7 +164,7 @@ void editor_edit_pbl::pre_show(window& win)
|
|||
}
|
||||
}
|
||||
|
||||
menu_button& types = find_widget<menu_button>(&win, "type", false);
|
||||
menu_button& types = find_widget<menu_button>("type");
|
||||
std::vector<config> type_list;
|
||||
type_list.emplace_back("label", "");
|
||||
type_list.emplace_back("label", _("Core"));
|
||||
|
@ -183,7 +182,7 @@ void editor_edit_pbl::pre_show(window& win)
|
|||
types.set_values(type_list);
|
||||
types.set_selected(selected);
|
||||
|
||||
multimenu_button& tags = find_widget<multimenu_button>(&win, "tags", false);
|
||||
multimenu_button& tags = find_widget<multimenu_button>("tags");
|
||||
std::vector<config> tags_list;
|
||||
tags_list.emplace_back("label", _("Cooperative"), "checkbox", false);
|
||||
tags_list.emplace_back("label", _("Cosmetic"), "checkbox", false);
|
||||
|
@ -200,8 +199,8 @@ void editor_edit_pbl::pre_show(window& win)
|
|||
}
|
||||
}
|
||||
|
||||
listbox& translations = find_widget<listbox>(&win, "translations", false);
|
||||
button& translations_delete = find_widget<button>(&win, "translations_delete", false);
|
||||
listbox& translations = find_widget<listbox>("translations");
|
||||
button& translations_delete = find_widget<button>("translations_delete");
|
||||
|
||||
for(const config& child : pbl.child_range("translation")) {
|
||||
const widget_data& entry{
|
||||
|
@ -233,23 +232,23 @@ config editor_edit_pbl::create_cfg()
|
|||
{
|
||||
config cfg;
|
||||
|
||||
if(const std::string& name = find_widget<text_box>(get_window(), "name", false).get_value(); !name.empty()) {
|
||||
if(const std::string& name = find_widget<text_box>("name").get_value(); !name.empty()) {
|
||||
cfg["title"] = name;
|
||||
}
|
||||
if(const std::string& description = find_widget<scroll_text>(get_window(), "description", false).get_value(); !description.empty()) {
|
||||
if(const std::string& description = find_widget<scroll_text>("description").get_value(); !description.empty()) {
|
||||
cfg["description"] = description;
|
||||
}
|
||||
if(const std::string& icon = find_widget<text_box>(get_window(), "icon", false).get_value(); !icon.empty()) {
|
||||
if(const std::string& icon = find_widget<text_box>("icon").get_value(); !icon.empty()) {
|
||||
cfg["icon"] = icon;
|
||||
}
|
||||
if(const std::string& author = find_widget<text_box>(get_window(), "author", false).get_value(); !author.empty()) {
|
||||
if(const std::string& author = find_widget<text_box>("author").get_value(); !author.empty()) {
|
||||
cfg["author"] = author;
|
||||
}
|
||||
if(const std::string& version = find_widget<text_box>(get_window(), "version", false).get_value(); !version.empty()) {
|
||||
if(const std::string& version = find_widget<text_box>("version").get_value(); !version.empty()) {
|
||||
cfg["version"] = version;
|
||||
}
|
||||
|
||||
multimenu_button& dependencies = find_widget<multimenu_button>(get_window(), "dependencies", false);
|
||||
multimenu_button& dependencies = find_widget<multimenu_button>("dependencies");
|
||||
boost::dynamic_bitset<> dep_states = dependencies.get_toggle_states();
|
||||
std::vector<std::string> chosen_deps;
|
||||
for(unsigned i = 0; i < dep_states.size(); i++) {
|
||||
|
@ -261,31 +260,31 @@ config editor_edit_pbl::create_cfg()
|
|||
cfg["dependencies"] = utils::join(chosen_deps, ",");
|
||||
}
|
||||
|
||||
if(find_widget<toggle_button>(get_window(), "forum_auth", false).get_value_bool()) {
|
||||
if(find_widget<toggle_button>("forum_auth").get_value_bool()) {
|
||||
cfg["forum_auth"] = true;
|
||||
|
||||
if(const std::string& secondary_authors = find_widget<text_box>(get_window(), "secondary_authors", false).get_value(); !secondary_authors.empty()) {
|
||||
if(const std::string& secondary_authors = find_widget<text_box>("secondary_authors").get_value(); !secondary_authors.empty()) {
|
||||
cfg["secondary_authors"] = secondary_authors;
|
||||
}
|
||||
} else {
|
||||
if(const std::string& email = find_widget<text_box>(get_window(), "email", false).get_value(); !email.empty()) {
|
||||
if(const std::string& email = find_widget<text_box>("email").get_value(); !email.empty()) {
|
||||
cfg["email"] = email;
|
||||
}
|
||||
if(const std::string& passphrase = find_widget<text_box>(get_window(), "password", false).get_value(); !passphrase.empty()) {
|
||||
if(const std::string& passphrase = find_widget<text_box>("password").get_value(); !passphrase.empty()) {
|
||||
cfg["passphrase"] = passphrase;
|
||||
}
|
||||
}
|
||||
|
||||
if(const std::string& topic_id = find_widget<text_box>(get_window(), "forum_thread", false).get_value(); !topic_id.empty()) {
|
||||
if(const std::string& topic_id = find_widget<text_box>("forum_thread").get_value(); !topic_id.empty()) {
|
||||
config& feedback = cfg.add_child("feedback");
|
||||
feedback["topic_id"] = topic_id;
|
||||
}
|
||||
|
||||
if(unsigned value = find_widget<menu_button>(get_window(), "type", false).get_value(); value != 0) {
|
||||
if(unsigned value = find_widget<menu_button>("type").get_value(); value != 0) {
|
||||
cfg["type"] = type_values[value];
|
||||
}
|
||||
|
||||
multimenu_button& tags = find_widget<multimenu_button>(get_window(), "tags", false);
|
||||
multimenu_button& tags = find_widget<multimenu_button>("tags");
|
||||
boost::dynamic_bitset<> tag_states = tags.get_toggle_states();
|
||||
std::vector<std::string> chosen_tags;
|
||||
for(unsigned i = 0; i < tag_states.size(); i++) {
|
||||
|
@ -297,7 +296,7 @@ config editor_edit_pbl::create_cfg()
|
|||
cfg["tags"] = utils::join(chosen_tags, ",");
|
||||
}
|
||||
|
||||
listbox& translations = find_widget<listbox>(get_window(), "translations", false);
|
||||
listbox& translations = find_widget<listbox>("translations");
|
||||
for(unsigned i = 0; i < translations.get_item_count(); i++) {
|
||||
grid* row = translations.get_row_grid(i);
|
||||
config& translation = cfg.add_child("translation");
|
||||
|
@ -312,21 +311,21 @@ config editor_edit_pbl::create_cfg()
|
|||
|
||||
void editor_edit_pbl::toggle_auth()
|
||||
{
|
||||
toggle_button& forum_auth = find_widget<toggle_button>(get_window(), "forum_auth", false);
|
||||
toggle_button& forum_auth = find_widget<toggle_button>("forum_auth");
|
||||
if(forum_auth.get_value_bool()) {
|
||||
find_widget<text_box>(get_window(), "email", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>(get_window(), "password", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(get_window(), "email_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(get_window(), "password_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>(get_window(), "secondary_authors", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>(get_window(), "secondary_authors_label", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<text_box>("email").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("password").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("email_label").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("password_label").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("secondary_authors").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>("secondary_authors_label").set_visible(gui2::widget::visibility::visible);
|
||||
} else {
|
||||
find_widget<text_box>(get_window(), "email", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<text_box>(get_window(), "password", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>(get_window(), "email_label", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>(get_window(), "password_label", false).set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<text_box>(get_window(), "secondary_authors", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>(get_window(), "secondary_authors_label", false).set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<text_box>("email").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<text_box>("password").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>("email_label").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<label>("password_label").set_visible(gui2::widget::visibility::visible);
|
||||
find_widget<text_box>("secondary_authors").set_visible(gui2::widget::visibility::invisible);
|
||||
find_widget<label>("secondary_authors_label").set_visible(gui2::widget::visibility::invisible);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,23 +337,23 @@ void editor_edit_pbl::add_translation()
|
|||
editor_edit_pbl_translation::execute(language, title, description);
|
||||
|
||||
if(!language.empty() && !title.empty()) {
|
||||
listbox& translations = find_widget<listbox>(get_window(), "translations", false);
|
||||
listbox& translations = find_widget<listbox>("translations");
|
||||
const widget_data& entry{
|
||||
{"translations_language", widget_item{{"label", language}}},
|
||||
{"translations_title", widget_item{{"label", title}}},
|
||||
{"translations_description", widget_item{{"label", description}}},
|
||||
};
|
||||
translations.add_row(entry);
|
||||
find_widget<button>(get_window(), "translations_delete", false).set_active(true);
|
||||
find_widget<button>("translations_delete").set_active(true);
|
||||
}
|
||||
}
|
||||
|
||||
void editor_edit_pbl::delete_translation()
|
||||
{
|
||||
listbox& translations = find_widget<listbox>(get_window(), "translations", false);
|
||||
listbox& translations = find_widget<listbox>("translations");
|
||||
translations.remove_row(translations.get_selected_row());
|
||||
|
||||
button& translations_delete = find_widget<button>(get_window(), "translations_delete", false);
|
||||
button& translations_delete = find_widget<button>("translations_delete");
|
||||
if(translations.get_item_count() == 0) {
|
||||
translations_delete.set_active(false);
|
||||
}
|
||||
|
@ -379,10 +378,10 @@ void editor_edit_pbl::validate()
|
|||
|
||||
void editor_edit_pbl::update_icon_preview()
|
||||
{
|
||||
std::string icon = find_widget<text_box>(get_window(), "icon", false).get_value();
|
||||
std::string icon = find_widget<text_box>("icon").get_value();
|
||||
if(icon.find(".png") != std::string::npos || icon.find(".jpg") != std::string::npos || icon.find(".webp") != std::string::npos) {
|
||||
std::string path = filesystem::get_core_images_dir() + icon;
|
||||
drawing& img = find_widget<drawing>(get_window(), "preview", false);
|
||||
drawing& img = find_widget<drawing>("preview");
|
||||
|
||||
if(filesystem::file_exists(path) || icon.find("data:image") != std::string::npos) {
|
||||
img.set_label(icon);
|
||||
|
@ -395,8 +394,8 @@ void editor_edit_pbl::update_icon_preview()
|
|||
|
||||
void editor_edit_pbl::update_url_preview()
|
||||
{
|
||||
std::string topic = find_widget<text_box>(get_window(), "forum_thread", false).get_value();
|
||||
find_widget<label>(get_window(), "forum_url", false).set_label("https://r.wesnoth.org/t" + topic);
|
||||
std::string topic = find_widget<text_box>("forum_thread").get_value();
|
||||
find_widget<label>("forum_url").set_label("https://r.wesnoth.org/t" + topic);
|
||||
}
|
||||
|
||||
void editor_edit_pbl::select_icon_file()
|
||||
|
@ -410,14 +409,14 @@ void editor_edit_pbl::select_icon_file()
|
|||
if(path.find(filesystem::get_core_images_dir()) == 0) {
|
||||
std::string icon = path.substr(filesystem::get_core_images_dir().length() + 1);
|
||||
// setting this programmatically doesn't seem to trigger connect_signal_notify_modified()
|
||||
find_widget<text_box>(get_window(), "icon", false).set_value(icon);
|
||||
find_widget<drawing>(get_window(), "preview", false).set_label(icon);
|
||||
find_widget<text_box>("icon").set_value(icon);
|
||||
find_widget<drawing>("preview").set_label(icon);
|
||||
} else {
|
||||
std::string uri = filesystem::read_file_as_data_uri(path);
|
||||
|
||||
if(!uri.empty()) {
|
||||
find_widget<text_box>(get_window(), "icon", false).set_value(uri);
|
||||
find_widget<drawing>(get_window(), "preview", false).set_label(uri);
|
||||
find_widget<text_box>("icon").set_value(uri);
|
||||
find_widget<drawing>("preview").set_label(uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/editor/edit_pbl_translation.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
||||
namespace gui2::dialogs
|
||||
|
@ -35,15 +34,15 @@ editor_edit_pbl_translation::editor_edit_pbl_translation(
|
|||
|
||||
void editor_edit_pbl_translation::pre_show(window& win)
|
||||
{
|
||||
text_box* language = find_widget<text_box>(&win, "language", false, true);
|
||||
text_box* language = find_widget<text_box>("language", false, true);
|
||||
win.keyboard_capture(language);
|
||||
}
|
||||
|
||||
void editor_edit_pbl_translation::post_show(window& win)
|
||||
{
|
||||
language_ = find_widget<text_box>(&win, "language", false).get_value();
|
||||
title_ = find_widget<text_box>(&win, "lang_title", false).get_value();
|
||||
description_ = find_widget<text_box>(&win, "description", false).get_value();
|
||||
language_ = find_widget<text_box>("language").get_value();
|
||||
title_ = find_widget<text_box>("lang_title").get_value();
|
||||
description_ = find_widget<text_box>("description").get_value();
|
||||
}
|
||||
|
||||
} // namespace gui2::dialogs
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/editor/edit_scenario.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
|
@ -49,9 +48,9 @@ editor_edit_scenario::editor_edit_scenario(
|
|||
|
||||
void editor_edit_scenario::pre_show(window& win)
|
||||
{
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "id", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "name", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "description", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("id", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("name", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("description", false, true));
|
||||
}
|
||||
|
||||
} // namespace dialogs
|
||||
|
|
|
@ -52,21 +52,21 @@ editor_edit_side::editor_edit_side(editor::editor_team_info& info)
|
|||
|
||||
void editor_edit_side::pre_show(window& window)
|
||||
{
|
||||
controller_group.add_member(find_widget<toggle_button>(&window, "controller_human", false, true), side_controller::type::human);
|
||||
controller_group.add_member(find_widget<toggle_button>(&window, "controller_ai", false, true), side_controller::type::ai);
|
||||
controller_group.add_member(find_widget<toggle_button>(&window, "controller_null", false, true), side_controller::type::none);
|
||||
controller_group.add_member(find_widget<toggle_button>("controller_human", false, true), side_controller::type::human);
|
||||
controller_group.add_member(find_widget<toggle_button>("controller_ai", false, true), side_controller::type::ai);
|
||||
controller_group.add_member(find_widget<toggle_button>("controller_null", false, true), side_controller::type::none);
|
||||
|
||||
controller_group.set_member_states(controller_);
|
||||
|
||||
vision_group.add_member(find_widget<toggle_button>(&window, "vision_all", false, true), team_shared_vision::type::all);
|
||||
vision_group.add_member(find_widget<toggle_button>(&window, "vision_shroud", false, true), team_shared_vision::type::shroud);
|
||||
vision_group.add_member(find_widget<toggle_button>(&window, "vision_null", false, true), team_shared_vision::type::none);
|
||||
vision_group.add_member(find_widget<toggle_button>("vision_all", false, true), team_shared_vision::type::all);
|
||||
vision_group.add_member(find_widget<toggle_button>("vision_shroud", false, true), team_shared_vision::type::shroud);
|
||||
vision_group.add_member(find_widget<toggle_button>("vision_null", false, true), team_shared_vision::type::none);
|
||||
|
||||
vision_group.set_member_states(share_vision_);
|
||||
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "team_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "user_team_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>(&window, "recruit_list", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("team_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("user_team_name", false, true));
|
||||
window.add_to_tab_order(find_widget<text_box>("recruit_list", false, true));
|
||||
}
|
||||
|
||||
void editor_edit_side::post_show(window&)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include "filesystem.hpp"
|
||||
#include "formula/string_utils.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/dialogs/file_dialog.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/dialogs/unit_create.hpp"
|
||||
|
@ -82,10 +82,10 @@ editor_edit_unit::editor_edit_unit(const game_config_view& game_config, const st
|
|||
}
|
||||
|
||||
void editor_edit_unit::pre_show(window& win) {
|
||||
tab_container& tabs = find_widget<tab_container>(&win, "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
connect_signal_notify_modified(tabs, std::bind(&editor_edit_unit::on_page_select, this));
|
||||
|
||||
button& quit = find_widget<button>(&win, "exit", false);
|
||||
button& quit = find_widget<button>("exit");
|
||||
connect_signal_mouse_left_click(quit, std::bind(&editor_edit_unit::quit_confirmation, this));
|
||||
|
||||
//
|
||||
|
@ -94,7 +94,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
|
||||
tabs.select_tab(0);
|
||||
|
||||
menu_button& alignments = find_widget<menu_button>(&win, "alignment_list", false);
|
||||
menu_button& alignments = find_widget<menu_button>("alignment_list");
|
||||
for (auto& align : unit_alignments::values) {
|
||||
// Show the user the translated strings,
|
||||
// but use the untranslated align strings for generated WML
|
||||
|
@ -103,7 +103,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
}
|
||||
alignments.set_values(align_list_);
|
||||
|
||||
menu_button& races = find_widget<menu_button>(&win, "race_list", false);
|
||||
menu_button& races = find_widget<menu_button>("race_list");
|
||||
for(const race_map::value_type& i : unit_types.races()) {
|
||||
const std::string& race_name = i.second.id();
|
||||
race_list_.emplace_back("label", race_name, "icon", i.second.get_icon_path_stem() + "_30.png");
|
||||
|
@ -113,7 +113,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
races.set_values(race_list_);
|
||||
}
|
||||
|
||||
button& load = find_widget<button>(&win, "load_unit_type", false);
|
||||
button& load = find_widget<button>("load_unit_type");
|
||||
std::stringstream tooltip;
|
||||
tooltip << t_string("Hotkey(s): ", "wesnoth");
|
||||
#ifdef __APPLE__
|
||||
|
@ -125,23 +125,23 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
connect_signal_mouse_left_click(load, std::bind(&editor_edit_unit::load_unit_type, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "browse_unit_image", false),
|
||||
find_widget<button>("browse_unit_image"),
|
||||
std::bind(&editor_edit_unit::select_file, this, "data/core/images/units", "unit_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "preview_unit_image", false),
|
||||
find_widget<button>("preview_unit_image"),
|
||||
std::bind(&editor_edit_unit::update_image, this, "unit_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "browse_portrait_image", false),
|
||||
find_widget<button>("browse_portrait_image"),
|
||||
std::bind(&editor_edit_unit::select_file, this, "data/core/images/portraits", "portrait_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "preview_portrait_image", false),
|
||||
find_widget<button>("preview_portrait_image"),
|
||||
std::bind(&editor_edit_unit::update_image, this, "portrait_image"));
|
||||
|
||||
connect_signal_notify_modified(
|
||||
find_widget<text_box>(&win, "name_box", false),
|
||||
find_widget<text_box>("name_box"),
|
||||
std::bind(&editor_edit_unit::button_state_change, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<text_box>(&win, "id_box", false),
|
||||
find_widget<text_box>("id_box"),
|
||||
std::bind(&editor_edit_unit::button_state_change, this));
|
||||
|
||||
//
|
||||
|
@ -149,7 +149,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
//
|
||||
tabs.select_tab(1);
|
||||
|
||||
menu_button& movetypes = find_widget<menu_button>(&win, "movetype_list", false);
|
||||
menu_button& movetypes = find_widget<menu_button>("movetype_list");
|
||||
for(const auto& mt : unit_types.movement_types()) {
|
||||
movetype_list_.emplace_back("label", mt.first);
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
movetypes.set_values(movetype_list_);
|
||||
}
|
||||
|
||||
menu_button& defenses = find_widget<menu_button>(&win, "defense_list", false);
|
||||
menu_button& defenses = find_widget<menu_button>("defense_list");
|
||||
const config& defense_attr = game_config_
|
||||
.mandatory_child("units")
|
||||
.mandatory_child("movetype")
|
||||
|
@ -167,7 +167,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
defense_list_.emplace_back("label", attribute.first);
|
||||
}
|
||||
|
||||
menu_button& movement_costs = find_widget<menu_button>(&win, "movement_costs_list", false);
|
||||
menu_button& movement_costs = find_widget<menu_button>("movement_costs_list");
|
||||
if (!defense_list_.empty()) {
|
||||
defenses.set_values(defense_list_);
|
||||
def_toggles_.resize(defense_list_.size());
|
||||
|
@ -175,7 +175,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
move_toggles_.resize(defense_list_.size());
|
||||
}
|
||||
|
||||
menu_button& resistances = find_widget<menu_button>(&win, "resistances_list", false);
|
||||
menu_button& resistances = find_widget<menu_button>("resistances_list");
|
||||
|
||||
const config& resistances_attr = game_config_
|
||||
.mandatory_child("units")
|
||||
|
@ -190,7 +190,7 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
res_toggles_.resize(resistances_list_.size());
|
||||
}
|
||||
|
||||
menu_button& usage_types = find_widget<menu_button>(&win, "usage_list", false);
|
||||
menu_button& usage_types = find_widget<menu_button>("usage_list");
|
||||
usage_type_list_.emplace_back("label", _("scout"));
|
||||
usage_type_list_.emplace_back("label", _("fighter"));
|
||||
usage_type_list_.emplace_back("label", _("archer"));
|
||||
|
@ -198,46 +198,46 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
usage_type_list_.emplace_back("label", _("healer"));
|
||||
usage_types.set_values(usage_type_list_);
|
||||
|
||||
multimenu_button& abilities = find_widget<multimenu_button>(&win, "abilities_list", false);
|
||||
multimenu_button& abilities = find_widget<multimenu_button>("abilities_list");
|
||||
abilities.set_values(abilities_list_);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "browse_small_profile_image", false),
|
||||
find_widget<button>("browse_small_profile_image"),
|
||||
std::bind(&editor_edit_unit::select_file, this, "data/core/images/portraits", "small_profile_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "preview_small_profile_image", false),
|
||||
find_widget<button>("preview_small_profile_image"),
|
||||
std::bind(&editor_edit_unit::update_image, this, "small_profile_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "load_movetype", false),
|
||||
find_widget<button>("load_movetype"),
|
||||
std::bind(&editor_edit_unit::load_movetype, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<slider>(&win, "resistances_slider", false),
|
||||
find_widget<slider>("resistances_slider"),
|
||||
std::bind(&editor_edit_unit::store_resistances, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<menu_button>(&win, "resistances_list", false),
|
||||
find_widget<menu_button>("resistances_list"),
|
||||
std::bind(&editor_edit_unit::update_resistances, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<toggle_button>(&win, "resistances_checkbox", false),
|
||||
find_widget<toggle_button>("resistances_checkbox"),
|
||||
std::bind(&editor_edit_unit::enable_resistances_slider, this));
|
||||
|
||||
connect_signal_notify_modified(
|
||||
find_widget<slider>(&win, "defense_slider", false),
|
||||
find_widget<slider>("defense_slider"),
|
||||
std::bind(&editor_edit_unit::store_defenses, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<menu_button>(&win, "defense_list", false),
|
||||
find_widget<menu_button>("defense_list"),
|
||||
std::bind(&editor_edit_unit::update_defenses, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<toggle_button>(&win, "defense_checkbox", false),
|
||||
find_widget<toggle_button>("defense_checkbox"),
|
||||
std::bind(&editor_edit_unit::enable_defense_slider, this));
|
||||
|
||||
connect_signal_notify_modified(
|
||||
find_widget<slider>(&win, "movement_costs_slider", false),
|
||||
find_widget<slider>("movement_costs_slider"),
|
||||
std::bind(&editor_edit_unit::store_movement_costs, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<menu_button>(&win, "movement_costs_list", false),
|
||||
find_widget<menu_button>("movement_costs_list"),
|
||||
std::bind(&editor_edit_unit::update_movement_costs, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<toggle_button>(&win, "movement_costs_checkbox", false),
|
||||
find_widget<toggle_button>("movement_costs_checkbox"),
|
||||
std::bind(&editor_edit_unit::enable_movement_slider, this));
|
||||
|
||||
if (!res_toggles_.empty()) {
|
||||
|
@ -256,35 +256,35 @@ void editor_edit_unit::pre_show(window& win) {
|
|||
// Attack Tab
|
||||
//
|
||||
tabs.select_tab(2);
|
||||
multimenu_button& specials = find_widget<multimenu_button>(&win, "weapon_specials_list", false);
|
||||
multimenu_button& specials = find_widget<multimenu_button>("weapon_specials_list");
|
||||
specials.set_values(specials_list_);
|
||||
|
||||
combobox& attack_types = find_widget<combobox>(&win, "attack_type_list", false);
|
||||
combobox& attack_types = find_widget<combobox>("attack_type_list");
|
||||
if (resistances_list_.size() > 0) {
|
||||
attack_types.set_values(resistances_list_);
|
||||
}
|
||||
|
||||
// Connect signals
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "browse_attack_image", false),
|
||||
find_widget<button>("browse_attack_image"),
|
||||
std::bind(&editor_edit_unit::select_file, this, "data/core/images/attacks", "attack_image"));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "preview_attack_image", false),
|
||||
find_widget<button>("preview_attack_image"),
|
||||
std::bind(&editor_edit_unit::update_image, this, "attack_image"));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<menu_button>(&win, "atk_list", false),
|
||||
find_widget<menu_button>("atk_list"),
|
||||
std::bind(&editor_edit_unit::select_attack, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "atk_new", false),
|
||||
find_widget<button>("atk_new"),
|
||||
std::bind(&editor_edit_unit::add_attack, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "atk_delete", false),
|
||||
find_widget<button>("atk_delete"),
|
||||
std::bind(&editor_edit_unit::delete_attack, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "atk_next", false),
|
||||
find_widget<button>("atk_next"),
|
||||
std::bind(&editor_edit_unit::next_attack, this));
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "atk_prev", false),
|
||||
find_widget<button>("atk_prev"),
|
||||
std::bind(&editor_edit_unit::prev_attack, this));
|
||||
|
||||
update_index();
|
||||
|
@ -299,7 +299,7 @@ void editor_edit_unit::on_page_select()
|
|||
{
|
||||
save_unit_type();
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
if (tabs.get_active_tab_index() == 3) {
|
||||
update_wml_view();
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ void editor_edit_unit::select_file(const std::string& default_dir, const std::st
|
|||
|
||||
}
|
||||
|
||||
find_widget<text_box>(get_window(), "path_"+id_stem, false).set_value(dn);
|
||||
find_widget<text_box>("path_"+id_stem).set_value(dn);
|
||||
update_image(id_stem);
|
||||
}
|
||||
}
|
||||
|
@ -355,50 +355,49 @@ void editor_edit_unit::load_unit_type() {
|
|||
if (dlg_uc.show()) {
|
||||
const unit_type *type = unit_types.find(dlg_uc.choice());
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
tabs.select_tab(0);
|
||||
|
||||
find_widget<text_box>(get_window(), "id_box", false).set_value(type->id());
|
||||
find_widget<text_box>(get_window(), "name_box", false).set_value(type->type_name().base_str());
|
||||
find_widget<spinner>(get_window(), "level_box", false).set_value(type->level());
|
||||
find_widget<slider>(get_window(), "cost_slider", false).set_value(type->cost());
|
||||
find_widget<text_box>(get_window(), "adv_box", false).set_value(utils::join(type->advances_to()));
|
||||
find_widget<slider>(get_window(), "hp_slider", false).set_value(type->hitpoints());
|
||||
find_widget<slider>(get_window(), "xp_slider", false).set_value(type->experience_needed());
|
||||
find_widget<slider>(get_window(), "move_slider", false).set_value(type->movement());
|
||||
find_widget<scroll_text>(get_window(), "desc_box", false).set_value(type->unit_description().base_str());
|
||||
find_widget<text_box>(get_window(), "adv_box", false).set_value(utils::join(type->advances_to(), ", "));
|
||||
find_widget<text_box>(get_window(), "path_unit_image", false).set_value(type->image());
|
||||
find_widget<text_box>(get_window(), "path_portrait_image", false).set_value(type->big_profile());
|
||||
find_widget<text_box>("id_box").set_value(type->id());
|
||||
find_widget<text_box>("name_box").set_value(type->type_name().base_str());
|
||||
find_widget<spinner>("level_box").set_value(type->level());
|
||||
find_widget<slider>("cost_slider").set_value(type->cost());
|
||||
find_widget<text_box>("adv_box").set_value(utils::join(type->advances_to()));
|
||||
find_widget<slider>("hp_slider").set_value(type->hitpoints());
|
||||
find_widget<slider>("xp_slider").set_value(type->experience_needed());
|
||||
find_widget<slider>("move_slider").set_value(type->movement());
|
||||
find_widget<scroll_text>("desc_box").set_value(type->unit_description().base_str());
|
||||
find_widget<text_box>("path_unit_image").set_value(type->image());
|
||||
find_widget<text_box>("path_portrait_image").set_value(type->big_profile());
|
||||
|
||||
for (const auto& gender : type->genders())
|
||||
{
|
||||
if (gender == unit_race::GENDER::MALE) {
|
||||
find_widget<toggle_button>(get_window(), "gender_male", false).set_value(true);
|
||||
find_widget<toggle_button>("gender_male").set_value(true);
|
||||
}
|
||||
|
||||
if (gender == unit_race::GENDER::FEMALE) {
|
||||
find_widget<toggle_button>(get_window(), "gender_female", false).set_value(true);
|
||||
find_widget<toggle_button>("gender_female").set_value(true);
|
||||
}
|
||||
}
|
||||
|
||||
set_selected_from_string(
|
||||
find_widget<menu_button>(get_window(), "race_list", false),
|
||||
find_widget<menu_button>("race_list"),
|
||||
race_list_,
|
||||
type->race_id());
|
||||
|
||||
set_selected_from_string(
|
||||
find_widget<menu_button>(get_window(), "alignment_list", false),
|
||||
find_widget<menu_button>("alignment_list"),
|
||||
align_list_,
|
||||
unit_alignments::get_string(type->alignment()));
|
||||
|
||||
update_image("unit_image");
|
||||
|
||||
tabs.select_tab(1);
|
||||
find_widget<text_box>(get_window(), "path_small_profile_image", false).set_value(type->small_profile());
|
||||
find_widget<text_box>("path_small_profile_image").set_value(type->small_profile());
|
||||
|
||||
set_selected_from_string(
|
||||
find_widget<menu_button>(get_window(), "movetype_list", false),
|
||||
find_widget<menu_button>("movetype_list"),
|
||||
movetype_list_,
|
||||
type->movement_type_id());
|
||||
|
||||
|
@ -444,7 +443,7 @@ void editor_edit_unit::load_unit_type() {
|
|||
update_resistances();
|
||||
|
||||
set_selected_from_string(
|
||||
find_widget<menu_button>(get_window(), "usage_list", false),
|
||||
find_widget<menu_button>("usage_list"),
|
||||
usage_type_list_,
|
||||
type->usage());
|
||||
|
||||
|
@ -488,36 +487,35 @@ void editor_edit_unit::save_unit_type() {
|
|||
// Textdomain
|
||||
std::string current_textdomain = "wesnoth-"+addon_id_;
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
|
||||
// Page 1
|
||||
grid* grid = tabs.get_tab_grid(0);
|
||||
|
||||
|
||||
config& utype = type_cfg_.add_child("unit_type");
|
||||
utype["id"] = find_widget<text_box>(grid, "id_box", false).get_value();
|
||||
utype["name"] = t_string(find_widget<text_box>(grid, "name_box", false).get_value(), current_textdomain);
|
||||
utype["image"] = find_widget<text_box>(grid, "path_unit_image", false).get_value();
|
||||
utype["profile"] = find_widget<text_box>(grid, "path_portrait_image", false).get_value();
|
||||
utype["level"] = find_widget<spinner>(grid, "level_box", false).get_value();
|
||||
utype["advances_to"] = find_widget<text_box>(grid, "adv_box", false).get_value();
|
||||
utype["hitpoints"] = find_widget<slider>(grid, "hp_slider", false).get_value();
|
||||
utype["experience"] = find_widget<slider>(grid, "xp_slider", false).get_value();
|
||||
utype["cost"] = find_widget<slider>(grid, "cost_slider", false).get_value();
|
||||
utype["movement"] = find_widget<slider>(grid, "move_slider", false).get_value();
|
||||
utype["description"] = t_string(find_widget<scroll_text>(grid, "desc_box", false).get_value(), current_textdomain);
|
||||
utype["race"] = find_widget<menu_button>(grid, "race_list", false).get_value_string();
|
||||
utype["alignment"] = unit_alignments::values[find_widget<menu_button>(grid, "alignment_list", false).get_value()];
|
||||
utype["id"] = grid->find_widget<text_box>("id_box").get_value();
|
||||
utype["name"] = t_string(grid->find_widget<text_box>("name_box").get_value(), current_textdomain);
|
||||
utype["image"] = grid->find_widget<text_box>("path_unit_image").get_value();
|
||||
utype["profile"] = grid->find_widget<text_box>("path_portrait_image").get_value();
|
||||
utype["level"] = grid->find_widget<spinner>("level_box").get_value();
|
||||
utype["advances_to"] = grid->find_widget<text_box>("adv_box").get_value();
|
||||
utype["hitpoints"] = grid->find_widget<slider>("hp_slider").get_value();
|
||||
utype["experience"] = grid->find_widget<slider>("xp_slider").get_value();
|
||||
utype["cost"] = grid->find_widget<slider>("cost_slider").get_value();
|
||||
utype["movement"] = grid->find_widget<slider>("move_slider").get_value();
|
||||
utype["description"] = t_string(grid->find_widget<scroll_text>("desc_box").get_value(), current_textdomain);
|
||||
utype["race"] = grid->find_widget<menu_button>("race_list").get_value_string();
|
||||
utype["alignment"] = unit_alignments::values[grid->find_widget<menu_button>("alignment_list").get_value()];
|
||||
|
||||
// Gender
|
||||
if (find_widget<toggle_button>(grid, "gender_male", false).get_value()) {
|
||||
if (find_widget<toggle_button>(grid, "gender_female", false).get_value()) {
|
||||
if (grid->find_widget<toggle_button>("gender_male").get_value()) {
|
||||
if (grid->find_widget<toggle_button>("gender_female").get_value()) {
|
||||
utype["gender"] = "male,female";
|
||||
} else {
|
||||
utype["gender"] = "male";
|
||||
}
|
||||
} else {
|
||||
if (find_widget<toggle_button>(grid, "gender_female", false).get_value()) {
|
||||
if (grid->find_widget<toggle_button>("gender_female").get_value()) {
|
||||
utype["gender"] = "female";
|
||||
}
|
||||
}
|
||||
|
@ -525,9 +523,9 @@ void editor_edit_unit::save_unit_type() {
|
|||
// Page 2
|
||||
grid = tabs.get_tab_grid(1);
|
||||
|
||||
utype["small_profile"] = find_widget<text_box>(grid, "path_small_profile_image", false).get_value();
|
||||
utype["movement_type"] = find_widget<menu_button>(grid, "movetype_list", false).get_value_string();
|
||||
utype["usage"] = find_widget<menu_button>(grid, "usage_list", false).get_value_string();
|
||||
utype["small_profile"] = grid->find_widget<text_box>("path_small_profile_image").get_value();
|
||||
utype["movement_type"] = grid->find_widget<menu_button>("movetype_list").get_value_string();
|
||||
utype["usage"] = grid->find_widget<menu_button>("usage_list").get_value_string();
|
||||
|
||||
if (res_toggles_.any()) {
|
||||
config& resistances = utype.add_child("resistance");
|
||||
|
@ -562,7 +560,7 @@ void editor_edit_unit::save_unit_type() {
|
|||
}
|
||||
}
|
||||
|
||||
const auto& abilities_states = find_widget<multimenu_button>(grid, "abilities_list", false).get_toggle_states();
|
||||
const auto& abilities_states = grid->find_widget<multimenu_button>("abilities_list").get_toggle_states();
|
||||
if (abilities_states.any()) {
|
||||
unsigned int i = 0;
|
||||
sel_abilities_.clear();
|
||||
|
@ -583,72 +581,72 @@ void editor_edit_unit::save_unit_type() {
|
|||
}
|
||||
|
||||
void editor_edit_unit::update_resistances() {
|
||||
find_widget<slider>(get_window(), "resistances_slider", false)
|
||||
find_widget<slider>("resistances_slider")
|
||||
.set_value(
|
||||
100 - resistances_[find_widget<menu_button>(get_window(), "resistances_list", false).get_value_string()]);
|
||||
100 - resistances_[find_widget<menu_button>("resistances_list").get_value_string()]);
|
||||
|
||||
find_widget<slider>(get_window(), "resistances_slider", false)
|
||||
.set_active(res_toggles_[find_widget<menu_button>(get_window(), "resistances_list", false).get_value()]);
|
||||
find_widget<slider>("resistances_slider")
|
||||
.set_active(res_toggles_[find_widget<menu_button>("resistances_list").get_value()]);
|
||||
|
||||
find_widget<toggle_button>(get_window(), "resistances_checkbox", false)
|
||||
.set_value(res_toggles_[find_widget<menu_button>(get_window(), "resistances_list", false).get_value()]);
|
||||
find_widget<toggle_button>("resistances_checkbox")
|
||||
.set_value(res_toggles_[find_widget<menu_button>("resistances_list").get_value()]);
|
||||
}
|
||||
|
||||
void editor_edit_unit::store_resistances() {
|
||||
resistances_[find_widget<menu_button>(get_window(), "resistances_list", false).get_value_string()]
|
||||
= 100 - find_widget<slider>(get_window(), "resistances_slider", false).get_value();
|
||||
resistances_[find_widget<menu_button>("resistances_list").get_value_string()]
|
||||
= 100 - find_widget<slider>("resistances_slider").get_value();
|
||||
}
|
||||
|
||||
void editor_edit_unit::enable_resistances_slider() {
|
||||
bool toggle = find_widget<toggle_button>(get_window(), "resistances_checkbox", false).get_value();
|
||||
res_toggles_[find_widget<menu_button>(get_window(), "resistances_list", false).get_value()] = toggle;
|
||||
find_widget<slider>(get_window(), "resistances_slider", false).set_active(toggle);
|
||||
bool toggle = find_widget<toggle_button>("resistances_checkbox").get_value();
|
||||
res_toggles_[find_widget<menu_button>("resistances_list").get_value()] = toggle;
|
||||
find_widget<slider>("resistances_slider").set_active(toggle);
|
||||
}
|
||||
|
||||
void editor_edit_unit::update_defenses() {
|
||||
find_widget<slider>(get_window(), "defense_slider", false)
|
||||
find_widget<slider>("defense_slider")
|
||||
.set_value(
|
||||
100 - defenses_[find_widget<menu_button>(get_window(), "defense_list", false).get_value_string()]);
|
||||
100 - defenses_[find_widget<menu_button>("defense_list").get_value_string()]);
|
||||
|
||||
find_widget<slider>(get_window(), "defense_slider", false)
|
||||
.set_active(def_toggles_[find_widget<menu_button>(get_window(), "defense_list", false).get_value()]);
|
||||
find_widget<slider>("defense_slider")
|
||||
.set_active(def_toggles_[find_widget<menu_button>("defense_list").get_value()]);
|
||||
|
||||
find_widget<toggle_button>(get_window(), "defense_checkbox", false)
|
||||
.set_value(def_toggles_[find_widget<menu_button>(get_window(), "defense_list", false).get_value()]);
|
||||
find_widget<toggle_button>("defense_checkbox")
|
||||
.set_value(def_toggles_[find_widget<menu_button>("defense_list").get_value()]);
|
||||
}
|
||||
|
||||
void editor_edit_unit::store_defenses() {
|
||||
defenses_[find_widget<menu_button>(get_window(), "defense_list", false).get_value_string()]
|
||||
= 100 - find_widget<slider>(get_window(), "defense_slider", false).get_value();
|
||||
defenses_[find_widget<menu_button>("defense_list").get_value_string()]
|
||||
= 100 - find_widget<slider>("defense_slider").get_value();
|
||||
}
|
||||
|
||||
void editor_edit_unit::enable_defense_slider() {
|
||||
bool toggle = find_widget<toggle_button>(get_window(), "defense_checkbox", false).get_value();
|
||||
def_toggles_[find_widget<menu_button>(get_window(), "defense_list", false).get_value()] = toggle;
|
||||
find_widget<slider>(get_window(), "defense_slider", false).set_active(toggle);
|
||||
bool toggle = find_widget<toggle_button>("defense_checkbox").get_value();
|
||||
def_toggles_[find_widget<menu_button>("defense_list").get_value()] = toggle;
|
||||
find_widget<slider>("defense_slider").set_active(toggle);
|
||||
}
|
||||
|
||||
void editor_edit_unit::update_movement_costs() {
|
||||
find_widget<slider>(get_window(), "movement_costs_slider", false)
|
||||
find_widget<slider>("movement_costs_slider")
|
||||
.set_value(
|
||||
movement_[find_widget<menu_button>(get_window(), "movement_costs_list", false).get_value_string()]);
|
||||
movement_[find_widget<menu_button>("movement_costs_list").get_value_string()]);
|
||||
|
||||
find_widget<slider>(get_window(), "movement_costs_slider", false)
|
||||
.set_active(move_toggles_[find_widget<menu_button>(get_window(), "movement_costs_list", false).get_value()]);
|
||||
find_widget<slider>("movement_costs_slider")
|
||||
.set_active(move_toggles_[find_widget<menu_button>("movement_costs_list").get_value()]);
|
||||
|
||||
find_widget<toggle_button>(get_window(), "movement_costs_checkbox", false)
|
||||
.set_value(move_toggles_[find_widget<menu_button>(get_window(), "movement_costs_list", false).get_value()]);
|
||||
find_widget<toggle_button>("movement_costs_checkbox")
|
||||
.set_value(move_toggles_[find_widget<menu_button>("movement_costs_list").get_value()]);
|
||||
}
|
||||
|
||||
void editor_edit_unit::store_movement_costs() {
|
||||
movement_[find_widget<menu_button>(get_window(), "movement_costs_list", false).get_value_string()]
|
||||
= find_widget<slider>(get_window(), "movement_costs_slider", false).get_value();
|
||||
movement_[find_widget<menu_button>("movement_costs_list").get_value_string()]
|
||||
= find_widget<slider>("movement_costs_slider").get_value();
|
||||
}
|
||||
|
||||
void editor_edit_unit::enable_movement_slider() {
|
||||
bool toggle = find_widget<toggle_button>(get_window(), "movement_costs_checkbox", false).get_value();
|
||||
move_toggles_[find_widget<menu_button>(get_window(), "movement_costs_list", false).get_value()] = toggle;
|
||||
find_widget<slider>(get_window(), "movement_costs_slider", false).set_active(toggle);
|
||||
bool toggle = find_widget<toggle_button>("movement_costs_checkbox").get_value();
|
||||
move_toggles_[find_widget<menu_button>("movement_costs_list").get_value()] = toggle;
|
||||
find_widget<slider>("movement_costs_slider").set_active(toggle);
|
||||
}
|
||||
|
||||
void editor_edit_unit::store_attack() {
|
||||
|
@ -662,19 +660,19 @@ void editor_edit_unit::store_attack() {
|
|||
|
||||
config& attack = attacks_.at(selected_attack_-1).second;
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(2);
|
||||
|
||||
attack["name"] = find_widget<text_box>(get_window(), "atk_id_box", false).get_value();
|
||||
attack["description"] = t_string(find_widget<text_box>(get_window(), "atk_name_box", false).get_value(), current_textdomain);
|
||||
attack["icon"] = find_widget<text_box>(get_window(), "path_attack_image", false).get_value();
|
||||
attack["type"] = find_widget<combobox>(get_window(), "attack_type_list", false).get_value();
|
||||
attack["damage"] = find_widget<slider>(get_window(), "dmg_box", false).get_value();
|
||||
attack["number"] = find_widget<slider>(get_window(), "dmg_num_box", false).get_value();
|
||||
attack["range"] = find_widget<combobox>(get_window(), "range_list", false).get_value();
|
||||
attack["name"] = find_widget<text_box>("atk_id_box").get_value();
|
||||
attack["description"] = t_string(find_widget<text_box>("atk_name_box").get_value(), current_textdomain);
|
||||
attack["icon"] = find_widget<text_box>("path_attack_image").get_value();
|
||||
attack["type"] = find_widget<menu_button>("attack_type_list").get_value_string();
|
||||
attack["damage"] = find_widget<slider>("dmg_box").get_value();
|
||||
attack["number"] = find_widget<slider>("dmg_num_box").get_value();
|
||||
attack["range"] = find_widget<combobox>("range_list").get_value();
|
||||
|
||||
attacks_.at(selected_attack_-1).first = find_widget<multimenu_button>(get_window(), "weapon_specials_list", false).get_toggle_states();
|
||||
attacks_.at(selected_attack_-1).first = find_widget<multimenu_button>("weapon_specials_list").get_toggle_states();
|
||||
|
||||
tabs.select_tab(prev_tab);
|
||||
}
|
||||
|
@ -687,51 +685,51 @@ void editor_edit_unit::update_attacks() {
|
|||
|
||||
config& attack = attacks_.at(selected_attack_-1).second;
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(2);
|
||||
|
||||
find_widget<text_box>(get_window(), "atk_id_box", false).set_value(attack["name"]);
|
||||
find_widget<text_box>(get_window(), "atk_name_box", false).set_value(attack["description"]);
|
||||
find_widget<text_box>(get_window(), "path_attack_image", false).set_value(attack["icon"]);
|
||||
find_widget<text_box>("atk_id_box").set_value(attack["name"]);
|
||||
find_widget<text_box>("atk_name_box").set_value(attack["description"]);
|
||||
find_widget<text_box>("path_attack_image").set_value(attack["icon"]);
|
||||
update_image("attack_image");
|
||||
find_widget<slider>(get_window(), "dmg_box", false).set_value(attack["damage"]);
|
||||
find_widget<slider>(get_window(), "dmg_num_box", false).set_value(attack["number"]);
|
||||
find_widget<combobox>(get_window(), "range_list", false).set_value(attack["range"]);
|
||||
find_widget<slider>("dmg_box").set_value(attack["damage"]);
|
||||
find_widget<slider>("dmg_num_box").set_value(attack["number"]);
|
||||
find_widget<combobox>("range_list").set_value(attack["range"]);
|
||||
|
||||
set_selected_from_string(
|
||||
find_widget<combobox>(get_window(), "attack_type_list", false),
|
||||
resistances_list_,
|
||||
attack["type"]);
|
||||
find_widget<menu_button>("attack_type_list"),
|
||||
resistances_list_,
|
||||
attack["type"]);
|
||||
|
||||
find_widget<multimenu_button>(get_window(), "weapon_specials_list", false)
|
||||
find_widget<multimenu_button>("weapon_specials_list")
|
||||
.select_options(attacks_.at(selected_attack_-1).first);
|
||||
|
||||
tabs.select_tab(prev_tab);
|
||||
}
|
||||
|
||||
void editor_edit_unit::update_index() {
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(2);
|
||||
|
||||
find_widget<button>(get_window(), "atk_prev", false).set_active(selected_attack_ > 1);
|
||||
find_widget<button>(get_window(), "atk_delete", false).set_active(selected_attack_ > 0);
|
||||
find_widget<button>(get_window(), "atk_next", false).set_active(selected_attack_ != attacks_.size());
|
||||
find_widget<button>("atk_prev").set_active(selected_attack_ > 1);
|
||||
find_widget<button>("atk_delete").set_active(selected_attack_ > 0);
|
||||
find_widget<button>("atk_next").set_active(selected_attack_ != attacks_.size());
|
||||
|
||||
if (!attacks_.empty()) {
|
||||
std::vector<config> atk_name_list;
|
||||
for(const auto& atk_data : attacks_) {
|
||||
atk_name_list.emplace_back("label", atk_data.second["name"]);
|
||||
}
|
||||
menu_button& atk_list = find_widget<menu_button>(get_window(), "atk_list", false);
|
||||
menu_button& atk_list = find_widget<menu_button>("atk_list");
|
||||
atk_list.set_values(atk_name_list);
|
||||
atk_list.set_selected(selected_attack_-1, false);
|
||||
}
|
||||
|
||||
//Set index
|
||||
const std::string new_index_str = formatter() << selected_attack_ << "/" << attacks_.size();
|
||||
find_widget<label>(get_window(), "atk_number", false).set_label(new_index_str);
|
||||
find_widget<label>("atk_number").set_label(new_index_str);
|
||||
|
||||
tabs.select_tab(prev_tab);
|
||||
}
|
||||
|
@ -740,25 +738,25 @@ void editor_edit_unit::add_attack() {
|
|||
// Textdomain
|
||||
std::string current_textdomain = "wesnoth-"+addon_id_;
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(2);
|
||||
|
||||
config attack;
|
||||
|
||||
attack["name"] = find_widget<text_box>(get_window(), "atk_id_box", false).get_value();
|
||||
attack["description"] = t_string(find_widget<text_box>(get_window(), "atk_name_box", false).get_value(), current_textdomain);
|
||||
attack["icon"] = find_widget<text_box>(get_window(), "path_attack_image", false).get_value();
|
||||
attack["type"] = find_widget<combobox>(get_window(), "attack_type_list", false).get_value();
|
||||
attack["damage"] = find_widget<slider>(get_window(), "dmg_box", false).get_value();
|
||||
attack["number"] = find_widget<slider>(get_window(), "dmg_num_box", false).get_value();
|
||||
attack["range"] = find_widget<combobox>(get_window(), "range_list", false).get_value();
|
||||
attack["name"] = find_widget<text_box>("atk_id_box").get_value();
|
||||
attack["description"] = t_string(find_widget<text_box>("atk_name_box").get_value(), current_textdomain);
|
||||
attack["icon"] = find_widget<text_box>("path_attack_image").get_value();
|
||||
attack["type"] = find_widget<combobox>("attack_type_list").get_value();
|
||||
attack["damage"] = find_widget<slider>("dmg_box").get_value();
|
||||
attack["number"] = find_widget<slider>("dmg_num_box").get_value();
|
||||
attack["range"] = find_widget<combobox>("range_list").get_value();
|
||||
|
||||
selected_attack_++;
|
||||
|
||||
attacks_.insert(
|
||||
attacks_.begin() + selected_attack_ - 1
|
||||
, std::make_pair(find_widget<multimenu_button>(get_window(), "weapon_specials_list", false).get_toggle_states(), attack));
|
||||
, std::make_pair(find_widget<multimenu_button>("weapon_specials_list").get_toggle_states(), attack));
|
||||
|
||||
update_index();
|
||||
|
||||
|
@ -766,7 +764,7 @@ void editor_edit_unit::add_attack() {
|
|||
}
|
||||
|
||||
void editor_edit_unit::delete_attack() {
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(2);
|
||||
|
||||
|
@ -778,7 +776,7 @@ void editor_edit_unit::delete_attack() {
|
|||
if (attacks_.empty()) {
|
||||
// clear fields instead since there are no attacks to show
|
||||
selected_attack_ = 0;
|
||||
find_widget<button>(get_window(), "atk_delete", false).set_active(false);
|
||||
find_widget<button>("atk_delete").set_active(false);
|
||||
} else if (selected_attack_ == 1) {
|
||||
// 1st attack removed, show the next one
|
||||
next_attack();
|
||||
|
@ -818,21 +816,21 @@ void editor_edit_unit::prev_attack() {
|
|||
}
|
||||
|
||||
void editor_edit_unit::select_attack() {
|
||||
selected_attack_ = find_widget<menu_button>(get_window(), "atk_list", false).get_value()+1;
|
||||
selected_attack_ = find_widget<menu_button>("atk_list").get_value()+1;
|
||||
update_attacks();
|
||||
update_index();
|
||||
}
|
||||
|
||||
//TODO Check if works with non-mainline movetypes
|
||||
void editor_edit_unit::load_movetype() {
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
int prev_tab = tabs.get_active_tab_index();
|
||||
tabs.select_tab(1);
|
||||
|
||||
for(const auto& movetype : game_config_
|
||||
.mandatory_child("units")
|
||||
.child_range("movetype")) {
|
||||
if (movetype["name"] == find_widget<menu_button>(get_window(), "movetype_list", false).get_value_string()) {
|
||||
if (movetype["name"] == find_widget<menu_button>("movetype_list").get_value_string()) {
|
||||
// Set resistances
|
||||
resistances_ = movetype.mandatory_child("resistance");
|
||||
update_resistances();
|
||||
|
@ -861,7 +859,7 @@ void editor_edit_unit::update_wml_view() {
|
|||
store_attack();
|
||||
save_unit_type();
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
tabs.select_tab(3);
|
||||
|
||||
std::stringstream wml_stream;
|
||||
|
@ -977,11 +975,11 @@ void editor_edit_unit::update_wml_view() {
|
|||
|
||||
generated_wml = wml_stream.str();
|
||||
|
||||
find_widget<scroll_text>(get_window(), "wml_view", false).set_label(generated_wml);
|
||||
find_widget<scroll_text>("wml_view").set_label(generated_wml);
|
||||
}
|
||||
|
||||
void editor_edit_unit::update_image(const std::string& id_stem) {
|
||||
std::string rel_path = find_widget<text_box>(get_window(), "path_"+id_stem, false).get_value();
|
||||
std::string rel_path = find_widget<text_box>("path_"+id_stem).get_value();
|
||||
|
||||
// remove IPF
|
||||
if (rel_path.find("~") != std::string::npos) {
|
||||
|
@ -1001,9 +999,9 @@ void editor_edit_unit::update_image(const std::string& id_stem) {
|
|||
|
||||
if (id_stem == "portrait_image") {
|
||||
// portrait image uses same [image] as unit_image
|
||||
find_widget<image>(get_window(), "unit_image", false).set_label(rel_path);
|
||||
find_widget<image>("unit_image").set_label(rel_path);
|
||||
} else {
|
||||
find_widget<image>(get_window(), id_stem, false).set_label(rel_path);
|
||||
find_widget<image>(id_stem).set_label(rel_path);
|
||||
}
|
||||
|
||||
invalidate_layout();
|
||||
|
@ -1021,12 +1019,12 @@ bool editor_edit_unit::check_id(std::string id) {
|
|||
}
|
||||
|
||||
void editor_edit_unit::button_state_change() {
|
||||
tab_container& tabs = find_widget<tab_container>(get_window(), "tabs", false);
|
||||
grid* grid = find_widget<tab_container>("tabs").get_tab_grid(0);
|
||||
|
||||
std::string id = grid->find_widget<text_box>("id_box").get_value();
|
||||
std::string name = grid->find_widget<text_box>("name_box").get_value();
|
||||
|
||||
std::string id = find_widget<text_box>(tabs.get_tab_grid(0), "id_box", false).get_value();
|
||||
std::string name = find_widget<text_box>(tabs.get_tab_grid(0), "name_box", false).get_value();
|
||||
|
||||
find_widget<button>(get_window(), "ok", false).set_active(!id.empty() && !name.empty() && check_id(id));
|
||||
find_widget<button>("ok").set_active(!id.empty() && !name.empty() && check_id(id));
|
||||
|
||||
queue_redraw();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/editor/generate_map.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
|
@ -45,14 +44,14 @@ editor_generate_map::editor_generate_map(std::vector<std::unique_ptr<map_generat
|
|||
|
||||
void editor_generate_map::do_generator_selected()
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "generators_list", false);
|
||||
listbox& list = find_widget<listbox>("generators_list");
|
||||
const int current = list.get_selected_row();
|
||||
|
||||
if(current == -1 || static_cast<unsigned>(current) > map_generators_.size()) {
|
||||
return; // shouldn't happen!
|
||||
}
|
||||
|
||||
button& settings = find_widget<button>(get_window(), "settings", false);
|
||||
button& settings = find_widget<button>("settings");
|
||||
settings.set_active(map_generators_[current]->allow_user_config());
|
||||
|
||||
current_map_generator_ = current;
|
||||
|
@ -81,7 +80,7 @@ void editor_generate_map::pre_show(window& window)
|
|||
|
||||
register_text("seed_textbox", false, random_seed_, false);
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "generators_list", false);
|
||||
listbox& list = find_widget<listbox>("generators_list");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
widget_data lrow;
|
||||
|
@ -108,7 +107,7 @@ void editor_generate_map::pre_show(window& window)
|
|||
connect_signal_notify_modified(list,
|
||||
std::bind(&editor_generate_map::do_generator_selected, this));
|
||||
|
||||
button& settings_button = find_widget<button>(&window, "settings", false);
|
||||
button& settings_button = find_widget<button>("settings");
|
||||
connect_signal_mouse_left_click(
|
||||
settings_button,
|
||||
std::bind(&editor_generate_map::do_settings,this));
|
||||
|
|
|
@ -58,18 +58,18 @@ void generator_settings::pre_show(window& window)
|
|||
connect_signal_notify_modified(*players_->get_widget(), std::bind(
|
||||
&generator_settings::adjust_minimum_size_by_players, this));
|
||||
|
||||
gui2::bind_status_label<slider>(&window, "players");
|
||||
gui2::bind_status_label<slider>(this, "players");
|
||||
|
||||
update_width_label_ = gui2::bind_status_label<slider>(&window, "width");
|
||||
update_height_label_ = gui2::bind_status_label<slider>(&window, "height");
|
||||
update_width_label_ = gui2::bind_status_label<slider>(this, "width");
|
||||
update_height_label_ = gui2::bind_status_label<slider>(this, "height");
|
||||
|
||||
// Update min size initially.
|
||||
// Do this *after* assigning the 'update_*_label_` functions or the game will crash!
|
||||
adjust_minimum_size_by_players();
|
||||
|
||||
gui2::bind_status_label<slider>(&window, "villages", [](const slider& s) { return t_string(formatter() << s.get_value() << _("/1000 tiles")); });
|
||||
gui2::bind_status_label<slider>(&window, "castle_size");
|
||||
gui2::bind_status_label<slider>(&window, "landform", [](const slider& s) {
|
||||
gui2::bind_status_label<slider>(this, "villages", [](const slider& s) { return t_string(formatter() << s.get_value() << _("/1000 tiles")); });
|
||||
gui2::bind_status_label<slider>(this, "castle_size");
|
||||
gui2::bind_status_label<slider>(this, "landform", [](const slider& s) {
|
||||
return s.get_value() == 0 ? _("Inland") : (s.get_value() < max_coastal ? _("Coastal") : _("Island")); });
|
||||
}
|
||||
|
||||
|
|
|
@ -48,12 +48,12 @@ editor_resize_map::editor_resize_map(int& width,
|
|||
|
||||
void editor_resize_map::pre_show(window& window)
|
||||
{
|
||||
slider& height = find_widget<slider>(&window, "height", false);
|
||||
slider& height = find_widget<slider>("height");
|
||||
connect_signal_notify_modified(
|
||||
height,
|
||||
std::bind(&editor_resize_map::update_expand_direction, this));
|
||||
|
||||
slider& width = find_widget<slider>(&window, "width", false);
|
||||
slider& width = find_widget<slider>("width");
|
||||
connect_signal_notify_modified(
|
||||
width,
|
||||
std::bind(&editor_resize_map::update_expand_direction, this));
|
||||
|
@ -62,7 +62,7 @@ void editor_resize_map::pre_show(window& window)
|
|||
for(int i = 0; i < 9; ++i) {
|
||||
std::string name = name_prefix + std::to_string(i);
|
||||
direction_buttons_[i]
|
||||
= find_widget<toggle_button>(&window, name, false, true);
|
||||
= find_widget<toggle_button>(name, false, true);
|
||||
|
||||
connect_signal_notify_modified(*direction_buttons_[i],
|
||||
std::bind(&editor_resize_map::update_expand_direction, this));
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "gui/dialogs/editor/tod_new_schedule.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
||||
|
@ -36,27 +35,27 @@ tod_new_schedule::tod_new_schedule(std::string& schedule_id, t_string& schedule_
|
|||
}
|
||||
|
||||
void tod_new_schedule::pre_show(window& win) {
|
||||
find_widget<text_box>(&win, "id_box", false).set_value(schedule_id_);
|
||||
find_widget<text_box>(&win, "name_box", false).set_value(schedule_name_);
|
||||
find_widget<text_box>("id_box").set_value(schedule_id_);
|
||||
find_widget<text_box>("name_box").set_value(schedule_name_);
|
||||
|
||||
find_widget<button>(get_window(), "ok", false).set_active(false);
|
||||
find_widget<button>("ok").set_active(false);
|
||||
|
||||
connect_signal_notify_modified(
|
||||
find_widget<text_box>(&win, "name_box", false),
|
||||
find_widget<text_box>("name_box"),
|
||||
std::bind(&tod_new_schedule::button_state_change, this));
|
||||
connect_signal_notify_modified(
|
||||
find_widget<text_box>(&win, "id_box", false),
|
||||
find_widget<text_box>("id_box"),
|
||||
std::bind(&tod_new_schedule::button_state_change, this));
|
||||
}
|
||||
|
||||
void tod_new_schedule::button_state_change() {
|
||||
if (
|
||||
find_widget<text_box>(get_window(), "id_box", false).get_value().empty()
|
||||
|| find_widget<text_box>(get_window(), "name_box", false).get_value().empty())
|
||||
find_widget<text_box>("id_box").get_value().empty()
|
||||
|| find_widget<text_box>("name_box").get_value().empty())
|
||||
{
|
||||
find_widget<button>(get_window(), "ok", false).set_active(false);
|
||||
find_widget<button>("ok").set_active(false);
|
||||
} else {
|
||||
find_widget<button>(get_window(), "ok", false).set_active(true);
|
||||
find_widget<button>("ok").set_active(true);
|
||||
}
|
||||
|
||||
get_window()->queue_redraw();
|
||||
|
@ -64,8 +63,8 @@ void tod_new_schedule::button_state_change() {
|
|||
|
||||
void tod_new_schedule::post_show(window& win)
|
||||
{
|
||||
schedule_id_ = find_widget<text_box>(&win, "id_box", false).get_value();
|
||||
schedule_name_ = find_widget<text_box>(&win, "name_box", false).get_value();
|
||||
schedule_id_ = find_widget<text_box>("id_box").get_value();
|
||||
schedule_name_ = find_widget<text_box>("name_box").get_value();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "about.hpp"
|
||||
#include "game_config.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
#include "gui/widgets/scrollbar.hpp"
|
||||
#include "gui/widgets/scroll_label.hpp"
|
||||
|
@ -87,7 +86,7 @@ void end_credits::pre_show(window& window)
|
|||
// TODO: implement showing all available images as the credits scroll
|
||||
window.get_canvas(0).set_variable("background_image", wfl::variant(backgrounds_[0]));
|
||||
|
||||
text_widget_ = find_widget<scroll_label>(&window, "text", false, true);
|
||||
text_widget_ = find_widget<scroll_label>("text", false, true);
|
||||
|
||||
text_widget_->set_use_markup(true);
|
||||
text_widget_->set_link_aware(false);
|
||||
|
@ -120,11 +119,11 @@ void end_credits::pre_show(window& window)
|
|||
// This should probably be implemented as a scrollbar mode.
|
||||
// Also, for some reason hiding the whole grid doesn't work, and the elements need to be hidden manually
|
||||
if(grid* v_grid = dynamic_cast<grid*>(text_widget_->find("_vertical_scrollbar_grid", false))) {
|
||||
find_widget<scrollbar_base>(v_grid, "_vertical_scrollbar", false).set_visible(widget::visibility::hidden);
|
||||
v_grid->find_widget<scrollbar_base>("_vertical_scrollbar").set_visible(widget::visibility::hidden);
|
||||
|
||||
// TODO: enable again if e24336afeb7 is reverted.
|
||||
//find_widget<repeating_button>(v_grid, "_half_page_up", false).set_visible(widget::visibility::hidden);
|
||||
//find_widget<repeating_button>(v_grid, "_half_page_down", false).set_visible(widget::visibility::hidden);
|
||||
//v_grid.find_widget<repeating_button>("_half_page_up").set_visible(widget::visibility::hidden);
|
||||
//v_grid.find_widget<repeating_button>("_half_page_down").set_visible(widget::visibility::hidden);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "desktop/open.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "formula/string_utils.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/folder_create.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/dialogs/transient_message.hpp"
|
||||
|
@ -167,12 +166,12 @@ void file_dialog::check_filename() {
|
|||
return;
|
||||
}
|
||||
|
||||
text_box& file_textbox = find_widget<text_box>(get_window(), "filename", false);
|
||||
button& save_btn = find_widget<button>(get_window(), "ok", false);
|
||||
text_box& file_textbox = find_widget<text_box>("filename");
|
||||
button& save_btn = find_widget<button>("ok");
|
||||
|
||||
// empty filename
|
||||
const std::string& filename = file_textbox.get_value();
|
||||
styled_widget& validation_msg = find_widget<styled_widget>(get_window(), "validation_msg", false);
|
||||
styled_widget& validation_msg = find_widget<styled_widget>("validation_msg");
|
||||
|
||||
bool stat_invalid = filename.empty() || (filename.substr(0,1) == ".");
|
||||
bool wrong_ext = false;
|
||||
|
@ -214,9 +213,9 @@ void file_dialog::check_filename() {
|
|||
|
||||
void file_dialog::pre_show(window& window)
|
||||
{
|
||||
styled_widget& title = find_widget<styled_widget>(&window, "title", false);
|
||||
styled_widget& message = find_widget<styled_widget>(&window, "message", false);
|
||||
styled_widget& ok = find_widget<styled_widget>(&window, "ok", false);
|
||||
styled_widget& title = find_widget<styled_widget>("title");
|
||||
styled_widget& message = find_widget<styled_widget>("message");
|
||||
styled_widget& ok = find_widget<styled_widget>("ok");
|
||||
|
||||
title.set_label(title_);
|
||||
|
||||
|
@ -233,9 +232,9 @@ void file_dialog::pre_show(window& window)
|
|||
ok.set_label(ok_label_);
|
||||
}
|
||||
|
||||
listbox& bookmarks_bar = find_widget<listbox>(&window, "bookmarks", false);
|
||||
listbox& bookmarks_bar = find_widget<listbox>("bookmarks");
|
||||
|
||||
find_widget<styled_widget>(&window, "current_dir", false).set_text_ellipse_mode(PANGO_ELLIPSIZE_START);
|
||||
find_widget<styled_widget>("current_dir").set_text_ellipse_mode(PANGO_ELLIPSIZE_START);
|
||||
|
||||
//
|
||||
// Push hard-coded bookmarks.
|
||||
|
@ -276,8 +275,8 @@ void file_dialog::pre_show(window& window)
|
|||
|
||||
sync_bookmarks_bar();
|
||||
|
||||
listbox& filelist = find_widget<listbox>(&window, "filelist", false);
|
||||
text_box& file_textbox = find_widget<text_box>(get_window(), "filename", false);
|
||||
listbox& filelist = find_widget<listbox>("filelist");
|
||||
text_box& file_textbox = find_widget<text_box>("filename");
|
||||
|
||||
connect_signal_notify_modified(filelist,
|
||||
std::bind(&file_dialog::on_row_selected, this));
|
||||
|
@ -288,11 +287,11 @@ void file_dialog::pre_show(window& window)
|
|||
|
||||
check_filename();
|
||||
|
||||
button& mkdir_button = find_widget<button>(&window, "new_dir", false);
|
||||
button& rm_button = find_widget<button>(&window, "delete_file", false);
|
||||
button& bookmark_add_button = find_widget<button>(&window, "add_bookmark", false);
|
||||
button& bookmark_del_button = find_widget<button>(&window, "remove_bookmark", false);
|
||||
button& open_ext_button = find_widget<button>(&window, "open_ext", false);
|
||||
button& mkdir_button = find_widget<button>("new_dir");
|
||||
button& rm_button = find_widget<button>("delete_file");
|
||||
button& bookmark_add_button = find_widget<button>("add_bookmark");
|
||||
button& bookmark_del_button = find_widget<button>("remove_bookmark");
|
||||
button& open_ext_button = find_widget<button>("open_ext");
|
||||
|
||||
connect_signal_mouse_left_click(mkdir_button,
|
||||
std::bind(&file_dialog::on_dir_create_cmd, this));
|
||||
|
@ -321,7 +320,7 @@ void file_dialog::pre_show(window& window)
|
|||
|
||||
refresh_fileview();
|
||||
|
||||
//window.keyboard_capture(find_widget<text_box>(&window, "filename", false, true));
|
||||
//window.keyboard_capture(find_widget<text_box>("filename", false, true));
|
||||
window.keyboard_capture(&file_textbox);
|
||||
window.add_to_keyboard_chain(&filelist);
|
||||
window.set_exit_hook(window::exit_hook::on_all, std::bind(&file_dialog::on_exit, this, std::placeholders::_1));
|
||||
|
@ -408,14 +407,14 @@ bool file_dialog::process_submit_common(const std::string& name)
|
|||
|
||||
bool file_dialog::process_fileview_submit()
|
||||
{
|
||||
listbox& filelist = find_widget<listbox>(get_window(), "filelist", false);
|
||||
listbox& filelist = find_widget<listbox>("filelist");
|
||||
const std::string& selected_name = get_filelist_selection(filelist);
|
||||
return process_submit_common(selected_name);
|
||||
}
|
||||
|
||||
bool file_dialog::process_textbox_submit()
|
||||
{
|
||||
text_box& file_textbox = find_widget<text_box>(get_window(), "filename", false);
|
||||
text_box& file_textbox = find_widget<text_box>("filename");
|
||||
const std::string& input_name = file_textbox.get_value();
|
||||
return !input_name.empty() && process_submit_common(input_name);
|
||||
}
|
||||
|
@ -558,8 +557,8 @@ void file_dialog::refresh_fileview()
|
|||
// Clear and refill the filelist box.
|
||||
//
|
||||
|
||||
listbox& filelist = find_widget<listbox>(get_window(), "filelist", false);
|
||||
button& rm_button = find_widget<button>(get_window(), "delete_file", false);
|
||||
listbox& filelist = find_widget<listbox>("filelist");
|
||||
button& rm_button = find_widget<button>("delete_file");
|
||||
|
||||
filelist.clear();
|
||||
|
||||
|
@ -584,8 +583,8 @@ void file_dialog::refresh_fileview()
|
|||
push_fileview_row(filelist, file, icon_file);
|
||||
}
|
||||
|
||||
find_widget<styled_widget>(get_window(), "current_dir", false).set_label(current_dir_);
|
||||
set_input_text(find_widget<text_box>(get_window(), "filename", false), current_entry_);
|
||||
find_widget<styled_widget>("current_dir").set_label(current_dir_);
|
||||
set_input_text(find_widget<text_box>("filename"), current_entry_);
|
||||
|
||||
on_row_selected();
|
||||
}
|
||||
|
@ -608,8 +607,9 @@ void file_dialog::push_fileview_row(listbox& filelist, const std::string& name,
|
|||
// events for all rows using the GUI2 listbox API. Assign a special retval to
|
||||
// each row that triggers a special check during dialog exit.
|
||||
//
|
||||
find_widget<toggle_panel>(&last_grid, "item_panel", false)
|
||||
.set_retval(FILE_DIALOG_ITEM_RETVAL);
|
||||
last_grid
|
||||
.find_widget<toggle_panel>("item_panel")
|
||||
.set_retval(FILE_DIALOG_ITEM_RETVAL);
|
||||
|
||||
if(check_selection && name == current_entry_) {
|
||||
filelist.select_last_row(true);
|
||||
|
@ -618,7 +618,7 @@ void file_dialog::push_fileview_row(listbox& filelist, const std::string& name,
|
|||
|
||||
void file_dialog::sync_bookmarks_bar()
|
||||
{
|
||||
listbox& bookmarks_bar = find_widget<listbox>(get_window(), "bookmarks", false);
|
||||
listbox& bookmarks_bar = find_widget<listbox>("bookmarks");
|
||||
|
||||
// Internal state has normalized path delimiters but dot entries aren't
|
||||
// resolved after callers call set_path(), so compare against a canonical
|
||||
|
@ -648,7 +648,7 @@ void file_dialog::sync_bookmarks_bar()
|
|||
}
|
||||
|
||||
// Update bookmark edit controls.
|
||||
button& del_button = find_widget<button>(get_window(), "remove_bookmark", false);
|
||||
button& del_button = find_widget<button>("remove_bookmark");
|
||||
|
||||
if(user_bookmarks_begin_ == -1) {
|
||||
del_button.set_active(false);
|
||||
|
@ -659,9 +659,9 @@ void file_dialog::sync_bookmarks_bar()
|
|||
|
||||
void file_dialog::on_row_selected()
|
||||
{
|
||||
listbox& filelist = find_widget<listbox>(get_window(), "filelist", false);
|
||||
text_box& file_textbox = find_widget<text_box>(get_window(), "filename", false);
|
||||
button& rm_button = find_widget<button>(get_window(), "delete_file", false);
|
||||
listbox& filelist = find_widget<listbox>("filelist");
|
||||
text_box& file_textbox = find_widget<text_box>("filename");
|
||||
button& rm_button = find_widget<button>("delete_file");
|
||||
|
||||
// Don't use register_new_selection() here, we don't want any parsing to be
|
||||
// performed at this point.
|
||||
|
@ -684,10 +684,10 @@ void file_dialog::on_row_selected()
|
|||
void file_dialog::on_bookmark_selected()
|
||||
{
|
||||
// Don't let us steal the focus from the primary widgets.
|
||||
text_box& file_textbox = find_widget<text_box>(get_window(), "filename", false);
|
||||
text_box& file_textbox = find_widget<text_box>("filename");
|
||||
get_window()->keyboard_capture(&file_textbox);
|
||||
|
||||
listbox& bookmarks_bar = find_widget<listbox>(get_window(), "bookmarks", false);
|
||||
listbox& bookmarks_bar = find_widget<listbox>("bookmarks");
|
||||
const int new_selection = bookmarks_bar.get_selected_row();
|
||||
|
||||
if(new_selection < 0) {
|
||||
|
@ -706,7 +706,7 @@ void file_dialog::on_bookmark_selected()
|
|||
refresh_fileview();
|
||||
|
||||
// Update bookmark edit controls.
|
||||
button& del_button = find_widget<button>(get_window(), "remove_bookmark", false);
|
||||
button& del_button = find_widget<button>("remove_bookmark");
|
||||
del_button.set_active(user_bookmarks_begin_ >= 0
|
||||
&& current_bookmark_ >= user_bookmarks_begin_);
|
||||
}
|
||||
|
@ -726,7 +726,7 @@ void file_dialog::on_bookmark_add_cmd()
|
|||
label = default_label;
|
||||
}
|
||||
|
||||
listbox& bookmarks_bar = find_widget<listbox>(get_window(), "bookmarks", false);
|
||||
listbox& bookmarks_bar = find_widget<listbox>("bookmarks");
|
||||
|
||||
desktop::add_user_bookmark(label, current_dir_);
|
||||
bookmark_paths_.push_back(current_dir_);
|
||||
|
@ -752,7 +752,7 @@ void file_dialog::on_bookmark_del_cmd()
|
|||
&& current_bookmark_ >= user_bookmarks_begin_
|
||||
&& current_bookmark_ < static_cast<int>(bookmark_paths_.size()));
|
||||
|
||||
listbox& bookmarks_bar = find_widget<listbox>(get_window(), "bookmarks", false);
|
||||
listbox& bookmarks_bar = find_widget<listbox>("bookmarks");
|
||||
desktop::remove_user_bookmark(current_bookmark_ - user_bookmarks_begin_);
|
||||
bookmark_paths_.erase(bookmark_paths_.begin() + current_bookmark_);
|
||||
bookmarks_bar.remove_row(current_bookmark_);
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "draw_manager.hpp"
|
||||
#include "events.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/dialogs/modal_dialog.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -43,25 +42,19 @@ file_progress::file_progress(const std::string& title, const std::string& messag
|
|||
, message_(message)
|
||||
, update_time_()
|
||||
{
|
||||
find_widget<label>(this, "title", false).set_label(title_);
|
||||
auto& label_widget = find_widget<label>(this, "message", false);
|
||||
find_widget<label>("title").set_label(title_);
|
||||
auto& label_widget = find_widget<label>("message");
|
||||
|
||||
label_widget.set_use_markup(true);
|
||||
label_widget.set_label(message_);
|
||||
|
||||
find_widget<button>(this, "placeholder", false).set_active(false);
|
||||
find_widget<button>("placeholder").set_active(false);
|
||||
|
||||
update_time_ = clock::now();
|
||||
}
|
||||
|
||||
void file_progress::update_progress(unsigned value)
|
||||
{
|
||||
auto* window = get_window();
|
||||
|
||||
if(!window) {
|
||||
return;
|
||||
}
|
||||
|
||||
using std::chrono::duration_cast;
|
||||
using std::chrono::milliseconds;
|
||||
using namespace std::chrono_literals;
|
||||
|
@ -76,9 +69,9 @@ void file_progress::update_progress(unsigned value)
|
|||
|
||||
update_time_ = now;
|
||||
|
||||
find_widget<progress_bar>(window, "progress", false).set_percentage(value);
|
||||
find_widget<progress_bar>("progress").set_percentage(value);
|
||||
|
||||
get_window()->queue_redraw();
|
||||
queue_redraw();
|
||||
events::draw();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/folder_create.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/styled_widget.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
|
@ -37,7 +36,7 @@ folder_create::folder_create(std::string& folder_name)
|
|||
void folder_create::pre_show(window& window)
|
||||
{
|
||||
if(bookmark_mode_) {
|
||||
find_widget<styled_widget>(&window, "title", false).set_label(_("New Bookmark"));
|
||||
find_widget<styled_widget>("title").set_label(_("New Bookmark"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/formula_debugger.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/scroll_label.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -35,7 +34,7 @@ void formula_debugger::pre_show(window& window)
|
|||
{
|
||||
// stack label
|
||||
scroll_label* stack_label
|
||||
= find_widget<scroll_label>(&window, "stack", false, true);
|
||||
= find_widget<scroll_label>("stack", false, true);
|
||||
|
||||
std::stringstream stack_text;
|
||||
std::string indent = " ";
|
||||
|
@ -58,7 +57,7 @@ void formula_debugger::pre_show(window& window)
|
|||
|
||||
// execution trace label
|
||||
scroll_label* execution_label
|
||||
= find_widget<scroll_label>(&window, "execution", false, true);
|
||||
= find_widget<scroll_label>("execution", false, true);
|
||||
|
||||
std::stringstream execution_text;
|
||||
for(const auto & i : fdb_.get_execution_trace())
|
||||
|
@ -95,25 +94,25 @@ void formula_debugger::pre_show(window& window)
|
|||
}
|
||||
}
|
||||
|
||||
find_widget<styled_widget>(&window, "state", false).set_label(state_str);
|
||||
find_widget<styled_widget>("state").set_label(state_str);
|
||||
|
||||
// callbacks
|
||||
button& step_button = find_widget<button>(&window, "step", false);
|
||||
button& step_button = find_widget<button>("step");
|
||||
connect_signal_mouse_left_click(
|
||||
step_button,
|
||||
std::bind(&formula_debugger::callback_step_button, this));
|
||||
|
||||
button& stepout_button = find_widget<button>(&window, "stepout", false);
|
||||
button& stepout_button = find_widget<button>("stepout");
|
||||
connect_signal_mouse_left_click(
|
||||
stepout_button,
|
||||
std::bind(&formula_debugger::callback_stepout_button, this));
|
||||
|
||||
button& next_button = find_widget<button>(&window, "next", false);
|
||||
button& next_button = find_widget<button>("next");
|
||||
connect_signal_mouse_left_click(
|
||||
next_button,
|
||||
std::bind(&formula_debugger::callback_next_button, this));
|
||||
|
||||
button& continue_button = find_widget<button>(&window, "continue", false);
|
||||
button& continue_button = find_widget<button>("continue");
|
||||
connect_signal_mouse_left_click(
|
||||
continue_button,
|
||||
std::bind(&formula_debugger::callback_continue_button, this));
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "cursor.hpp"
|
||||
#include "desktop/open.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -49,22 +48,22 @@ game_cache_options::game_cache_options()
|
|||
|
||||
void game_cache_options::pre_show(window& window)
|
||||
{
|
||||
clean_button_ = find_widget<button>(&window, "clean", false, true);
|
||||
purge_button_ = find_widget<button>(&window, "purge", false, true);
|
||||
size_label_ = find_widget<label>(&window, "size", false, true);
|
||||
clean_button_ = find_widget<button>("clean", false, true);
|
||||
purge_button_ = find_widget<button>("purge", false, true);
|
||||
size_label_ = find_widget<label>("size", false, true);
|
||||
|
||||
update_cache_size_display();
|
||||
|
||||
text_box_base& path_box = find_widget<text_box_base>(&window, "path", false);
|
||||
text_box_base& path_box = find_widget<text_box_base>("path");
|
||||
path_box.set_value(cache_path_);
|
||||
path_box.set_active(false);
|
||||
|
||||
button& copy = find_widget<button>(&window, "copy", false);
|
||||
button& copy = find_widget<button>("copy");
|
||||
connect_signal_mouse_left_click(copy,
|
||||
std::bind(&game_cache_options::copy_to_clipboard_callback,
|
||||
this));
|
||||
|
||||
button& browse = find_widget<button>(&window, "browse", false);
|
||||
button& browse = find_widget<button>("browse");
|
||||
connect_signal_mouse_left_click(browse,
|
||||
std::bind(&game_cache_options::browse_cache_callback,
|
||||
this));
|
||||
|
|
|
@ -93,11 +93,11 @@ void game_load::pre_show(window& window)
|
|||
// Allow deleting saves with the Delete key.
|
||||
connect_signal_pre_key_press(window, std::bind(&game_load::key_press_callback, this, std::placeholders::_5));
|
||||
|
||||
text_box* filter = find_widget<text_box>(&window, "txtFilter", false, true);
|
||||
text_box* filter = find_widget<text_box>("txtFilter", false, true);
|
||||
|
||||
filter->set_text_changed_callback(std::bind(&game_load::filter_text_changed, this, std::placeholders::_2));
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "savegame_list", false);
|
||||
listbox& list = find_widget<listbox>("savegame_list");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&game_load::display_savegame, this));
|
||||
|
||||
|
@ -109,13 +109,13 @@ void game_load::pre_show(window& window)
|
|||
|
||||
populate_game_list();
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "delete", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("delete"),
|
||||
std::bind(&game_load::delete_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "browse_saves_folder", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("browse_saves_folder"),
|
||||
std::bind(&game_load::browse_button_callback, this));
|
||||
|
||||
menu_button& dir_list = find_widget<menu_button>(&window, "dirList", false);
|
||||
menu_button& dir_list = find_widget<menu_button>("dirList");
|
||||
|
||||
dir_list.set_use_markup(true);
|
||||
set_save_dir_list(dir_list);
|
||||
|
@ -150,7 +150,7 @@ void game_load::set_save_dir_list(menu_button& dir_list)
|
|||
|
||||
void game_load::populate_game_list()
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "savegame_list", false);
|
||||
listbox& list = find_widget<listbox>("savegame_list");
|
||||
|
||||
list.clear();
|
||||
|
||||
|
@ -171,7 +171,7 @@ void game_load::populate_game_list()
|
|||
list.add_row(data);
|
||||
}
|
||||
|
||||
find_widget<button>(get_window(), "delete", false).set_active(!save_index_manager_->read_only());
|
||||
find_widget<button>("delete").set_active(!save_index_manager_->read_only());
|
||||
}
|
||||
|
||||
void game_load::display_savegame_internal(const savegame::save_info& game)
|
||||
|
@ -179,13 +179,13 @@ void game_load::display_savegame_internal(const savegame::save_info& game)
|
|||
filename_ = game.name();
|
||||
summary_ = game.summary();
|
||||
|
||||
find_widget<minimap>(get_window(), "minimap", false)
|
||||
find_widget<minimap>("minimap")
|
||||
.set_map_data(summary_["map_data"]);
|
||||
|
||||
find_widget<label>(get_window(), "lblScenario", false)
|
||||
find_widget<label>("lblScenario")
|
||||
.set_label(summary_["label"]);
|
||||
|
||||
listbox& leader_list = find_widget<listbox>(get_window(), "leader_list", false);
|
||||
listbox& leader_list = find_widget<listbox>("leader_list");
|
||||
|
||||
leader_list.clear();
|
||||
|
||||
|
@ -244,7 +244,7 @@ void game_load::display_savegame_internal(const savegame::save_info& game)
|
|||
evaluate_summary_string(str, summary_);
|
||||
|
||||
// The new label value may have more or less lines than the previous value, so invalidate the layout.
|
||||
find_widget<styled_widget>(get_window(), "slblSummary", false).set_label(str.str());
|
||||
find_widget<styled_widget>("slblSummary").set_label(str.str());
|
||||
//get_window()->invalidate_layout();
|
||||
|
||||
toggle_button& replay_toggle = dynamic_cast<toggle_button&>(*show_replay_->get_widget());
|
||||
|
@ -272,11 +272,11 @@ void game_load::display_savegame()
|
|||
bool successfully_displayed_a_game = false;
|
||||
|
||||
try {
|
||||
const int selected_row = find_widget<listbox>(get_window(), "savegame_list", false).get_selected_row();
|
||||
const int selected_row = find_widget<listbox>("savegame_list").get_selected_row();
|
||||
if(selected_row < 0) {
|
||||
find_widget<button>(get_window(), "delete", false).set_active(false);
|
||||
find_widget<button>("delete").set_active(false);
|
||||
} else {
|
||||
find_widget<button>(get_window(), "delete", false).set_active(!save_index_manager_->read_only());
|
||||
find_widget<button>("delete").set_active(!save_index_manager_->read_only());
|
||||
game_load::display_savegame_internal(games_[selected_row]);
|
||||
successfully_displayed_a_game = true;
|
||||
}
|
||||
|
@ -288,13 +288,13 @@ void game_load::display_savegame()
|
|||
}
|
||||
|
||||
if(!successfully_displayed_a_game) {
|
||||
find_widget<minimap>(get_window(), "minimap", false).set_map_data("");
|
||||
find_widget<label>(get_window(), "lblScenario", false)
|
||||
find_widget<minimap>("minimap").set_map_data("");
|
||||
find_widget<label>("lblScenario")
|
||||
.set_label("");
|
||||
find_widget<styled_widget>(get_window(), "slblSummary", false)
|
||||
find_widget<styled_widget>("slblSummary")
|
||||
.set_label("");
|
||||
|
||||
listbox& leader_list = find_widget<listbox>(get_window(), "leader_list", false);
|
||||
listbox& leader_list = find_widget<listbox>("leader_list");
|
||||
leader_list.clear();
|
||||
|
||||
toggle_button& replay_toggle = dynamic_cast<toggle_button&>(*show_replay_->get_widget());
|
||||
|
@ -307,7 +307,7 @@ void game_load::display_savegame()
|
|||
}
|
||||
|
||||
// Disable Load button if nothing is selected or if the currently selected file can't be loaded
|
||||
find_widget<button>(get_window(), "ok", false).set_active(successfully_displayed_a_game);
|
||||
find_widget<button>("ok").set_active(successfully_displayed_a_game);
|
||||
|
||||
// Disable 'Enter' loading in the same circumstance
|
||||
get_window()->set_enter_disabled(!successfully_displayed_a_game);
|
||||
|
@ -320,7 +320,7 @@ void game_load::filter_text_changed(const std::string& text)
|
|||
|
||||
void game_load::apply_filter_text(const std::string& text, bool force)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "savegame_list", false);
|
||||
listbox& list = find_widget<listbox>("savegame_list");
|
||||
|
||||
const std::vector<std::string> words = utils::split(text, ' ');
|
||||
|
||||
|
@ -480,7 +480,7 @@ void game_load::browse_button_callback()
|
|||
|
||||
void game_load::delete_button_callback()
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "savegame_list", false);
|
||||
listbox& list = find_widget<listbox>("savegame_list");
|
||||
|
||||
const std::size_t index = std::size_t(list.get_selected_row());
|
||||
if(index < games_.size()) {
|
||||
|
@ -511,11 +511,11 @@ void game_load::key_press_callback(const SDL_Keycode key)
|
|||
//
|
||||
// I'm not sure if this check was necessary when I first added this feature
|
||||
// (I didn't check at the time), but regardless, it's needed now. If it turns
|
||||
// out I screwed something up in my refactoring, I'll remove this.
|
||||
// out I screwed something up in my refactoring, I'll remove
|
||||
//
|
||||
// - vultraz, 2017-08-28
|
||||
//
|
||||
if(find_widget<text_box>(get_window(), "txtFilter", false).get_state() == text_box_base::FOCUSED) {
|
||||
if(find_widget<text_box>("txtFilter").get_state() == text_box_base::FOCUSED) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -526,7 +526,7 @@ void game_load::key_press_callback(const SDL_Keycode key)
|
|||
|
||||
void game_load::handle_dir_select()
|
||||
{
|
||||
menu_button& dir_list = find_widget<menu_button>(get_window(), "dirList", false);
|
||||
menu_button& dir_list = find_widget<menu_button>("dirList");
|
||||
|
||||
const auto& path = dir_list.get_value_config()["path"].str();
|
||||
if(path.empty()) {
|
||||
|
@ -536,7 +536,7 @@ void game_load::handle_dir_select()
|
|||
}
|
||||
|
||||
populate_game_list();
|
||||
if(auto* filter = find_widget<text_box>(get_window(), "txtFilter", false, true)) {
|
||||
if(auto* filter = find_widget<text_box>("txtFilter", false, true)) {
|
||||
apply_filter_text(filter->get_value(), true);
|
||||
}
|
||||
display_savegame();
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/game_stats.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/stacked_widget.hpp"
|
||||
|
@ -66,8 +65,8 @@ static std::string controller_name(const team& t)
|
|||
|
||||
void game_stats::pre_show(window& window)
|
||||
{
|
||||
listbox& stats_list = find_widget<listbox>(&window, "game_stats_list", false);
|
||||
listbox& settings_list = find_widget<listbox>(&window, "scenario_settings_list", false);
|
||||
listbox& stats_list = find_widget<listbox>("game_stats_list");
|
||||
listbox& settings_list = find_widget<listbox>("scenario_settings_list");
|
||||
|
||||
for(const auto& team : board_.teams()) {
|
||||
if(team.hidden()) {
|
||||
|
@ -227,7 +226,7 @@ void game_stats::pre_show(window& window)
|
|||
//
|
||||
// Set up tab control
|
||||
//
|
||||
listbox& tab_bar = find_widget<listbox>(&window, "tab_bar", false);
|
||||
listbox& tab_bar = find_widget<listbox>("tab_bar");
|
||||
|
||||
window.keyboard_capture(&tab_bar);
|
||||
|
||||
|
@ -238,12 +237,12 @@ void game_stats::pre_show(window& window)
|
|||
|
||||
void game_stats::on_tab_select()
|
||||
{
|
||||
const int i = find_widget<listbox>(get_window(), "tab_bar", false).get_selected_row();
|
||||
const int i = find_widget<listbox>("tab_bar").get_selected_row();
|
||||
|
||||
find_widget<stacked_widget>(get_window(), "pager", false).select_layer(i);
|
||||
find_widget<stacked_widget>("pager").select_layer(i);
|
||||
|
||||
// There are only two tabs, so this is simple
|
||||
find_widget<label>(get_window(), "title", false).set_label(
|
||||
find_widget<label>("title").set_label(
|
||||
i == 0 ? _("Current Status") : _("Scenario Settings")
|
||||
);
|
||||
}
|
||||
|
@ -251,10 +250,10 @@ void game_stats::on_tab_select()
|
|||
void game_stats::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
const int selected_tab = find_widget<listbox>(&window, "tab_bar", false).get_selected_row();
|
||||
const int selected_tab = find_widget<listbox>("tab_bar").get_selected_row();
|
||||
|
||||
const std::string list_id = selected_tab == 0 ? "game_stats_list" : "scenario_settings_list";
|
||||
selected_side_number_ = team_data_[find_widget<listbox>(&window, list_id, false).get_selected_row()].side;
|
||||
selected_side_number_ = team_data_[find_widget<listbox>(list_id).get_selected_row()].side;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "desktop/version.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "formula/string_utils.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/migrate_version_selection.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/styled_widget.hpp"
|
||||
|
@ -94,35 +93,35 @@ void game_version::pre_show(window& window)
|
|||
{
|
||||
utils::string_map i18n_syms;
|
||||
|
||||
tab_container& tabs = find_widget<tab_container>(&window, "tabs", false);
|
||||
tab_container& tabs = find_widget<tab_container>("tabs");
|
||||
|
||||
//
|
||||
// General information.
|
||||
//
|
||||
tabs.select_tab(0);
|
||||
|
||||
styled_widget& version_label = find_widget<styled_widget>(&window, "version", false);
|
||||
styled_widget& os_label = find_widget<styled_widget>(&window, "os", false);
|
||||
styled_widget& arch_label = find_widget<styled_widget>(&window, "arch", false);
|
||||
styled_widget& version_label = find_widget<styled_widget>("version");
|
||||
styled_widget& os_label = find_widget<styled_widget>("os");
|
||||
styled_widget& arch_label = find_widget<styled_widget>("arch");
|
||||
|
||||
version_label.set_label(game_config::revision);
|
||||
os_label.set_label("<i>"+desktop::os_version()+"</i>");
|
||||
arch_label.set_label(game_config::build_arch());
|
||||
|
||||
button& copy_all = find_widget<button>(&window, "copy_all", false);
|
||||
button& copy_all = find_widget<button>("copy_all");
|
||||
connect_signal_mouse_left_click(copy_all, std::bind(&game_version::report_copy_callback, this));
|
||||
|
||||
// Bottom row buttons
|
||||
button& credits_button = find_widget<button>(&window, "credits", false);
|
||||
button& credits_button = find_widget<button>("credits");
|
||||
connect_signal_mouse_left_click(credits_button, std::bind(&game_version::show_credits_dialog, this));
|
||||
|
||||
button& license_button = find_widget<button>(&window, "license", false);
|
||||
button& license_button = find_widget<button>("license");
|
||||
connect_signal_mouse_left_click(license_button, std::bind(&game_version::show_license, this));
|
||||
|
||||
button& issue_button = find_widget<button>(&window, "issue", false);
|
||||
button& issue_button = find_widget<button>("issue");
|
||||
connect_signal_mouse_left_click(issue_button, std::bind(&game_version::report_issue, this));
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "run_migrator", false), std::bind(&game_version::run_migrator, this));
|
||||
connect_signal_mouse_left_click(find_widget<button>("run_migrator"), std::bind(&game_version::run_migrator, this));
|
||||
|
||||
//
|
||||
// Game paths tab.
|
||||
|
@ -134,9 +133,9 @@ void game_version::pre_show(window& window)
|
|||
const std::string& path_id = path_ent.first;
|
||||
const std::string& path_path = filesystem::normalize_path(path_ent.second, true);
|
||||
|
||||
text_box_base& path_w = find_widget<text_box_base>(&window, path_wid_stem_ + path_id, false);
|
||||
button& copy_w = find_widget<button>(&window, copy_wid_stem_ + path_id, false);
|
||||
button& browse_w = find_widget<button>(&window, browse_wid_stem_ + path_id, false);
|
||||
text_box_base& path_w = find_widget<text_box_base>(path_wid_stem_ + path_id);
|
||||
button& copy_w = find_widget<button>(copy_wid_stem_ + path_id);
|
||||
button& browse_w = find_widget<button>(browse_wid_stem_ + path_id);
|
||||
|
||||
path_w.set_value(path_path);
|
||||
|
||||
|
@ -154,7 +153,7 @@ void game_version::pre_show(window& window)
|
|||
}
|
||||
}
|
||||
|
||||
button& stderr_button = find_widget<button>(&window, "open_stderr", false);
|
||||
button& stderr_button = find_widget<button>("open_stderr");
|
||||
connect_signal_mouse_left_click(stderr_button, std::bind(&game_version::browse_directory_callback, this, log_path_));
|
||||
stderr_button.set_active(!log_path_.empty() && filesystem::file_exists(log_path_));
|
||||
|
||||
|
@ -166,7 +165,7 @@ void game_version::pre_show(window& window)
|
|||
widget_data list_data;
|
||||
|
||||
listbox& deps_listbox
|
||||
= find_widget<listbox>(&window, "deps_listbox", false);
|
||||
= find_widget<listbox>("deps_listbox");
|
||||
|
||||
for(const auto & dep : deps_)
|
||||
{
|
||||
|
@ -195,7 +194,7 @@ void game_version::pre_show(window& window)
|
|||
tabs.select_tab(3);
|
||||
|
||||
listbox& opts_listbox
|
||||
= find_widget<listbox>(&window, "opts_listbox", false);
|
||||
= find_widget<listbox>("opts_listbox");
|
||||
|
||||
for(const auto & opt : opts_)
|
||||
{
|
||||
|
@ -219,12 +218,18 @@ void game_version::pre_show(window& window)
|
|||
//
|
||||
tabs.select_tab(4);
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "forums", false), std::bind(&desktop::open_object, "https://forums.wesnoth.org/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "discord", false), std::bind(&desktop::open_object, "https://discord.gg/battleforwesnoth"));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "irc", false), std::bind(&desktop::open_object, "https://web.libera.chat/#wesnoth"));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "steam", false), std::bind(&desktop::open_object, "https://steamcommunity.com/app/599390/discussions/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "reddit", false), std::bind(&desktop::open_object, "https://www.reddit.com/r/wesnoth/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "donate", false), std::bind(&desktop::open_object, "https://www.spi-inc.org/projects/wesnoth/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("forums"),
|
||||
std::bind(&desktop::open_object, "https://forums.wesnoth.org/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("discord"),
|
||||
std::bind(&desktop::open_object, "https://discord.gg/battleforwesnoth"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("irc"),
|
||||
std::bind(&desktop::open_object, "https://web.libera.chat/#wesnoth"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("steam"),
|
||||
std::bind(&desktop::open_object, "https://steamcommunity.com/app/599390/discussions/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("reddit"),
|
||||
std::bind(&desktop::open_object, "https://www.reddit.com/r/wesnoth/"));
|
||||
connect_signal_mouse_left_click(find_widget<button>("donate"),
|
||||
std::bind(&desktop::open_object, "https://www.spi-inc.org/projects/wesnoth/"));
|
||||
|
||||
//
|
||||
// Set-up page stack and auxiliary controls last.
|
||||
|
@ -247,7 +252,7 @@ void game_version::copy_to_clipboard_callback(const std::string& path, const std
|
|||
{
|
||||
desktop::clipboard::copy_to_clipboard(path);
|
||||
|
||||
button& copy_w = find_widget<button>(get_window(), btn_id, false);
|
||||
button& copy_w = find_widget<button>(btn_id);
|
||||
copy_w.set_success(true);
|
||||
}
|
||||
|
||||
|
@ -255,7 +260,7 @@ void game_version::report_copy_callback()
|
|||
{
|
||||
desktop::clipboard::copy_to_clipboard(report_);
|
||||
|
||||
button& copy_all = find_widget<button>(get_window(), "copy_all", false);
|
||||
button& copy_all = find_widget<button>("copy_all");
|
||||
copy_all.set_success(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/gamestate_inspector.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/lua_interpreter.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -161,11 +160,11 @@ class gamestate_inspector::view
|
|||
{
|
||||
public:
|
||||
view(window& window)
|
||||
: stuff_list_(find_widget<tree_view>(&window, "stuff_list", false, true))
|
||||
, inspect_(find_widget<styled_widget>(&window, "inspect", false, true))
|
||||
, pages_(find_widget<styled_widget>(&window, "page_count", false, true))
|
||||
, left_(find_widget<styled_widget>(&window, "page_left", false, true))
|
||||
, right_(find_widget<styled_widget>(&window, "page_right", false, true))
|
||||
: stuff_list_(window.find_widget<tree_view>("stuff_list", false, true))
|
||||
, inspect_(window.find_widget<styled_widget>("inspect", false, true))
|
||||
, pages_(window.find_widget<styled_widget>("page_count", false, true))
|
||||
, left_(window.find_widget<styled_widget>("page_left", false, true))
|
||||
, right_(window.find_widget<styled_widget>("page_right", false, true))
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -378,11 +377,11 @@ public:
|
|||
|
||||
void bind(window& window)
|
||||
{
|
||||
auto stuff_list = find_widget<tree_view>(&window, "stuff_list", false, true);
|
||||
auto copy_button = find_widget<button>(&window, "copy", false, true);
|
||||
auto lua_button = find_widget<button>(&window, "lua", false, true);
|
||||
auto left_button = find_widget<button>(&window, "page_left", false, true);
|
||||
auto right_button = find_widget<button>(&window, "page_right", false, true);
|
||||
auto stuff_list = window.find_widget<tree_view>("stuff_list", false, true);
|
||||
auto copy_button = window.find_widget<button>("copy", false, true);
|
||||
auto lua_button = window.find_widget<button>("lua", false, true);
|
||||
auto left_button = window.find_widget<button>("page_left", false, true);
|
||||
auto right_button = window.find_widget<button>("page_right", false, true);
|
||||
|
||||
connect_signal_notify_modified(*stuff_list,
|
||||
std::bind(&gamestate_inspector::controller::handle_stuff_list_item_clicked, this, std::placeholders::_1));
|
||||
|
@ -452,7 +451,7 @@ public:
|
|||
side);
|
||||
}
|
||||
// Expand initially selected node
|
||||
callbacks[{0}](find_widget<tree_view>(&window, "stuff_list", false).get_root_node().get_child_at(0));
|
||||
callbacks[{0}](window.find_widget<tree_view>("stuff_list").get_root_node().get_child_at(0));
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -922,7 +921,7 @@ void gamestate_inspector::pre_show(window& window)
|
|||
controller_.reset(new controller(*model_, *view_, vars_, events_, dc_));
|
||||
|
||||
if(!title_.empty()) {
|
||||
find_widget<styled_widget>(&window, "inspector_name", false).set_label(title_);
|
||||
find_widget<styled_widget>("inspector_name").set_label(title_);
|
||||
}
|
||||
controller_->bind(window);
|
||||
view_->update(*model_);
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/gui_test_dialog.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
||||
namespace gui2::dialogs
|
||||
|
|
|
@ -65,12 +65,12 @@ help_browser::help_browser(const help::section& toplevel, const std::string& ini
|
|||
|
||||
void help_browser::pre_show(window& window)
|
||||
{
|
||||
tree_view& topic_tree = find_widget<tree_view>(&window, "topic_tree", false);
|
||||
tree_view& topic_tree = find_widget<tree_view>("topic_tree");
|
||||
|
||||
button& back_button = find_widget<button>(&window, "back", false);
|
||||
button& next_button = find_widget<button>(&window, "next", false);
|
||||
button& back_button = find_widget<button>("back");
|
||||
button& next_button = find_widget<button>("next");
|
||||
|
||||
rich_label& topic_text = find_widget<rich_label>(&window, "topic_text", false);
|
||||
rich_label& topic_text = find_widget<rich_label>("topic_text");
|
||||
|
||||
next_button.set_active(false);
|
||||
back_button.set_active(false);
|
||||
|
@ -85,7 +85,7 @@ void help_browser::pre_show(window& window)
|
|||
|
||||
add_topics_for_section(toplevel_, topic_tree.get_root_node());
|
||||
|
||||
tree_view_node& initial_node = find_widget<tree_view_node>(&topic_tree, initial_topic_, false);
|
||||
tree_view_node& initial_node = topic_tree.find_widget<tree_view_node>(initial_topic_);
|
||||
initial_node.select_node(true);
|
||||
|
||||
on_topic_select();
|
||||
|
@ -149,11 +149,11 @@ void help_browser::show_topic(std::string topic_id, bool add_to_history)
|
|||
item["label"] = topic->title;
|
||||
data.emplace("topic_title", item);
|
||||
|
||||
find_widget<label>(this, "topic_title", false).set_label(topic->title);
|
||||
find_widget<rich_label>(this, "topic_text", false).set_topic(topic);
|
||||
find_widget<label>("topic_title").set_label(topic->title);
|
||||
find_widget<rich_label>("topic_text").set_topic(topic);
|
||||
|
||||
invalidate_layout();
|
||||
scrollbar_panel& scroll = find_widget<scrollbar_panel>(this, "topic_scroll_panel", false);
|
||||
scrollbar_panel& scroll = find_widget<scrollbar_panel>("topic_scroll_panel");
|
||||
scroll.scroll_vertical_scrollbar(scrollbar_base::BEGIN);
|
||||
}
|
||||
|
||||
|
@ -165,14 +165,14 @@ void help_browser::show_topic(std::string topic_id, bool add_to_history)
|
|||
}
|
||||
history_.push_back(topic_id);
|
||||
|
||||
find_widget<button>(this, "back", false).set_active(history_pos_ != 0);
|
||||
find_widget<button>("back").set_active(history_pos_ != 0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void help_browser::on_topic_select()
|
||||
{
|
||||
tree_view& topic_tree = find_widget<tree_view>(this, "topic_tree", false);
|
||||
tree_view& topic_tree = find_widget<tree_view>("topic_tree");
|
||||
|
||||
if(topic_tree.empty()) {
|
||||
return;
|
||||
|
@ -191,8 +191,8 @@ void help_browser::on_history_navigate(bool backwards)
|
|||
} else {
|
||||
history_pos_++;
|
||||
}
|
||||
find_widget<button>(this, "back", false).set_active(!history_.empty() && history_pos_ != 0);
|
||||
find_widget<button>(this, "next", false).set_active(!history_.empty() && history_pos_ != (history_.size()-1));
|
||||
find_widget<button>("back").set_active(!history_.empty() && history_pos_ != 0);
|
||||
find_widget<button>("next").set_active(!history_.empty() && history_pos_ != (history_.size()-1));
|
||||
|
||||
const std::string topic_id = history_.at(history_pos_);
|
||||
show_topic(topic_id, false);
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "formatter.hpp"
|
||||
#include "formula/string_utils.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
|
@ -83,7 +82,7 @@ label_settings::label_settings(display_context& dc)
|
|||
|
||||
void label_settings::pre_show(window& window)
|
||||
{
|
||||
listbox& cats_listbox = find_widget<listbox>(&window, "label_types", false);
|
||||
listbox& cats_listbox = find_widget<listbox>("label_types");
|
||||
widget_data list_data;
|
||||
|
||||
for(const auto& label_entry : all_labels_) {
|
||||
|
@ -106,13 +105,13 @@ void label_settings::pre_show(window& window)
|
|||
list_data["cat_name"]["label"] = name;
|
||||
grid* grid = &cats_listbox.add_row(list_data);
|
||||
|
||||
toggle_button& status = find_widget<toggle_button>(grid, "cat_status", false);
|
||||
toggle_button& status = grid->find_widget<toggle_button>("cat_status");
|
||||
status.set_value(visible);
|
||||
|
||||
connect_signal_notify_modified(status, std::bind(&label_settings::toggle_category, this, std::placeholders::_1, category));
|
||||
|
||||
if(category.substr(0, 5) == "side:") {
|
||||
label& cat_name = find_widget<label>(grid, "cat_name", false);
|
||||
label& cat_name = grid->find_widget<label>("cat_name");
|
||||
cat_name.set_use_markup(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/language_selection.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -74,8 +73,8 @@ void language_selection::shown_filter_callback()
|
|||
{
|
||||
window& window = *get_window();
|
||||
|
||||
toggle_button& show_all_toggle = find_widget<toggle_button>(&window, "show_all", false);
|
||||
listbox& list = find_widget<listbox>(&window, "language_list", false);
|
||||
toggle_button& show_all_toggle = find_widget<toggle_button>("show_all");
|
||||
listbox& list = find_widget<listbox>("language_list");
|
||||
|
||||
if(show_all_toggle.get_value_bool()) {
|
||||
list.set_row_shown(boost::dynamic_bitset<>{langs_.size(), ~0UL});
|
||||
|
@ -86,10 +85,10 @@ void language_selection::shown_filter_callback()
|
|||
|
||||
void language_selection::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "language_list", false);
|
||||
listbox& list = find_widget<listbox>("language_list");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
toggle_button& show_all_toggle = find_widget<toggle_button>(&window, "show_all", false);
|
||||
toggle_button& show_all_toggle = find_widget<toggle_button>("show_all");
|
||||
connect_signal_mouse_left_click(show_all_toggle, std::bind(
|
||||
&language_selection::shown_filter_callback, this));
|
||||
|
||||
|
@ -122,7 +121,7 @@ void language_selection::pre_show(window& window)
|
|||
void language_selection::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
const int res = find_widget<listbox>(&window, "language_list", false)
|
||||
const int res = find_widget<listbox>("language_list")
|
||||
.get_selected_row();
|
||||
|
||||
assert(res != -1);
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "cursor.hpp"
|
||||
#include "draw_manager.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/drawing.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -103,8 +102,8 @@ void loading_screen::pre_show(window& window)
|
|||
|
||||
cursor_setter_.reset(new cursor::setter(cursor::WAIT));
|
||||
|
||||
progress_stage_label_ = find_widget<label>(&window, "status", false, true);
|
||||
animation_ = find_widget<drawing>(&window, "animation", false, true);
|
||||
progress_stage_label_ = find_widget<label>("status", false, true);
|
||||
animation_ = find_widget<drawing>("animation", false, true);
|
||||
}
|
||||
|
||||
void loading_screen::post_show(window& /*window*/)
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "gui/dialogs/log_settings.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -57,7 +56,7 @@ log_settings::log_settings()
|
|||
|
||||
void log_settings::pre_show(window& window)
|
||||
{
|
||||
listbox& logger_box = find_widget<listbox>(&window, "logger_listbox", false);
|
||||
listbox& logger_box = find_widget<listbox>("logger_listbox");
|
||||
|
||||
for(unsigned int i = 0; i < domain_list_.size(); i++){
|
||||
std::string this_domain = domain_list_[i];
|
||||
|
@ -87,7 +86,7 @@ void log_settings::pre_show(window& window)
|
|||
}
|
||||
}
|
||||
|
||||
text_box* filter = find_widget<text_box>(&window, "filter_box", false, true);
|
||||
text_box* filter = find_widget<text_box>("filter_box", false, true);
|
||||
filter->set_text_changed_callback(std::bind(&log_settings::filter_text_changed, this, std::placeholders::_2));
|
||||
|
||||
window.keyboard_capture(filter);
|
||||
|
@ -96,7 +95,7 @@ void log_settings::pre_show(window& window)
|
|||
|
||||
void log_settings::filter_text_changed(const std::string& text)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "logger_listbox", false);
|
||||
listbox& list = find_widget<listbox>("logger_listbox");
|
||||
|
||||
const std::vector<std::string> words = utils::split(text, ' ');
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/lua_interpreter.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/scroll_label.hpp"
|
||||
|
@ -71,7 +70,7 @@ public:
|
|||
/** Bind the scroll label widget to my pointer, and configure */
|
||||
void bind(window& window) {
|
||||
window_ = &window;
|
||||
msg_label = find_widget<scroll_label>(&window, "msg", false, true);
|
||||
msg_label = window_->find_widget<scroll_label>("msg", false, true);
|
||||
msg_label->set_use_markup(true);
|
||||
msg_label->set_vertical_scrollbar_mode(scrollbar_container::ALWAYS_VISIBLE);
|
||||
msg_label->set_label("");
|
||||
|
@ -411,9 +410,7 @@ void lua_interpreter::controller::bind(window& window)
|
|||
assert(view_);
|
||||
view_->bind(window);
|
||||
|
||||
text_entry = find_widget<text_box>(&window, "text_entry", false, true);
|
||||
//text_entry->set_text_changed_callback(
|
||||
// std::bind(&view::filter, this, std::ref(window)));
|
||||
text_entry = window.find_widget<text_box>("text_entry", false, true);
|
||||
window.keyboard_capture(text_entry);
|
||||
window.set_click_dismiss(false);
|
||||
window.set_enter_disabled(true);
|
||||
|
@ -427,14 +424,14 @@ void lua_interpreter::controller::bind(window& window)
|
|||
std::placeholders::_5,
|
||||
std::ref(window)));
|
||||
|
||||
copy_button = find_widget<button>(&window, "copy", false, true);
|
||||
copy_button = window.find_widget<button>("copy", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*copy_button,
|
||||
std::bind(&lua_interpreter::controller::handle_copy_button_clicked,
|
||||
this,
|
||||
std::ref(window)));
|
||||
|
||||
clear_button = find_widget<button>(&window, "clear", false, true);
|
||||
clear_button = window.find_widget<button>("clear", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*clear_button,
|
||||
std::bind(&lua_interpreter::controller::handle_clear_button_clicked,
|
||||
|
@ -660,7 +657,7 @@ void lua_interpreter::pre_show(window& window)
|
|||
register_text("text_entry", false, controller_->text_entry_, true);
|
||||
controller_->bind(window);
|
||||
|
||||
label *kernel_type_label = find_widget<label>(&window, "kernel_type", false, true);
|
||||
label *kernel_type_label = find_widget<label>("kernel_type", false, true);
|
||||
kernel_type_label->set_label(controller_->lua_model_->get_name());
|
||||
|
||||
controller_->update_view();
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/message.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -51,7 +50,7 @@ struct message_implementation
|
|||
message::button_status& button_status,
|
||||
const std::string& id)
|
||||
{
|
||||
button_status.ptr = find_widget<button>(&window, id, false, true);
|
||||
button_status.ptr = window.find_widget<button>(id, false, true);
|
||||
button_status.ptr->set_visible(button_status.visible);
|
||||
|
||||
if(!button_status.caption.empty()) {
|
||||
|
@ -74,7 +73,7 @@ void message::pre_show(window& window)
|
|||
window, buttons_[right_1], "right_side");
|
||||
|
||||
// ***** ***** ***** ***** Set up the widgets ***** ***** ***** *****
|
||||
styled_widget& title_widget = find_widget<label>(&window, "title", false);
|
||||
styled_widget& title_widget = find_widget<label>("title");
|
||||
if(!title_.empty()) {
|
||||
title_widget.set_label(title_);
|
||||
title_widget.set_use_markup(title_use_markup_);
|
||||
|
@ -82,14 +81,14 @@ void message::pre_show(window& window)
|
|||
title_widget.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
styled_widget& img_widget = find_widget<image>(&window, "image", false);
|
||||
styled_widget& img_widget = find_widget<image>("image");
|
||||
if(!image_.empty()) {
|
||||
img_widget.set_label(image_);
|
||||
} else {
|
||||
img_widget.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
styled_widget& label = find_widget<styled_widget>(&window, "label", false);
|
||||
styled_widget& label = find_widget<styled_widget>("label");
|
||||
label.set_label(message_);
|
||||
label.set_use_markup(message_use_markup_);
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "filesystem.hpp"
|
||||
#include "game_version.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -69,7 +68,7 @@ migrate_version_selection::migrate_version_selection()
|
|||
|
||||
void migrate_version_selection::pre_show(window& window)
|
||||
{
|
||||
listbox& version_list = find_widget<listbox>(&window, "versions_listbox", false);
|
||||
listbox& version_list = find_widget<listbox>("versions_listbox");
|
||||
|
||||
for(const auto& version : versions_) {
|
||||
widget_data data;
|
||||
|
@ -86,7 +85,7 @@ void migrate_version_selection::post_show(window& window)
|
|||
{
|
||||
if(get_retval() == gui2::OK) {
|
||||
std::string current_version_str = filesystem::get_version_path_suffix();
|
||||
listbox& version_list = find_widget<listbox>(&window, "versions_listbox", false);
|
||||
listbox& version_list = find_widget<listbox>("versions_listbox");
|
||||
int selected_row = version_list.get_selected_row();
|
||||
std::string selected = versions_.at(selected_row);
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "formatter.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/drawing.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -50,14 +49,14 @@ faction_select::faction_select(ng::flg_manager& flg_manager, const std::string&
|
|||
|
||||
void faction_select::pre_show(window& window)
|
||||
{
|
||||
find_widget<label>(&window, "starting_pos", false).set_label(std::to_string(side_));
|
||||
find_widget<label>("starting_pos").set_label(std::to_string(side_));
|
||||
|
||||
//
|
||||
// Set up gender radio buttons
|
||||
//
|
||||
toggle_button& gender_rand = find_widget<toggle_button>(&window, "gender_random", false);
|
||||
toggle_button& gender_male = find_widget<toggle_button>(&window, "gender_male", false);
|
||||
toggle_button& gender_female = find_widget<toggle_button>(&window, "gender_female", false);
|
||||
toggle_button& gender_rand = find_widget<toggle_button>("gender_random");
|
||||
toggle_button& gender_male = find_widget<toggle_button>("gender_male");
|
||||
toggle_button& gender_female = find_widget<toggle_button>("gender_female");
|
||||
|
||||
gender_toggle_.add_member(&gender_rand, "random");
|
||||
gender_toggle_.add_member(&gender_male, unit_race::s_male);
|
||||
|
@ -71,17 +70,17 @@ void faction_select::pre_show(window& window)
|
|||
//
|
||||
// Set up leader menu button
|
||||
//
|
||||
connect_signal_notify_modified(find_widget<menu_button>(&window, "leader_menu", false),
|
||||
connect_signal_notify_modified(find_widget<menu_button>("leader_menu"),
|
||||
std::bind(&faction_select::on_leader_select, this));
|
||||
|
||||
// Leader's profile button
|
||||
find_widget<button>(&window, "type_profile", false).connect_click_handler(
|
||||
find_widget<button>("type_profile").connect_click_handler(
|
||||
std::bind(&faction_select::profile_button_callback, this));
|
||||
|
||||
//
|
||||
// Set up faction list
|
||||
//
|
||||
listbox& list = find_widget<listbox>(&window, "faction_list", false);
|
||||
listbox& list = find_widget<listbox>("faction_list");
|
||||
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
|
@ -114,7 +113,7 @@ void faction_select::pre_show(window& window)
|
|||
|
||||
void faction_select::on_faction_select()
|
||||
{
|
||||
const int selected_row = find_widget<listbox>(get_window(), "faction_list", false).get_selected_row();
|
||||
const int selected_row = find_widget<listbox>("faction_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
|
@ -143,7 +142,7 @@ void faction_select::on_faction_select()
|
|||
}
|
||||
}
|
||||
|
||||
menu_button& leader_dropdown = find_widget<menu_button>(get_window(), "leader_menu", false);
|
||||
menu_button& leader_dropdown = find_widget<menu_button>("leader_menu");
|
||||
|
||||
leader_dropdown.set_values(leaders, std::min<int>(leaders.size() - 1, previous_leader_selection));
|
||||
leader_dropdown.set_active(leaders.size() > 1 && !flg_manager_.is_saved_game());
|
||||
|
@ -164,12 +163,12 @@ void faction_select::on_faction_select()
|
|||
return translation::compare(s1, s2) < 0;
|
||||
});
|
||||
|
||||
find_widget<styled_widget>(get_window(), "recruits", false).set_label(utils::join(recruit_names, "\n"));
|
||||
find_widget<styled_widget>("recruits").set_label(utils::join(recruit_names, "\n"));
|
||||
}
|
||||
|
||||
void faction_select::on_leader_select()
|
||||
{
|
||||
flg_manager_.set_current_leader(find_widget<menu_button>(get_window(), "leader_menu", false).get_value());
|
||||
flg_manager_.set_current_leader(find_widget<menu_button>("leader_menu").get_value());
|
||||
|
||||
// TODO: should we decouple this from the flg manager and instead just check the unit type directly?
|
||||
// If that's done so, we'd need to come up with a different check for Random availability.
|
||||
|
@ -181,7 +180,7 @@ void faction_select::on_leader_select()
|
|||
update_leader_image();
|
||||
|
||||
// Disable the profile button if leader_type is dash or "Random"
|
||||
button& profile_button = find_widget<button>(get_window(), "type_profile", false);
|
||||
button& profile_button = find_widget<button>("type_profile");
|
||||
profile_button.set_active(unit_types.find(flg_manager_.current_leader()) != nullptr);
|
||||
}
|
||||
|
||||
|
@ -209,7 +208,7 @@ void faction_select::update_leader_image()
|
|||
leader_image = formatter() << utg.image() << "~RC(" << utg.flag_rgb() << ">" << tc_color_ << ")";
|
||||
}
|
||||
|
||||
find_widget<drawing>(get_window(), "leader_image", false).set_label(leader_image);
|
||||
find_widget<drawing>("leader_image").set_label(leader_image);
|
||||
}
|
||||
|
||||
void faction_select::post_show(window& /*window*/)
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/multiplayer/lobby.hpp"
|
||||
|
||||
#include "gui/auxiliary/field.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/dialogs/multiplayer/mp_join_game_password_prompt.hpp"
|
||||
#include "gui/dialogs/multiplayer/player_info.hpp"
|
||||
|
@ -369,7 +368,7 @@ void mp_lobby::update_visible_games()
|
|||
{"num_total", std::to_string(lobby_info_.games().size())}
|
||||
});
|
||||
|
||||
find_widget<label>(gamelistbox_, "map", false).set_label(games_string);
|
||||
gamelistbox_->find_widget<label>("map").set_label(games_string);
|
||||
|
||||
gamelistbox_->set_row_shown(lobby_info_.games_visibility());
|
||||
}
|
||||
|
@ -405,10 +404,10 @@ widget_data mp_lobby::make_game_row_data(const mp::game_info& game)
|
|||
|
||||
void mp_lobby::adjust_game_row_contents(const mp::game_info& game, grid* grid, bool add_callbacks)
|
||||
{
|
||||
find_widget<styled_widget>(grid, "name", false).set_use_markup(true);
|
||||
find_widget<styled_widget>(grid, "status", false).set_use_markup(true);
|
||||
grid->find_widget<styled_widget>("name").set_use_markup(true);
|
||||
grid->find_widget<styled_widget>("status").set_use_markup(true);
|
||||
|
||||
toggle_panel& row_panel = find_widget<toggle_panel>(grid, "panel", false);
|
||||
toggle_panel& row_panel = grid->find_widget<toggle_panel>("panel");
|
||||
|
||||
//
|
||||
// Game info
|
||||
|
@ -457,7 +456,7 @@ void mp_lobby::adjust_game_row_contents(const mp::game_info& game, grid* grid, b
|
|||
ss << _("Time limit:") << " " << game.time_limit << "\n";
|
||||
ss << _("Use map settings:") << " " << yes_or_no(game.use_map_settings);
|
||||
|
||||
image& info_icon = find_widget<image>(grid, "game_info", false);
|
||||
image& info_icon = grid->find_widget<image>("game_info");
|
||||
|
||||
if(!game.have_era || !game.have_all_mods || !game.required_addons.empty()) {
|
||||
info_icon.set_label("icons/icon-info-error.png");
|
||||
|
@ -473,7 +472,7 @@ void mp_lobby::adjust_game_row_contents(const mp::game_info& game, grid* grid, b
|
|||
//
|
||||
// Password icon
|
||||
//
|
||||
image& password_icon = find_widget<image>(grid, "needs_password", false);
|
||||
image& password_icon = grid->find_widget<image>("needs_password");
|
||||
|
||||
if(game.password_required) {
|
||||
password_icon.set_visible(widget::visibility::visible);
|
||||
|
@ -484,7 +483,7 @@ void mp_lobby::adjust_game_row_contents(const mp::game_info& game, grid* grid, b
|
|||
//
|
||||
// Observer icon
|
||||
//
|
||||
image& observer_icon = find_widget<image>(grid, "observer_icon", false);
|
||||
image& observer_icon = grid->find_widget<image>("observer_icon");
|
||||
|
||||
if(game.observers) {
|
||||
observer_icon.set_label("misc/eye.png");
|
||||
|
@ -497,7 +496,7 @@ void mp_lobby::adjust_game_row_contents(const mp::game_info& game, grid* grid, b
|
|||
//
|
||||
// Minimap
|
||||
//
|
||||
minimap& map = find_widget<minimap>(grid, "minimap", false);
|
||||
minimap& map = grid->find_widget<minimap>("minimap");
|
||||
|
||||
map.set_map_data(game.map_data);
|
||||
|
||||
|
@ -547,8 +546,8 @@ void mp_lobby::update_selected_game()
|
|||
selected_game_id_ = 0;
|
||||
}
|
||||
|
||||
find_widget<button>(get_window(), "observe_global", false).set_active(can_observe);
|
||||
find_widget<button>(get_window(), "join_global", false).set_active(can_join);
|
||||
find_widget<button>("observe_global").set_active(can_observe);
|
||||
find_widget<button>("join_global").set_active(can_join);
|
||||
|
||||
player_list_dirty_ = true;
|
||||
}
|
||||
|
@ -562,7 +561,7 @@ void mp_lobby::pre_show(window& window)
|
|||
{
|
||||
SCOPE_LB;
|
||||
|
||||
gamelistbox_ = find_widget<listbox>(&window, "game_list", false, true);
|
||||
gamelistbox_ = find_widget<listbox>("game_list", false, true);
|
||||
|
||||
connect_signal_notify_modified(*gamelistbox_,
|
||||
std::bind(&mp_lobby::update_selected_game, this));
|
||||
|
@ -574,36 +573,36 @@ void mp_lobby::pre_show(window& window)
|
|||
// Exit hook to add a confirmation when quitting the Lobby.
|
||||
window.set_exit_hook(window::exit_hook::on_all, std::bind(&mp_lobby::exit_hook, this, std::placeholders::_1));
|
||||
|
||||
chatbox_ = find_widget<chatbox>(&window, "chat", false, true);
|
||||
chatbox_ = find_widget<chatbox>("chat", false, true);
|
||||
|
||||
window.keyboard_capture(chatbox_);
|
||||
|
||||
chatbox_->set_active_window_changed_callback([this]() { player_list_dirty_ = true; });
|
||||
chatbox_->load_log(default_chat_log, true);
|
||||
|
||||
find_widget<button>(&window, "create", false).set_retval(CREATE);
|
||||
find_widget<button>("create").set_retval(CREATE);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_preferences", false),
|
||||
find_widget<button>("show_preferences"),
|
||||
std::bind(&mp_lobby::show_preferences_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "join_global", false),
|
||||
find_widget<button>("join_global"),
|
||||
std::bind(&mp_lobby::enter_selected_game, this, DO_JOIN));
|
||||
|
||||
find_widget<button>(&window, "join_global", false).set_active(false);
|
||||
find_widget<button>("join_global").set_active(false);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "observe_global", false),
|
||||
find_widget<button>("observe_global"),
|
||||
std::bind(&mp_lobby::enter_selected_game, this, DO_OBSERVE));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "server_info", false),
|
||||
find_widget<button>("server_info"),
|
||||
std::bind(&mp_lobby::show_server_info, this));
|
||||
|
||||
find_widget<button>(&window, "observe_global", false).set_active(false);
|
||||
find_widget<button>("observe_global").set_active(false);
|
||||
|
||||
menu_button& replay_options = find_widget<menu_button>(&window, "replay_options", false);
|
||||
menu_button& replay_options = find_widget<menu_button>("replay_options");
|
||||
|
||||
if(prefs::get().skip_mp_replay()) {
|
||||
replay_options.set_selected(1);
|
||||
|
@ -616,7 +615,7 @@ void mp_lobby::pre_show(window& window)
|
|||
connect_signal_notify_modified(replay_options,
|
||||
std::bind(&mp_lobby::skip_replay_changed_callback, this));
|
||||
|
||||
filter_text_ = find_widget<text_box>(&window, "filter_text", false, true);
|
||||
filter_text_ = find_widget<text_box>("filter_text", false, true);
|
||||
|
||||
connect_signal_pre_key_press(
|
||||
*filter_text_,
|
||||
|
@ -631,7 +630,7 @@ void mp_lobby::pre_show(window& window)
|
|||
update_gamelist();
|
||||
update_playerlist();
|
||||
|
||||
// TODO: currently getting a crash in the chatbox if we use this.
|
||||
// TODO: currently getting a crash in the chatbox if we use
|
||||
// -- vultraz, 2017-11-10
|
||||
//mp_lobby::network_handler();
|
||||
|
||||
|
@ -641,22 +640,22 @@ void mp_lobby::pre_show(window& window)
|
|||
//
|
||||
// Profile box
|
||||
//
|
||||
if(auto* profile_panel = find_widget<panel>(&window, "profile", false, false)) {
|
||||
if(panel* profile_panel = find_widget<panel>("profile", false, false)) {
|
||||
auto your_info = std::find_if(lobby_info_.users().begin(), lobby_info_.users().end(),
|
||||
[](const auto& u) { return u.get_relation() == mp::user_info::user_relation::ME; });
|
||||
|
||||
if(your_info != lobby_info_.users().end()) {
|
||||
find_widget<label>(profile_panel, "username", false).set_label(your_info->name);
|
||||
profile_panel->find_widget<label>("username").set_label(your_info->name);
|
||||
|
||||
auto& profile_button = find_widget<button>(profile_panel, "view_profile", false);
|
||||
auto& profile_button = profile_panel->find_widget<button>("view_profile");
|
||||
connect_signal_mouse_left_click(profile_button, std::bind(&mp_lobby::open_profile_url, this));
|
||||
|
||||
auto& history_button = find_widget<button>(profile_panel, "view_match_history", false);
|
||||
auto& history_button = profile_panel->find_widget<button>("view_match_history");
|
||||
connect_signal_mouse_left_click(history_button, std::bind(&mp_lobby::open_match_history, this));
|
||||
}
|
||||
}
|
||||
|
||||
listbox& tab_bar = find_widget<listbox>(&window, "games_list_tab_bar", false);
|
||||
listbox& tab_bar = find_widget<listbox>("games_list_tab_bar");
|
||||
connect_signal_notify_modified(tab_bar, std::bind(&mp_lobby::tab_switch_callback, this));
|
||||
|
||||
// Set up Lua plugin context
|
||||
|
@ -683,7 +682,7 @@ void mp_lobby::pre_show(window& window)
|
|||
|
||||
void mp_lobby::tab_switch_callback()
|
||||
{
|
||||
filter_auto_hosted_ = find_widget<listbox>(get_window(), "games_list_tab_bar", false).get_selected_row() == 1;
|
||||
filter_auto_hosted_ = find_widget<listbox>("games_list_tab_bar").get_selected_row() == 1;
|
||||
update_gamelist_filter();
|
||||
}
|
||||
|
||||
|
@ -1005,7 +1004,7 @@ void mp_lobby::user_dialog_callback(const mp::user_info* info)
|
|||
void mp_lobby::skip_replay_changed_callback()
|
||||
{
|
||||
// TODO: this prefence should probably be controlled with an enum
|
||||
const int value = find_widget<menu_button>(get_window(), "replay_options", false).get_value();
|
||||
const int value = find_widget<menu_button>("replay_options").get_value();
|
||||
prefs::get().set_skip_mp_replay(value == 1);
|
||||
prefs::get().set_blindfold_replay(value == 2);
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "font/text_formatting.hpp"
|
||||
#include "game_initialization/lobby_data.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/toggle_panel.hpp"
|
||||
#include "gui/widgets/tree_view.hpp"
|
||||
|
@ -40,7 +39,7 @@ lobby_player_list_helper::sub_list::sub_list(tree_view* parent_tree, const std::
|
|||
root->unfold();
|
||||
}
|
||||
|
||||
label_player_count = find_widget<label>(root, "player_count", false, true);
|
||||
label_player_count = root->find_widget<label>("player_count", false, true);
|
||||
assert(label_player_count);
|
||||
}
|
||||
|
||||
|
@ -150,7 +149,7 @@ void lobby_player_list_helper::update(const std::vector<mp::user_info>& user_inf
|
|||
info_map.try_emplace(node, info);
|
||||
|
||||
connect_signal_mouse_left_double_click(
|
||||
find_widget<toggle_panel>(node, "tree_view_node_label", false),
|
||||
node->find_widget<toggle_panel>("tree_view_node_label"),
|
||||
std::bind(user_callback, info)
|
||||
);
|
||||
}
|
||||
|
@ -166,7 +165,7 @@ void lobby_player_list_helper::update(const std::vector<mp::user_info>& user_inf
|
|||
|
||||
void lobby_player_list_helper::init(window& w)
|
||||
{
|
||||
tree = find_widget<tree_view>(&w, "player_tree", false, true);
|
||||
tree = w.find_widget<tree_view>("player_tree", false, true);
|
||||
|
||||
player_lists = {
|
||||
sub_list{tree, _("Selected Game"), true},
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "formula/string_utils.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -53,15 +52,15 @@ void mp_match_history::pre_show(window& win)
|
|||
{
|
||||
win.set_enter_disabled(true);
|
||||
|
||||
button& newer_history = find_widget<button>(&win, "newer_history", false);
|
||||
button& older_history = find_widget<button>(&win, "older_history", false);
|
||||
button& newer_history = find_widget<button>("newer_history");
|
||||
button& older_history = find_widget<button>("older_history");
|
||||
connect_signal_mouse_left_click(newer_history, std::bind(&mp_match_history::newer_history_offset, this));
|
||||
connect_signal_mouse_left_click(older_history, std::bind(&mp_match_history::older_history_offset, this));
|
||||
|
||||
button& search = find_widget<button>(&win, "search", false);
|
||||
button& search = find_widget<button>("search");
|
||||
connect_signal_mouse_left_click(search, std::bind(&mp_match_history::new_search, this));
|
||||
|
||||
text_box& search_player = find_widget<text_box>(&win, "search_player", false);
|
||||
text_box& search_player = find_widget<text_box>("search_player");
|
||||
search_player.set_value(player_name_);
|
||||
|
||||
std::vector<config> content_types;
|
||||
|
@ -69,7 +68,7 @@ void mp_match_history::pre_show(window& win)
|
|||
content_types.emplace_back("label", _("Era"));
|
||||
content_types.emplace_back("label", _("Modification"));
|
||||
|
||||
find_widget<menu_button>(&win, "search_content_type", false).set_values(content_types);
|
||||
find_widget<menu_button>("search_content_type").set_values(content_types);
|
||||
|
||||
update_display();
|
||||
}
|
||||
|
@ -78,7 +77,7 @@ void mp_match_history::new_search()
|
|||
{
|
||||
int old_offset = offset_;
|
||||
std::string old_player_name = player_name_;
|
||||
text_box& search_player = find_widget<text_box>(get_window(), "search_player", false);
|
||||
text_box& search_player = find_widget<text_box>("search_player");
|
||||
player_name_ = search_player.get_value();
|
||||
|
||||
// display update failed, set the offset back to what it was before
|
||||
|
@ -86,7 +85,7 @@ void mp_match_history::new_search()
|
|||
offset_ = old_offset;
|
||||
player_name_ = old_player_name;
|
||||
} else {
|
||||
label& title = find_widget<label>(get_window(), "title", false);
|
||||
label& title = find_widget<label>("title");
|
||||
title.set_label(VGETTEXT("Match History — $player", {{"player", player_name_}}));
|
||||
}
|
||||
}
|
||||
|
@ -133,10 +132,10 @@ bool mp_match_history::update_display()
|
|||
return false;
|
||||
}
|
||||
|
||||
listbox* history_box = find_widget<listbox>(get_window(), "history", false, true);
|
||||
listbox* history_box = find_widget<listbox>("history", false, true);
|
||||
history_box->clear();
|
||||
|
||||
listbox* tab_bar = find_widget<listbox>(get_window(), "tab_bar", false, true);
|
||||
listbox* tab_bar = find_widget<listbox>("tab_bar", false, true);
|
||||
connect_signal_notify_modified(*tab_bar, std::bind(&mp_match_history::tab_switch_callback, this));
|
||||
tab_bar->select_row(0);
|
||||
|
||||
|
@ -198,20 +197,20 @@ bool mp_match_history::update_display()
|
|||
|
||||
// this is already the most recent history, can't get anything newer
|
||||
if(offset_ == 0) {
|
||||
button* newer_history = find_widget<button>(get_window(), "newer_history", false, true);
|
||||
button* newer_history = find_widget<button>("newer_history", false, true);
|
||||
newer_history->set_active(false);
|
||||
} else {
|
||||
button* newer_history = find_widget<button>(get_window(), "newer_history", false, true);
|
||||
button* newer_history = find_widget<button>("newer_history", false, true);
|
||||
newer_history->set_active(true);
|
||||
}
|
||||
|
||||
// the server returns up to 11 and the client displays at most 10
|
||||
// if fewer than 11 rows are returned, then there are no older rows left to get next
|
||||
if(history.child_count("game_history_result") < 11) {
|
||||
button* older_history = find_widget<button>(get_window(), "older_history", false, true);
|
||||
button* older_history = find_widget<button>("older_history", false, true);
|
||||
older_history->set_active(false);
|
||||
} else {
|
||||
button* older_history = find_widget<button>(get_window(), "older_history", false, true);
|
||||
button* older_history = find_widget<button>("older_history", false, true);
|
||||
older_history->set_active(true);
|
||||
}
|
||||
|
||||
|
@ -224,9 +223,9 @@ const config mp_match_history::request_history()
|
|||
config& child = request.add_child("game_history_request");
|
||||
child["offset"] = offset_;
|
||||
child["search_player"] = player_name_;
|
||||
child["search_game_name"] = find_widget<text_box>(get_window(), "search_game_name", false).get_value();
|
||||
child["search_content_type"] = find_widget<menu_button>(get_window(), "search_content_type", false).get_value();
|
||||
child["search_content"] = find_widget<text_box>(get_window(), "search_content", false).get_value();
|
||||
child["search_game_name"] = find_widget<text_box>("search_game_name").get_value();
|
||||
child["search_content_type"] = find_widget<menu_button>("search_content_type").get_value();
|
||||
child["search_content"] = find_widget<text_box>("search_content").get_value();
|
||||
DBG_NW << request.debug();
|
||||
connection_.send_data(request);
|
||||
|
||||
|
@ -279,8 +278,8 @@ const config mp_match_history::request_history()
|
|||
|
||||
void mp_match_history::tab_switch_callback()
|
||||
{
|
||||
listbox* history_box = find_widget<listbox>(get_window(), "history", false, true);
|
||||
listbox* tab_bar = find_widget<listbox>(get_window(), "tab_bar", false, true);
|
||||
listbox* history_box = find_widget<listbox>("history", false, true);
|
||||
listbox* tab_bar = find_widget<listbox>("tab_bar", false, true);
|
||||
int tab = tab_bar->get_selected_row();
|
||||
|
||||
for(unsigned i = 0; i < history_box->get_item_count(); i++) {
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/multiplayer/mp_alerts_options.hpp"
|
||||
|
||||
#include "desktop/notifications.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/toggle_button.hpp"
|
||||
|
@ -43,11 +42,11 @@ namespace gui2::dialogs
|
|||
*/
|
||||
#define SETUP_ITEMS(pref_item_sound, pref_item_notif, pref_item_lobby) \
|
||||
{ \
|
||||
toggle_button* sound = find_widget<toggle_button>(&window, prefs_list::pref_item_sound, false, true); \
|
||||
toggle_button* sound = find_widget<toggle_button>(prefs_list::pref_item_sound, false, true); \
|
||||
sound->set_value(prefs::get().pref_item_sound()); \
|
||||
connect_signal_mouse_left_click(*sound, std::bind([sound]() { prefs::get().set_##pref_item_sound(sound->get_value_bool()); })); \
|
||||
\
|
||||
toggle_button* notif = find_widget<toggle_button>(&window, prefs_list::pref_item_notif, false, true); \
|
||||
toggle_button* notif = find_widget<toggle_button>(prefs_list::pref_item_notif, false, true); \
|
||||
\
|
||||
if (!desktop::notifications::available()) { \
|
||||
notif->set_value(false); \
|
||||
|
@ -59,7 +58,7 @@ if (!desktop::notifications::available()) {
|
|||
connect_signal_mouse_left_click(*notif, std::bind([notif]() { prefs::get().set_##pref_item_notif(notif->get_value_bool()); }));\
|
||||
} \
|
||||
\
|
||||
toggle_button* lobby = find_widget<toggle_button>(&window, prefs_list::pref_item_lobby, false, true); \
|
||||
toggle_button* lobby = find_widget<toggle_button>(prefs_list::pref_item_lobby, false, true); \
|
||||
lobby->set_value(prefs::get().pref_item_lobby()); \
|
||||
connect_signal_mouse_left_click(*lobby, std::bind([lobby]() { prefs::get().set_##pref_item_lobby(lobby->get_value_bool()); })); \
|
||||
}
|
||||
|
@ -72,12 +71,12 @@ connect_signal_mouse_left_click(*lobby, std::bind([lobby]() { prefs::get().set_#
|
|||
* @param pref_item_lobby prefs_list constant for the lobby preference
|
||||
*/
|
||||
#define RESET_DEFAULT(pref_item_sound, pref_item_notif, pref_item_lobby) \
|
||||
find_widget<toggle_button>(&window, prefs_list::pref_item_sound, false, true)->set_value(prefs::get().pref_item_sound()); \
|
||||
find_widget<toggle_button>(&window, prefs_list::pref_item_notif, false, true)->set_value(prefs::get().pref_item_notif()); \
|
||||
find_widget<toggle_button>(&window, prefs_list::pref_item_lobby, false, true)->set_value(prefs::get().pref_item_lobby());
|
||||
window.find_widget<toggle_button>(prefs_list::pref_item_sound).set_value(prefs::get().pref_item_sound()); \
|
||||
window.find_widget<toggle_button>(prefs_list::pref_item_notif).set_value(prefs::get().pref_item_notif()); \
|
||||
window.find_widget<toggle_button>(prefs_list::pref_item_lobby).set_value(prefs::get().pref_item_lobby());
|
||||
|
||||
|
||||
static void revert_to_default_pref_values(window& window)
|
||||
void revert_to_default_pref_values(window& window)
|
||||
{
|
||||
// clear existing preferences for MP alerts
|
||||
prefs::get().clear_mp_alert_prefs();
|
||||
|
@ -116,26 +115,25 @@ void mp_alerts_options::pre_show(window& window)
|
|||
SETUP_ITEMS(game_created_sound, game_created_notif, game_created_lobby)
|
||||
|
||||
if (!desktop::notifications::available()) {
|
||||
label* nlabel = find_widget<label>(&window, "notification_label", false, true);
|
||||
label* nlabel = find_widget<label>("notification_label", false, true);
|
||||
nlabel->set_tooltip(_("This build of wesnoth does not include support for desktop notifications, contact your package manager"));
|
||||
}
|
||||
|
||||
toggle_button* in_lobby;
|
||||
in_lobby = find_widget<toggle_button>(&window, prefs_list::ready_for_start_lobby, false, true);
|
||||
in_lobby = find_widget<toggle_button>(prefs_list::ready_for_start_lobby, false, true);
|
||||
in_lobby->set_visible(widget::visibility::invisible);
|
||||
|
||||
in_lobby = find_widget<toggle_button>(&window, prefs_list::game_has_begun_lobby, false, true);
|
||||
in_lobby = find_widget<toggle_button>(prefs_list::game_has_begun_lobby, false, true);
|
||||
in_lobby->set_visible(widget::visibility::invisible);
|
||||
|
||||
in_lobby = find_widget<toggle_button>(&window, prefs_list::turn_changed_sound, false, true); // If we get a sound for this then don't remove this button
|
||||
in_lobby = find_widget<toggle_button>(prefs_list::turn_changed_sound, false, true); // If we get a sound for this then don't remove this button
|
||||
in_lobby->set_visible(widget::visibility::invisible);
|
||||
|
||||
in_lobby = find_widget<toggle_button>(&window, prefs_list::turn_changed_lobby, false, true);
|
||||
in_lobby = find_widget<toggle_button>(prefs_list::turn_changed_lobby, false, true);
|
||||
in_lobby->set_visible(widget::visibility::invisible);
|
||||
|
||||
button* defaults;
|
||||
defaults = find_widget<button>(&window,"revert_to_defaults", false, true);
|
||||
connect_signal_mouse_left_click(*defaults, std::bind(&revert_to_default_pref_values, std::ref(window)));
|
||||
button& defaults = find_widget<button>("revert_to_defaults");
|
||||
connect_signal_mouse_left_click(defaults, std::bind(&revert_to_default_pref_values, std::ref(window)));
|
||||
}
|
||||
|
||||
void mp_alerts_options::post_show(window& /*window*/)
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "game_board.hpp"
|
||||
#include "game_display.hpp"
|
||||
#include "preferences/preferences.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -56,8 +55,8 @@ mp_change_control::mp_change_control(events::menu_handler& mh)
|
|||
|
||||
void mp_change_control::pre_show(window& window)
|
||||
{
|
||||
listbox& sides_list = find_widget<listbox>(&window, "sides_list", false);
|
||||
listbox& nicks_list = find_widget<listbox>(&window, "nicks_list", false);
|
||||
listbox& sides_list = find_widget<listbox>("sides_list");
|
||||
listbox& nicks_list = find_widget<listbox>("nicks_list");
|
||||
|
||||
connect_signal_notify_modified(sides_list,
|
||||
std::bind(&mp_change_control::handle_sides_list_item_clicked, this));
|
||||
|
@ -130,19 +129,19 @@ void mp_change_control::pre_show(window& window)
|
|||
|
||||
void mp_change_control::handle_sides_list_item_clicked()
|
||||
{
|
||||
selected_side_ = find_widget<listbox>(get_window(), "sides_list", false).get_selected_row();
|
||||
selected_side_ = find_widget<listbox>("sides_list").get_selected_row();
|
||||
|
||||
highlight_side_nick();
|
||||
}
|
||||
|
||||
void mp_change_control::handle_nicks_list_item_clicked()
|
||||
{
|
||||
selected_nick_ = find_widget<listbox>(get_window(), "nicks_list", false).get_selected_row();
|
||||
selected_nick_ = find_widget<listbox>("nicks_list").get_selected_row();
|
||||
}
|
||||
|
||||
void mp_change_control::highlight_side_nick()
|
||||
{
|
||||
listbox& nicks_list = find_widget<listbox>(get_window(), "nicks_list", false);
|
||||
listbox& nicks_list = find_widget<listbox>("nicks_list");
|
||||
const auto& teams = menu_handler_.board().teams();
|
||||
|
||||
int i = 0;
|
||||
|
@ -156,7 +155,7 @@ void mp_change_control::highlight_side_nick()
|
|||
}
|
||||
|
||||
grid* row_grid = nicks_list.get_row_grid(i);
|
||||
find_widget<label>(row_grid, nick, false).set_label(label_str);
|
||||
row_grid->find_widget<label>(nick).set_label(label_str);
|
||||
|
||||
++i;
|
||||
}
|
||||
|
|
|
@ -80,10 +80,10 @@ std::array<mp_connect::server_list*, 2> mp_connect::server_lists()
|
|||
|
||||
void mp_connect::pre_show(window& win)
|
||||
{
|
||||
text_box& hostname_box = find_widget<text_box>(&win, "host_name", false);
|
||||
listbox& server_list = find_widget<listbox>(&win, "server_list", false);
|
||||
button& button_add = find_widget<button>(&win, "server_add", false);
|
||||
button& button_del = find_widget<button>(&win, "server_delete", false);
|
||||
text_box& hostname_box = find_widget<text_box>("host_name");
|
||||
listbox& server_list = find_widget<listbox>("server_list");
|
||||
button& button_add = find_widget<button>("server_add");
|
||||
button& button_del = find_widget<button>("server_delete");
|
||||
|
||||
for(const auto* servers : server_lists()) {
|
||||
for(const auto& server : *servers) {
|
||||
|
@ -111,12 +111,10 @@ void mp_connect::insert_into_server_listbox(listbox& listbox, const server_info&
|
|||
|
||||
void mp_connect::select_first_match()
|
||||
{
|
||||
window* window = get_window();
|
||||
|
||||
text_box& hostname_box = find_widget<text_box>(window, "host_name", false);
|
||||
listbox& server_list = find_widget<listbox>(window, "server_list", false);
|
||||
button& button_add = find_widget<button>(window, "server_add", false);
|
||||
button& button_del = find_widget<button>(window, "server_delete", false);
|
||||
text_box& hostname_box = find_widget<text_box>("host_name");
|
||||
listbox& server_list = find_widget<listbox>("server_list");
|
||||
button& button_add = find_widget<button>("server_add");
|
||||
button& button_del = find_widget<button>("server_delete");
|
||||
|
||||
const auto& address = boost::trim_copy(hostname_box.get_value());
|
||||
|
||||
|
@ -159,10 +157,8 @@ void mp_connect::on_address_change()
|
|||
|
||||
void mp_connect::on_server_add()
|
||||
{
|
||||
window* window = get_window();
|
||||
|
||||
text_box& hostname_box = find_widget<text_box>(window, "host_name", false);
|
||||
listbox& server_list = find_widget<listbox>(window, "server_list", false);
|
||||
text_box& hostname_box = find_widget<text_box>("host_name");
|
||||
listbox& server_list = find_widget<listbox>("server_list");
|
||||
|
||||
const auto& address = boost::trim_copy(hostname_box.get_value());
|
||||
const auto& selection = current_selection();
|
||||
|
@ -199,9 +195,7 @@ void mp_connect::on_server_add()
|
|||
|
||||
void mp_connect::on_server_delete()
|
||||
{
|
||||
window* window = get_window();
|
||||
|
||||
listbox& server_list = find_widget<listbox>(window, "server_list", false);
|
||||
listbox& server_list = find_widget<listbox>("server_list");
|
||||
|
||||
auto selection = current_selection();
|
||||
|
||||
|
@ -219,11 +213,9 @@ void mp_connect::on_server_delete()
|
|||
|
||||
void mp_connect::on_server_select()
|
||||
{
|
||||
window* window = get_window();
|
||||
|
||||
text_box& hostname_box = find_widget<text_box>(window, "host_name", false);
|
||||
button& button_add = find_widget<button>(window, "server_add", false);
|
||||
button& button_del = find_widget<button>(window, "server_delete", false);
|
||||
text_box& hostname_box = find_widget<text_box>("host_name");
|
||||
button& button_add = find_widget<button>("server_add");
|
||||
button& button_del = find_widget<button>("server_delete");
|
||||
|
||||
auto selection = current_selection();
|
||||
|
||||
|
@ -245,7 +237,7 @@ void mp_connect::on_server_select()
|
|||
|
||||
mp_connect::selection mp_connect::current_selection()
|
||||
{
|
||||
listbox& server_list = find_widget<listbox>(get_window(), "server_list", false);
|
||||
listbox& server_list = find_widget<listbox>("server_list");
|
||||
return { this, server_list.get_selected_row() };
|
||||
}
|
||||
|
||||
|
|
|
@ -145,18 +145,18 @@ mp_create_game::mp_create_game(saved_game& state, bool local_mode)
|
|||
|
||||
void mp_create_game::pre_show(window& win)
|
||||
{
|
||||
find_widget<text_box>(&win, "game_name", false).set_value(local_mode_ ? "" : ng::configure_engine::game_name_default());
|
||||
find_widget<text_box>("game_name").set_value(local_mode_ ? "" : ng::configure_engine::game_name_default());
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "random_map_regenerate", false),
|
||||
find_widget<button>("random_map_regenerate"),
|
||||
std::bind(&mp_create_game::regenerate_random_map, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "random_map_settings", false),
|
||||
find_widget<button>("random_map_settings"),
|
||||
std::bind(&mp_create_game::show_generator_settings, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "load_game", false),
|
||||
find_widget<button>("load_game"),
|
||||
std::bind(&mp_create_game::load_game_callback, this));
|
||||
|
||||
// Custom dialog close hook
|
||||
|
@ -170,10 +170,10 @@ void mp_create_game::pre_show(window& win)
|
|||
//
|
||||
// Set up filtering
|
||||
//
|
||||
connect_signal_notify_modified(find_widget<slider>(&win, "num_players", false),
|
||||
connect_signal_notify_modified(find_widget<slider>("num_players"),
|
||||
std::bind(&mp_create_game::on_filter_change<slider>, this, "num_players", true));
|
||||
|
||||
text_box& filter = find_widget<text_box>(&win, "game_filter", false);
|
||||
text_box& filter = find_widget<text_box>("game_filter");
|
||||
|
||||
filter.set_text_changed_callback(
|
||||
std::bind(&mp_create_game::on_filter_change<text_box>, this, "game_filter", true));
|
||||
|
@ -194,7 +194,7 @@ void mp_create_game::pre_show(window& win)
|
|||
throw game::error(_("No games found."));
|
||||
}
|
||||
|
||||
menu_button& game_menu_button = find_widget<menu_button>(&win, "game_types", false);
|
||||
menu_button& game_menu_button = find_widget<menu_button>("game_types");
|
||||
|
||||
// Helper to make sure the initially selected level type is valid
|
||||
auto get_initial_type_index = [this]()->int {
|
||||
|
@ -217,7 +217,7 @@ void mp_create_game::pre_show(window& win)
|
|||
//
|
||||
// Set up mods list
|
||||
//
|
||||
mod_list_ = &find_widget<listbox>(&win, "mod_list", false);
|
||||
mod_list_ = &find_widget<listbox>("mod_list");
|
||||
|
||||
const auto& activemods = prefs::get().modifications();
|
||||
for(const auto& mod : create_engine_.get_extras_by_type(ng::create_engine::MOD)) {
|
||||
|
@ -229,9 +229,9 @@ void mp_create_game::pre_show(window& win)
|
|||
|
||||
grid* row_grid = &mod_list_->add_row(data);
|
||||
|
||||
find_widget<toggle_panel>(row_grid, "panel", false).set_tooltip(mod->description);
|
||||
row_grid->find_widget<toggle_panel>("panel").set_tooltip(mod->description);
|
||||
|
||||
toggle_button& mog_toggle = find_widget<toggle_button>(row_grid, "mod_active_state", false);
|
||||
toggle_button& mog_toggle = row_grid->find_widget<toggle_button>("mod_active_state");
|
||||
|
||||
if(std::find(activemods.begin(), activemods.end(), mod->id) != activemods.end()) {
|
||||
create_engine_.active_mods().push_back(mod->id);
|
||||
|
@ -243,13 +243,13 @@ void mp_create_game::pre_show(window& win)
|
|||
|
||||
// No mods, hide the header
|
||||
if(mod_list_->get_item_count() <= 0) {
|
||||
find_widget<styled_widget>(&win, "mods_header", false).set_visible(widget::visibility::invisible);
|
||||
find_widget<styled_widget>("mods_header").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
//
|
||||
// Set up eras menu_button
|
||||
//
|
||||
eras_menu_button_ = &find_widget<menu_button>(&win, "eras", false);
|
||||
eras_menu_button_ = &find_widget<menu_button>("eras");
|
||||
|
||||
std::vector<config> era_names;
|
||||
for(const auto& era : create_engine_.get_const_extras_by_type(ng::create_engine::ERA)) {
|
||||
|
@ -278,7 +278,7 @@ void mp_create_game::pre_show(window& win)
|
|||
//
|
||||
const int initial_index = static_cast<int>(random_faction_mode::get_enum(prefs::get().random_faction_mode()).value_or(random_faction_mode::type::independent));
|
||||
|
||||
menu_button& rfm_menu_button = find_widget<menu_button>(&win, "random_faction_mode", false);
|
||||
menu_button& rfm_menu_button = find_widget<menu_button>("random_faction_mode");
|
||||
rfm_menu_button.set_selected(initial_index);
|
||||
|
||||
connect_signal_notify_modified(rfm_menu_button,
|
||||
|
@ -303,15 +303,15 @@ void mp_create_game::pre_show(window& win)
|
|||
// Timer reset button
|
||||
//
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "reset_timer_defaults", false),
|
||||
find_widget<button>("reset_timer_defaults"),
|
||||
std::bind(&mp_create_game::reset_timer_settings, this));
|
||||
|
||||
//
|
||||
// Disable certain settings if we're playing a local game.
|
||||
//
|
||||
if(local_mode_) {
|
||||
find_widget<text_box>(&win, "game_name", false).set_active(false);
|
||||
find_widget<text_box>(&win, "game_password", false).set_active(false);
|
||||
find_widget<text_box>("game_name").set_active(false);
|
||||
find_widget<text_box>("game_password").set_active(false);
|
||||
|
||||
observers_->widget_set_enabled(false, false);
|
||||
strict_sync_->widget_set_enabled(false, false);
|
||||
|
@ -321,7 +321,7 @@ void mp_create_game::pre_show(window& win)
|
|||
//
|
||||
// Set up tab control
|
||||
//
|
||||
listbox& tab_bar = find_widget<listbox>(&win, "tab_bar", false);
|
||||
listbox& tab_bar = find_widget<listbox>("tab_bar");
|
||||
|
||||
connect_signal_notify_modified(tab_bar,
|
||||
std::bind(&mp_create_game::on_tab_select, this));
|
||||
|
@ -329,14 +329,14 @@ void mp_create_game::pre_show(window& win)
|
|||
// Allow the settings stack to find widgets in all pages, regardless of which is selected.
|
||||
// This ensures settings (especially game settings) widgets are appropriately updated when
|
||||
// a new game is selected, regardless of which settings tab is active at the time.
|
||||
find_widget<stacked_widget>(&win, "pager", false).set_find_in_all_layers(true);
|
||||
find_widget<stacked_widget>("pager").set_find_in_all_layers(true);
|
||||
|
||||
// We call on_tab_select farther down.
|
||||
|
||||
//
|
||||
// Main games list
|
||||
//
|
||||
listbox& list = find_widget<listbox>(&win, "games_list", false);
|
||||
listbox& list = find_widget<listbox>("games_list");
|
||||
|
||||
connect_signal_notify_modified(list,
|
||||
std::bind(&mp_create_game::on_game_select, this));
|
||||
|
@ -456,7 +456,7 @@ void mp_create_game::sync_with_depcheck()
|
|||
create_engine_.set_current_level(new_level_index.second);
|
||||
selected_game_index_ = new_level_index.second;
|
||||
|
||||
auto& game_types_list = find_widget<menu_button>(get_window(), "game_types", false);
|
||||
auto& game_types_list = find_widget<menu_button>("game_types");
|
||||
game_types_list.set_value(std::distance(level_types_.begin(), std::find_if(level_types_.begin(), level_types_.begin(), [&](const level_type_info& info){ return info.first == new_level_index.first; })));
|
||||
|
||||
if(different_type) {
|
||||
|
@ -466,7 +466,7 @@ void mp_create_game::sync_with_depcheck()
|
|||
// which case we cannot use display_games_of_type since it destroys the list (and its
|
||||
// elements) which might result in segfaults. Instead, we assume that a listbox-triggered
|
||||
// sync_with_depcheck call never changes the game type and goes to this branch instead.
|
||||
find_widget<listbox>(get_window(), "games_list", false).select_row(new_level_index.second);
|
||||
find_widget<listbox>("games_list").select_row(new_level_index.second);
|
||||
|
||||
// Override the last selection so on_game_select selects the new level
|
||||
selected_game_index_ = -1;
|
||||
|
@ -488,9 +488,9 @@ void mp_create_game::sync_with_depcheck()
|
|||
template<typename T>
|
||||
void mp_create_game::on_filter_change(const std::string& id, bool do_select)
|
||||
{
|
||||
create_engine_.apply_level_filter(find_widget<T>(get_window(), id, false).get_value());
|
||||
create_engine_.apply_level_filter(find_widget<T>(id).get_value());
|
||||
|
||||
listbox& game_list = find_widget<listbox>(get_window(), "games_list", false);
|
||||
listbox& game_list = find_widget<listbox>("games_list");
|
||||
|
||||
boost::dynamic_bitset<> filtered(game_list.get_item_count());
|
||||
for(const std::size_t i : create_engine_.get_filtered_level_indices(create_engine_.current_level_type())) {
|
||||
|
@ -506,7 +506,7 @@ void mp_create_game::on_filter_change(const std::string& id, bool do_select)
|
|||
|
||||
void mp_create_game::on_game_select()
|
||||
{
|
||||
const int selected_game = find_widget<listbox>(get_window(), "games_list", false).get_selected_row();
|
||||
const int selected_game = find_widget<listbox>("games_list").get_selected_row();
|
||||
|
||||
if(selected_game == selected_game_index_) {
|
||||
return;
|
||||
|
@ -541,8 +541,8 @@ void mp_create_game::on_game_select()
|
|||
|
||||
void mp_create_game::on_tab_select()
|
||||
{
|
||||
const int i = find_widget<listbox>(get_window(), "tab_bar", false).get_selected_row();
|
||||
find_widget<stacked_widget>(get_window(), "pager", false).select_layer(i);
|
||||
const int i = find_widget<listbox>("tab_bar").get_selected_row();
|
||||
find_widget<stacked_widget>("pager").select_layer(i);
|
||||
}
|
||||
|
||||
void mp_create_game::on_mod_toggle(const std::string id, toggle_button* sender)
|
||||
|
@ -572,12 +572,12 @@ void mp_create_game::on_era_select()
|
|||
|
||||
void mp_create_game::on_random_faction_mode_select()
|
||||
{
|
||||
selected_rfm_index_ = find_widget<menu_button>(get_window(), "random_faction_mode", false).get_value();
|
||||
selected_rfm_index_ = find_widget<menu_button>("random_faction_mode").get_value();
|
||||
}
|
||||
|
||||
void mp_create_game::show_description(const std::string& new_description)
|
||||
{
|
||||
styled_widget& description = find_widget<styled_widget>(get_window(), "description", false);
|
||||
styled_widget& description = find_widget<styled_widget>("description");
|
||||
|
||||
description.set_label(!new_description.empty() ? new_description : _("No description available."));
|
||||
description.set_use_markup(true);
|
||||
|
@ -585,7 +585,7 @@ void mp_create_game::show_description(const std::string& new_description)
|
|||
|
||||
void mp_create_game::update_games_list()
|
||||
{
|
||||
const int index = find_widget<menu_button>(get_window(), "game_types", false).get_value();
|
||||
const int index = find_widget<menu_button>("game_types").get_value();
|
||||
|
||||
display_games_of_type(level_types_[index].first, create_engine_.current_level().id());
|
||||
}
|
||||
|
@ -594,7 +594,7 @@ void mp_create_game::display_games_of_type(level_type::type type, const std::str
|
|||
{
|
||||
create_engine_.set_current_level_type(type);
|
||||
|
||||
listbox& list = find_widget<listbox>(get_window(), "games_list", false);
|
||||
listbox& list = find_widget<listbox>("games_list");
|
||||
|
||||
list.clear();
|
||||
|
||||
|
@ -612,7 +612,7 @@ void mp_create_game::display_games_of_type(level_type::type type, const std::str
|
|||
|
||||
grid& rg = list.add_row(data);
|
||||
|
||||
auto& icon = find_widget<image>(&rg, "game_icon", false);
|
||||
auto& icon = rg.find_widget<image>("game_icon");
|
||||
if(icon.get_label().empty()) {
|
||||
icon.set_visible(gui2::widget::visibility::invisible);
|
||||
}
|
||||
|
@ -631,8 +631,8 @@ void mp_create_game::display_games_of_type(level_type::type type, const std::str
|
|||
|
||||
const bool is_random_map = type == level_type::type::random_map;
|
||||
|
||||
find_widget<button>(get_window(), "random_map_regenerate", false).set_active(is_random_map);
|
||||
find_widget<button>(get_window(), "random_map_settings", false).set_active(is_random_map);
|
||||
find_widget<button>("random_map_regenerate").set_active(is_random_map);
|
||||
find_widget<button>("random_map_settings").set_active(is_random_map);
|
||||
|
||||
// Override the last selection so on_game_select selects the new level
|
||||
selected_game_index_ = -1;
|
||||
|
@ -662,8 +662,8 @@ int mp_create_game::convert_to_game_filtered_index(const unsigned int initial_in
|
|||
|
||||
void mp_create_game::update_details()
|
||||
{
|
||||
styled_widget& players = find_widget<styled_widget>(get_window(), "map_num_players", false);
|
||||
styled_widget& map_size = find_widget<styled_widget>(get_window(), "map_size", false);
|
||||
styled_widget& players = find_widget<styled_widget>("map_num_players");
|
||||
styled_widget& map_size = find_widget<styled_widget>("map_size");
|
||||
|
||||
if(create_engine_.current_level_type() == level_type::type::random_map) {
|
||||
// If the current random map doesn't have data, generate it
|
||||
|
@ -673,7 +673,7 @@ void mp_create_game::update_details()
|
|||
create_engine_.init_generated_level_data();
|
||||
}
|
||||
|
||||
find_widget<button>(get_window(), "random_map_settings", false).set_active(create_engine_.generator_has_settings());
|
||||
find_widget<button>("random_map_settings").set_active(create_engine_.generator_has_settings());
|
||||
}
|
||||
|
||||
create_engine_.current_level().set_metadata();
|
||||
|
@ -686,7 +686,7 @@ void mp_create_game::update_details()
|
|||
// Set the title, with newlines replaced. Newlines are sometimes found in SP Campaign names
|
||||
std::string title = create_engine_.current_level().name();
|
||||
boost::replace_all(title, "\n", " " + font::unicode_em_dash + " ");
|
||||
find_widget<styled_widget>(get_window(), "game_title", false).set_label(title);
|
||||
find_widget<styled_widget>("game_title").set_label(title);
|
||||
|
||||
|
||||
switch(create_engine_.current_level_type()) {
|
||||
|
@ -700,14 +700,14 @@ void mp_create_game::update_details()
|
|||
|
||||
create_engine_.get_state().classification().campaign = "";
|
||||
|
||||
find_widget<stacked_widget>(get_window(), "minimap_stack", false).select_layer(0);
|
||||
find_widget<stacked_widget>("minimap_stack").select_layer(0);
|
||||
|
||||
if(current_scenario->data()["map_data"].empty()) {
|
||||
saved_game::expand_map_file(current_scenario->data());
|
||||
current_scenario->set_metadata();
|
||||
}
|
||||
|
||||
find_widget<minimap>(get_window(), "minimap", false).set_map_data(current_scenario->data()["map_data"]);
|
||||
find_widget<minimap>("minimap").set_map_data(current_scenario->data()["map_data"]);
|
||||
|
||||
players.set_label(std::to_string(current_scenario->num_players()));
|
||||
map_size.set_label(current_scenario->map_size());
|
||||
|
@ -724,8 +724,8 @@ void mp_create_game::update_details()
|
|||
|
||||
const std::string img = formatter() << current_campaign->data()["image"] << "~SCALE_INTO(265,265)";
|
||||
|
||||
find_widget<stacked_widget>(get_window(), "minimap_stack", false).select_layer(1);
|
||||
find_widget<image>(get_window(), "campaign_image", false).set_image(img);
|
||||
find_widget<stacked_widget>("minimap_stack").select_layer(1);
|
||||
find_widget<image>("campaign_image").set_image(img);
|
||||
|
||||
const int p_min = current_campaign->min_players();
|
||||
const int p_max = current_campaign->max_players();
|
||||
|
@ -775,7 +775,7 @@ void mp_create_game::update_map_settings()
|
|||
reservoir_ ->widget_set_enabled(time_limit, false);
|
||||
action_bonus_ ->widget_set_enabled(time_limit, false);
|
||||
|
||||
find_widget<button>(get_window(), "reset_timer_defaults", false).set_active(time_limit);
|
||||
find_widget<button>("reset_timer_defaults").set_active(time_limit);
|
||||
|
||||
if(use_map_settings) {
|
||||
fog_ ->set_widget_value(config_engine_->fog_game_default());
|
||||
|
@ -809,7 +809,7 @@ std::vector<std::string> mp_create_game::get_active_mods()
|
|||
int i = 0;
|
||||
std::set<std::string> res;
|
||||
for(const auto& mod : create_engine_.get_extras_by_type(ng::create_engine::MOD)) {
|
||||
if(find_widget<toggle_button>(mod_list_->get_row_grid(i), "mod_active_state", false).get_value_bool()) {
|
||||
if(mod_list_->get_row_grid(i)->find_widget<toggle_button>("mod_active_state").get_value_bool()) {
|
||||
res.insert(mod->id);
|
||||
}
|
||||
++i;
|
||||
|
@ -823,7 +823,7 @@ void mp_create_game::set_active_mods(const std::vector<std::string>& val)
|
|||
int i = 0;
|
||||
std::set<std::string> res;
|
||||
for(const auto& mod : create_engine_.get_extras_by_type(ng::create_engine::MOD)) {
|
||||
find_widget<toggle_button>(mod_list_->get_row_grid(i), "mod_active_state", false).set_value_bool(val2.find(mod->id) != val2.end());
|
||||
mod_list_->get_row_grid(i)->find_widget<toggle_button>("mod_active_state").set_value_bool(val2.find(mod->id) != val2.end());
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
@ -871,7 +871,7 @@ void mp_create_game::post_show(window& window)
|
|||
plugins_context_.reset();
|
||||
|
||||
// Show all tabs so that find_widget works correctly
|
||||
find_widget<stacked_widget>(&window, "pager", false).select_layer(-1);
|
||||
find_widget<stacked_widget>("pager").select_layer(-1);
|
||||
|
||||
if(get_retval() == LOAD_GAME) {
|
||||
create_engine_.prepare_for_saved_game();
|
||||
|
@ -972,13 +972,13 @@ void mp_create_game::post_show(window& window)
|
|||
config_engine_->set_options(options_manager_->get_options_config());
|
||||
|
||||
// Set game name
|
||||
const std::string name = find_widget<text_box>(&window, "game_name", false).get_value();
|
||||
const std::string name = find_widget<text_box>("game_name").get_value();
|
||||
if(!name.empty() && (name != ng::configure_engine::game_name_default())) {
|
||||
config_engine_->set_game_name(name);
|
||||
}
|
||||
|
||||
// Set game password
|
||||
const std::string password = find_widget<text_box>(&window, "game_password", false).get_value();
|
||||
const std::string password = find_widget<text_box>("game_password").get_value();
|
||||
if(!password.empty()) {
|
||||
config_engine_->set_game_password(password);
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include "game_initialization/mp_game_utils.hpp"
|
||||
#include "game_initialization/multiplayer.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/timer.hpp"
|
||||
#include "gui/dialogs/loading_screen.hpp"
|
||||
#include "gui/dialogs/multiplayer/faction_select.hpp"
|
||||
|
@ -240,7 +239,7 @@ void mp_join_game::pre_show(window& window)
|
|||
//
|
||||
// Set title
|
||||
//
|
||||
label& title = find_widget<label>(&window, "title", false);
|
||||
label& title = find_widget<label>("title");
|
||||
// FIXME: very hacky way to get the game name...
|
||||
title.set_label((formatter() << level_.mandatory_child("multiplayer")["scenario"] << " " << font::unicode_em_dash << " " << get_scenario()["name"].t_str()).str());
|
||||
|
||||
|
@ -252,7 +251,7 @@ void mp_join_game::pre_show(window& window)
|
|||
//
|
||||
// Initialize chatbox and game rooms
|
||||
//
|
||||
chatbox& chat = find_widget<chatbox>(&window, "chat", false);
|
||||
chatbox& chat = find_widget<chatbox>("chat");
|
||||
|
||||
chat.room_window_open(N_("this game"), true, false);
|
||||
chat.active_window_changed();
|
||||
|
@ -345,7 +344,7 @@ void mp_join_game::generate_side_list()
|
|||
return;
|
||||
}
|
||||
|
||||
tree_view& tree = find_widget<tree_view>(get_window(), "side_list", false);
|
||||
tree_view& tree = find_widget<tree_view>("side_list");
|
||||
|
||||
tree.clear();
|
||||
team_tree_map_.clear();
|
||||
|
@ -446,7 +445,7 @@ void mp_join_game::generate_side_list()
|
|||
|
||||
grid& row_grid = node.get_grid();
|
||||
|
||||
auto* select_leader_button = find_widget<button>(&row_grid, "select_leader", false, false);
|
||||
auto* select_leader_button = &row_grid.find_widget<button>("select_leader", false);
|
||||
if(select_leader_button) {
|
||||
if(side["player_id"] == prefs::get().login() && side["allow_changes"].to_bool(true)) {
|
||||
//
|
||||
|
@ -473,8 +472,8 @@ void mp_join_game::generate_side_list()
|
|||
}
|
||||
|
||||
if(income_amt == 0) {
|
||||
find_widget<image>(&row_grid, "income_icon", false).set_visible(widget::visibility::invisible);
|
||||
find_widget<label>(&row_grid, "side_income", false).set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<image>("income_icon").set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<label>("side_income").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -502,7 +501,7 @@ void mp_join_game::network_handler()
|
|||
}
|
||||
|
||||
// Update chat
|
||||
find_widget<chatbox>(get_window(), "chat", false).process_network_data(data);
|
||||
find_widget<chatbox>("chat").process_network_data(data);
|
||||
|
||||
if(!data["message"].empty()) {
|
||||
gui2::show_transient_message(_("Response") , data["message"]);
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/multiplayer/mp_login.hpp"
|
||||
|
||||
#include "preferences/preferences.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/field.hpp"
|
||||
#include "gui/widgets/password_box.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -46,29 +45,29 @@ mp_login::mp_login(const std::string& host, const std::string& label, const bool
|
|||
|
||||
void mp_login::load_password()
|
||||
{
|
||||
text_box& pwd = find_widget<text_box>(this, "password", false);
|
||||
text_box& pwd = find_widget<text_box>("password");
|
||||
pwd.set_value(prefs::get().password(host_, username_->get_widget_value()));
|
||||
}
|
||||
|
||||
void mp_login::save_password()
|
||||
{
|
||||
password_box& pwd = find_widget<password_box>(this, "password", false);
|
||||
password_box& pwd = find_widget<password_box>("password");
|
||||
prefs::get().set_password(host_, username_->get_widget_value(), pwd.get_real_value());
|
||||
}
|
||||
|
||||
void mp_login::pre_show(window& win)
|
||||
{
|
||||
text_box& login = find_widget<text_box>(&win, "user_name", false);
|
||||
text_box& login = find_widget<text_box>("user_name");
|
||||
login.connect_signal<event::RECEIVE_KEYBOARD_FOCUS>(std::bind(&mp_login::load_password, this));
|
||||
|
||||
load_password();
|
||||
|
||||
if(focus_password_) {
|
||||
win.keyboard_capture(find_widget<text_box>(&win, "password", false, true));
|
||||
win.keyboard_capture(find_widget<text_box>("password", false, true));
|
||||
}
|
||||
|
||||
win.add_to_tab_order(&login);
|
||||
win.add_to_tab_order(find_widget<text_box>(&win, "password", false, true));
|
||||
win.add_to_tab_order(find_widget<text_box>("password", false, true));
|
||||
}
|
||||
|
||||
void mp_login::post_show(window& /*win*/) {
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "desktop/open.hpp"
|
||||
#include "game_initialization/multiplayer.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -37,26 +36,26 @@ void mp_method_selection::pre_show(window& window)
|
|||
{
|
||||
user_name_ = prefs::get().login();
|
||||
|
||||
text_box* user_widget = find_widget<text_box>(&window, "user_name", false, true);
|
||||
text_box* user_widget = find_widget<text_box>("user_name", false, true);
|
||||
user_widget->set_value(user_name_);
|
||||
user_widget->set_maximum_length(mp::max_login_size);
|
||||
|
||||
window.keyboard_capture(user_widget);
|
||||
|
||||
listbox* list = find_widget<listbox>(&window, "method_list", false, true);
|
||||
listbox* list = find_widget<listbox>("method_list", false, true);
|
||||
window.add_to_keyboard_chain(list);
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "register", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("register"),
|
||||
std::bind(&desktop::open_object, forum_registration_url));
|
||||
}
|
||||
|
||||
void mp_method_selection::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
listbox& list = find_widget<listbox>(&window, "method_list", false);
|
||||
listbox& list = find_widget<listbox>("method_list");
|
||||
choice_ = static_cast<choice>(list.get_selected_row());
|
||||
|
||||
text_box& user_widget = find_widget<text_box>(&window, "user_name", false);
|
||||
text_box& user_widget = find_widget<text_box>("user_name");
|
||||
user_widget.save_to_history();
|
||||
|
||||
user_name_ = user_widget.get_value();
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "gui/dialogs/multiplayer/mp_options_helper.hpp"
|
||||
|
||||
#include "preferences/preferences.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/menu_button.hpp"
|
||||
#include "gui/widgets/slider.hpp"
|
||||
|
@ -26,14 +25,16 @@
|
|||
#include "gui/widgets/tree_view.hpp"
|
||||
#include "gui/widgets/tree_view_node.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
|
||||
namespace gui2::dialogs
|
||||
{
|
||||
|
||||
mp_options_helper::mp_options_helper(window& window, ng::create_engine& create_engine)
|
||||
: create_engine_(create_engine)
|
||||
, options_tree_(find_widget<tree_view>(&window, "custom_options", false))
|
||||
, no_options_notice_(find_widget<styled_widget>(&window, "no_options_notice", false))
|
||||
, options_tree_(window.find_widget<tree_view>("custom_options"))
|
||||
, no_options_notice_(window.find_widget<styled_widget>("no_options_notice"))
|
||||
, node_data_map_()
|
||||
, visible_options_()
|
||||
, options_data_()
|
||||
|
@ -311,7 +312,7 @@ void mp_options_helper::display_custom_options(const std::string& type, int node
|
|||
// Add the Defaults button at the end
|
||||
tree_view_node& node = option_node.add_child("options_default_button", empty_map);
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&node, "reset_option_values", false),
|
||||
connect_signal_mouse_left_click(node.find_widget<button>("reset_option_values"),
|
||||
std::bind(&mp_options_helper::reset_options_data, this, visible_options_.back(),
|
||||
std::placeholders::_3, std::placeholders::_4));
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "gui/dialogs/multiplayer/mp_report.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/menu_button.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -48,15 +47,15 @@ void mp_report::pre_show(window& win)
|
|||
occurrence_location_entries.emplace_back("label", _("Whisper"));
|
||||
occurrence_location_entries.emplace_back("label", _("Game"));
|
||||
|
||||
find_widget<menu_button>(&win, "occurrence_location", false).set_values(occurrence_location_entries);
|
||||
find_widget<menu_button>("occurrence_location").set_values(occurrence_location_entries);
|
||||
|
||||
button& ok = find_widget<button>(&win, "ok", false);
|
||||
button& ok = find_widget<button>("ok");
|
||||
ok.set_active(false);
|
||||
|
||||
text_box& reportee = find_widget<text_box>(&win, "reportee", false);
|
||||
text_box& reportee = find_widget<text_box>("reportee");
|
||||
reportee.set_text_changed_callback(std::bind(&mp_report::reportee_changed, this, std::placeholders::_2));
|
||||
|
||||
text_box& report_reason = find_widget<text_box>(&win, "report_reason", false);
|
||||
text_box& report_reason = find_widget<text_box>("report_reason");
|
||||
report_reason.set_text_changed_callback(std::bind(&mp_report::report_reason_changed, this, std::placeholders::_2));
|
||||
|
||||
win.set_exit_hook(window::exit_hook::on_ok, [this](window&) { return !reportee_empty_ && !report_reason_empty_; });
|
||||
|
@ -66,10 +65,10 @@ void mp_report::post_show(window& window)
|
|||
{
|
||||
if(get_retval() == gui2::retval::OK)
|
||||
{
|
||||
const text_box& reportee = find_widget<const text_box>(&window, "reportee", false);
|
||||
const text_box& report_reason = find_widget<const text_box>(&window, "report_reason", false);
|
||||
const menu_button& occurrence_location = find_widget<const menu_button>(&window, "occurrence_location", false);
|
||||
const std::string additional_information = find_widget<const text_box>(&window, "additional_information", false).get_value();
|
||||
const text_box& reportee = find_widget<const text_box>("reportee");
|
||||
const text_box& report_reason = find_widget<const text_box>("report_reason");
|
||||
const menu_button& occurrence_location = find_widget<const menu_button>("occurrence_location");
|
||||
const std::string additional_information = find_widget<const text_box>("additional_information").get_value();
|
||||
|
||||
std::ostringstream report;
|
||||
report << "Reporting player '" << reportee.get_value() << "' for reason '" << report_reason.get_value() << "'."
|
||||
|
@ -86,7 +85,7 @@ void mp_report::reportee_changed(const std::string& text)
|
|||
{
|
||||
reportee_empty_ = text.empty();
|
||||
|
||||
button& ok = find_widget<button>(get_window(), "ok", false);
|
||||
button& ok = find_widget<button>("ok");
|
||||
ok.set_active(!reportee_empty_ && !report_reason_empty_);
|
||||
}
|
||||
|
||||
|
@ -94,7 +93,7 @@ void mp_report::report_reason_changed(const std::string& text)
|
|||
{
|
||||
report_reason_empty_ = text.empty();
|
||||
|
||||
button& ok = find_widget<button>(get_window(), "ok", false);
|
||||
button& ok = find_widget<button>("ok");
|
||||
ok.set_active(!reportee_empty_ && !report_reason_empty_);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include "formatter.hpp"
|
||||
#include "game_config.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/multiplayer/faction_select.hpp"
|
||||
#include "gui/dialogs/multiplayer/player_list_helper.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -81,12 +80,12 @@ void mp_staging::pre_show(window& window)
|
|||
tooltip
|
||||
<< vgettext_impl("wesnoth", "Hotkey(s): ", {{}})
|
||||
<< hotkey::get_names(hotkey::hotkey_command::get_command_by_command(hotkey::HOTKEY_MP_START_GAME).id);
|
||||
find_widget<button>(get_window(), "ok", false).set_tooltip(tooltip.str());
|
||||
find_widget<button>("ok").set_tooltip(tooltip.str());
|
||||
|
||||
//
|
||||
// Set title and status widget states
|
||||
//
|
||||
label& title = find_widget<label>(&window, "title", false);
|
||||
label& title = find_widget<label>("title");
|
||||
title.set_label((formatter() << connect_engine_.params().name << " " << font::unicode_em_dash << " " << connect_engine_.scenario()["name"].t_str()).str());
|
||||
|
||||
update_status_label_and_buttons();
|
||||
|
@ -103,7 +102,7 @@ void mp_staging::pre_show(window& window)
|
|||
//
|
||||
// Initialize chatbox and game rooms
|
||||
//
|
||||
chatbox& chat = find_widget<chatbox>(&window, "chat", false);
|
||||
chatbox& chat = find_widget<chatbox>("chat");
|
||||
|
||||
chat.room_window_open(N_("this game"), true, false);
|
||||
chat.active_window_changed();
|
||||
|
@ -151,7 +150,7 @@ tree_view_node& mp_staging::add_side_to_team_node(ng::side_engine_ptr side, T&&.
|
|||
|
||||
// Add a team node if none exists
|
||||
if(team_node == nullptr) {
|
||||
tree_view& tree = find_widget<tree_view>(get_window(), "side_list", false);
|
||||
tree_view& tree = find_widget<tree_view>("side_list");
|
||||
|
||||
widget_data tree_data;
|
||||
widget_item tree_item;
|
||||
|
@ -224,7 +223,7 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
}
|
||||
}
|
||||
|
||||
menu_button& ai_selection = find_widget<menu_button>(&row_grid, "ai_controller", false);
|
||||
menu_button& ai_selection = row_grid.find_widget<menu_button>("ai_controller");
|
||||
|
||||
ai_selection.set_values(ai_options, selection);
|
||||
|
||||
|
@ -240,7 +239,7 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
controller_names.emplace_back("label", controller.second);
|
||||
}
|
||||
|
||||
menu_button& controller_selection = find_widget<menu_button>(&row_grid, "controller", false);
|
||||
menu_button& controller_selection = row_grid.find_widget<menu_button>("controller");
|
||||
|
||||
controller_selection.set_values(controller_names, side->current_controller_index());
|
||||
controller_selection.set_active(controller_names.size() > 1);
|
||||
|
@ -253,7 +252,7 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
//
|
||||
// Leader controls
|
||||
//
|
||||
button& leader_select = find_widget<button>(&row_grid, "select_leader", false);
|
||||
button& leader_select = row_grid.find_widget<button>("select_leader");
|
||||
|
||||
//todo: shouldn't this also be disabled when the flg settings are locked.
|
||||
leader_select.set_active(!saved_game);
|
||||
|
@ -292,7 +291,7 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
}
|
||||
}
|
||||
|
||||
menu_button& team_selection = find_widget<menu_button>(&row_grid, "side_team", false);
|
||||
menu_button& team_selection = row_grid.find_widget<menu_button>("side_team");
|
||||
|
||||
team_selection.set_values(team_names, initial_team_selection);
|
||||
//todo: shouldn't this also be disabled when team settings are locked.
|
||||
|
@ -312,7 +311,7 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
);
|
||||
}
|
||||
|
||||
menu_button& color_selection = find_widget<menu_button>(&row_grid, "side_color", false);
|
||||
menu_button& color_selection = row_grid.find_widget<menu_button>("side_color");
|
||||
|
||||
color_selection.set_values(color_options, side->color());
|
||||
color_selection.set_active(!saved_game);
|
||||
|
@ -336,13 +335,13 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
slider.set_value(value);
|
||||
};
|
||||
|
||||
slider& slider_gold = find_widget<slider>(&row_grid, "side_gold_slider", false);
|
||||
slider& slider_gold = row_grid.find_widget<slider>("side_gold_slider");
|
||||
slider_setup_helper(slider_gold, side->gold());
|
||||
|
||||
connect_signal_notify_modified(slider_gold, std::bind(
|
||||
&mp_staging::on_side_slider_change<&ng::side_engine::set_gold>, this, side, std::ref(slider_gold)));
|
||||
|
||||
slider& slider_income = find_widget<slider>(&row_grid, "side_income_slider", false);
|
||||
slider& slider_income = row_grid.find_widget<slider>("side_income_slider");
|
||||
slider_setup_helper(slider_income, side->income());
|
||||
|
||||
connect_signal_notify_modified(slider_income, std::bind(
|
||||
|
@ -368,8 +367,8 @@ void mp_staging::add_side_node(ng::side_engine_ptr side)
|
|||
|
||||
void mp_staging::on_controller_select(ng::side_engine_ptr side, grid& row_grid)
|
||||
{
|
||||
menu_button& ai_selection = find_widget<menu_button>(&row_grid, "ai_controller", false);
|
||||
menu_button& controller_selection = find_widget<menu_button>(&row_grid, "controller", false);
|
||||
menu_button& ai_selection = row_grid.find_widget<menu_button>("ai_controller");
|
||||
menu_button& controller_selection = row_grid.find_widget<menu_button>("controller");
|
||||
|
||||
if(side->controller_changed(controller_selection.get_value())) {
|
||||
ai_selection.set_visible(side->controller() == ng::CNTR_COMPUTER ? widget::visibility::visible : widget::visibility::hidden);
|
||||
|
@ -398,7 +397,7 @@ void mp_staging::on_ai_select(ng::side_engine_ptr side, menu_button& ai_menu, co
|
|||
|
||||
void mp_staging::on_color_select(ng::side_engine_ptr side, grid& row_grid)
|
||||
{
|
||||
side->set_color(find_widget<menu_button>(&row_grid, "side_color", false).get_value());
|
||||
side->set_color(row_grid.find_widget<menu_button>("side_color").get_value());
|
||||
|
||||
update_leader_display(side, row_grid);
|
||||
|
||||
|
@ -422,7 +421,7 @@ void mp_staging::on_team_select(ng::side_engine_ptr side, menu_button& team_menu
|
|||
const std::string old_team = side->team_name();
|
||||
side->set_team(team_index);
|
||||
|
||||
auto& tree = find_widget<tree_view>(get_window(), "side_list", false);
|
||||
auto& tree = find_widget<tree_view>("side_list");
|
||||
|
||||
// First, remove the node from the tree
|
||||
auto node = tree.remove_node(side_tree_map_[side]);
|
||||
|
@ -483,34 +482,34 @@ void mp_staging::update_leader_display(ng::side_engine_ptr side, grid& row_grid)
|
|||
current_leader = type.type_name();
|
||||
}
|
||||
|
||||
find_widget<drawing>(&row_grid, "leader_image", false).set_label(new_image);
|
||||
row_grid.find_widget<drawing>("leader_image").set_label(new_image);
|
||||
|
||||
// Faction and leader
|
||||
if(!side->cfg()["name"].empty()) {
|
||||
current_leader = formatter() << side->cfg()["name"] << " (<i>" << current_leader << "</i>)";
|
||||
}
|
||||
|
||||
find_widget<label>(&row_grid, "leader_type", false).set_label(current_leader == "random" ? _("Random") : current_leader);
|
||||
find_widget<label>(&row_grid, "leader_faction", false).set_label(side->flg().current_faction()["name"]);
|
||||
row_grid.find_widget<label>("leader_type").set_label(current_leader == "random" ? _("Random") : current_leader);
|
||||
row_grid.find_widget<label>("leader_faction").set_label(side->flg().current_faction()["name"]);
|
||||
|
||||
// Gender
|
||||
if(current_gender != font::unicode_em_dash) {
|
||||
const std::string gender_icon = formatter() << "icons/icon-" << current_gender << ".png";
|
||||
|
||||
image& icon = find_widget<image>(&row_grid, "leader_gender", false);
|
||||
image& icon = row_grid.find_widget<image>("leader_gender");
|
||||
icon.set_label(gender_icon);
|
||||
}
|
||||
}
|
||||
|
||||
void mp_staging::update_status_label_and_buttons()
|
||||
{
|
||||
find_widget<label>(get_window(), "status_label", false).set_label(
|
||||
find_widget<label>("status_label").set_label(
|
||||
connect_engine_.can_start_game() ? "" : connect_engine_.sides_available()
|
||||
? _("Waiting for players to join...")
|
||||
: _("Waiting for players to choose factions...")
|
||||
);
|
||||
|
||||
find_widget<button>(get_window(), "ok", false).set_active(connect_engine_.can_start_game());
|
||||
find_widget<button>("ok").set_active(connect_engine_.can_start_game());
|
||||
}
|
||||
|
||||
void mp_staging::network_handler()
|
||||
|
@ -527,7 +526,7 @@ void mp_staging::network_handler()
|
|||
}
|
||||
|
||||
// Update chat
|
||||
find_widget<chatbox>(get_window(), "chat", false).process_network_data(data);
|
||||
find_widget<chatbox>("chat").process_network_data(data);
|
||||
|
||||
// TODO: why is this needed...
|
||||
const bool was_able_to_start = connect_engine_.can_start_game();
|
||||
|
@ -553,7 +552,7 @@ void mp_staging::network_handler()
|
|||
controller_names.emplace_back("label", controller.second);
|
||||
}
|
||||
|
||||
menu_button& controller_selection = find_widget<menu_button>(&row_grid, "controller", false);
|
||||
menu_button& controller_selection = row_grid.find_widget<menu_button>("controller");
|
||||
|
||||
controller_selection.set_values(controller_names, side->current_controller_index());
|
||||
controller_selection.set_active(controller_names.size() > 1);
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "gui/dialogs/multiplayer/player_info.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -55,9 +54,9 @@ lobby_player_info::~lobby_player_info()
|
|||
|
||||
void lobby_player_info::pre_show(window& window)
|
||||
{
|
||||
relation_ = find_widget<label>(&window, "relation_info", false, true);
|
||||
relation_ = find_widget<label>("relation_info", false, true);
|
||||
|
||||
button& whisper = find_widget<button>(&window, "start_whisper", false);
|
||||
button& whisper = find_widget<button>("start_whisper");
|
||||
if(info_.get_relation() != mp::user_info::user_relation::ME) {
|
||||
connect_signal_mouse_left_click(whisper,
|
||||
std::bind(&lobby_player_info::start_whisper_button_callback, this));
|
||||
|
@ -65,39 +64,39 @@ void lobby_player_info::pre_show(window& window)
|
|||
whisper.set_active(false);
|
||||
}
|
||||
|
||||
add_to_friends_ = find_widget<button>(&window, "add_to_friends", false, true);
|
||||
add_to_friends_ = find_widget<button>("add_to_friends", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*add_to_friends_,
|
||||
std::bind(&lobby_player_info::add_to_friends_button_callback, this));
|
||||
|
||||
add_to_ignores_ = find_widget<button>(&window, "add_to_ignores", false, true);
|
||||
add_to_ignores_ = find_widget<button>("add_to_ignores", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*add_to_ignores_,
|
||||
std::bind(&lobby_player_info::add_to_ignores_button_callback, this));
|
||||
|
||||
remove_from_list_
|
||||
= find_widget<button>(&window, "remove_from_list", false, true);
|
||||
= find_widget<button>("remove_from_list", false, true);
|
||||
connect_signal_mouse_left_click(
|
||||
*remove_from_list_,
|
||||
std::bind(&lobby_player_info::remove_from_list_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "check_status", false),
|
||||
find_widget<button>("check_status"),
|
||||
std::bind(&lobby_player_info::check_status_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "kick", false),
|
||||
find_widget<button>("kick"),
|
||||
std::bind(&lobby_player_info::kick_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "kick_ban", false),
|
||||
find_widget<button>("kick_ban"),
|
||||
std::bind(&lobby_player_info::kick_ban_button_callback, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "stopgame", false),
|
||||
find_widget<button>("stopgame"),
|
||||
std::bind(&lobby_player_info::stopgame_button_callback, this));
|
||||
|
||||
find_widget<label>(&window, "player_name", false).set_label(info_.name);
|
||||
find_widget<label>("player_name").set_label(info_.name);
|
||||
|
||||
std::stringstream loc;
|
||||
const mp::game_info* game = lobby_info_.get_game_by_id(info_.game_id);
|
||||
|
@ -112,12 +111,12 @@ void lobby_player_info::pre_show(window& window)
|
|||
loc << _("In lobby");
|
||||
}
|
||||
|
||||
time_ = find_widget<text_box>(&window, "time", false, true);
|
||||
reason_ = find_widget<text_box>(&window, "reason", false, true);
|
||||
time_ = find_widget<text_box>("time", false, true);
|
||||
reason_ = find_widget<text_box>("reason", false, true);
|
||||
window.add_to_tab_order(reason_);
|
||||
window.add_to_tab_order(time_);
|
||||
|
||||
find_widget<label>(&window, "location_info", false).set_label(loc.str());
|
||||
find_widget<label>("location_info").set_label(loc.str());
|
||||
|
||||
update_relation();
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
#include "gui/dialogs/multiplayer/player_list_helper.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "preferences/preferences.hpp"
|
||||
|
@ -22,7 +21,7 @@
|
|||
namespace gui2
|
||||
{
|
||||
player_list_helper::player_list_helper(window* window)
|
||||
: list_(find_widget<listbox>(window, "player_list", false))
|
||||
: list_(window->find_widget<listbox>("player_list"))
|
||||
{
|
||||
// add ourselves as the host
|
||||
widget_data data = {
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "gui/dialogs/multiplayer/synced_choice_wait.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -45,11 +44,9 @@ synched_choice_wait::~synched_choice_wait()
|
|||
|
||||
void synched_choice_wait::pre_show(window& window)
|
||||
{
|
||||
message_ = find_widget<label>(&window, "lblMessage", false, true);
|
||||
message_ = find_widget<label>("lblMessage", false, true);
|
||||
|
||||
|
||||
button& quit_button = find_widget<button>(
|
||||
&window, "btn_quit_game", false);
|
||||
button& quit_button = find_widget<button>("btn_quit_game");
|
||||
|
||||
connect_signal_mouse_left_click(quit_button,
|
||||
std::bind(&quit_confirmation::quit_to_title));
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/dialogs/network_transmission.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/progress_bar.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -42,14 +41,14 @@ void network_transmission::pump_monitor::process(events::pump_info&)
|
|||
completed = connection_->current();
|
||||
total = connection_->total();
|
||||
if(total) {
|
||||
find_widget<progress_bar>(window_.ptr(), "progress", false)
|
||||
window_.ptr()->find_widget<progress_bar>("progress")
|
||||
.set_percentage((completed * 100.) / total);
|
||||
|
||||
std::stringstream ss;
|
||||
ss << utils::si_string(completed, true, _("unit_byte^B")) << "/"
|
||||
<< utils::si_string(total, true, _("unit_byte^B"));
|
||||
|
||||
find_widget<label>(window_.ptr(), "numeric_progress", false)
|
||||
window_.ptr()->find_widget<label>("numeric_progress")
|
||||
.set_label(ss.str());
|
||||
window_->invalidate_layout();
|
||||
}
|
||||
|
@ -73,7 +72,7 @@ void network_transmission::pre_show(window& window)
|
|||
// ***** ***** ***** ***** Set up the widgets ***** ***** ***** *****
|
||||
if(!subtitle_.empty()) {
|
||||
label& subtitle_label
|
||||
= find_widget<label>(&window, "subtitle", false);
|
||||
= find_widget<label>("subtitle");
|
||||
|
||||
subtitle_label.set_label(subtitle_);
|
||||
subtitle_label.set_use_markup(true);
|
||||
|
@ -81,7 +80,7 @@ void network_transmission::pre_show(window& window)
|
|||
|
||||
// NOTE: needed to avoid explicit calls to invalidate_layout()
|
||||
// in network_transmission::pump_monitor::process()
|
||||
find_widget<label>(&window, "numeric_progress", false).set_label(" ");
|
||||
find_widget<label>("numeric_progress").set_label(" ");
|
||||
pump_monitor_.window_ = window;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
#include "gui/dialogs/select_orb_colors.hpp"
|
||||
#include "gui/dialogs/title_screen.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/game_version_dialog.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/dialogs/transient_message.hpp"
|
||||
|
@ -58,6 +57,8 @@
|
|||
#include "gui/widgets/toggle_button.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
#include <numeric>
|
||||
|
||||
|
@ -68,13 +69,13 @@ namespace
|
|||
template<typename W>
|
||||
void disable_widget_on_toggle(window& window, widget& w, const std::string& id)
|
||||
{
|
||||
find_widget<W>(&window, id, false).set_active(dynamic_cast<selectable_item&>(w).get_value_bool());
|
||||
window.find_widget<W>(id).set_active(dynamic_cast<selectable_item&>(w).get_value_bool());
|
||||
}
|
||||
|
||||
template<typename W>
|
||||
void disable_widget_on_toggle_inverted(window& window, widget& w, const std::string& id)
|
||||
{
|
||||
find_widget<W>(&window, id, false).set_active(!dynamic_cast<selectable_item&>(w).get_value_bool());
|
||||
window.find_widget<W>(id).set_active(!dynamic_cast<selectable_item&>(w).get_value_bool());
|
||||
}
|
||||
|
||||
// Ensure the specified index is between 0 and one less than the max
|
||||
|
@ -241,9 +242,9 @@ void preferences_dialog::update_friends_list_controls(listbox& list)
|
|||
list.select_row(std::min(static_cast<int>(list.get_item_count()) - 1, list.get_selected_row()));
|
||||
}
|
||||
|
||||
find_widget<button>(this, "remove", false).set_active(!list_empty);
|
||||
find_widget<button>("remove").set_active(!list_empty);
|
||||
|
||||
find_widget<label>(this, "no_friends_notice", false).set_visible(
|
||||
find_widget<label>("no_friends_notice").set_visible(
|
||||
list_empty ? widget::visibility::visible : widget::visibility::invisible);
|
||||
}
|
||||
|
||||
|
@ -272,12 +273,12 @@ void preferences_dialog::add_friend_list_entry(const bool is_friend, text_box& t
|
|||
|
||||
textbox.clear();
|
||||
|
||||
listbox& list = find_widget<listbox>(this, "friends_list", false);
|
||||
listbox& list = find_widget<listbox>("friends_list");
|
||||
|
||||
//
|
||||
// If this is a new entry, just add a new row. If it's not, we find the relevant
|
||||
// row, remove it, and add a new row with the updated data. Should probably come
|
||||
// up with a more elegant way to do this... the only reason I'm using the remove
|
||||
// up with a more elegant way to do .. the only reason I'm using the remove
|
||||
// -and-replace method is to prevent any issues with the widgets' layout sizes.
|
||||
//
|
||||
if(added_new) {
|
||||
|
@ -286,7 +287,7 @@ void preferences_dialog::add_friend_list_entry(const bool is_friend, text_box& t
|
|||
for(unsigned i = 0; i < list.get_item_count(); ++i) {
|
||||
grid* row_grid = list.get_row_grid(i);
|
||||
|
||||
if(find_widget<label>(row_grid, "friend_name", false).get_label() == entry->get_nick()) {
|
||||
if(row_grid->find_widget<label>("friend_name").get_label() == entry->get_nick()) {
|
||||
list.remove_row(i);
|
||||
list.add_row(get_friends_list_row_data(*entry), i);
|
||||
|
||||
|
@ -319,7 +320,7 @@ void preferences_dialog::remove_friend_list_entry(listbox& friends_list, text_bo
|
|||
|
||||
textbox.clear();
|
||||
|
||||
listbox& list = find_widget<listbox>(this, "friends_list", false);
|
||||
listbox& list = find_widget<listbox>("friends_list");
|
||||
list.remove_row(selected_row);
|
||||
|
||||
update_friends_list_controls(list);
|
||||
|
@ -328,12 +329,12 @@ void preferences_dialog::remove_friend_list_entry(listbox& friends_list, text_bo
|
|||
void preferences_dialog::apply_pixel_scale()
|
||||
{
|
||||
// Update pixel scale preference.
|
||||
slider& ps_slider = find_widget<slider>(this, "pixel_scale_slider", false);
|
||||
slider& ps_slider = find_widget<slider>("pixel_scale_slider");
|
||||
prefs::get().set_pixel_scale(ps_slider.get_value());
|
||||
|
||||
// Update auto pixel scale preference.
|
||||
toggle_button& auto_ps_toggle =
|
||||
find_widget<toggle_button>(this, "auto_pixel_scale", false);
|
||||
find_widget<toggle_button>("auto_pixel_scale");
|
||||
prefs::get().set_auto_pixel_scale(auto_ps_toggle.get_value_bool());
|
||||
|
||||
// Update draw buffers, taking these into account.
|
||||
|
@ -368,7 +369,7 @@ void preferences_dialog::initialize_sound_option_group(const std::string& id_suf
|
|||
register_integer(volume_widget_id, true, vol_getter, vol_setter);
|
||||
|
||||
// Callback to actually immediately apply the volume effect.
|
||||
connect_signal_notify_modified(find_widget<slider>(this, volume_widget_id, false),
|
||||
connect_signal_notify_modified(find_widget<slider>(volume_widget_id),
|
||||
std::bind(volume_setter_on_change<vol_setter>, std::placeholders::_1));
|
||||
}
|
||||
|
||||
|
@ -427,7 +428,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
accl_load, accl_save);
|
||||
|
||||
// Set the value label transform function.
|
||||
find_widget<slider>(this, "turbo_slider", false).set_value_labels(
|
||||
find_widget<slider>("turbo_slider").set_value_labels(
|
||||
[this](int pos, int /*max*/)->t_string { return lexical_cast<std::string>(accl_speeds_[pos]); }
|
||||
);
|
||||
|
||||
|
@ -477,7 +478,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
[](int v) {prefs::get().set_auto_save_max(v);});
|
||||
|
||||
/* CACHE MANAGE */
|
||||
connect_signal_mouse_left_click(find_widget<button>(this, "cachemg", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("cachemg"),
|
||||
std::bind(&gui2::dialogs::game_cache_options::display<>));
|
||||
|
||||
//
|
||||
|
@ -486,7 +487,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
|
||||
/* FULLSCREEN TOGGLE */
|
||||
toggle_button& toggle_fullscreen =
|
||||
find_widget<toggle_button>(this, "fullscreen", false);
|
||||
find_widget<toggle_button>("fullscreen");
|
||||
|
||||
toggle_fullscreen.set_value(prefs::get().fullscreen());
|
||||
|
||||
|
@ -495,7 +496,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
&preferences_dialog::fullscreen_toggle_callback, this));
|
||||
|
||||
/* SET RESOLUTION */
|
||||
menu_button& res_list = find_widget<menu_button>(this, "resolution_set", false);
|
||||
menu_button& res_list = find_widget<menu_button>("resolution_set");
|
||||
|
||||
res_list.set_use_markup(true);
|
||||
res_list.set_active(!prefs::get().fullscreen());
|
||||
|
@ -513,7 +514,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
[](int v) {prefs::get().set_pixel_scale(v);});
|
||||
|
||||
slider& ps_slider =
|
||||
find_widget<slider>(this, "pixel_scale_slider", false);
|
||||
find_widget<slider>("pixel_scale_slider");
|
||||
connect_signal_mouse_left_release(ps_slider,
|
||||
std::bind(&preferences_dialog::apply_pixel_scale, this));
|
||||
|
||||
|
@ -524,7 +525,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
[&](widget& w) { disable_widget_on_toggle_inverted<slider>(*this, w, "pixel_scale_slider"); }, true);
|
||||
|
||||
toggle_button& auto_ps_toggle =
|
||||
find_widget<toggle_button>(this, "auto_pixel_scale", false);
|
||||
find_widget<toggle_button>("auto_pixel_scale");
|
||||
connect_signal_mouse_left_click(auto_ps_toggle,
|
||||
std::bind(&preferences_dialog::apply_pixel_scale, this));
|
||||
|
||||
|
@ -583,19 +584,20 @@ void preferences_dialog::initialize_callbacks()
|
|||
[](bool v) {prefs::get().set_vsync(v);});
|
||||
|
||||
/* SELECT THEME */
|
||||
menu_button& theme_list = find_widget<menu_button>(this, "choose_theme", false);
|
||||
menu_button& theme_list = find_widget<menu_button>("choose_theme");
|
||||
set_theme_list(theme_list);
|
||||
connect_signal_notify_modified(theme_list,
|
||||
std::bind(&preferences_dialog::handle_theme_select, this));
|
||||
|
||||
/* SELECT GUI2 THEME */
|
||||
menu_button& gui2_theme_list = find_widget<menu_button>(this, "choose_gui2_theme", false);
|
||||
menu_button& gui2_theme_list = find_widget<menu_button>("choose_gui2_theme");
|
||||
button& apply_btn = find_widget<button>("apply");
|
||||
set_gui2_theme_list(gui2_theme_list);
|
||||
connect_signal_notify_modified(find_widget<menu_button>(this, "choose_gui2_theme", false), std::bind([&]() {
|
||||
find_widget<button>(this, "apply", false).set_active(true);
|
||||
connect_signal_notify_modified(gui2_theme_list, std::bind([&]() {
|
||||
apply_btn.set_active(true);
|
||||
}));
|
||||
find_widget<button>(this, "apply", false).set_active(false);
|
||||
connect_signal_mouse_left_click(find_widget<button>(this, "apply", false),
|
||||
apply_btn.set_active(false);
|
||||
connect_signal_mouse_left_click(apply_btn,
|
||||
std::bind(&preferences_dialog::handle_gui2_theme_select, this));
|
||||
|
||||
//
|
||||
|
@ -643,9 +645,9 @@ void preferences_dialog::initialize_callbacks()
|
|||
[](bool v) {prefs::get().set_lobby_whisper_friends_only(v);});
|
||||
|
||||
/* LOBBY JOIN NOTIFICATIONS */
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>(this, "lobby_joins_none", false, true), pref_constants::lobby_joins::show_none);
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>(this, "lobby_joins_friends", false, true), pref_constants::lobby_joins::show_friends);
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>(this, "lobby_joins_all", false, true), pref_constants::lobby_joins::show_all);
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>("lobby_joins_none", false, true), pref_constants::lobby_joins::show_none);
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>("lobby_joins_friends", false, true), pref_constants::lobby_joins::show_friends);
|
||||
lobby_joins_group.add_member(find_widget<toggle_button>("lobby_joins_all", false, true), pref_constants::lobby_joins::show_all);
|
||||
|
||||
lobby_joins_group.set_member_states(prefs::get().get_lobby_joins());
|
||||
|
||||
|
@ -654,7 +656,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
});
|
||||
|
||||
/* FRIENDS LIST */
|
||||
listbox& friends_list = find_widget<listbox>(this, "friends_list", false);
|
||||
listbox& friends_list = find_widget<listbox>("friends_list");
|
||||
|
||||
friends_list.clear();
|
||||
|
||||
|
@ -664,22 +666,22 @@ void preferences_dialog::initialize_callbacks()
|
|||
|
||||
update_friends_list_controls(friends_list);
|
||||
|
||||
text_box& textbox = find_widget<text_box>(this, "friend_name_box", false);
|
||||
text_box& textbox = find_widget<text_box>("friend_name_box");
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "add_friend", false), std::bind(
|
||||
find_widget<button>("add_friend"), std::bind(
|
||||
&preferences_dialog::add_friend_list_entry,
|
||||
this, true,
|
||||
std::ref(textbox)));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "add_ignored", false), std::bind(
|
||||
find_widget<button>("add_ignored"), std::bind(
|
||||
&preferences_dialog::add_friend_list_entry,
|
||||
this, false,
|
||||
std::ref(textbox)));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "remove", false), std::bind(
|
||||
find_widget<button>("remove"), std::bind(
|
||||
&preferences_dialog::remove_friend_list_entry,
|
||||
this,
|
||||
std::ref(friends_list),
|
||||
|
@ -693,19 +695,19 @@ void preferences_dialog::initialize_callbacks()
|
|||
|
||||
/* ALERTS */
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "mp_alerts", false),
|
||||
find_widget<button>("mp_alerts"),
|
||||
std::bind(&gui2::dialogs::mp_alerts_options::display<>));
|
||||
|
||||
/* SET WESNOTHD PATH */
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "mp_wesnothd", false), std::bind([]() {return prefs::get().show_wesnothd_server_search();}));
|
||||
find_widget<button>("mp_wesnothd"), std::bind([]() {return prefs::get().show_wesnothd_server_search();}));
|
||||
|
||||
|
||||
//
|
||||
// ADVANCED PANEL
|
||||
//
|
||||
|
||||
listbox& advanced = find_widget<listbox>(this, "advanced_prefs", false);
|
||||
listbox& advanced = find_widget<listbox>("advanced_prefs");
|
||||
|
||||
widget_data row_data;
|
||||
|
||||
|
@ -715,15 +717,15 @@ void preferences_dialog::initialize_callbacks()
|
|||
row_data["pref_name"]["label"] = option.name;
|
||||
grid* main_grid = &advanced.add_row(row_data);
|
||||
|
||||
grid& details_grid = find_widget<grid>(main_grid, "prefs_setter_grid", false);
|
||||
grid& details_grid = main_grid->find_widget<grid>("prefs_setter_grid");
|
||||
details_grid.set_visible(widget::visibility::invisible);
|
||||
|
||||
// The toggle widget for toggle-type options (hidden for other types)
|
||||
toggle_button& toggle_box = find_widget<toggle_button>(main_grid, "value_toggle", false);
|
||||
toggle_button& toggle_box = main_grid->find_widget<toggle_button>("value_toggle");
|
||||
toggle_box.set_visible(widget::visibility::hidden);
|
||||
|
||||
if(!option.description.empty()) {
|
||||
find_widget<styled_widget>(main_grid, "description", false).set_label(option.description);
|
||||
main_grid->find_widget<styled_widget>("description").set_label(option.description);
|
||||
}
|
||||
|
||||
switch(option.type) {
|
||||
|
@ -752,7 +754,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
|
||||
details_grid.swap_child("setter", std::move(setter_widget), true);
|
||||
|
||||
slider& slide = find_widget<slider>(&details_grid, "setter", false);
|
||||
slider& slide = details_grid.find_widget<slider>("setter");
|
||||
|
||||
slide.set_value(preferences_dialog_friend::get(pref_name, option.cfg["default"].to_int()));
|
||||
|
||||
|
@ -795,7 +797,7 @@ void preferences_dialog::initialize_callbacks()
|
|||
|
||||
details_grid.swap_child("setter", std::move(setter_widget), true);
|
||||
|
||||
menu_button& menu = find_widget<menu_button>(&details_grid, "setter", false);
|
||||
menu_button& menu = details_grid.find_widget<menu_button>("setter");
|
||||
|
||||
menu.set_use_markup(true);
|
||||
menu.set_values(menu_data, selected);
|
||||
|
@ -833,13 +835,13 @@ void preferences_dialog::initialize_callbacks()
|
|||
// HOTKEYS PANEL
|
||||
//
|
||||
|
||||
multimenu_button& hotkey_menu = find_widget<multimenu_button>(this, "hotkey_category_menu", false);
|
||||
multimenu_button& hotkey_menu = find_widget<multimenu_button>("hotkey_category_menu");
|
||||
connect_signal_notify_modified(hotkey_menu,
|
||||
std::bind(&preferences_dialog::hotkey_filter_callback, this));
|
||||
|
||||
listbox& hotkey_list = setup_hotkey_list();
|
||||
|
||||
text_box& filter = find_widget<text_box>(this, "filter", false);
|
||||
text_box& filter = find_widget<text_box>("filter");
|
||||
filter.set_text_changed_callback(std::bind(&preferences_dialog::hotkey_filter_callback, this));
|
||||
|
||||
// Action column
|
||||
|
@ -856,19 +858,19 @@ void preferences_dialog::initialize_callbacks()
|
|||
hotkey_list.set_active_sorting_option({0, sort_order::type::ascending}, true);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "btn_add_hotkey", false), std::bind(
|
||||
find_widget<button>("btn_add_hotkey"), std::bind(
|
||||
&preferences_dialog::add_hotkey_callback,
|
||||
this,
|
||||
std::ref(hotkey_list)));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "btn_clear_hotkey", false), std::bind(
|
||||
find_widget<button>("btn_clear_hotkey"), std::bind(
|
||||
&preferences_dialog::remove_hotkey_callback,
|
||||
this,
|
||||
std::ref(hotkey_list)));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(this, "btn_reset_hotkeys", false), std::bind(
|
||||
find_widget<button>("btn_reset_hotkeys"), std::bind(
|
||||
&preferences_dialog::default_hotkey_callback,
|
||||
this));
|
||||
}
|
||||
|
@ -885,7 +887,7 @@ listbox& preferences_dialog::setup_hotkey_list()
|
|||
t_string& row_is_e = row_data["lbl_is_editor"]["label"];
|
||||
t_string& row_is_m = row_data["lbl_is_mainmenu"]["label"];
|
||||
|
||||
listbox& hotkey_list = find_widget<listbox>(this, "list_hotkeys", false);
|
||||
listbox& hotkey_list = find_widget<listbox>("list_hotkeys");
|
||||
|
||||
hotkey_list.clear();
|
||||
visible_hotkeys_.clear();
|
||||
|
@ -933,7 +935,7 @@ listbox& preferences_dialog::setup_hotkey_list()
|
|||
filter_ops.emplace_back("label", hotkey::get_translatable_category_name(cat), "checkbox", false);
|
||||
}
|
||||
|
||||
find_widget<multimenu_button>(this, "hotkey_category_menu", false).set_values(filter_ops);
|
||||
find_widget<multimenu_button>("hotkey_category_menu").set_values(filter_ops);
|
||||
|
||||
return hotkey_list;
|
||||
}
|
||||
|
@ -987,7 +989,7 @@ void preferences_dialog::add_hotkey_callback(listbox& hotkeys)
|
|||
// We need to recalculate all hotkey names in because we might have removed a hotkey from another command.
|
||||
for(std::size_t i = 0; i < hotkeys.get_item_count(); ++i) {
|
||||
const hotkey::hotkey_command& hotkey_item_row = *visible_hotkeys_[i];
|
||||
find_widget<label>(hotkeys.get_row_grid(i), "lbl_hotkey", false).set_label(hotkey::get_names(hotkey_item_row.id));
|
||||
hotkeys.get_row_grid(i)->find_widget<label>("lbl_hotkey").set_label(hotkey::get_names(hotkey_item_row.id));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1012,13 +1014,13 @@ void preferences_dialog::remove_hotkey_callback(listbox& hotkeys)
|
|||
|
||||
const hotkey::hotkey_command& hotkey_item = *visible_hotkeys_[row_number];
|
||||
hotkey::clear_hotkeys(hotkey_item.id);
|
||||
find_widget<label>(hotkeys.get_row_grid(row_number), "lbl_hotkey", false).set_label(hotkey::get_names(hotkey_item.id));
|
||||
hotkeys.get_row_grid(row_number)->find_widget<label>("lbl_hotkey").set_label(hotkey::get_names(hotkey_item.id));
|
||||
}
|
||||
|
||||
void preferences_dialog::hotkey_filter_callback()
|
||||
{
|
||||
const multimenu_button& hotkey_menu = find_widget<const multimenu_button>(this, "hotkey_category_menu", false);
|
||||
const text_box& name_filter = find_widget<const text_box>(this, "filter", false);
|
||||
const multimenu_button& hotkey_menu = find_widget<const multimenu_button>("hotkey_category_menu");
|
||||
const text_box& name_filter = find_widget<const text_box>("filter");
|
||||
|
||||
boost::dynamic_bitset<> toggle_states = hotkey_menu.get_toggle_states();
|
||||
boost::dynamic_bitset<> res(visible_hotkeys_.size());
|
||||
|
@ -1065,7 +1067,7 @@ void preferences_dialog::hotkey_filter_callback()
|
|||
}
|
||||
}
|
||||
|
||||
find_widget<listbox>(this, "list_hotkeys", false).set_row_shown(res);
|
||||
find_widget<listbox>("list_hotkeys").set_row_shown(res);
|
||||
}
|
||||
|
||||
void preferences_dialog::on_advanced_prefs_list_select(listbox& list)
|
||||
|
@ -1088,12 +1090,12 @@ void preferences_dialog::on_advanced_prefs_list_select(listbox& list)
|
|||
const bool has_description = !pref.description.empty();
|
||||
|
||||
if(has_description || (pref.type != preferences::option::avd_type::SPECIAL && pref.type != preferences::option::avd_type::TOGGLE)) {
|
||||
find_widget<widget>(list.get_row_grid(selected_row), "prefs_setter_grid", false)
|
||||
list.get_row_grid(selected_row)->find_widget<widget>("prefs_setter_grid")
|
||||
.set_visible(widget::visibility::visible);
|
||||
}
|
||||
|
||||
if(last_selected_item_ != selected_row) {
|
||||
find_widget<widget>(list.get_row_grid(last_selected_item_), "prefs_setter_grid", false)
|
||||
list.get_row_grid(last_selected_item_)->find_widget<widget>("prefs_setter_grid")
|
||||
.set_visible(widget::visibility::invisible);
|
||||
|
||||
last_selected_item_ = selected_row;
|
||||
|
@ -1113,7 +1115,7 @@ void preferences_dialog::pre_show(window& window)
|
|||
{
|
||||
set_always_save_fields(true);
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "about", false), std::bind(&game_version::display<>));
|
||||
connect_signal_mouse_left_click(find_widget<button>("about"), std::bind(&game_version::display<>));
|
||||
|
||||
//
|
||||
// Status labels
|
||||
|
@ -1121,16 +1123,16 @@ void preferences_dialog::pre_show(window& window)
|
|||
// is not the case for those in Advanced
|
||||
//
|
||||
|
||||
gui2::bind_status_label<slider>(&window, "max_saves_slider");
|
||||
gui2::bind_status_label<slider>(&window, "turbo_slider");
|
||||
gui2::bind_status_label<slider>(&window, "pixel_scale_slider");
|
||||
gui2::bind_status_label<slider>(this, "max_saves_slider");
|
||||
gui2::bind_status_label<slider>(this, "turbo_slider");
|
||||
gui2::bind_status_label<slider>(this, "pixel_scale_slider");
|
||||
|
||||
//gui2::bind_status_label<slider>(&window, "scaling_slider", [](slider& s)->std::string {
|
||||
//gui2::bind_status_label<slider>("scaling_slider", [](slider& s)->std::string {
|
||||
// return s.get_value_label() + "%";
|
||||
//});
|
||||
|
||||
listbox& selector = find_widget<listbox>(&window, "selector", false);
|
||||
stacked_widget& pager = find_widget<stacked_widget>(&window, "pager", false);
|
||||
listbox& selector = find_widget<listbox>("selector");
|
||||
stacked_widget& pager = find_widget<stacked_widget>("pager");
|
||||
|
||||
pager.set_find_in_all_layers(true);
|
||||
|
||||
|
@ -1148,11 +1150,9 @@ void preferences_dialog::pre_show(window& window)
|
|||
// and stack. If so, it initializes the options for the former and
|
||||
// selects the specified layer of the latter.
|
||||
for(unsigned int i = 0; i < pager.get_layer_count(); ++i) {
|
||||
listbox* tab_selector = find_widget<listbox>(
|
||||
pager.get_layer_grid(i), "tab_selector", false, false);
|
||||
listbox* tab_selector = pager.get_layer_grid(i)->find_widget<listbox>("tab_selector", false, false);
|
||||
|
||||
stacked_widget* tab_pager = find_widget<stacked_widget>(
|
||||
pager.get_layer_grid(i), "tab_pager", false, false);
|
||||
stacked_widget* tab_pager = pager.get_layer_grid(i)->find_widget<stacked_widget>("tab_pager", false, false);
|
||||
|
||||
if(tab_pager && tab_selector) {
|
||||
const int ii = static_cast<int>(i);
|
||||
|
@ -1174,16 +1174,16 @@ void preferences_dialog::pre_show(window& window)
|
|||
|
||||
void preferences_dialog::set_visible_page(unsigned int page, const std::string& pager_id)
|
||||
{
|
||||
find_widget<stacked_widget>(this, pager_id, false).select_layer(page);
|
||||
find_widget<stacked_widget>(pager_id).select_layer(page);
|
||||
}
|
||||
|
||||
// Special fullsceen callback
|
||||
void preferences_dialog::fullscreen_toggle_callback()
|
||||
{
|
||||
const bool ison = find_widget<toggle_button>(this, "fullscreen", false).get_value_bool();
|
||||
const bool ison = find_widget<toggle_button>("fullscreen").get_value_bool();
|
||||
video::set_fullscreen(ison);
|
||||
|
||||
menu_button& res_list = find_widget<menu_button>(this, "resolution_set", false);
|
||||
menu_button& res_list = find_widget<menu_button>("resolution_set");
|
||||
|
||||
set_resolution_list(res_list);
|
||||
res_list.set_active(!ison);
|
||||
|
@ -1191,7 +1191,7 @@ void preferences_dialog::fullscreen_toggle_callback()
|
|||
|
||||
void preferences_dialog::handle_res_select()
|
||||
{
|
||||
menu_button& res_list = find_widget<menu_button>(this, "resolution_set", false);
|
||||
menu_button& res_list = find_widget<menu_button>("resolution_set");
|
||||
|
||||
if(video::set_resolution(resolutions_[res_list.get_value()])) {
|
||||
set_resolution_list(res_list);
|
||||
|
@ -1200,7 +1200,7 @@ void preferences_dialog::handle_res_select()
|
|||
|
||||
void preferences_dialog::handle_theme_select()
|
||||
{
|
||||
menu_button& theme_list = find_widget<menu_button>(this, "choose_theme", false);
|
||||
menu_button& theme_list = find_widget<menu_button>("choose_theme");
|
||||
|
||||
const auto selection = theme_list.get_value();
|
||||
const auto& theme = themes_.at(selection);
|
||||
|
@ -1215,7 +1215,7 @@ void preferences_dialog::handle_theme_select()
|
|||
|
||||
void preferences_dialog::handle_gui2_theme_select()
|
||||
{
|
||||
menu_button& gui2_theme_list = find_widget<menu_button>(this, "choose_gui2_theme", false);
|
||||
menu_button& gui2_theme_list = find_widget<menu_button>("choose_gui2_theme");
|
||||
unsigned selected_theme = gui2_theme_list.get_value();
|
||||
if (selected_theme != current_gui_theme_) {
|
||||
current_gui_theme_ = selected_theme;
|
||||
|
@ -1227,14 +1227,14 @@ void preferences_dialog::handle_gui2_theme_select()
|
|||
void preferences_dialog::on_page_select()
|
||||
{
|
||||
const int selected_row =
|
||||
std::max(0, find_widget<listbox>(this, "selector", false).get_selected_row());
|
||||
std::max(0, find_widget<listbox>("selector").get_selected_row());
|
||||
set_visible_page(static_cast<unsigned int>(selected_row), "pager");
|
||||
}
|
||||
|
||||
void preferences_dialog::on_tab_select()
|
||||
{
|
||||
const int selected_row =
|
||||
std::max(0, find_widget<listbox>(this, "tab_selector", false).get_selected_row());
|
||||
std::max(0, find_widget<listbox>("tab_selector").get_selected_row());
|
||||
set_visible_page(static_cast<unsigned int>(selected_row), "tab_pager");
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/prompt.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
||||
namespace gui2::dialogs
|
||||
|
@ -28,18 +27,18 @@ prompt::prompt(std::string& value)
|
|||
: modal_dialog(window_id())
|
||||
, value_(value)
|
||||
{
|
||||
find_widget<text_box>(get_window(), "prompt_box", false).set_value(value);
|
||||
find_widget<text_box>("prompt_box").set_value(value);
|
||||
}
|
||||
|
||||
void prompt::pre_show(window& win)
|
||||
{
|
||||
text_box* prompt_box = find_widget<text_box>(&win, "prompt_box", false, true);
|
||||
text_box* prompt_box = find_widget<text_box>("prompt_box", false, true);
|
||||
win.keyboard_capture(prompt_box);
|
||||
}
|
||||
|
||||
void prompt::post_show(window& win)
|
||||
{
|
||||
value_ = find_widget<text_box>(&win, "prompt_box", false).get_value();
|
||||
value_ = find_widget<text_box>("prompt_box").get_value();
|
||||
}
|
||||
|
||||
} // namespace gui2::dialogs
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "desktop/open.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/event/dispatcher.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -52,38 +51,38 @@ void screenshot_notification::pre_show(window& window)
|
|||
{
|
||||
window.set_enter_disabled(true);
|
||||
|
||||
text_box& path_box = find_widget<text_box>(&window, "path", false);
|
||||
text_box& path_box = find_widget<text_box>("path");
|
||||
path_box.set_value(filesystem::base_name(path_));
|
||||
path_box.set_selection(0, path_box.text().find_last_of('.')); // TODO: do this cleaner!
|
||||
window.keyboard_capture(&path_box);
|
||||
connect_signal_pre_key_press(path_box, std::bind(&screenshot_notification::keypress_callback, this,
|
||||
std::placeholders::_3, std::placeholders::_5));
|
||||
|
||||
find_widget<label>(&window, "filesize", false).set_label(font::unicode_em_dash);
|
||||
find_widget<label>("filesize").set_label(font::unicode_em_dash);
|
||||
|
||||
button& copy_b = find_widget<button>(&window, "copy", false);
|
||||
button& copy_b = find_widget<button>("copy");
|
||||
connect_signal_mouse_left_click(
|
||||
copy_b, std::bind(&desktop::clipboard::copy_to_clipboard, std::ref(path_)));
|
||||
copy_b.set_active(false);
|
||||
|
||||
button& open_b = find_widget<button>(&window, "open", false);
|
||||
button& open_b = find_widget<button>("open");
|
||||
connect_signal_mouse_left_click(
|
||||
open_b, std::bind(&desktop::open_object, std::ref(path_)));
|
||||
open_b.set_active(false);
|
||||
|
||||
button& bdir_b = find_widget<button>(&window, "browse_dir", false);
|
||||
button& bdir_b = find_widget<button>("browse_dir");
|
||||
connect_signal_mouse_left_click(
|
||||
bdir_b,
|
||||
std::bind(&desktop::open_object,
|
||||
std::ref(screenshots_dir_path_)));
|
||||
|
||||
button& save_b = find_widget<button>(&window, "save", false);
|
||||
button& save_b = find_widget<button>("save");
|
||||
connect_signal_mouse_left_click(save_b, std::bind(&screenshot_notification::save_screenshot, this));
|
||||
}
|
||||
|
||||
void screenshot_notification::save_screenshot()
|
||||
{
|
||||
text_box& path_box = find_widget<text_box>(get_window(), "path", false);
|
||||
text_box& path_box = find_widget<text_box>("path");
|
||||
std::string filename = path_box.get_value();
|
||||
boost::filesystem::path path(screenshots_dir_path_);
|
||||
path /= filename;
|
||||
|
@ -102,13 +101,13 @@ void screenshot_notification::save_screenshot()
|
|||
throw std::logic_error("Unexpected error while trying to save a screenshot");
|
||||
} else {
|
||||
path_box.set_active(false);
|
||||
find_widget<button>(get_window(), "open", false).set_active(true);
|
||||
find_widget<button>(get_window(), "save", false).set_active(false);
|
||||
find_widget<button>(get_window(), "copy", false).set_active(true);
|
||||
find_widget<button>("open").set_active(true);
|
||||
find_widget<button>("save").set_active(false);
|
||||
find_widget<button>("copy").set_active(true);
|
||||
|
||||
const int filesize = filesystem::file_size(path_);
|
||||
const std::string sizetext = utils::si_string(filesize, true, _("unit_byte^B"));
|
||||
find_widget<label>(get_window(), "filesize", false).set_label(sizetext);
|
||||
find_widget<label>("filesize").set_label(sizetext);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/select_orb_colors.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/iterator/iterator.hpp"
|
||||
#include "gui/core/event/dispatcher.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -62,7 +61,7 @@ void select_orb_colors::pre_show(window& window)
|
|||
setup_orb_group("enemy", show_enemy_, prefs::get().enemy_color());
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "orb_defaults", false), std::bind(&select_orb_colors::reset_orb_callback, this));
|
||||
find_widget<button>("orb_defaults"), std::bind(&select_orb_colors::reset_orb_callback, this));
|
||||
}
|
||||
|
||||
void select_orb_colors::post_show(window&)
|
||||
|
@ -89,7 +88,7 @@ void select_orb_colors::post_show(window&)
|
|||
void select_orb_colors::setup_orb_toggle(const std::string& base_id, bool& shown)
|
||||
{
|
||||
const std::string prefix = get_orb_widget_prefix(base_id);
|
||||
toggle_button& toggle = find_widget<toggle_button>(get_window(), prefix + "show", false);
|
||||
toggle_button& toggle = find_widget<toggle_button>(prefix + "show");
|
||||
toggle.set_value_bool(shown);
|
||||
|
||||
connect_signal_mouse_left_click(toggle, std::bind(&select_orb_colors::toggle_orb_callback, this, std::ref(shown)));
|
||||
|
@ -106,7 +105,7 @@ void select_orb_colors::setup_orb_group(const std::string& base_id, bool& shown,
|
|||
|
||||
// Grid containing each color option toggle.
|
||||
const std::string prefix = get_orb_widget_prefix(base_id);
|
||||
grid& selection = find_widget<grid>(get_window(), prefix + "selection", false);
|
||||
grid& selection = find_widget<grid>(prefix + "selection");
|
||||
|
||||
for(iteration::bottom_up_iterator<true, false, true> iter(selection); !iter.at_end(); ++iter) {
|
||||
if(toggle_button* button = dynamic_cast<toggle_button*>(iter.get())) {
|
||||
|
@ -123,7 +122,7 @@ void select_orb_colors::setup_orb_group_two_color(const std::string& base_id, bo
|
|||
setup_orb_group(base_id, shown, initial);
|
||||
|
||||
const std::string prefix = get_orb_widget_prefix(base_id);
|
||||
toggle_button& toggle = find_widget<toggle_button>(get_window(), prefix + "two_color", false);
|
||||
toggle_button& toggle = find_widget<toggle_button>(prefix + "two_color");
|
||||
toggle.set_value_bool(two_color);
|
||||
|
||||
connect_signal_mouse_left_click(toggle, std::bind(&select_orb_colors::toggle_orb_callback, this, std::ref(two_color)));
|
||||
|
@ -133,7 +132,7 @@ void select_orb_colors::reset_orb_toggle(const std::string& base_id, bool shown)
|
|||
{
|
||||
const std::string prefix = get_orb_widget_prefix(base_id);
|
||||
|
||||
toggle_button& toggle = find_widget<toggle_button>(get_window(), prefix + "show", false);
|
||||
toggle_button& toggle = find_widget<toggle_button>(prefix + "show");
|
||||
toggle.set_value_bool(shown);
|
||||
}
|
||||
|
||||
|
@ -149,7 +148,7 @@ void select_orb_colors::reset_orb_group_two_color(const std::string& base_id, bo
|
|||
|
||||
const std::string prefix = get_orb_widget_prefix(base_id);
|
||||
|
||||
toggle_button& toggle = find_widget<toggle_button>(get_window(), prefix + "two_color", false);
|
||||
toggle_button& toggle = find_widget<toggle_button>(prefix + "two_color");
|
||||
toggle.set_value_bool(two_color);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,12 +16,13 @@
|
|||
|
||||
#include "gui/dialogs/server_info_dialog.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/stacked_widget.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
namespace gui2::dialogs
|
||||
{
|
||||
|
||||
|
@ -36,13 +37,13 @@ server_info::server_info(const std::string& info, const std::string& announcemen
|
|||
|
||||
void server_info::pre_show(window& window)
|
||||
{
|
||||
find_widget<label>(&window, "server_information", false).set_label(server_information_);
|
||||
find_widget<label>(&window, "announcements", false).set_label(announcements_);
|
||||
find_widget<label>("server_information").set_label(server_information_);
|
||||
find_widget<label>("announcements").set_label(announcements_);
|
||||
|
||||
stacked_widget& pager = find_widget<stacked_widget>(&window, "tabs_container", false);
|
||||
stacked_widget& pager = find_widget<stacked_widget>("tabs_container");
|
||||
pager.select_layer(0);
|
||||
|
||||
listbox& tab_bar = find_widget<listbox>(&window, "tab_bar", false);
|
||||
listbox& tab_bar = find_widget<listbox>("tab_bar");
|
||||
|
||||
VALIDATE(tab_bar.get_item_count() == pager.get_layer_count(), "Tab bar and container size mismatch");
|
||||
|
||||
|
@ -51,8 +52,8 @@ void server_info::pre_show(window& window)
|
|||
|
||||
void server_info::tab_switch_callback()
|
||||
{
|
||||
stacked_widget& pager = find_widget<stacked_widget>(get_window(), "tabs_container", false);
|
||||
listbox& tab_bar = find_widget<listbox>(get_window(), "tab_bar", false);
|
||||
stacked_widget& pager = find_widget<stacked_widget>("tabs_container");
|
||||
listbox& tab_bar = find_widget<listbox>("tab_bar");
|
||||
|
||||
pager.select_layer(std::max<int>(0, tab_bar.get_selected_row()));
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/simple_item_selector.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -45,7 +44,7 @@ simple_item_selector::simple_item_selector(const std::string& title,
|
|||
|
||||
void simple_item_selector::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "listbox", false);
|
||||
listbox& list = find_widget<listbox>("listbox");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
for(const auto & it : items_)
|
||||
|
@ -65,8 +64,8 @@ void simple_item_selector::pre_show(window& window)
|
|||
|
||||
index_ = -1;
|
||||
|
||||
button& button_ok = find_widget<button>(&window, "ok", false);
|
||||
button& button_cancel = find_widget<button>(&window, "cancel", false);
|
||||
button& button_ok = find_widget<button>("ok");
|
||||
button& button_cancel = find_widget<button>("cancel");
|
||||
|
||||
if(!ok_label_.empty()) {
|
||||
button_ok.set_label(ok_label_);
|
||||
|
@ -84,7 +83,7 @@ void simple_item_selector::pre_show(window& window)
|
|||
void simple_item_selector::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK || single_button_) {
|
||||
index_ = find_widget<listbox>(&window, "listbox", false).get_selected_row();
|
||||
index_ = find_widget<listbox>("listbox").get_selected_row();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "formatter.hpp"
|
||||
#include "formula/string_utils.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/menu_button.hpp"
|
||||
|
@ -67,7 +66,7 @@ void statistics_dialog::pre_show(window& window)
|
|||
//
|
||||
// Set title
|
||||
//
|
||||
label& title = find_widget<label>(&window, "title", false);
|
||||
label& title = find_widget<label>("title");
|
||||
title.set_label((formatter() << title.get_label() << (current_team_.side_name().empty() ? "" : " (" + current_team_.side_name() + ")")).str());
|
||||
|
||||
//
|
||||
|
@ -82,7 +81,7 @@ void statistics_dialog::pre_show(window& window)
|
|||
menu_items.emplace_back("label", *scenario.first);
|
||||
}
|
||||
|
||||
menu_button& scenario_menu = find_widget<menu_button>(&window, "scenario_menu", false);
|
||||
menu_button& scenario_menu = find_widget<menu_button>("scenario_menu");
|
||||
|
||||
scenario_menu.set_values(menu_items, selection_index_);
|
||||
|
||||
|
@ -92,7 +91,7 @@ void statistics_dialog::pre_show(window& window)
|
|||
//
|
||||
// Set up primary stats list
|
||||
//
|
||||
listbox& stat_list = find_widget<listbox>(&window, "stats_list_main", false);
|
||||
listbox& stat_list = find_widget<listbox>("stats_list_main");
|
||||
|
||||
connect_signal_notify_modified(stat_list,
|
||||
std::bind(&statistics_dialog::on_primary_list_select, this));
|
||||
|
@ -107,7 +106,7 @@ inline const statistics_t::stats& statistics_dialog::current_stats()
|
|||
|
||||
void statistics_dialog::add_stat_row(const std::string& type, const statistics_t::stats::str_int_map& value, const bool has_cost)
|
||||
{
|
||||
listbox& stat_list = find_widget<listbox>(get_window(), "stats_list_main", false);
|
||||
listbox& stat_list = find_widget<listbox>("stats_list_main");
|
||||
|
||||
widget_data data;
|
||||
widget_item item;
|
||||
|
@ -149,7 +148,7 @@ void statistics_dialog::add_damage_row(
|
|||
const long long& turn_expected,
|
||||
const bool show_this_turn)
|
||||
{
|
||||
listbox& damage_list = find_widget<listbox>(get_window(), "stats_list_damage", false);
|
||||
listbox& damage_list = find_widget<listbox>("stats_list_damage");
|
||||
|
||||
widget_data data;
|
||||
widget_item item;
|
||||
|
@ -173,7 +172,7 @@ void statistics_dialog::add_damage_row(
|
|||
data.emplace("overall_score", item);
|
||||
|
||||
if(show_this_turn) {
|
||||
label& this_turn_header = find_widget<label>(get_window(), "damage_this_turn_header", false);
|
||||
label& this_turn_header = find_widget<label>("damage_this_turn_header");
|
||||
this_turn_header.set_label(_("This Turn"));
|
||||
|
||||
item["label"] = damage_str(turn_damage, turn_expected);
|
||||
|
@ -183,7 +182,7 @@ void statistics_dialog::add_damage_row(
|
|||
data.emplace("this_turn_score", item);
|
||||
} else {
|
||||
// TODO: Setting the label to "" causes "This Turn" not to be drawn when changing back to the current scenario view, so set the label to " " (a single space) instead.
|
||||
label& this_turn_header = find_widget<label>(get_window(), "damage_this_turn_header", false);
|
||||
label& this_turn_header = find_widget<label>("damage_this_turn_header");
|
||||
this_turn_header.set_label(" ");
|
||||
}
|
||||
|
||||
|
@ -309,7 +308,7 @@ void statistics_dialog::add_hits_row(
|
|||
const statistics_t::stats::hitrate_map& turn_by_cth,
|
||||
const bool show_this_turn)
|
||||
{
|
||||
listbox& hits_list = find_widget<listbox>(get_window(), "stats_list_hits", false);
|
||||
listbox& hits_list = find_widget<listbox>("stats_list_hits");
|
||||
|
||||
widget_data data;
|
||||
widget_item item;
|
||||
|
@ -332,7 +331,7 @@ void statistics_dialog::add_hits_row(
|
|||
data.emplace("overall_score", widget_item { { "label", element.pvalue_str } });
|
||||
|
||||
if(show_this_turn) {
|
||||
label& this_turn_header = find_widget<label>(get_window(), "hits_this_turn_header", false);
|
||||
label& this_turn_header = find_widget<label>("hits_this_turn_header");
|
||||
this_turn_header.set_label(_("This Turn"));
|
||||
|
||||
element = tally(turn_by_cth, more_is_better);
|
||||
|
@ -344,7 +343,7 @@ void statistics_dialog::add_hits_row(
|
|||
data.emplace("this_turn_score", widget_item { { "label", element.pvalue_str } });
|
||||
} else {
|
||||
// TODO: Setting the label to "" causes "This Turn" not to be drawn when changing back to the current scenario view, so set the label to " " (a single space) instead.
|
||||
label& this_turn_header = find_widget<label>(get_window(), "hits_this_turn_header", false);
|
||||
label& this_turn_header = find_widget<label>("hits_this_turn_header");
|
||||
this_turn_header.set_label(" ");
|
||||
}
|
||||
|
||||
|
@ -356,7 +355,7 @@ void statistics_dialog::update_lists()
|
|||
//
|
||||
// Update primary stats list
|
||||
//
|
||||
listbox& stat_list = find_widget<listbox>(get_window(), "stats_list_main", false);
|
||||
listbox& stat_list = find_widget<listbox>("stats_list_main");
|
||||
const int last_selected_stat_row = stat_list.get_selected_row();
|
||||
|
||||
stat_list.clear();
|
||||
|
@ -383,11 +382,11 @@ void statistics_dialog::update_lists()
|
|||
//
|
||||
const bool show_this_turn = selection_index_ == scenarios_.size();
|
||||
|
||||
listbox& damage_list = find_widget<listbox>(get_window(), "stats_list_damage", false);
|
||||
listbox& damage_list = find_widget<listbox>("stats_list_damage");
|
||||
|
||||
damage_list.clear();
|
||||
|
||||
listbox& hits_list = find_widget<listbox>(get_window(), "stats_list_hits", false);
|
||||
listbox& hits_list = find_widget<listbox>("stats_list_hits");
|
||||
hits_list.clear();
|
||||
|
||||
add_damage_row(_("Inflicted"),
|
||||
|
@ -419,7 +418,7 @@ void statistics_dialog::update_lists()
|
|||
|
||||
void statistics_dialog::on_scenario_select()
|
||||
{
|
||||
const std::size_t new_index = find_widget<menu_button>(get_window(), "scenario_menu", false).get_value();
|
||||
const std::size_t new_index = find_widget<menu_button>("scenario_menu").get_value();
|
||||
|
||||
if(selection_index_ != new_index) {
|
||||
selection_index_ = new_index;
|
||||
|
@ -429,12 +428,12 @@ void statistics_dialog::on_scenario_select()
|
|||
|
||||
void statistics_dialog::on_primary_list_select()
|
||||
{
|
||||
const int selected_row = find_widget<listbox>(get_window(), "stats_list_main", false).get_selected_row();
|
||||
const int selected_row = find_widget<listbox>("stats_list_main").get_selected_row();
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
listbox& unit_list = find_widget<listbox>(get_window(), "stats_list_units", false);
|
||||
listbox& unit_list = find_widget<listbox>("stats_list_units");
|
||||
|
||||
unit_list.clear();
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "display.hpp"
|
||||
#include "formula/variant.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "sdl/point.hpp"
|
||||
#include "gui/core/timer.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -89,12 +88,12 @@ void story_viewer::pre_show(window& window)
|
|||
// Special callback handle key presses
|
||||
connect_signal_pre_key_press(window, std::bind(&story_viewer::key_press_callback, this, std::placeholders::_5));
|
||||
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "next", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("next"),
|
||||
std::bind(&story_viewer::nav_button_callback, this, DIR_FORWARD));
|
||||
connect_signal_mouse_left_click(find_widget<button>(&window, "prev", false),
|
||||
connect_signal_mouse_left_click(find_widget<button>("prev"),
|
||||
std::bind(&story_viewer::nav_button_callback, this, DIR_BACKWARDS));
|
||||
|
||||
find_widget<scroll_label>(get_window(), "part_text", false)
|
||||
find_widget<scroll_label>("part_text")
|
||||
.connect_signal<event::LEFT_BUTTON_CLICK>(
|
||||
std::bind(&story_viewer::nav_button_callback, this, DIR_FORWARD), queue_position::front_pre_child);
|
||||
|
||||
|
@ -120,7 +119,7 @@ void story_viewer::display_part()
|
|||
{
|
||||
static const int VOICE_SOUND_SOURCE_ID = 255;
|
||||
// Update Back button state. Doing this here so it gets called in pre_show too.
|
||||
find_widget<button>(get_window(), "prev", false).set_active(part_index_ != 0);
|
||||
find_widget<button>("prev").set_active(part_index_ != 0);
|
||||
|
||||
//
|
||||
// Music and sound
|
||||
|
@ -243,7 +242,7 @@ void story_viewer::display_part()
|
|||
//
|
||||
// Title
|
||||
//
|
||||
label& title_label = find_widget<label>(get_window(), "title", false);
|
||||
label& title_label = find_widget<label>("title");
|
||||
|
||||
std::string title_text = current_part_->title();
|
||||
bool showing_title;
|
||||
|
@ -265,7 +264,7 @@ void story_viewer::display_part()
|
|||
//
|
||||
// Story text
|
||||
//
|
||||
stacked_widget& text_stack = find_widget<stacked_widget>(get_window(), "text_and_control_stack", false);
|
||||
stacked_widget& text_stack = find_widget<stacked_widget>("text_and_control_stack");
|
||||
|
||||
std::string new_panel_mode;
|
||||
|
||||
|
@ -289,7 +288,7 @@ void story_viewer::display_part()
|
|||
* We use get_layer_grid here to ensure the widget is always found regardless of
|
||||
* whether the background is visible or not.
|
||||
*/
|
||||
canvas& panel_canvas = find_widget<panel>(text_stack.get_layer_grid(LAYER_BACKGROUND), "text_panel", false).get_canvas(0);
|
||||
canvas& panel_canvas = text_stack.get_layer_grid(LAYER_BACKGROUND)->find_widget<panel>("text_panel").get_canvas(0);
|
||||
|
||||
panel_canvas.set_variable("panel_position", wfl::variant(new_panel_mode));
|
||||
panel_canvas.set_variable("title_present", wfl::variant(static_cast<int>(showing_title))); // cast to 0/1
|
||||
|
@ -307,7 +306,7 @@ void story_viewer::display_part()
|
|||
// Convert the story part text alignment types into the Pango equivalents
|
||||
PangoAlignment story_text_alignment = decode_text_alignment(current_part_->story_text_alignment());
|
||||
|
||||
scroll_label& text_label = find_widget<scroll_label>(get_window(), "part_text", false);
|
||||
scroll_label& text_label = find_widget<scroll_label>("part_text");
|
||||
text_label.set_text_alignment(story_text_alignment);
|
||||
text_label.set_text_alpha(0);
|
||||
text_label.set_label(part_text);
|
||||
|
@ -398,7 +397,7 @@ void story_viewer::nav_button_callback(NAV_DIRECTION direction)
|
|||
|
||||
// Only set full alpha if Forward was pressed.
|
||||
if(direction == DIR_FORWARD) {
|
||||
find_widget<scroll_label>(get_window(), "part_text", false).set_text_alpha(ALPHA_OPAQUE);
|
||||
find_widget<scroll_label>("part_text").set_text_alpha(ALPHA_OPAQUE);
|
||||
flag_stack_as_dirty();
|
||||
return;
|
||||
}
|
||||
|
@ -495,7 +494,7 @@ void story_viewer::update()
|
|||
}
|
||||
|
||||
unsigned short new_alpha = std::clamp<short>(fade_step_ * 25.5, 0, ALPHA_OPAQUE);
|
||||
find_widget<scroll_label>(get_window(), "part_text", false).set_text_alpha(new_alpha);
|
||||
find_widget<scroll_label>("part_text").set_text_alpha(new_alpha);
|
||||
|
||||
// The text stack also needs to be marked dirty so the background panel redraws correctly.
|
||||
flag_stack_as_dirty();
|
||||
|
@ -511,7 +510,7 @@ void story_viewer::update()
|
|||
|
||||
void story_viewer::flag_stack_as_dirty()
|
||||
{
|
||||
find_widget<stacked_widget>(get_window(), "text_and_control_stack", false).queue_redraw();
|
||||
find_widget<stacked_widget>("text_and_control_stack").queue_redraw();
|
||||
}
|
||||
|
||||
} // namespace dialogs
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include "display.hpp"
|
||||
#include "formatter.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -54,12 +53,12 @@ void terrain_layers::pre_show(window& window)
|
|||
flag = (formatter() << font::unicode_bullet << " " << flag).str();
|
||||
}
|
||||
|
||||
find_widget<label>(&window, "flags", false).set_label(utils::join(flags, "\n"));
|
||||
find_widget<label>("flags").set_label(utils::join(flags, "\n"));
|
||||
|
||||
//
|
||||
// Generate terrain list
|
||||
//
|
||||
listbox& list = find_widget<listbox>(&window, "layer_list", false);
|
||||
listbox& list = find_widget<listbox>("layer_list");
|
||||
|
||||
int order = 1;
|
||||
for(const terrain_builder::tile::log_details& det : tile_logs_) {
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "gui/dialogs/theme_list.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "theme.hpp"
|
||||
|
@ -34,7 +33,7 @@ theme_list::theme_list(const std::vector<theme_info>& themes, int selection)
|
|||
|
||||
void theme_list::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "themes", false);
|
||||
listbox& list = find_widget<listbox>("themes");
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
for(const auto & t : themes_)
|
||||
|
@ -68,7 +67,7 @@ void theme_list::post_show(window& window)
|
|||
return;
|
||||
}
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "themes", false);
|
||||
listbox& list = find_widget<listbox>("themes");
|
||||
index_ = list.get_selected_row();
|
||||
}
|
||||
} // namespace dialogs
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "game_config.hpp"
|
||||
#include "game_config_manager.hpp"
|
||||
#include "game_launcher.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/tips.hpp"
|
||||
#include "gui/dialogs/achievements_dialog.hpp"
|
||||
#include "gui/dialogs/core_selection.hpp"
|
||||
|
@ -56,6 +55,7 @@
|
|||
#include "sdl/surface.hpp"
|
||||
#include "serialization/unicode.hpp"
|
||||
#include "video.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
|
@ -93,7 +93,7 @@ void title_screen::register_button(const std::string& id, hotkey::HOTKEY_COMMAND
|
|||
}
|
||||
|
||||
try {
|
||||
button& btn = find_widget<button>(this, id, false);
|
||||
button& btn = find_widget<button>(id);
|
||||
connect_signal_mouse_left_click(btn, std::bind(callback));
|
||||
} catch(const wml_exception& e) {
|
||||
ERR_GUI_P << e.user_message;
|
||||
|
@ -188,13 +188,13 @@ void title_screen::init_callbacks()
|
|||
get_canvas(0).set_variable("title_image", wfl::variant(game_config::images::game_title));
|
||||
get_canvas(0).set_variable("background_image", wfl::variant(game_config::images::game_title_background));
|
||||
|
||||
find_widget<image>(this, "logo-bg", false).set_image(game_config::images::game_logo_background);
|
||||
find_widget<image>(this, "logo", false).set_image(game_config::images::game_logo);
|
||||
find_widget<image>("logo-bg").set_image(game_config::images::game_logo_background);
|
||||
find_widget<image>("logo").set_image(game_config::images::game_logo);
|
||||
|
||||
//
|
||||
// Tip-of-the-day browser
|
||||
//
|
||||
multi_page* tip_pages = find_widget<multi_page>(this, "tips", false, false);
|
||||
multi_page* tip_pages = find_widget<multi_page>("tips", false, false);
|
||||
|
||||
if(tip_pages != nullptr) {
|
||||
std::vector<game_tip> tips = tip_of_the_day::shuffle(settings::tips);
|
||||
|
@ -346,7 +346,7 @@ void title_screen::init_callbacks()
|
|||
//
|
||||
register_button("quit", hotkey::HOTKEY_QUIT_TO_DESKTOP, [this]() { set_retval(QUIT_GAME); });
|
||||
// A sanity check, exit immediately if the .cfg file didn't have a "quit" button.
|
||||
find_widget<button>(this, "quit", false, true);
|
||||
find_widget<button>("quit", false, true);
|
||||
|
||||
//
|
||||
// Debug clock
|
||||
|
@ -354,7 +354,7 @@ void title_screen::init_callbacks()
|
|||
register_button("clock", hotkey::HOTKEY_NULL,
|
||||
std::bind(&title_screen::show_debug_clock_window, this));
|
||||
|
||||
auto clock = find_widget<button>(this, "clock", false, false);
|
||||
auto clock = find_widget<button>("clock", false, false);
|
||||
if(clock) {
|
||||
clock->set_visible(show_debug_clock_button ? widget::visibility::visible : widget::visibility::invisible);
|
||||
}
|
||||
|
@ -365,7 +365,7 @@ void title_screen::init_callbacks()
|
|||
register_button("test_dialog", hotkey::HOTKEY_NULL,
|
||||
std::bind(&title_screen::show_gui_test_dialog, this));
|
||||
|
||||
auto test_dialog = find_widget<button>(this, "test_dialog", false, false);
|
||||
auto test_dialog = find_widget<button>("test_dialog", false, false);
|
||||
if(test_dialog) {
|
||||
test_dialog->set_visible(show_debug_clock_button ? widget::visibility::visible : widget::visibility::invisible);
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ void title_screen::update_static_labels()
|
|||
//
|
||||
const std::string& version_string = VGETTEXT("Version $version", {{ "version", game_config::revision }});
|
||||
|
||||
if(label* version_label = find_widget<label>(this, "revision_number", false, false)) {
|
||||
if(label* version_label = find_widget<label>("revision_number", false, false)) {
|
||||
version_label->set_label(version_string);
|
||||
}
|
||||
|
||||
|
@ -392,7 +392,7 @@ void title_screen::update_static_labels()
|
|||
//
|
||||
// Language menu label
|
||||
//
|
||||
if(auto* lang_button = find_widget<button>(this, "language", false, false); lang_button) {
|
||||
if(auto* lang_button = find_widget<button>("language", false, false); lang_button) {
|
||||
const auto& locale = translation::get_effective_locale_info();
|
||||
// Just assume everything is UTF-8 (it should be as long as we're called Wesnoth)
|
||||
// and strip the charset from the Boost locale identifier.
|
||||
|
@ -425,7 +425,7 @@ void title_screen::on_resize()
|
|||
|
||||
void title_screen::update_tip(const bool previous)
|
||||
{
|
||||
multi_page* tip_pages = find_widget<multi_page>(get_window(), "tips", false, false);
|
||||
multi_page* tip_pages = find_widget<multi_page>("tips", false, false);
|
||||
if(tip_pages == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
@ -515,12 +515,12 @@ void title_screen::show_preferences()
|
|||
// preferences will cause the title screen tip and menu panels to
|
||||
// capture the prefs dialog in their blur. This workaround simply
|
||||
// forces them to re-capture the blur after the dialog closes.
|
||||
panel* tip_panel = find_widget<panel>(this, "tip_panel", false, false);
|
||||
panel* tip_panel = find_widget<panel>("tip_panel", false, false);
|
||||
if(tip_panel != nullptr) {
|
||||
tip_panel->get_canvas(tip_panel->get_state()).queue_reblur();
|
||||
tip_panel->queue_redraw();
|
||||
}
|
||||
panel* menu_panel = find_widget<panel>(this, "menu_panel", false, false);
|
||||
panel* menu_panel = find_widget<panel>("menu_panel", false, false);
|
||||
if(menu_panel != nullptr) {
|
||||
menu_panel->get_canvas(menu_panel->get_state()).queue_reblur();
|
||||
menu_panel->queue_redraw();
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/tooltip.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/gui_definition.hpp"
|
||||
#include "gui/dialogs/modal_dialog.hpp"
|
||||
#include "gui/dialogs/modeless_dialog.hpp"
|
||||
|
@ -45,7 +44,7 @@ public:
|
|||
const point& mouse, const SDL_Rect& source_rect)
|
||||
: modeless_dialog(window_id)
|
||||
{
|
||||
find_widget<styled_widget>(this, "label", false).set_label(message);
|
||||
find_widget<styled_widget>("label").set_label(message);
|
||||
|
||||
set_variable("mouse_x", wfl::variant(mouse.x));
|
||||
set_variable("mouse_y", wfl::variant(mouse.y));
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/transient_message.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
#include "log.hpp"
|
||||
|
||||
|
@ -47,12 +46,12 @@ transient_message::transient_message(const std::string& title,
|
|||
void transient_message::pre_show(window& window)
|
||||
{
|
||||
if(hide_title_) {
|
||||
widget& title = find_widget<widget>(&window, "title", false);
|
||||
widget& title = find_widget<widget>("title");
|
||||
title.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(hide_image_) {
|
||||
widget& image = find_widget<widget>(&window, "image", false);
|
||||
widget& image = find_widget<widget>("image");
|
||||
image.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/unit_advance.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/unit_preview_pane.hpp"
|
||||
|
@ -42,14 +41,14 @@ unit_advance::unit_advance(const std::vector<unit_const_ptr>& samples, std::size
|
|||
|
||||
void unit_advance::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "advance_choice", false);
|
||||
listbox& list = find_widget<listbox>("advance_choice");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&unit_advance::list_item_clicked, this));
|
||||
|
||||
window.keyboard_capture(&list);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_help", false),
|
||||
find_widget<button>("show_help"),
|
||||
std::bind(&unit_advance::show_help, this));
|
||||
|
||||
for(std::size_t i = 0; i < previews_.size(); i++) {
|
||||
|
@ -95,13 +94,13 @@ void unit_advance::pre_show(window& window)
|
|||
void unit_advance::list_item_clicked()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(get_window(), "advance_choice", false).get_selected_row();
|
||||
= find_widget<listbox>("advance_choice").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
find_widget<unit_preview_pane>(get_window(), "advancement_details", false)
|
||||
find_widget<unit_preview_pane>("advancement_details")
|
||||
.set_displayed_unit(*previews_[selected_row]);
|
||||
}
|
||||
|
||||
|
@ -113,7 +112,7 @@ void unit_advance::show_help()
|
|||
void unit_advance::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
selected_index_ = find_widget<listbox>(&window, "advance_choice", false)
|
||||
selected_index_ = find_widget<listbox>("advance_choice")
|
||||
.get_selected_row();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "gui/dialogs/unit_attack.hpp"
|
||||
|
||||
#include "font/text_formatting.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/attack_predictions.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
|
@ -51,25 +50,25 @@ unit_attack::unit_attack(const unit_map::iterator& attacker_itor,
|
|||
|
||||
void unit_attack::damage_calc_callback()
|
||||
{
|
||||
const std::size_t index = find_widget<listbox>(get_window(), "weapon_list", false).get_selected_row();
|
||||
const std::size_t index = find_widget<listbox>("weapon_list").get_selected_row();
|
||||
attack_predictions::display(weapons_[index], attacker_itor_.get_shared_ptr(), defender_itor_.get_shared_ptr());
|
||||
}
|
||||
|
||||
void unit_attack::pre_show(window& window)
|
||||
{
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "damage_calculation", false),
|
||||
find_widget<button>("damage_calculation"),
|
||||
std::bind(&unit_attack::damage_calc_callback, this));
|
||||
|
||||
find_widget<unit_preview_pane>(&window, "attacker_pane", false)
|
||||
find_widget<unit_preview_pane>("attacker_pane")
|
||||
.set_displayed_unit(*attacker_itor_);
|
||||
|
||||
find_widget<unit_preview_pane>(&window, "defender_pane", false)
|
||||
find_widget<unit_preview_pane>("defender_pane")
|
||||
.set_displayed_unit(*defender_itor_);
|
||||
|
||||
selected_weapon_ = -1;
|
||||
|
||||
listbox& weapon_list = find_widget<listbox>(&window, "weapon_list", false);
|
||||
listbox& weapon_list = find_widget<listbox>("weapon_list");
|
||||
window.keyboard_capture(&weapon_list);
|
||||
|
||||
// Possible TODO: If a "blank weapon" is generally useful, add it as a static member in attack_type.
|
||||
|
@ -239,7 +238,7 @@ void unit_attack::pre_show(window& window)
|
|||
void unit_attack::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
selected_weapon_ = find_widget<listbox>(&window, "weapon_list", false).get_selected_row();
|
||||
selected_weapon_ = find_widget<listbox>("weapon_list").get_selected_row();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/unit_create.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
|
@ -53,9 +52,9 @@ unit_create::unit_create()
|
|||
void unit_create::pre_show(window& window)
|
||||
{
|
||||
toggle_button& male_toggle
|
||||
= find_widget<toggle_button>(&window, "male_toggle", false);
|
||||
= find_widget<toggle_button>("male_toggle");
|
||||
toggle_button& female_toggle
|
||||
= find_widget<toggle_button>(&window, "female_toggle", false);
|
||||
= find_widget<toggle_button>("female_toggle");
|
||||
|
||||
gender_toggle.add_member(&male_toggle, unit_race::MALE);
|
||||
gender_toggle.add_member(&female_toggle, unit_race::FEMALE);
|
||||
|
@ -65,14 +64,14 @@ void unit_create::pre_show(window& window)
|
|||
gender_toggle.set_callback_on_value_change(
|
||||
std::bind(&unit_create::gender_toggle_callback, this, std::placeholders::_2));
|
||||
|
||||
menu_button& var_box = find_widget<menu_button>(&window, "variation_box", false);
|
||||
menu_button& var_box = find_widget<menu_button>("variation_box");
|
||||
|
||||
connect_signal_notify_modified(var_box, std::bind(&unit_create::variation_menu_callback, this));
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "unit_type_list", false);
|
||||
listbox& list = find_widget<listbox>("unit_type_list");
|
||||
|
||||
text_box* filter
|
||||
= find_widget<text_box>(&window, "filter_box", false, true);
|
||||
= find_widget<text_box>("filter_box", false, true);
|
||||
|
||||
filter->set_text_changed_callback(
|
||||
std::bind(&unit_create::filter_text_changed, this, std::placeholders::_2));
|
||||
|
@ -84,7 +83,7 @@ void unit_create::pre_show(window& window)
|
|||
|
||||
list.clear();
|
||||
|
||||
for(const auto & i : unit_types.types())
|
||||
for(const auto& i : unit_types.types())
|
||||
{
|
||||
// Make sure this unit type is built with the data we need.
|
||||
unit_types.build_unit_type(i.second, unit_type::FULL);
|
||||
|
@ -127,7 +126,7 @@ void unit_create::pre_show(window& window)
|
|||
|
||||
void unit_create::post_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "unit_type_list", false);
|
||||
listbox& list = find_widget<listbox>("unit_type_list");
|
||||
|
||||
choice_ = "";
|
||||
|
||||
|
@ -153,7 +152,7 @@ void unit_create::post_show(window& window)
|
|||
void unit_create::update_displayed_type()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(this, "unit_type_list", false).get_selected_row();
|
||||
= find_widget<listbox>("unit_type_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
|
@ -167,13 +166,13 @@ void unit_create::update_displayed_type()
|
|||
ut = &ut->get_variation(variation_);
|
||||
}
|
||||
|
||||
find_widget<unit_preview_pane>(this, "unit_details", false).set_displayed_type(*ut);
|
||||
find_widget<unit_preview_pane>("unit_details").set_displayed_type(*ut);
|
||||
}
|
||||
|
||||
void unit_create::list_item_clicked()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(this, "unit_type_list", false).get_selected_row();
|
||||
= find_widget<listbox>("unit_type_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
|
@ -185,7 +184,7 @@ void unit_create::list_item_clicked()
|
|||
return units_[selected_row]->has_gender_variation(gender);
|
||||
});
|
||||
|
||||
menu_button& var_box = find_widget<menu_button>(this, "variation_box", false);
|
||||
menu_button& var_box = find_widget<menu_button>("variation_box");
|
||||
std::vector<config> var_box_values;
|
||||
var_box_values.emplace_back("label", _("unit_variation^Default Variation"), "variation_id", "");
|
||||
|
||||
|
@ -229,7 +228,7 @@ void unit_create::list_item_clicked()
|
|||
|
||||
void unit_create::filter_text_changed(const std::string& text)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(this, "unit_type_list", false);
|
||||
listbox& list = find_widget<listbox>("unit_type_list");
|
||||
|
||||
const std::vector<std::string> words = utils::split(text, ' ');
|
||||
|
||||
|
@ -244,11 +243,9 @@ void unit_create::filter_text_changed(const std::string& text)
|
|||
for(unsigned int i = 0; i < list.get_item_count(); i++) {
|
||||
grid* row = list.get_row_grid(i);
|
||||
|
||||
grid::iterator it = row->begin();
|
||||
label& type_label
|
||||
= find_widget<label>(*it, "unit_type", false);
|
||||
label& race_label
|
||||
= find_widget<label>(*it, "race", false);
|
||||
// grid::iterator it = row->begin();
|
||||
label& type_label = row->find_widget<label>("unit_type");
|
||||
label& race_label = row->find_widget<label>("race");
|
||||
|
||||
assert(i < units_.size());
|
||||
const std::string& unit_type_id = units_[i] ? units_[i]->id() : "";
|
||||
|
@ -282,7 +279,7 @@ void unit_create::gender_toggle_callback(const unit_race::GENDER val)
|
|||
|
||||
void unit_create::variation_menu_callback()
|
||||
{
|
||||
menu_button& var_box = find_widget<menu_button>(this, "variation_box", false);
|
||||
menu_button& var_box = find_widget<menu_button>("variation_box");
|
||||
variation_ = var_box.get_value_config()["variation_id"].str();
|
||||
|
||||
update_displayed_type();
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/dialogs/unit_list.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
#include "gui/widgets/unit_preview_pane.hpp"
|
||||
|
@ -84,7 +83,7 @@ static std::string format_movement_string(unit_const_ptr u)
|
|||
|
||||
void unit_list::pre_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "units_list", false);
|
||||
listbox& list = find_widget<listbox>("units_list");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&unit_list::list_item_clicked, this));
|
||||
|
||||
|
@ -132,24 +131,24 @@ void unit_list::pre_show(window& window)
|
|||
column["label"] = utils::join(unit->trait_names(), ", ");
|
||||
row_data.emplace("unit_traits", column);
|
||||
|
||||
grid* row_grid = &list.add_row(row_data);
|
||||
grid& row_grid = list.add_row(row_data);
|
||||
|
||||
// NOTE: this needs to be done *after* the row is added
|
||||
// TODO: show custom statuses
|
||||
if(!unit->get_state(unit::STATE_PETRIFIED)) {
|
||||
find_widget<image>(row_grid, "unit_status_petrified", false).set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<image>("unit_status_petrified").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(!unit->get_state(unit::STATE_POISONED)) {
|
||||
find_widget<image>(row_grid, "unit_status_poisoned", false).set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<image>("unit_status_poisoned").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(!unit->get_state(unit::STATE_SLOWED)) {
|
||||
find_widget<image>(row_grid, "unit_status_slowed", false).set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<image>("unit_status_slowed").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(!unit->invisible(unit->get_location(), false)) {
|
||||
find_widget<image>(row_grid, "unit_status_invisible", false).set_visible(widget::visibility::invisible);
|
||||
row_grid.find_widget<image>("unit_status_invisible").set_visible(widget::visibility::invisible);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -171,20 +170,20 @@ void unit_list::pre_show(window& window)
|
|||
void unit_list::list_item_clicked()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(get_window(), "units_list", false).get_selected_row();
|
||||
= find_widget<listbox>("units_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
find_widget<unit_preview_pane>(get_window(), "unit_details", false)
|
||||
find_widget<unit_preview_pane>("unit_details")
|
||||
.set_displayed_unit(*unit_list_[selected_row].get());
|
||||
}
|
||||
|
||||
void unit_list::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
const int selected_row = find_widget<listbox>(&window, "units_list", false).get_selected_row();
|
||||
const int selected_row = find_widget<listbox>("units_list").get_selected_row();
|
||||
|
||||
scroll_to_ = unit_list_[selected_row]->get_location();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "gui/dialogs/unit_recall.hpp"
|
||||
|
||||
#include "font/text_formatting.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/edit_text.hpp"
|
||||
#include "gui/dialogs/message.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
|
@ -156,16 +155,16 @@ static std::string get_title_suffix(int side_num)
|
|||
|
||||
void unit_recall::pre_show(window& window)
|
||||
{
|
||||
label& title = find_widget<label>(&window, "title", true);
|
||||
label& title = find_widget<label>("title", true);
|
||||
title.set_label(title.get_label() + get_title_suffix(team_.side()));
|
||||
|
||||
text_box* filter
|
||||
= find_widget<text_box>(&window, "filter_box", false, true);
|
||||
= find_widget<text_box>("filter_box", false, true);
|
||||
|
||||
filter->set_text_changed_callback(
|
||||
std::bind(&unit_recall::filter_text_changed, this, std::placeholders::_2));
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "recall_list", false);
|
||||
listbox& list = find_widget<listbox>("recall_list");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&unit_recall::list_item_clicked, this));
|
||||
|
||||
|
@ -175,15 +174,15 @@ void unit_recall::pre_show(window& window)
|
|||
window.add_to_keyboard_chain(&list);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "rename", false),
|
||||
find_widget<button>("rename"),
|
||||
std::bind(&unit_recall::rename_unit, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "dismiss", false),
|
||||
find_widget<button>("dismiss"),
|
||||
std::bind(&unit_recall::dismiss_unit, this));
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_help", false),
|
||||
find_widget<button>("show_help"),
|
||||
std::bind(&unit_recall::show_help, this));
|
||||
|
||||
for(const unit_const_ptr& unit : recall_list_) {
|
||||
|
@ -310,7 +309,7 @@ void unit_recall::pre_show(window& window)
|
|||
|
||||
void unit_recall::rename_unit()
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "recall_list", false);
|
||||
listbox& list = find_widget<listbox>("recall_list");
|
||||
|
||||
const int index = list.get_selected_row();
|
||||
if (index == -1) {
|
||||
|
@ -326,7 +325,7 @@ void unit_recall::rename_unit()
|
|||
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);
|
||||
list.get_row_grid(index)->find_widget<label>("unit_name").set_label(name);
|
||||
|
||||
filter_options_.erase(filter_options_.begin() + index);
|
||||
std::ostringstream filter_text;
|
||||
|
@ -345,7 +344,7 @@ void unit_recall::dismiss_unit()
|
|||
{
|
||||
LOG_DP << "Recall list units:"; dump_recall_list_to_console(recall_list_);
|
||||
|
||||
listbox& list = find_widget<listbox>(get_window(), "recall_list", false);
|
||||
listbox& list = find_widget<listbox>("recall_list");
|
||||
const int index = list.get_selected_row();
|
||||
if (index == -1) {
|
||||
return;
|
||||
|
@ -414,7 +413,7 @@ void unit_recall::show_help()
|
|||
void unit_recall::list_item_clicked()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(get_window(), "recall_list", false).get_selected_row();
|
||||
= find_widget<listbox>("recall_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
|
@ -422,15 +421,15 @@ void unit_recall::list_item_clicked()
|
|||
|
||||
const unit& selected_unit = *recall_list_[selected_row].get();
|
||||
|
||||
find_widget<unit_preview_pane>(get_window(), "unit_details", false)
|
||||
find_widget<unit_preview_pane>("unit_details")
|
||||
.set_displayed_unit(selected_unit);
|
||||
|
||||
find_widget<button>(get_window(), "rename", false).set_active(!selected_unit.unrenamable());
|
||||
find_widget<button>("rename").set_active(!selected_unit.unrenamable());
|
||||
}
|
||||
|
||||
void unit_recall::post_show(window& window)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(&window, "recall_list", false);
|
||||
listbox& list = find_widget<listbox>("recall_list");
|
||||
sort_last = list.get_active_sorting_option();
|
||||
|
||||
if(get_retval() == retval::OK) {
|
||||
|
@ -440,7 +439,7 @@ void unit_recall::post_show(window& window)
|
|||
|
||||
void unit_recall::filter_text_changed(const std::string& text)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "recall_list", false);
|
||||
listbox& list = find_widget<listbox>("recall_list");
|
||||
|
||||
const std::vector<std::string> words = utils::split(text, ' ');
|
||||
|
||||
|
@ -472,8 +471,8 @@ void unit_recall::filter_text_changed(const std::string& text)
|
|||
|
||||
// Disable rename and dismiss buttons if no units are shown
|
||||
const bool any_shown = list.any_rows_shown();
|
||||
find_widget<button>(get_window(), "rename", false).set_active(any_shown);
|
||||
find_widget<button>(get_window(), "dismiss", false).set_active(any_shown);
|
||||
find_widget<button>("rename").set_active(any_shown);
|
||||
find_widget<button>("dismiss").set_active(any_shown);
|
||||
}
|
||||
|
||||
} // namespace dialogs
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#define GETTEXT_DOMAIN "wesnoth-lib"
|
||||
|
||||
#include "font/text_formatting.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/dialogs/unit_recruit.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
|
@ -62,7 +61,7 @@ static inline std::string gray_if_unrecruitable(const std::string& text, const b
|
|||
// Compare unit_create::filter_text_change
|
||||
void unit_recruit::filter_text_changed(const std::string& text)
|
||||
{
|
||||
listbox& list = find_widget<listbox>(get_window(), "recruit_list", false);
|
||||
listbox& list = find_widget<listbox>("recruit_list");
|
||||
|
||||
const std::vector<std::string> words = utils::split(text, ' ');
|
||||
|
||||
|
@ -118,11 +117,11 @@ void unit_recruit::filter_text_changed(const std::string& text)
|
|||
|
||||
void unit_recruit::pre_show(window& window)
|
||||
{
|
||||
text_box* filter = find_widget<text_box>(&window, "filter_box", false, true);
|
||||
text_box* filter = find_widget<text_box>("filter_box", false, true);
|
||||
filter->set_text_changed_callback(
|
||||
std::bind(&unit_recruit::filter_text_changed, this, std::placeholders::_2));
|
||||
|
||||
listbox& list = find_widget<listbox>(&window, "recruit_list", false);
|
||||
listbox& list = find_widget<listbox>("recruit_list");
|
||||
|
||||
connect_signal_notify_modified(list, std::bind(&unit_recruit::list_item_clicked, this));
|
||||
|
||||
|
@ -130,7 +129,7 @@ void unit_recruit::pre_show(window& window)
|
|||
window.add_to_keyboard_chain(&list);
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&window, "show_help", false),
|
||||
find_widget<button>("show_help"),
|
||||
std::bind(&unit_recruit::show_help, this));
|
||||
|
||||
for(const auto& recruit : recruit_list_)
|
||||
|
@ -175,13 +174,13 @@ void unit_recruit::pre_show(window& window)
|
|||
void unit_recruit::list_item_clicked()
|
||||
{
|
||||
const int selected_row
|
||||
= find_widget<listbox>(get_window(), "recruit_list", false).get_selected_row();
|
||||
= find_widget<listbox>("recruit_list").get_selected_row();
|
||||
|
||||
if(selected_row == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
find_widget<unit_preview_pane>(get_window(), "recruit_details", false)
|
||||
find_widget<unit_preview_pane>("recruit_details")
|
||||
.set_displayed_type(*recruit_list_[selected_row]);
|
||||
}
|
||||
|
||||
|
@ -193,7 +192,7 @@ void unit_recruit::show_help()
|
|||
void unit_recruit::post_show(window& window)
|
||||
{
|
||||
if(get_retval() == retval::OK) {
|
||||
selected_index_ = find_widget<listbox>(&window, "recruit_list", false)
|
||||
selected_index_ = find_widget<listbox>("recruit_list")
|
||||
.get_selected_row();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "../../addon/manager.hpp"
|
||||
#include "desktop/clipboard.hpp"
|
||||
#include "filesystem.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/styled_widget.hpp"
|
||||
#include "gui/widgets/window.hpp"
|
||||
|
@ -169,17 +168,17 @@ wml_error::wml_error(const std::string& summary,
|
|||
void wml_error::pre_show(window& window)
|
||||
{
|
||||
if(!have_files_) {
|
||||
styled_widget& filelist = find_widget<styled_widget>(&window, "files", false);
|
||||
styled_widget& filelist = find_widget<styled_widget>("files");
|
||||
filelist.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
if(!have_post_summary_) {
|
||||
styled_widget& post_summary
|
||||
= find_widget<styled_widget>(&window, "post_summary", false);
|
||||
= find_widget<styled_widget>("post_summary");
|
||||
post_summary.set_visible(widget::visibility::invisible);
|
||||
}
|
||||
|
||||
button& copy_button = find_widget<button>(&window, "copy", false);
|
||||
button& copy_button = find_widget<button>("copy");
|
||||
|
||||
connect_signal_mouse_left_click(
|
||||
copy_button, std::bind(&wml_error::copy_report_callback, this));
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/dialogs/wml_message.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/label.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
|
@ -26,9 +25,10 @@
|
|||
namespace gui2::dialogs
|
||||
{
|
||||
|
||||
void wml_message_base::set_input(const std::string& caption,
|
||||
std::string* text,
|
||||
const unsigned maximum_length)
|
||||
void wml_message_base::set_input(
|
||||
const std::string& caption,
|
||||
std::string* text,
|
||||
const unsigned maximum_length)
|
||||
{
|
||||
assert(text);
|
||||
|
||||
|
@ -38,8 +38,9 @@ void wml_message_base::set_input(const std::string& caption,
|
|||
input_maximum_length_ = maximum_length;
|
||||
}
|
||||
|
||||
void wml_message_base::set_option_list(const std::vector<wml_message_option>& option_list,
|
||||
int* chosen_option)
|
||||
void wml_message_base::set_option_list(
|
||||
const std::vector<wml_message_option>& option_list,
|
||||
int* chosen_option)
|
||||
{
|
||||
assert(!option_list.empty());
|
||||
assert(chosen_option);
|
||||
|
@ -60,12 +61,12 @@ void wml_message_base::pre_show(window& window)
|
|||
window.get_canvas(1).set_variable("portrait_mirror", wfl::variant(mirror_));
|
||||
|
||||
// Set the markup
|
||||
label& title = find_widget<label>(&window, "title", false);
|
||||
label& title = find_widget<label>("title");
|
||||
title.set_label(title_);
|
||||
title.set_use_markup(true);
|
||||
title.set_can_wrap(true);
|
||||
|
||||
styled_widget& message = find_widget<styled_widget>(&window, "message", false);
|
||||
styled_widget& message = find_widget<styled_widget>("message");
|
||||
message.set_label(message_);
|
||||
message.set_use_markup(true);
|
||||
// The message label might not always be a scroll_label but the capturing
|
||||
|
@ -73,8 +74,8 @@ void wml_message_base::pre_show(window& window)
|
|||
window.keyboard_capture(&message);
|
||||
|
||||
// Find the input box related fields.
|
||||
label& caption = find_widget<label>(&window, "input_caption", false);
|
||||
text_box& input = find_widget<text_box>(&window, "input", true);
|
||||
label& caption = find_widget<label>("input_caption");
|
||||
text_box& input = find_widget<text_box>("input", true);
|
||||
|
||||
if(has_input_) {
|
||||
caption.set_label(input_caption_);
|
||||
|
@ -90,7 +91,7 @@ void wml_message_base::pre_show(window& window)
|
|||
}
|
||||
|
||||
// Find the option list related fields.
|
||||
listbox& options = find_widget<listbox>(&window, "input_list", true);
|
||||
listbox& options = find_widget<listbox>("input_list", true);
|
||||
|
||||
if(!option_list_.empty()) {
|
||||
widget_data data;
|
||||
|
@ -129,11 +130,11 @@ void wml_message_base::post_show(window& window)
|
|||
{
|
||||
if(has_input_) {
|
||||
*input_text_
|
||||
= find_widget<text_box>(&window, "input", true).get_value();
|
||||
= find_widget<text_box>("input", true).get_value();
|
||||
}
|
||||
|
||||
if(!option_list_.empty()) {
|
||||
*chosen_option_ = find_widget<listbox>(&window, "input_list", true)
|
||||
*chosen_option_ = find_widget<listbox>("input_list", true)
|
||||
.get_selected_row();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include "font/text_formatting.hpp"
|
||||
#include "formatter.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/event/dispatcher.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -227,10 +226,10 @@ void addon_list::set_addons(const addons_list& addons)
|
|||
grid* row_grid = &list.add_row(data);
|
||||
|
||||
// Set special retval for the toggle panels
|
||||
find_widget<toggle_panel>(row_grid, "list_panel", false).set_retval(DEFAULT_ACTION_RETVAL);
|
||||
row_grid->find_widget<toggle_panel>("list_panel").set_retval(DEFAULT_ACTION_RETVAL);
|
||||
|
||||
// The control button grid is excluded on lower resolutions.
|
||||
grid* control_grid = find_widget<grid>(row_grid, "single_install_buttons", false, false);
|
||||
grid* control_grid = row_grid->find_widget<grid>("single_install_buttons", false, false);
|
||||
if(!control_grid) {
|
||||
continue;
|
||||
}
|
||||
|
@ -238,15 +237,15 @@ void addon_list::set_addons(const addons_list& addons)
|
|||
//
|
||||
// Set up the inline control buttons.
|
||||
//
|
||||
stacked_widget& install_update_stack = find_widget<stacked_widget>(control_grid, "install_update_stack", false);
|
||||
stacked_widget& install_update_stack = control_grid->find_widget<stacked_widget>("install_update_stack");
|
||||
|
||||
// These three buttons are in the install_update_stack. Only one is shown depending on the addon's state.
|
||||
button& install_button = find_widget<button>(control_grid, "single_install", false);
|
||||
button& update_button = find_widget<button>(control_grid, "single_update", false);
|
||||
button& publish_button = find_widget<button>(control_grid, "single_publish", false);
|
||||
button& install_button = control_grid->find_widget<button>("single_install");
|
||||
button& update_button = control_grid->find_widget<button>("single_update");
|
||||
button& publish_button = control_grid->find_widget<button>("single_publish");
|
||||
|
||||
// This button is always shown.
|
||||
button& uninstall_button = find_widget<button>(control_grid, "single_uninstall", false);
|
||||
button& uninstall_button = control_grid->find_widget<button>("single_uninstall");
|
||||
|
||||
const bool is_installed = is_installed_addon_status(tracking_info.state);
|
||||
const bool is_local = tracking_info.state == ADDON_INSTALLED_LOCAL_ONLY;
|
||||
|
@ -305,7 +304,7 @@ void addon_list::set_addons(const addons_list& addons)
|
|||
}
|
||||
|
||||
control_grid->set_visible(install_buttons_visibility_);
|
||||
find_widget<label>(row_grid, "installation_status", false).set_visible(install_status_visibility_);
|
||||
row_grid->find_widget<label>("installation_status").set_visible(install_status_visibility_);
|
||||
}
|
||||
|
||||
select_first_addon();
|
||||
|
@ -313,7 +312,7 @@ void addon_list::set_addons(const addons_list& addons)
|
|||
|
||||
const addon_info* addon_list::get_selected_addon() const
|
||||
{
|
||||
const listbox& list = find_widget<const listbox>(&get_grid(), "addons", false);
|
||||
const listbox& list = get_grid().find_widget<const listbox>("addons");
|
||||
|
||||
try {
|
||||
return addon_vector_.at(list.get_selected_row());
|
||||
|
@ -356,7 +355,7 @@ void addon_list::select_addon(const std::string& id)
|
|||
for(unsigned int i = 0u; i < list.get_item_count(); ++i) {
|
||||
grid* row = list.get_row_grid(i);
|
||||
|
||||
const label& name_label = find_widget<label>(row, "name", false);
|
||||
const label& name_label = row->find_widget<label>("name");
|
||||
if(name_label.get_label().base_str() == display_title_full_shift(info)) {
|
||||
list.select_row(i);
|
||||
}
|
||||
|
@ -365,7 +364,7 @@ void addon_list::select_addon(const std::string& id)
|
|||
|
||||
listbox& addon_list::get_listbox()
|
||||
{
|
||||
return find_widget<listbox>(&get_grid(), "addons", false);
|
||||
return get_grid().find_widget<listbox>("addons");
|
||||
}
|
||||
|
||||
void addon_list::add_list_to_keyboard_chain()
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/widgets/chatbox.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
#include "gui/widgets/image.hpp"
|
||||
|
@ -72,16 +71,16 @@ chatbox::chatbox(const implementation::builder_chatbox& builder)
|
|||
|
||||
void chatbox::finalize_setup()
|
||||
{
|
||||
roomlistbox_ = find_widget<listbox>(this, "room_list", false, true);
|
||||
roomlistbox_ = find_widget<listbox>("room_list", false, true);
|
||||
|
||||
// We need to bind a lambda here since switch_to_window is overloaded.
|
||||
// A lambda alone would be more verbose because it'd need to specify all the parameters.
|
||||
connect_signal_notify_modified(*roomlistbox_,
|
||||
std::bind([this]() { switch_to_window(roomlistbox_->get_selected_row()); }));
|
||||
|
||||
chat_log_container_ = find_widget<multi_page>(this, "chat_log_container", false, true);
|
||||
chat_log_container_ = find_widget<multi_page>("chat_log_container", false, true);
|
||||
|
||||
chat_input_ = find_widget<text_box>(this, "chat_input", false, true);
|
||||
chat_input_ = find_widget<text_box>("chat_input", false, true);
|
||||
|
||||
connect_signal_pre_key_press(*chat_input_,
|
||||
std::bind(&chatbox::chat_input_keypress_callback, this, std::placeholders::_5));
|
||||
|
@ -108,7 +107,7 @@ void chatbox::active_window_changed()
|
|||
|
||||
// Clear pending messages notification in room listbox
|
||||
grid* grid = roomlistbox_->get_row_grid(active_window_);
|
||||
find_widget<image>(grid, "pending_messages", false).set_visible(widget::visibility::hidden);
|
||||
grid->find_widget<image>("pending_messages").set_visible(widget::visibility::hidden);
|
||||
|
||||
t.pending_messages = 0;
|
||||
|
||||
|
@ -213,8 +212,8 @@ void chatbox::append_to_chatbox(const std::string& text, const bool force_scroll
|
|||
void chatbox::append_to_chatbox(const std::string& text, std::size_t id, const bool force_scroll)
|
||||
{
|
||||
grid& grid = chat_log_container_->page_grid(id);
|
||||
|
||||
scroll_text& log = find_widget<scroll_text>(&grid, "log_text", false);
|
||||
scroll_text& log = grid.find_widget<scroll_text>("log_text");
|
||||
|
||||
const bool chatbox_at_end = log.vertical_scrollbar_at_end();
|
||||
const unsigned chatbox_position = log.get_vertical_scrollbar_item_position();
|
||||
|
||||
|
@ -252,8 +251,8 @@ void chatbox::clear_messages()
|
|||
{
|
||||
const auto id = active_window_;
|
||||
grid& grid = chat_log_container_->page_grid(id);
|
||||
scroll_text& log = find_widget<scroll_text>(&grid, "log_text", false);
|
||||
log.set_value("");
|
||||
scroll_text& log = grid.find_widget<scroll_text>("log_text");
|
||||
log.set_label("");
|
||||
}
|
||||
|
||||
void chatbox::user_relation_changed(const std::string& /*name*/)
|
||||
|
@ -436,7 +435,7 @@ lobby_chat_window* chatbox::find_or_create_window(const std::string& name,
|
|||
//
|
||||
// Set up the Close Window button.
|
||||
//
|
||||
button& close_button = find_widget<button>(&row_grid, "close_window", false);
|
||||
button& close_button = row_grid.find_widget<button>("close_window");
|
||||
|
||||
if(!allow_close) {
|
||||
close_button.set_visible(widget::visibility::hidden);
|
||||
|
@ -473,7 +472,7 @@ void chatbox::increment_waiting_whispers(const std::string& name)
|
|||
DBG_LB << "do whisper pending mark row " << (t - &open_windows_[0]) << " with " << t->name;
|
||||
|
||||
grid* grid = roomlistbox_->get_row_grid(t - &open_windows_[0]);
|
||||
find_widget<image>(grid, "pending_messages", false).set_visible(widget::visibility::visible);
|
||||
grid->find_widget<image>("pending_messages").set_visible(widget::visibility::visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -489,7 +488,7 @@ void chatbox::increment_waiting_messages(const std::string& room)
|
|||
DBG_LB << "do room pending mark row " << idx << " with " << t->name;
|
||||
|
||||
grid* grid = roomlistbox_->get_row_grid(idx);
|
||||
find_widget<image>(grid, "pending_messages", false).set_visible(widget::visibility::visible);
|
||||
grid->find_widget<image>("pending_messages").set_visible(widget::visibility::visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "gui/widgets/listbox.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/core/widget_definition.hpp"
|
||||
|
@ -430,11 +429,11 @@ point listbox::calculate_best_size() const
|
|||
// Get the size from the base class, then add any extra space for the header and footer.
|
||||
point result = scrollbar_container::calculate_best_size();
|
||||
|
||||
if(const grid* header = find_widget<const grid>(&get_grid(), "_header_grid", false, false)) {
|
||||
if(const grid* header = get_grid().find_widget<const grid>("_header_grid", false, false)) {
|
||||
result.y += header->get_best_size().y;
|
||||
}
|
||||
|
||||
if(const grid* footer = find_widget<const grid>(&get_grid(), "_footer_grid", false, false)) {
|
||||
if(const grid* footer = get_grid().find_widget<const grid>("_footer_grid", false, false)) {
|
||||
result.y += footer->get_best_size().y;
|
||||
}
|
||||
|
||||
|
@ -530,7 +529,7 @@ void listbox::finalize(std::unique_ptr<generator_base> generator,
|
|||
swap_grid(&get_grid(), content_grid(), header->build(), "_header_grid");
|
||||
}
|
||||
|
||||
grid& p = find_widget<grid>(this, "_header_grid", false);
|
||||
grid& p = find_widget<grid>("_header_grid");
|
||||
|
||||
for(unsigned i = 0, max = std::max(p.get_cols(), p.get_rows()); i < max; ++i) {
|
||||
//
|
||||
|
@ -540,7 +539,7 @@ void listbox::finalize(std::unique_ptr<generator_base> generator,
|
|||
//
|
||||
// - vultraz, 2017-08-23
|
||||
//
|
||||
if(toggle_button* selectable = find_widget<toggle_button>(&p, "sort_" + std::to_string(i), false, false)) {
|
||||
if(toggle_button* selectable = p.find_widget<toggle_button>("sort_" + std::to_string(i), false, false)) {
|
||||
// Register callback to sort the list.
|
||||
connect_signal_notify_modified(*selectable, std::bind(&listbox::order_by_column, this, i, std::placeholders::_1));
|
||||
|
||||
|
@ -621,9 +620,9 @@ void listbox::register_translatable_sorting_option(const int col, translatable_s
|
|||
void listbox::set_active_sorting_option(const order_pair& sort_by, const bool select_first)
|
||||
{
|
||||
// TODO: should this be moved to a public header_grid() getter function?
|
||||
grid& header_grid = find_widget<grid>(this, "_header_grid", false);
|
||||
grid& header_grid = find_widget<grid>("_header_grid");
|
||||
|
||||
selectable_item& w = find_widget<selectable_item>(&header_grid, "sort_" + std::to_string(sort_by.first), false);
|
||||
selectable_item& w = header_grid.find_widget<selectable_item>("sort_" + std::to_string(sort_by.first));
|
||||
|
||||
// Set the sorting toggle widgets' value (in this case, its state) to the given sorting
|
||||
// order. This is necessary since the widget's value is used to determine the order in
|
||||
|
|
|
@ -18,13 +18,13 @@
|
|||
#include "gui/widgets/matrix.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/iterator/walker.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gui/core/widget_definition.hpp"
|
||||
#include "gui/core/window_builder.hpp"
|
||||
#include "gui/core/window_builder/helper.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#define LOG_SCOPE_HEADER get_control_type() + " [" + id() + "] " + __func__
|
||||
#define LOG_HEADER LOG_SCOPE_HEADER + ':'
|
||||
|
@ -84,7 +84,7 @@ matrix::matrix(const implementation::builder_matrix& builder)
|
|||
cfg->content->build(content_, replacements);
|
||||
content_.set_parent(this);
|
||||
|
||||
pane_ = find_widget<pane>(&content_, "pane", false, true);
|
||||
pane_ = content_.find_widget<pane>("pane", false, true);
|
||||
}
|
||||
|
||||
unsigned
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
|
||||
#include "gui/widgets/multi_page.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/widget_helpers.hpp"
|
||||
#include "gui/widgets/generator.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/widgets/pane.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/iterator/walker.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
|
@ -26,6 +25,8 @@
|
|||
#include "gui/core/event/message.hpp"
|
||||
#include "gettext.hpp"
|
||||
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
|
||||
#define LOG_SCOPE_HEADER "pane [" + id() + "] " + __func__
|
||||
|
@ -122,8 +123,7 @@ unsigned pane::create_item(const widget_data& item_data,
|
|||
|
||||
for(const auto & data : item_data)
|
||||
{
|
||||
styled_widget* control
|
||||
= find_widget<styled_widget>(item.item_grid.get(), data.first, false, false);
|
||||
styled_widget* control = item.item_grid.get()->find_widget<styled_widget>(data.first, false, false);
|
||||
|
||||
if(control) {
|
||||
control->set_members(data.second);
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/widgets/scrollbar_container_private.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/iterator/walker_scrollbar_container.hpp"
|
||||
#include "gui/core/event/message.hpp"
|
||||
#include "gui/core/layout_exception.hpp"
|
||||
|
@ -737,19 +736,19 @@ bool scrollbar_container::content_resize_height(const int height_modification, c
|
|||
void scrollbar_container::finalize_setup()
|
||||
{
|
||||
/***** Setup vertical scrollbar *****/
|
||||
vertical_scrollbar_grid_ = find_widget<grid>(this, "_vertical_scrollbar_grid", false, true);
|
||||
vertical_scrollbar_grid_ = find_widget<grid>("_vertical_scrollbar_grid", false, true);
|
||||
|
||||
vertical_scrollbar_ =
|
||||
find_widget<scrollbar_base>(vertical_scrollbar_grid_, "_vertical_scrollbar", false, true);
|
||||
vertical_scrollbar_grid_->find_widget<scrollbar_base>("_vertical_scrollbar", false, true);
|
||||
|
||||
connect_signal_notify_modified(*vertical_scrollbar_,
|
||||
std::bind(&scrollbar_container::vertical_scrollbar_moved, this));
|
||||
|
||||
/***** Setup horizontal scrollbar *****/
|
||||
horizontal_scrollbar_grid_ = find_widget<grid>(this, "_horizontal_scrollbar_grid", false, true);
|
||||
horizontal_scrollbar_grid_ = find_widget<grid>("_horizontal_scrollbar_grid", false, true);
|
||||
|
||||
horizontal_scrollbar_ =
|
||||
find_widget<scrollbar_base>(horizontal_scrollbar_grid_, "_horizontal_scrollbar", false, true);
|
||||
horizontal_scrollbar_grid_->find_widget<scrollbar_base>("_horizontal_scrollbar", false, true);
|
||||
|
||||
connect_signal_notify_modified(*horizontal_scrollbar_,
|
||||
std::bind(&scrollbar_container::horizontal_scrollbar_moved, this));
|
||||
|
@ -757,7 +756,7 @@ void scrollbar_container::finalize_setup()
|
|||
/***** Setup the scrollbar buttons *****/
|
||||
for(const auto& item : scroll_lookup()) {
|
||||
// Vertical.
|
||||
clickable_item* button = find_widget<clickable_item>(vertical_scrollbar_grid_, item.first, false, false);
|
||||
clickable_item* button = vertical_scrollbar_grid_->find_widget<clickable_item>(item.first, false, false);
|
||||
|
||||
if(button) {
|
||||
button->connect_click_handler(
|
||||
|
@ -765,7 +764,7 @@ void scrollbar_container::finalize_setup()
|
|||
}
|
||||
|
||||
// Horizontal.
|
||||
button = find_widget<clickable_item>(horizontal_scrollbar_grid_, item.first, false, false);
|
||||
button = horizontal_scrollbar_grid_->find_widget<clickable_item>(item.first, false, false);
|
||||
|
||||
if(button) {
|
||||
button->connect_click_handler(
|
||||
|
@ -874,7 +873,7 @@ void scrollbar_container::set_scrollbar_button_status()
|
|||
if(true) { /** @todo scrollbar visibility. */
|
||||
/***** set scroll up button status *****/
|
||||
for(const auto& name : button_up_names) {
|
||||
styled_widget* button = find_widget<styled_widget>(vertical_scrollbar_grid_, std::string{name}, false, false);
|
||||
styled_widget* button = vertical_scrollbar_grid_->find_widget<styled_widget>(std::string{name}, false, false);
|
||||
|
||||
if(button) {
|
||||
button->set_active(!vertical_scrollbar_->at_begin());
|
||||
|
@ -883,7 +882,7 @@ void scrollbar_container::set_scrollbar_button_status()
|
|||
|
||||
/***** set scroll down status *****/
|
||||
for(const auto& name : button_down_names) {
|
||||
styled_widget* button = find_widget<styled_widget>(vertical_scrollbar_grid_, std::string{name}, false, false);
|
||||
styled_widget* button = vertical_scrollbar_grid_->find_widget<styled_widget>(std::string{name}, false, false);
|
||||
|
||||
if(button) {
|
||||
button->set_active(!vertical_scrollbar_->at_end());
|
||||
|
@ -897,7 +896,7 @@ void scrollbar_container::set_scrollbar_button_status()
|
|||
if(true) { /** @todo scrollbar visibility. */
|
||||
/***** Set scroll left button status *****/
|
||||
for(const auto& name : button_up_names) {
|
||||
styled_widget* button = find_widget<styled_widget>(horizontal_scrollbar_grid_, std::string{name}, false, false);
|
||||
styled_widget* button = horizontal_scrollbar_grid_->find_widget<styled_widget>(std::string{name}, false, false);
|
||||
|
||||
if(button) {
|
||||
button->set_active(!horizontal_scrollbar_->at_begin());
|
||||
|
@ -906,7 +905,7 @@ void scrollbar_container::set_scrollbar_button_status()
|
|||
|
||||
/***** Set scroll right button status *****/
|
||||
for(const auto& name : button_down_names) {
|
||||
styled_widget* button = find_widget<styled_widget>(horizontal_scrollbar_grid_, std::string{name}, false, false);
|
||||
styled_widget* button = horizontal_scrollbar_grid_->find_widget<styled_widget>(std::string{name}, false, false);
|
||||
|
||||
if(button) {
|
||||
button->set_active(!horizontal_scrollbar_->at_end());
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include "gui/widgets/spinner.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/repeating_button.hpp"
|
||||
#include "gui/widgets/text_box.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
|
@ -51,7 +50,7 @@ spinner::spinner(const implementation::builder_spinner& builder)
|
|||
|
||||
text_box* spinner::get_internal_text_box()
|
||||
{
|
||||
return find_widget<text_box>(this, "_text", false, true);
|
||||
return find_widget<text_box>("_text", false, true);
|
||||
}
|
||||
|
||||
void spinner::set_value(const int val)
|
||||
|
@ -90,8 +89,8 @@ int spinner::get_value()
|
|||
|
||||
void spinner::finalize_setup()
|
||||
{
|
||||
repeating_button* btn_prev = find_widget<repeating_button>(this, "_prev", false, true);
|
||||
repeating_button* btn_next = find_widget<repeating_button>(this, "_next", false, true);
|
||||
repeating_button* btn_prev = find_widget<repeating_button>("_prev", false, true);
|
||||
repeating_button* btn_next = find_widget<repeating_button>("_next", false, true);
|
||||
btn_prev->connect_signal_mouse_left_down(std::bind(&spinner::prev, this));
|
||||
btn_next->connect_signal_mouse_left_down(std::bind(&spinner::next, this));
|
||||
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
|
||||
#include "gui/widgets/stacked_widget.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/widget_helpers.hpp"
|
||||
#include "gui/widgets/generator.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "utils/const_clone.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
|
||||
|
|
|
@ -72,10 +72,10 @@ std::function<void()> bind_status_label(
|
|||
const std::string label_id_ = label_id.empty() ? source_id + "_label" : label_id;
|
||||
|
||||
// Find the source value widget.
|
||||
W& source = find_widget<W>(find_in, source_id, false);
|
||||
W& source = find_in->find_widget<W>(source_id);
|
||||
|
||||
// Find the target status label.
|
||||
styled_widget& label = find_widget<styled_widget>(find_in, label_id_, false);
|
||||
styled_widget& label = find_in->find_widget<styled_widget>(label_id_);
|
||||
|
||||
const auto update_label = [&, value_getter]() {
|
||||
label.set_label(value_getter(source));
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/core/window_builder/helper.hpp"
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/listbox.hpp"
|
||||
|
@ -69,7 +68,7 @@ bool tab_container::can_wrap() const
|
|||
|
||||
listbox& tab_container::get_internal_list()
|
||||
{
|
||||
return find_widget<listbox>(&get_grid(), "_tab_list", false);
|
||||
return get_grid().find_widget<listbox>("_tab_list", false);
|
||||
}
|
||||
|
||||
void tab_container::finalize(std::unique_ptr<generator_base> generator)
|
||||
|
@ -82,7 +81,7 @@ void tab_container::finalize(std::unique_ptr<generator_base> generator)
|
|||
generator->create_item(-1, *builder_entry, empty_data, nullptr);
|
||||
}
|
||||
|
||||
grid* parent_grid = find_widget<grid>(this, "_content_grid", false, true);
|
||||
grid* parent_grid = find_widget<grid>("_content_grid", false, true);
|
||||
if (parent_grid) {
|
||||
parent_grid->swap_child("_page", std::move(generator), false);
|
||||
}
|
||||
|
|
|
@ -18,12 +18,13 @@
|
|||
#include "gui/widgets/tree_view_node.hpp"
|
||||
|
||||
#include "gettext.hpp"
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/auxiliary/iterator/walker_tree_node.hpp"
|
||||
#include "gui/core/log.hpp"
|
||||
#include "gui/widgets/toggle_panel.hpp"
|
||||
#include "gui/widgets/tree_view.hpp"
|
||||
#include "sdl/rect.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
|
||||
#define LOG_SCOPE_HEADER get_control_type() + " [" + get_tree_view().id() + "] " + __func__
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
#include "gui/widgets/unit_preview_pane.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
|
||||
#include "gui/core/register_widget.hpp"
|
||||
#include "gui/widgets/button.hpp"
|
||||
|
@ -42,6 +41,7 @@
|
|||
#include "units/types.hpp"
|
||||
#include "units/helper.hpp"
|
||||
#include "units/unit.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <functional>
|
||||
|
||||
|
@ -71,20 +71,20 @@ unit_preview_pane::unit_preview_pane(const implementation::builder_unit_preview_
|
|||
void unit_preview_pane::finalize_setup()
|
||||
{
|
||||
// Icons
|
||||
icon_type_ = find_widget<drawing>(this, "type_image", false, false);
|
||||
icon_race_ = find_widget<image>(this, "type_race", false, false);
|
||||
icon_alignment_ = find_widget<image>(this, "type_alignment", false, false);
|
||||
icon_type_ = find_widget<drawing>("type_image", false, false);
|
||||
icon_race_ = find_widget<image>("type_race", false, false);
|
||||
icon_alignment_ = find_widget<image>("type_alignment", false, false);
|
||||
|
||||
// Labels
|
||||
label_name_ = find_widget<label>(this, "type_name", false, false);
|
||||
label_level_ = find_widget<label>(this, "type_level", false, false);
|
||||
label_race_ = find_widget<label>(this, "type_race_label", false, false);
|
||||
label_details_ = find_widget<styled_widget>(this, "type_details_minimal", false, false);
|
||||
label_name_ = find_widget<label>("type_name", false, false);
|
||||
label_level_ = find_widget<label>("type_level", false, false);
|
||||
label_race_ = find_widget<label>("type_race_label", false, false);
|
||||
label_details_ = find_widget<styled_widget>("type_details_minimal", false, false);
|
||||
|
||||
tree_details_ = find_widget<tree_view>(this, "type_details", false, false);
|
||||
tree_details_ = find_widget<tree_view>("type_details", false, false);
|
||||
|
||||
// Profile button
|
||||
button_profile_ = find_widget<button>(this, "type_profile", false, false);
|
||||
button_profile_ = find_widget<button>("type_profile", false, false);
|
||||
|
||||
if(button_profile_) {
|
||||
connect_signal_mouse_left_click(*button_profile_,
|
||||
|
@ -100,7 +100,7 @@ static inline tree_view_node& add_name_tree_node(tree_view_node& header_node, co
|
|||
* Same is true for 'use_markup'
|
||||
*/
|
||||
auto& child_node = header_node.add_child(type, { { "name",{ { "label", label },{ "use_markup", "true" } } } });
|
||||
auto& child_label = find_widget<styled_widget>(&child_node, "name", true);
|
||||
auto& child_label = child_node.find_widget<styled_widget>("name", true);
|
||||
|
||||
child_label.set_tooltip(tooltip);
|
||||
return child_node;
|
||||
|
@ -244,8 +244,8 @@ void unit_preview_pane::print_attack_details(T attacks, tree_view_node& parent_n
|
|||
}
|
||||
);
|
||||
|
||||
find_widget<styled_widget>(&subsection, "image_range", true).set_tooltip(range);
|
||||
find_widget<styled_widget>(&subsection, "image_type", true).set_tooltip(type);
|
||||
subsection.find_widget<styled_widget>("image_range", true).set_tooltip(range);
|
||||
subsection.find_widget<styled_widget>("image_type", true).set_tooltip(type);
|
||||
|
||||
if(!range_png_exists || !type_png_exists) {
|
||||
add_name_tree_node(
|
||||
|
|
|
@ -18,9 +18,11 @@
|
|||
#include "color.hpp"
|
||||
#include "gui/core/event/dispatcher.hpp"
|
||||
#include "gui/widgets/event_executor.hpp"
|
||||
#include "gui/widgets/helper.hpp"
|
||||
#include "scripting/lua_ptr.hpp"
|
||||
#include "sdl/point.hpp"
|
||||
#include "sdl/rect.hpp"
|
||||
#include "wml_exception.hpp"
|
||||
|
||||
#include <string>
|
||||
|
||||
|
@ -713,6 +715,76 @@ public:
|
|||
*/
|
||||
virtual bool has_widget(const widget& widget) const;
|
||||
|
||||
/**
|
||||
* Gets a widget with the wanted id.
|
||||
*
|
||||
* This template function doesn't return a pointer to a generic widget but
|
||||
* returns the wanted type and tests for its existence if required.
|
||||
*
|
||||
* @param id The id of the widget to find.
|
||||
* @param must_be_active The widget should be active, not all widgets
|
||||
* have an active flag, those who don't ignore
|
||||
* flag.
|
||||
* @param must_exist The widget should be exist, the function will
|
||||
* fail if the widget doesn't exist or is
|
||||
* inactive and must be active. Upon failure a
|
||||
* wml_error is thrown.
|
||||
*
|
||||
* @returns The widget with the id.
|
||||
*/
|
||||
template <class T>
|
||||
NOT_DANGLING T* find_widget(
|
||||
const std::string& id,
|
||||
const bool must_be_active,
|
||||
const bool must_exist)
|
||||
{
|
||||
T* result = dynamic_cast<T*>(this->find(id, must_be_active));
|
||||
VALIDATE(!must_exist || result, missing_widget(id));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const NOT_DANGLING T* find_widget(
|
||||
const std::string& id,
|
||||
const bool must_be_active,
|
||||
const bool must_exist) const
|
||||
{
|
||||
T* result = dynamic_cast<T*>(this->find(id, must_be_active));
|
||||
VALIDATE(!must_exist || result, missing_widget(id));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a widget with the wanted id.
|
||||
*
|
||||
* This template function doesn't return a reference to a generic widget but
|
||||
* returns a reference to the wanted type
|
||||
*
|
||||
* @param id The id of the widget to find.
|
||||
* @param must_be_active The widget should be active, not all widgets
|
||||
* have an active flag, those who don't ignore
|
||||
* flag.
|
||||
*
|
||||
* @returns The widget with the id.
|
||||
*/
|
||||
template <class T>
|
||||
NOT_DANGLING T& find_widget(
|
||||
const std::string& id,
|
||||
const bool must_be_active = false)
|
||||
{
|
||||
return *(this->find_widget<T>(id, must_be_active, true));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
const NOT_DANGLING T& find_widget(
|
||||
const std::string& id,
|
||||
const bool must_be_active = false) const
|
||||
{
|
||||
return *(this->find_widget<T>(id, must_be_active, true));
|
||||
}
|
||||
|
||||
private:
|
||||
/** See @ref event::dispatcher::is_at. */
|
||||
virtual bool is_at(const point& coordinate) const override;
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
#include "gui/widgets/widget_helpers.hpp"
|
||||
|
||||
#include "gui/auxiliary/find_widget.hpp"
|
||||
#include "gui/widgets/grid.hpp"
|
||||
|
||||
#include <cassert>
|
||||
|
@ -33,11 +32,11 @@ void swap_grid(grid* g, grid* content_grid, std::unique_ptr<widget> widget, cons
|
|||
// Get the container containing the wanted widget.
|
||||
grid* parent_grid = nullptr;
|
||||
if(g) {
|
||||
parent_grid = find_widget<grid>(g, id, false, false);
|
||||
parent_grid = g->find_widget<grid>(id, false, false);
|
||||
}
|
||||
|
||||
if(!parent_grid) {
|
||||
parent_grid = find_widget<grid>(content_grid, id, true, false);
|
||||
parent_grid = content_grid->find_widget<grid>(id, true, false);
|
||||
}
|
||||
|
||||
parent_grid = dynamic_cast<grid*>(parent_grid->parent());
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue