MP Match History: refined design

This commit is contained in:
Charles Dang 2023-12-27 00:16:56 -05:00
parent 6305185d95
commit f45df6f2ee
2 changed files with 347 additions and 355 deletions

View file

@ -32,7 +32,6 @@
#enddef
#define _GUI_MATCH_HISTORY_LIST
{GUI_FORCE_WIDGET_MINIMUM_SIZE 600 300 (
[listbox]
id = "history"
definition = "default"
@ -48,12 +47,13 @@
[toggle_panel]
definition = "default"
[grid]
[row]
[column]
grow_factor = 1
horizontal_grow = true
[grid]
@ -61,15 +61,84 @@
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
grow_factor = 1
border = "top,left,right"
border_size = 10
horizontal_grow = true
[label]
id = "game_name"
definition = "gold_large"
definition = "gold"
linked_group = "data_column1"
[/label]
[/column]
[column]
grow_factor = 1
border = "top,left,right"
border_size = 10
horizontal_grow = true
[label]
id = "scenario_name"
definition = "default"
linked_group = "data_column2"
[/label]
[/column]
{GUI_FILLER}
[+column]
grow_factor = 1
[/column]
[/row]
[row]
[column]
grow_factor = 1
border = "all"
border_size = 10
horizontal_grow = true
[label]
id = "game_start"
definition = "default"
linked_group = "data_column1"
[/label]
[/column]
[column]
grow_factor = 1
border = "all"
border_size = 10
horizontal_grow = true
[label]
id = "era_name"
definition = "default"
use_markup = yes
linked_group = "data_column2"
[/label]
[/column]
[column]
grow_factor = 1
border = "all"
border_size = 10
horizontal_grow = true
[label]
id = "version"
definition = "default"
linked_group = "data_column3"
[/label]
[/column]
[/row]
@ -78,157 +147,57 @@
[/column]
[column]
grow_factor = 0
border = "all"
border_size = 10
vertical_alignment = "center"
[button]
id = "replay_download"
definition = "download_arrow"
tooltip = _ "Download"
[/button]
[/column]
[/row]
[row]
[column]
grow_factor = 1
horizontal_grow = true
vertical_alignment = top
[grid]
id = "player_grid"
[row]
[column]
grow_factor = 1
grow_factor = 0
border = "all"
border_size = 10
horizontal_grow = true
vertical_alignment = top
[grid]
linked_group = "data_columns"
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "scenario_name"
definition = "default_small"
[/label]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "game_start"
definition = "default_small"
[/label]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[button]
id = "replay_download"
definition = "default_small"
label = _ "Download"
[/button]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "players"
definition = "default"
label = _ "None"
[/label]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "modifications"
definition = "default"
label = _ "None"
[/label]
[/column]
[/row]
[/grid]
[label]
id = "players"
definition = "gold"
label = _ "None"
[/label]
[/column]
[column]
grow_factor = 1
border = "all"
border_size = 10
horizontal_grow = true
vertical_alignment = top
[grid]
linked_group = "data_columns"
[label]
id = "player_factions"
definition = "default"
[/label]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "era_name"
definition = "default_small"
use_markup = yes
[/label]
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
id = "version"
definition = "default_small"
[/label]
[/column]
[/row]
[/grid]
[/column]
[/row]
@ -237,6 +206,27 @@
[/column]
{GUI_FILLER}
[/row]
[row]
[column]
border = "all"
border_size = 10
horizontal_grow = true
[label]
id = "modifications"
definition = "default"
label = _ "None"
[/label]
[/column]
{GUI_FILLER}
[/row]
[/grid]
@ -250,7 +240,6 @@
[/list_definition]
[/listbox]
)}
#enddef
[window]
@ -265,7 +254,7 @@
horizontal_placement = "center"
maximum_width = 800
maximum_height = 600
maximum_height = 650
[tooltip]
id = "tooltip"
@ -278,11 +267,20 @@
[linked_group]
id = "tabs"
fixed_width = true
fixed_height = true
[/linked_group]
[linked_group]
id = "data_columns"
id = "data_column1"
fixed_width = true
[/linked_group]
[linked_group]
id = "data_column2"
fixed_width = true
[/linked_group]
[linked_group]
id = "data_column3"
fixed_width = true
[/linked_group]
@ -305,6 +303,129 @@
[/row]
[row]
[column]
border = all
border_size = 5
[horizontal_listbox]
id = "tab_bar"
horizontal_scrollbar_mode = "never"
vertical_scrollbar_mode = "never"
[list_definition]
[row]
[column]
[toggle_panel]
linked_group = "tabs"
[grid]
[row]
[column]
border = all
border_size = 10
[spacer][/spacer]
[/column]
[column]
grow_factor = 1
border = all
border_size = 10
[label]
id = "tab_label"
definition = "default"
[/label]
[/column]
[column]
border = all
border_size = 10
[spacer][/spacer]
[/column]
[/row]
[/grid]
[/toggle_panel]
[/column]
[/row]
[/list_definition]
[list_data]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Info"
[/widget]
[/column]
[/row]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Players"
[/widget]
[/column]
[/row]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Modifications"
[/widget]
[/column]
[/row]
[/list_data]
[/horizontal_listbox]
[/column]
[/row]
[row]
[column]
horizontal_grow = true
border = "all"
border_size = 5
{_GUI_MATCH_HISTORY_LIST}
[/column]
[/row]
[row]
[column]
@ -316,18 +437,19 @@
[column]
[grid]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
definition = "default"
label = _"Player:"
[/label]
[/column]
[column]
@ -345,12 +467,13 @@
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
definition = "default"
label = _"Content Type:"
[/label]
[/column]
[column]
@ -358,18 +481,19 @@
[/column]
[/row]
[row]
[column]
border = "all"
border_size = 5
horizontal_alignment = "left"
[label]
definition = "default"
label = _"Game name:"
[/label]
[/column]
[column]
@ -388,12 +512,12 @@
grow_factor = 1
border = "all"
border_size = 5
[menu_button]
id = "search_content_type"
definition = "default"
[/menu_button]
[/column]
[column]
@ -416,196 +540,72 @@
[/row]
[row]
[column]
[grid]
[row]
[column]
horizontal_alignment = "right"
border = "all"
border_size = 5
[button]
id = "newer_history"
definition = "left_arrow_short_ornate"
[/button]
[/column]
[column]
border = "all"
border_size = 5
[button]
id = "search"
definition = "default"
label = _ "Search"
[/button]
[/column]
[column]
horizontal_alignment = "right"
border = "all"
border_size = 5
[button]
id = "ok"
definition = "default"
label = _ "Close"
[/button]
[/column]
[column]
horizontal_alignment = "right"
border = "all"
border_size = 5
[button]
id = "older_history"
definition = "right_arrow_short_ornate"
[/button]
[/column]
[/row]
[/grid]
[/column]
[/row]
[/grid]
[/column]
[/row]
{GUI_HORIZONTAL_SPACER_LINE}
[row]
[column]
border = all
border_size = 5
[horizontal_listbox]
id = "tab_bar"
horizontal_scrollbar_mode = "never"
vertical_scrollbar_mode = "never"
[list_definition]
[row]
[column]
[toggle_panel]
linked_group = "tabs"
[grid]
[row]
[column]
border = all
border_size = 5
[spacer][/spacer]
[/column]
[column]
grow_factor = 1
border = all
border_size = 5
[label]
id = "tab_label"
wrap = true
[/label]
[/column]
[column]
border = all
border_size = 5
[spacer][/spacer]
[/column]
[/row]
[/grid]
[/toggle_panel]
[/column]
[/row]
[/list_definition]
[list_data]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Info"
[/widget]
[/column]
[/row]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Players"
[/widget]
[/column]
[/row]
[row]
[column]
[widget]
id = "tab_label"
label = _ "Modifications"
[/widget]
[/column]
[/row]
[/list_data]
[/horizontal_listbox]
[/column]
[/row]
[row]
[column]
horizontal_grow = true
border = "all"
border_size = 5
{_GUI_MATCH_HISTORY_LIST}
[grid]
[row]
[column]
border = "all"
border_size = 5
[button]
id = "newer_history"
definition = "left_arrow_short_ornate"
[/button]
[/column]
[column]
grow_factor = 1
horizontal_alignment = "left"
border = "all"
border_size = 5
[button]
id = "older_history"
definition = "right_arrow_short_ornate"
[/button]
[/column]
[column]
border = "all"
border_size = 5
[button]
id = "search"
definition = "really_large"
label = _ "Search"
[/button]
[/column]
[column]
border = "all"
border_size = 5
[button]
id = "ok"
definition = "default"
label = _ "Close"
[/button]
[/column]
[/row]
[/grid]
[/column]

