Allow disabling margins on StripeBack.

This commit is contained in:
Pieter-Jan Briers
2020-09-07 12:20:22 +02:00
parent 0440bb5e75
commit 005aad8da5

View File

@@ -12,6 +12,7 @@ namespace Content.Client.UserInterface
private bool _hasTopEdge = true; private bool _hasTopEdge = true;
private bool _hasBottomEdge = true; private bool _hasBottomEdge = true;
private bool _hasMargins = true;
public const string StylePropertyBackground = "background"; public const string StylePropertyBackground = "background";
@@ -35,6 +36,16 @@ namespace Content.Client.UserInterface
} }
} }
public bool HasMargins
{
get => _hasMargins;
set
{
_hasMargins = value;
MinimumSizeChanged();
}
}
protected override Vector2 CalculateMinimumSize() protected override Vector2 CalculateMinimumSize()
{ {
var size = Vector2.Zero; var size = Vector2.Zero;
@@ -44,14 +55,16 @@ namespace Content.Client.UserInterface
size = Vector2.ComponentMax(size, child.CombinedMinimumSize); size = Vector2.ComponentMax(size, child.CombinedMinimumSize);
} }
var padSize = HasMargins ? PadSize : 0;
if (HasBottomEdge) if (HasBottomEdge)
{ {
size += (0, PadSize + EdgeSize); size += (0, padSize + EdgeSize);
} }
if (HasTopEdge) if (HasTopEdge)
{ {
size += (0, PadSize + EdgeSize); size += (0, padSize + EdgeSize);
} }
return size; return size;
@@ -61,14 +74,16 @@ namespace Content.Client.UserInterface
{ {
var box = SizeBox; var box = SizeBox;
var padSize = HasMargins ? PadSize : 0;
if (HasTopEdge) if (HasTopEdge)
{ {
box += (0, PadSize + EdgeSize, 0, 0); box += (0, padSize + EdgeSize, 0, 0);
} }
if (HasBottomEdge) if (HasBottomEdge)
{ {
box += (0, 0, 0, -(PadSize + EdgeSize)); box += (0, 0, 0, -(padSize + EdgeSize));
} }
foreach (var child in Children) foreach (var child in Children)
@@ -81,16 +96,18 @@ namespace Content.Client.UserInterface
{ {
UIBox2 centerBox = PixelSizeBox; UIBox2 centerBox = PixelSizeBox;
var padSize = HasMargins ? PadSize : 0;
if (HasTopEdge) if (HasTopEdge)
{ {
centerBox += (0, (PadSize + EdgeSize) * UIScale, 0, 0); centerBox += (0, (padSize + EdgeSize) * UIScale, 0, 0);
handle.DrawRect(new UIBox2(0, PadSize * UIScale, PixelWidth, centerBox.Top), EdgeColor); handle.DrawRect(new UIBox2(0, padSize * UIScale, PixelWidth, centerBox.Top), EdgeColor);
} }
if (HasBottomEdge) if (HasBottomEdge)
{ {
centerBox += (0, 0, 0, -((PadSize + EdgeSize) * UIScale)); centerBox += (0, 0, 0, -((padSize + EdgeSize) * UIScale));
handle.DrawRect(new UIBox2(0, centerBox.Bottom, PixelWidth, PixelHeight - PadSize * UIScale), EdgeColor); handle.DrawRect(new UIBox2(0, centerBox.Bottom, PixelWidth, PixelHeight - padSize * UIScale), EdgeColor);
} }
GetActualStyleBox()?.Draw(handle, centerBox); GetActualStyleBox()?.Draw(handle, centerBox);