#include <mp_staging.hpp>
Public Member Functions | |
mp_staging (ng::connect_engine &connect_engine, wesnothd_connection *connection=nullptr) | |
~mp_staging () | |
![]() | |
modal_dialog () | |
virtual | ~modal_dialog () |
bool | show (const unsigned auto_close_time=0) |
Shows the window. More... | |
window * | get_window () const |
Returns a pointer to the dialog's window. More... | |
int | get_retval () const |
Returns the cached window exit code. More... | |
void | set_retval (int retval) |
Convenience wrapper to set the window's exit code. More... | |
void | set_always_save_fields (const bool always_save_fields) |
void | set_restore (const bool restore) |
void | set_allow_plugin_skip (const bool allow_plugin_skip) |
void | set_show_even_without_video (const bool show_even_without_video) |
Private Member Functions | |
virtual const std::string & | window_id () const override |
The id of the window to build. More... | |
virtual void | pre_show (window &window) override |
Actions to be taken before showing the window. More... | |
virtual void | post_show (window &window) override |
Actions to be taken after the window has been shown. More... | |
template<typename... T> | |
tree_view_node & | add_side_to_team_node (ng::side_engine_ptr side, T &&... params) |
void | add_side_node (ng::side_engine_ptr side) |
int | get_side_node_position (ng::side_engine_ptr side) const |
Find an appropriate position to insert a side node. More... | |
void | on_controller_select (ng::side_engine_ptr side, grid &row_grid) |
void | on_ai_select (ng::side_engine_ptr side, menu_button &ai_menu, const bool saved_game) |
void | on_color_select (ng::side_engine_ptr side, grid &row_grid) |
void | on_team_select (ng::side_engine_ptr side, menu_button &team_menu) |
template<void(ng::side_engine::*)(int) fptr> | |
void | on_side_slider_change (ng::side_engine_ptr side, slider &slider) |
void | select_leader_callback (ng::side_engine_ptr side, grid &row_grid) |
void | update_leader_display (ng::side_engine_ptr side, grid &row_grid) |
void | update_status_label_and_buttons () |
void | network_handler () |
void | set_state_changed () |
![]() | |
plugin_executor () | |
~plugin_executor () | |
Private Attributes | |
ng::connect_engine & | connect_engine_ |
std::vector< ai::description * > | ai_algorithms_ |
wesnothd_connection * | network_connection_ |
std::size_t | update_timer_ |
bool | state_changed_ |
std::map< std::string, tree_view_node * > | team_tree_map_ |
std::map< ng::side_engine_ptr, tree_view_node * > | side_tree_map_ |
std::unique_ptr< player_list_helper > | player_list_ |
![]() | |
std::unique_ptr< plugins_context > | plugins_context_ |
Additional Inherited Members | |
![]() | |
template<typename T , typename... Args> | |
T * | register_field (Args &&... args) |
Creates a new field of given type with given arguments. More... | |
field_bool * | register_bool (const std::string &id, const bool mandatory, const std::function< bool()> callback_load_value=nullptr, const std::function< void(bool)> callback_save_value=nullptr, const std::function< void(widget &)> callback_change=nullptr, const bool initial_fire=false) |
Creates a new boolean field. More... | |
field_bool * | register_bool (const std::string &id, const bool mandatory, bool &linked_variable, const std::function< void(widget &)> callback_change=nullptr, const bool initial_fire=false) |
Creates a new boolean field. More... | |
field_integer * | register_integer (const std::string &id, const bool mandatory, const std::function< int()> callback_load_value=nullptr, const std::function< void(int)> callback_save_value=nullptr) |
Creates a new integer field. More... | |
field_integer * | register_integer (const std::string &id, const bool mandatory, int &linked_variable) |
Creates a new integer field. More... | |
field_text * | register_text (const std::string &id, const bool mandatory, const std::function< std::string()> callback_load_value=nullptr, const std::function< void(const std::string &)> callback_save_value=nullptr, const bool capture_focus=false) |
Creates a new text field. More... | |
field_text * | register_text (const std::string &id, const bool mandatory, std::string &linked_variable, const bool capture_focus=false) |
Creates a new text field. More... | |
field_label * | register_label (const std::string &id, const bool mandatory, const std::string &text, const bool use_markup=false) |
Registers a new styled_widget as a label. More... | |
field_label * | register_image (const std::string &id, const bool mandatory, const std::string &filename) |
Registers a new styled_widget as image. More... | |
![]() | |
std::unique_ptr< window > | window_ |
The window object build for this dialog. More... | |
Definition at line 39 of file mp_staging.hpp.
gui2::dialogs::mp_staging::mp_staging | ( | ng::connect_engine & | connect_engine, |
wesnothd_connection * | connection = nullptr |
||
) |
Definition at line 50 of file mp_staging.cpp.
gui2::dialogs::mp_staging::~mp_staging | ( | ) |
Definition at line 65 of file mp_staging.cpp.
References gui2::remove_timer(), and update_timer_.
|
private |
Definition at line 164 of file mp_staging.cpp.
References add_side_to_team_node(), ai_algorithms_, connect_engine_, gui2::event::connect_signal_mouse_left_click(), gui2::event::connect_signal_notify_modified(), game_config::debug, ng::connect_engine::force_lock_settings(), t_string::from_serialized(), font::get_color_string_pango(), gui2::tree_view_node::get_grid(), gui2::slider::get_maximum_value(), gui2::slider::get_minimum_value(), get_side_node_position(), i, gui2::widget::invisible, ng::connect_engine::team_data_pod::is_player_team, on_ai_select(), on_color_select(), on_controller_select(), on_team_select(), ng::connect_engine::params(), mp_game_settings::saved_game, select_leader_callback(), gui2::button::set_active(), gui2::menu_button::set_active(), gui2::slider_base::set_active(), gui2::styled_widget::set_use_markup(), gui2::slider::set_value(), gui2::slider::set_value_range(), gui2::menu_button::set_values(), gui2::widget::set_visible(), side_tree_map_, ng::connect_engine::team_data(), update_leader_display(), mp_game_settings::use_map_settings, and ng::connect_engine::team_data_pod::user_team_name.
Referenced by pre_show().
|
private |
Definition at line 137 of file mp_staging.cpp.
References gui2::tree_view_node::add_child(), gui2::tree_view::add_node(), gui2::tree_view_node::add_sibling(), gui2::dialogs::modal_dialog::get_window(), and team_tree_map_.
Referenced by add_side_node(), and on_team_select().
|
private |
Find an appropriate position to insert a side node.
This ensures the side nodes are always arranged by descending index order in each team group.
Definition at line 124 of file mp_staging.cpp.
References connect_engine_, and ng::connect_engine::side_engines().
Referenced by add_side_node(), and on_team_select().
|
private |
Definition at line 510 of file mp_staging.cpp.
References ng::connect_engine::can_start_game(), gui2::CANCEL, config::child_range(), connect_engine_, gui2::dialogs::modal_dialog::get_window(), config::has_child(), network_connection_, player_list_, ng::connect_engine::process_network_data(), mp::ui_alerts::ready_for_start(), wesnothd_connection::receive_data(), gui2::menu_button::set_active(), gui2::dialogs::modal_dialog::set_retval(), gui2::menu_button::set_values(), side_tree_map_, state_changed_, ng::connect_engine::update_and_send_diff(), update_leader_display(), and update_status_label_and_buttons().
Referenced by pre_show().
|
private |
Definition at line 373 of file mp_staging.cpp.
References ai_algorithms_, gui2::menu_button::get_value(), i, and set_state_changed().
Referenced by add_side_node().
|
private |
Definition at line 391 of file mp_staging.cpp.
References set_state_changed(), and update_leader_display().
Referenced by add_side_node().
|
private |
Definition at line 361 of file mp_staging.cpp.
References ng::CNTR_COMPUTER, gui2::widget::hidden, set_state_changed(), gui2::widget::set_visible(), and gui2::widget::visible.
Referenced by add_side_node().
|
private |
Definition at line 449 of file mp_staging.cpp.
References gui2::slider::get_value(), and set_state_changed().
|
private |
Definition at line 400 of file mp_staging.cpp.
References add_side_to_team_node(), gui2::tree_view_node::empty(), gui2::tree_view_node::get_node_below(), get_side_node_position(), gui2::menu_button::get_value_config(), gui2::dialogs::modal_dialog::get_window(), set_state_changed(), side_tree_map_, and team_tree_map_.
Referenced by add_side_node().
|
overrideprivatevirtual |
Actions to be taken after the window has been shown.
At this point the registered fields already stored their values (if the OK has been pressed).
window | The window which has been shown. |
Reimplemented from gui2::dialogs::modal_dialog.
Definition at line 571 of file mp_staging.cpp.
References connect_engine_, gui2::window::get_retval(), ng::connect_engine::leave_game(), gui2::OK, gui2::remove_timer(), ng::connect_engine::start_game(), and update_timer_.
|
overrideprivatevirtual |
Actions to be taken before showing the window.
At this point the registered fields are registered and initialized with their initial values.
window | The window to be shown. |
Reimplemented from gui2::dialogs::modal_dialog.
Definition at line 73 of file mp_staging.cpp.
References gui2::chatbox::active_window_changed(), add_side_node(), gui2::add_timer(), gui2::CANCEL, connect_engine_, game_config::debug, default_chat_log, gui2::chatbox::load_log(), game_config::lobby_network_timer, N_, mp_game_settings::name, network_handler(), gui2::OK, ng::connect_engine::params(), player_list_, gui2::dialogs::plugin_executor::plugins_context_, gui2::chatbox::room_window_open(), ng::connect_engine::scenario(), gui2::chatbox::send_chat_message(), gui2::window::set_enter_disabled(), gui2::window::set_escape_disabled(), gui2::styled_widget::set_label(), ng::connect_engine::side_engines(), font::unicode_em_dash, update_status_label_and_buttons(), and update_timer_.
|
private |
Definition at line 439 of file mp_staging.cpp.
References set_state_changed(), and update_leader_display().
Referenced by add_side_node().
|
inlineprivate |
Definition at line 83 of file mp_staging.hpp.
Referenced by on_ai_select(), on_color_select(), on_controller_select(), on_side_slider_change(), on_team_select(), and select_leader_callback().
|
private |
Definition at line 456 of file mp_staging.cpp.
References _(), unit_type_data::find(), unit_type::image(), ng::random_enemy_picture(), gui2::styled_widget::set_label(), unit_type::type_name(), font::unicode_em_dash, and unit_types.
Referenced by add_side_node(), network_handler(), on_color_select(), and select_leader_callback().
|
private |
Definition at line 499 of file mp_staging.cpp.
References _(), ng::connect_engine::can_start_game(), connect_engine_, gui2::dialogs::modal_dialog::get_window(), and ng::connect_engine::sides_available().
Referenced by network_handler(), and pre_show().
|
overrideprivatevirtual |
The id of the window to build.
Implements gui2::dialogs::modal_dialog.
|
private |
Definition at line 90 of file mp_staging.hpp.
Referenced by add_side_node(), and on_ai_select().
|
private |
Definition at line 88 of file mp_staging.hpp.
Referenced by add_side_node(), get_side_node_position(), network_handler(), post_show(), pre_show(), and update_status_label_and_buttons().
|
private |
Definition at line 92 of file mp_staging.hpp.
Referenced by network_handler().
|
private |
Definition at line 101 of file mp_staging.hpp.
Referenced by network_handler(), and pre_show().
|
private |
Definition at line 99 of file mp_staging.hpp.
Referenced by add_side_node(), network_handler(), and on_team_select().
|
private |
Definition at line 96 of file mp_staging.hpp.
Referenced by network_handler().
|
private |
Definition at line 98 of file mp_staging.hpp.
Referenced by add_side_to_team_node(), and on_team_select().
|
private |
Definition at line 94 of file mp_staging.hpp.
Referenced by post_show(), pre_show(), and ~mp_staging().