Add ButtonHelpers and the SetButtonDisabledRecursive helper.

Fixes the mess from the other day.
This commit is contained in:
Vera Aguilera Puerto
2021-07-29 12:55:22 +02:00
parent 3501bcbea6
commit 8ed1a9e19c
4 changed files with 37 additions and 3 deletions

View File

@@ -1,3 +1,4 @@
using Content.Client.UserInterface;
using Robust.Client.AutoGenerated; using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface; using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.Controls;
@@ -35,7 +36,7 @@ namespace Content.Client.AME.UI
// Disable all buttons if not powered // Disable all buttons if not powered
if (Contents.Children != null) if (Contents.Children != null)
{ {
SetButtonDisabledRecursive(Contents, !castState.HasPower); ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
EjectButton.Disabled = false; EjectButton.Disabled = false;
} }

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Linq; using System.Linq;
using Content.Client.Stylesheets; using Content.Client.Stylesheets;
using Content.Client.UserInterface;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Robust.Client.Graphics; using Robust.Client.Graphics;
@@ -279,7 +280,7 @@ namespace Content.Client.Chemistry.UI
UpdatePanelInfo(castState); UpdatePanelInfo(castState);
if (Contents.Children != null) if (Contents.Children != null)
{ {
SetButtonDisabledRecursive(Contents, !castState.HasPower); ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
EjectButton.Disabled = !castState.HasBeaker; EjectButton.Disabled = !castState.HasBeaker;
} }
} }

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using Content.Client.Stylesheets; using Content.Client.Stylesheets;
using Content.Client.UserInterface;
using Content.Shared.Chemistry.Dispenser; using Content.Shared.Chemistry.Dispenser;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Robust.Client.Graphics; using Robust.Client.Graphics;
@@ -186,7 +187,7 @@ namespace Content.Client.Chemistry.UI
// Disable all buttons if not powered // Disable all buttons if not powered
if (Contents.Children != null) if (Contents.Children != null)
{ {
SetButtonDisabledRecursive(Contents, !castState.HasPower); ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
EjectButton.Disabled = false; EjectButton.Disabled = false;
} }

View File

@@ -0,0 +1,31 @@
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
namespace Content.Client.UserInterface
{
public static class ButtonHelpers
{
/// <summary>
/// This searches recursively through all the children of "parent"
/// and sets the Disabled value of any buttons found to "val"
/// </summary>
/// <param name="parent">The control which childrens get searched</param>
/// <param name="val">The value to which disabled gets set</param>
public static void SetButtonDisabledRecursive(Control parent, bool val)
{
foreach (var child in parent.Children)
{
if (child is Button but)
{
but.Disabled = val;
continue;
}
if (child.ChildCount > 0)
{
SetButtonDisabledRecursive(child, val);
}
}
}
}
}