From 90ff7e49e12da716ffefeeace941534df9596681 Mon Sep 17 00:00:00 2001 From: Starkku Date: Wed, 30 Aug 2023 17:24:31 +0300 Subject: [PATCH] Restore PlayerExtraOptionsPanel to be XNAPanel and expose to INItializableWindow --- .../Multiplayer/GameLobby/GameLobbyBase.cs | 8 +++++++ .../Multiplayer/PlayerExtraOptionsPanel.cs | 24 +++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyBase.cs b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyBase.cs index f8fb4d7dd..b7194b58e 100644 --- a/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyBase.cs +++ b/DXMainClient/DXGUI/Multiplayer/GameLobby/GameLobbyBase.cs @@ -897,9 +897,17 @@ protected void InitPlayerOptionDropdowns() ReadINIForControl(lblTeam); btnPlayerExtraOptionsOpen = FindChild(nameof(btnPlayerExtraOptionsOpen), true); + if (btnPlayerExtraOptionsOpen != null) { PlayerExtraOptionsPanel = FindChild(nameof(PlayerExtraOptionsPanel)); + ReadINIForControl(PlayerExtraOptionsPanel); + + foreach (var child in PlayerExtraOptionsPanel.Children) + { + ReadINIForControl(child); + } + PlayerExtraOptionsPanel.Disable(); PlayerExtraOptionsPanel.OptionsChanged += PlayerExtraOptions_OptionsChanged; btnPlayerExtraOptionsOpen.LeftClick += BtnPlayerExtraOptions_LeftClick; diff --git a/DXMainClient/DXGUI/Multiplayer/PlayerExtraOptionsPanel.cs b/DXMainClient/DXGUI/Multiplayer/PlayerExtraOptionsPanel.cs index f014596f2..c8fab18d1 100644 --- a/DXMainClient/DXGUI/Multiplayer/PlayerExtraOptionsPanel.cs +++ b/DXMainClient/DXGUI/Multiplayer/PlayerExtraOptionsPanel.cs @@ -10,7 +10,7 @@ namespace DTAClient.DXGUI.Multiplayer { - public class PlayerExtraOptionsPanel : XNAWindow + public class PlayerExtraOptionsPanel : XNAPanel { private const int maxStartCount = 8; private const int defaultX = 24; @@ -162,7 +162,7 @@ public override void Initialize() Visible = false; var btnClose = new XNAClientButton(WindowManager); - btnClose.Name = nameof(btnClose); + btnClose.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(btnClose); btnClose.ClientRectangle = new Rectangle(0, 0, 0, 0); btnClose.IdleTexture = AssetLoader.LoadTexture("optionsButtonClose.png"); btnClose.HoverTexture = AssetLoader.LoadTexture("optionsButtonClose_c.png"); @@ -170,34 +170,34 @@ public override void Initialize() AddChild(btnClose); var lblHeader = new XNALabel(WindowManager); - lblHeader.Name = nameof(lblHeader); + lblHeader.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(lblHeader); lblHeader.Text = "Extra Player Options".L10N("Client:Main:ExtraPlayerOptions"); lblHeader.ClientRectangle = new Rectangle(defaultX, 4, 0, 18); AddChild(lblHeader); chkBoxForceRandomSides = new XNAClientCheckBox(WindowManager); - chkBoxForceRandomSides.Name = nameof(chkBoxForceRandomSides); + chkBoxForceRandomSides.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(chkBoxForceRandomSides); chkBoxForceRandomSides.Text = "Force Random Sides".L10N("Client:Main:ForceRandomSides"); chkBoxForceRandomSides.ClientRectangle = new Rectangle(defaultX, lblHeader.Bottom + 4, 0, 0); chkBoxForceRandomSides.CheckedChanged += Options_Changed; AddChild(chkBoxForceRandomSides); chkBoxForceRandomColors = new XNAClientCheckBox(WindowManager); - chkBoxForceRandomColors.Name = nameof(chkBoxForceRandomColors); + chkBoxForceRandomColors.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(chkBoxForceRandomColors); chkBoxForceRandomColors.Text = "Force Random Colors".L10N("Client:Main:ForceRandomColors"); chkBoxForceRandomColors.ClientRectangle = new Rectangle(defaultX, chkBoxForceRandomSides.Bottom + 4, 0, 0); chkBoxForceRandomColors.CheckedChanged += Options_Changed; AddChild(chkBoxForceRandomColors); chkBoxForceRandomTeams = new XNAClientCheckBox(WindowManager); - chkBoxForceRandomTeams.Name = nameof(chkBoxForceRandomTeams); + chkBoxForceRandomTeams.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(chkBoxForceRandomTeams); chkBoxForceRandomTeams.Text = "Force Random Teams".L10N("Client:Main:ForceRandomTeams"); chkBoxForceRandomTeams.ClientRectangle = new Rectangle(defaultX, chkBoxForceRandomColors.Bottom + 4, 0, 0); chkBoxForceRandomTeams.CheckedChanged += Options_Changed; AddChild(chkBoxForceRandomTeams); chkBoxForceRandomStarts = new XNAClientCheckBox(WindowManager); - chkBoxForceRandomStarts.Name = nameof(chkBoxForceRandomStarts); + chkBoxForceRandomStarts.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(chkBoxForceRandomStarts); chkBoxForceRandomStarts.Text = "Force Random Starts".L10N("Client:Main:ForceRandomStarts"); chkBoxForceRandomStarts.ClientRectangle = new Rectangle(defaultX, chkBoxForceRandomTeams.Bottom + 4, 0, 0); chkBoxForceRandomStarts.CheckedChanged += Options_Changed; @@ -206,14 +206,14 @@ public override void Initialize() ///////////////////////////// chkBoxUseTeamStartMappings = new XNAClientCheckBox(WindowManager); - chkBoxUseTeamStartMappings.Name = nameof(chkBoxUseTeamStartMappings); + chkBoxUseTeamStartMappings.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(chkBoxUseTeamStartMappings); chkBoxUseTeamStartMappings.Text = "Enable Auto Allying:".L10N("Client:Main:EnableAutoAllying"); chkBoxUseTeamStartMappings.ClientRectangle = new Rectangle(chkBoxForceRandomSides.X, chkBoxForceRandomStarts.Bottom + 20, 0, 0); chkBoxUseTeamStartMappings.CheckedChanged += ChkBoxUseTeamStartMappings_Changed; AddChild(chkBoxUseTeamStartMappings); var btnHelp = new XNAClientButton(WindowManager); - btnHelp.Name = nameof(btnHelp); + btnHelp.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(btnHelp); btnHelp.IdleTexture = AssetLoader.LoadTexture("questionMark.png"); btnHelp.HoverTexture = AssetLoader.LoadTexture("questionMark_c.png"); btnHelp.LeftClick += BtnHelp_LeftClick; @@ -221,20 +221,20 @@ public override void Initialize() AddChild(btnHelp); var lblPreset = new XNALabel(WindowManager); - lblPreset.Name = nameof(lblPreset); + lblPreset.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(lblPreset); lblPreset.Text = "Presets:".L10N("Client:Main:Presets"); lblPreset.ClientRectangle = new Rectangle(chkBoxUseTeamStartMappings.X, chkBoxUseTeamStartMappings.Bottom + 8, 0, 0); AddChild(lblPreset); ddTeamStartMappingPreset = new XNAClientDropDown(WindowManager); - ddTeamStartMappingPreset.Name = nameof(ddTeamStartMappingPreset); + ddTeamStartMappingPreset.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(ddTeamStartMappingPreset); ddTeamStartMappingPreset.ClientRectangle = new Rectangle(lblPreset.X + 50, lblPreset.Y - 2, 160, 0); ddTeamStartMappingPreset.SelectedIndexChanged += DdTeamMappingPreset_SelectedIndexChanged; ddTeamStartMappingPreset.AllowDropDown = true; AddChild(ddTeamStartMappingPreset); teamStartMappingsPanel = new TeamStartMappingsPanel(WindowManager); - teamStartMappingsPanel.Name = nameof(teamStartMappingsPanel); + teamStartMappingsPanel.Name = nameof(PlayerExtraOptionsPanel) + "_" + nameof(teamStartMappingsPanel); teamStartMappingsPanel.ClientRectangle = new Rectangle(lblPreset.X, ddTeamStartMappingPreset.Bottom + 8, Width, Height - ddTeamStartMappingPreset.Bottom + 4); AddChild(teamStartMappingsPanel);