View file

@ -147,12 +147,19 @@ bool mp_match_history::update_display()
}
std::vector<std::string> player_list;
std::vector<std::string> player_faction_list;
for(const config& player : game.child_range("player")) {
player_list.emplace_back(player["name"].str()+": "+player["faction"].str());
player_list.emplace_back(font::unicode_bullet + " " + player["name"].str() + ":");
player_faction_list.emplace_back(player["faction"].str());
}
label* players = dynamic_cast<label*>(history_grid.find("players", false));
players->set_label(utils::join(player_list, "\n"));
players->set_visible(gui2::widget::visibility::invisible);
label* factions = dynamic_cast<label*>(history_grid.find("player_factions", false));
factions->set_label(utils::join(player_faction_list, "\n"));
history_grid.find("player_grid", false)->set_visible(gui2::widget::visibility::invisible);
label* modifications = dynamic_cast<label*>(history_grid.find("modifications", false));
const auto& children = game.child_range("modification");
@ -160,7 +167,7 @@ bool mp_match_history::update_display()
std::vector<std::string> modifications_list;
for(const config& modification : game.child_range("modification")) {
modifications_list.emplace_back(modification["name"].str());
modifications_list.emplace_back(font::unicode_bullet + " " + modification["name"].str());
}
modifications->set_label(utils::join(modifications_list, "\n"));
@ -263,29 +270,14 @@ void mp_match_history::tab_switch_callback()
for(unsigned i = 0; i < history_box->get_item_count(); i++) {
grid* history_grid = history_box->get_row_grid(i);
if(tab == 0) {
dynamic_cast<label*>(history_grid->find("scenario_name", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<label*>(history_grid->find("era_name", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<label*>(history_grid->find("game_start", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<label*>(history_grid->find("version", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<button*>(history_grid->find("replay_download", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<label*>(history_grid->find("players", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("modifications", false))->set_visible(gui2::widget::visibility::invisible);
history_grid->find("player_grid", false)->set_visible(gui2::widget::visibility::invisible);
history_grid->find("modifications", false)->set_visible(gui2::widget::visibility::invisible);
} else if(tab == 1) {
dynamic_cast<label*>(history_grid->find("scenario_name", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("era_name", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("game_start", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("version", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<button*>(history_grid->find("replay_download", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("players", false))->set_visible(gui2::widget::visibility::visible);
dynamic_cast<label*>(history_grid->find("modifications", false))->set_visible(gui2::widget::visibility::invisible);
history_grid->find("player_grid", false)->set_visible(gui2::widget::visibility::visible);
history_grid->find("modifications", false)->set_visible(gui2::widget::visibility::invisible);
} else if(tab == 2) {
dynamic_cast<label*>(history_grid->find("scenario_name", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("era_name", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("game_start", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("version", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<button*>(history_grid->find("replay_download", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("players", false))->set_visible(gui2::widget::visibility::invisible);
dynamic_cast<label*>(history_grid->find("modifications", false))->set_visible(gui2::widget::visibility::visible);
history_grid->find("player_grid", false)->set_visible(gui2::widget::visibility::invisible);
history_grid->find("modifications", false)->set_visible(gui2::widget::visibility::visible);
}
}
}