2023-07-08 14:08:32 +10:00
|
|
|
using System.Numerics;
|
2023-03-06 11:06:57 -08:00
|
|
|
using Robust.Client.UserInterface.Controls;
|
|
|
|
|
|
|
|
|
|
namespace Content.Client.UserInterface.Controls;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// A split container that performs an action when the split resizing is finished.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public sealed class RecordedSplitContainer : SplitContainer
|
|
|
|
|
{
|
|
|
|
|
public double? DesiredSplitCenter;
|
|
|
|
|
|
|
|
|
|
protected override Vector2 ArrangeOverride(Vector2 finalSize)
|
|
|
|
|
{
|
|
|
|
|
if (ResizeMode == SplitResizeMode.RespectChildrenMinSize
|
2023-03-09 08:33:13 -08:00
|
|
|
&& DesiredSplitCenter != null
|
|
|
|
|
&& !finalSize.Equals(Vector2.Zero))
|
2023-03-06 11:06:57 -08:00
|
|
|
{
|
2023-03-09 08:33:13 -08:00
|
|
|
SplitFraction = (float) DesiredSplitCenter.Value;
|
2023-03-06 11:06:57 -08:00
|
|
|
|
2023-03-09 08:33:13 -08:00
|
|
|
if (!Size.Equals(Vector2.Zero))
|
2023-03-06 11:06:57 -08:00
|
|
|
{
|
|
|
|
|
DesiredSplitCenter = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return base.ArrangeOverride(finalSize);
|
|
|
|
|
}
|
|
|
|
|
}
|