From 273eaa493fc2570c4a3811163cf41ff0eca8a360 Mon Sep 17 00:00:00 2001 From: Visne <39844191+Visne@users.noreply.github.com> Date: Tue, 27 Jul 2021 20:09:12 +0200 Subject: [PATCH] XAMLify ID card computer, Alerts and AME window (#4322) * Refactor ID card computer to XAML UI * Alerts * XAMLify AME window * Use Control.SetButtonDisabledRecursive() instead --- .../AME/UI/AMEControllerBoundUserInterface.cs | 9 +- Content.Client/AME/UI/AMEWindow.cs | 173 --------------- Content.Client/AME/UI/AMEWindow.xaml | 46 ++++ Content.Client/AME/UI/AMEWindow.xaml.cs | 73 ++++++ .../Access/UI/IdCardConsoleWindow.cs | 208 ------------------ .../Access/UI/IdCardConsoleWindow.xaml | 30 +++ .../Access/UI/IdCardConsoleWindow.xaml.cs | 121 ++++++++++ Content.Client/Alerts/UI/AlertsUI.xaml | 10 + .../UI/{AlertsUI.cs => AlertsUI.xaml.cs} | 38 ++-- .../Chemistry/UI/ChemMasterWindow.cs | 23 -- .../Chemistry/UI/ReagentDispenserWindow.cs | 23 -- 11 files changed, 295 insertions(+), 459 deletions(-) delete mode 100644 Content.Client/AME/UI/AMEWindow.cs create mode 100644 Content.Client/AME/UI/AMEWindow.xaml create mode 100644 Content.Client/AME/UI/AMEWindow.xaml.cs delete mode 100644 Content.Client/Access/UI/IdCardConsoleWindow.cs create mode 100644 Content.Client/Access/UI/IdCardConsoleWindow.xaml create mode 100644 Content.Client/Access/UI/IdCardConsoleWindow.xaml.cs create mode 100644 Content.Client/Alerts/UI/AlertsUI.xaml rename Content.Client/Alerts/UI/{AlertsUI.cs => AlertsUI.xaml.cs} (71%) diff --git a/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs b/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs index 3765d45fa2..aaeaf538f3 100644 --- a/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs +++ b/Content.Client/AME/UI/AMEControllerBoundUserInterface.cs @@ -19,14 +19,9 @@ namespace Content.Client.AME.UI { base.Open(); - _window = new AMEWindow(); + _window = new AMEWindow(this); _window.OnClose += Close; _window.OpenCentered(); - - _window.EjectButton.OnPressed += _ => ButtonPressed(UiButton.Eject); - _window.ToggleInjection.OnPressed += _ => ButtonPressed(UiButton.ToggleInjection); - _window.IncreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.IncreaseFuel); - _window.DecreaseFuelButton.OnPressed += _ => ButtonPressed(UiButton.DecreaseFuel); } /// @@ -44,7 +39,7 @@ namespace Content.Client.AME.UI _window?.UpdateState(castState); //Update window state } - private void ButtonPressed(UiButton button, int dispenseIndex = -1) + public void ButtonPressed(UiButton button, int dispenseIndex = -1) { SendMessage(new UiButtonPressedMessage(button)); } diff --git a/Content.Client/AME/UI/AMEWindow.cs b/Content.Client/AME/UI/AMEWindow.cs deleted file mode 100644 index e9104e6f67..0000000000 --- a/Content.Client/AME/UI/AMEWindow.cs +++ /dev/null @@ -1,173 +0,0 @@ -using Content.Client.Stylesheets; -using Robust.Client.UserInterface; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using static Content.Shared.AME.SharedAMEControllerComponent; -using static Robust.Client.UserInterface.Controls.BoxContainer; - -namespace Content.Client.AME.UI -{ - public class AMEWindow : SS14Window - { - public Label InjectionStatus { get; set; } - public Button EjectButton { get; set; } - public Button ToggleInjection { get; set; } - public Button IncreaseFuelButton { get; set; } - public Button DecreaseFuelButton { get; set; } - public ProgressBar? FuelMeter { get; set; } - public Label FuelAmount { get; set; } - public Label InjectionAmount { get; set; } - public Label CoreCount { get; set; } - - - public AMEWindow() - { - IoCManager.InjectDependencies(this); - - Title = Loc.GetString("ame-window-title"); - - MinSize = SetSize = (250, 250); - - Contents.AddChild(new BoxContainer - { - Orientation = LayoutOrientation.Vertical, - Children = - { - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-engine-status-label") + " "}, - (InjectionStatus = new Label {Text = Loc.GetString("ame-window-engine-injection-status-not-injecting-label")}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (ToggleInjection = new Button {Text = Loc.GetString("ame-window-toggle-injection-button"), StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-fuel-status-label") + " "}, - (FuelAmount = new Label {Text = Loc.GetString("ame-window-fuel-not-inserted-text")}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (EjectButton = new Button {Text = Loc.GetString("ame-window-eject-button"), StyleClasses = {StyleBase.ButtonOpenBoth}, Disabled = true}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label {Text = Loc.GetString("ame-window-injection-amount-label") + " "}, - (InjectionAmount = new Label {Text = "0"}) - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - (IncreaseFuelButton = new Button {Text = Loc.GetString("ame-window-increase-fuel-button"), StyleClasses = {StyleBase.ButtonOpenRight}}), - (DecreaseFuelButton = new Button {Text = Loc.GetString("ame-window-decrease-fuel-button"), StyleClasses = {StyleBase.ButtonOpenLeft}}), - } - }, - new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - new Label { Text = Loc.GetString("ame-window-core-count-label") + " "}, - (CoreCount = new Label { Text = "0"}), - } - } - } - }); - } - - /// - /// This searches recursively through all the children of "parent" - /// and sets the Disabled value of any buttons found to "val" - /// - /// The control which childrens get searched - /// The value to which disabled gets set - private void SetButtonDisabledRecursive(Control parent, bool val) - { - foreach (var child in parent.Children) - { - if (child is Button but) - { - but.Disabled = val; - continue; - } - - if (child.Children != null) - { - SetButtonDisabledRecursive(child, val); - } - } - } - - /// - /// Update the UI state when new state data is received from the server. - /// - /// State data sent by the server. - public void UpdateState(BoundUserInterfaceState state) - { - var castState = (AMEControllerBoundUserInterfaceState) state; - - // Disable all buttons if not powered - if (Contents.Children != null) - { - SetButtonDisabledRecursive(Contents, !castState.HasPower); - EjectButton.Disabled = false; - } - - if (!castState.HasFuelJar) - { - EjectButton.Disabled = true; - ToggleInjection.Disabled = true; - FuelAmount.Text = Loc.GetString("ame-window-fuel-not-inserted-text"); - } - else - { - EjectButton.Disabled = false; - ToggleInjection.Disabled = false; - FuelAmount.Text = $"{castState.FuelAmount}"; - } - - if (!castState.IsMaster) - { - ToggleInjection.Disabled = true; - } - - if (!castState.Injecting) - { - InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-not-injecting-label") + " "; - } - else - { - InjectionStatus.Text = Loc.GetString("ame-window-engine-injection-status-injecting-label") + " "; - } - - CoreCount.Text = $"{castState.CoreCount}"; - InjectionAmount.Text = $"{castState.InjectionAmount}"; - } - } -} diff --git a/Content.Client/AME/UI/AMEWindow.xaml b/Content.Client/AME/UI/AMEWindow.xaml new file mode 100644 index 0000000000..bc1e7d9ded --- /dev/null +++ b/Content.Client/AME/UI/AMEWindow.xaml @@ -0,0 +1,46 @@ + + + + + +