Add ButtonHelpers and the SetButtonDisabledRecursive helper.
Fixes the mess from the other day.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
31
Content.Client/UserInterface/ButtonHelpers.cs
Normal file
31
Content.Client/UserInterface/ButtonHelpers.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user