Implemented horizontal allign support for SupportPowersWidget

This commit is contained in:
Unknown
2018-08-04 16:53:26 +02:00
committed by reaperrr
parent e179a9529e
commit c97f36793c
2 changed files with 17 additions and 3 deletions

View File

@@ -37,6 +37,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Action<int, int> updateBackground = (_, icons) =>
{
var rowHeight = palette.IconSize.Y + palette.IconMargin;
var rowWidth = palette.IconSize.X + palette.IconMargin;
if (background != null)
{
@@ -45,7 +46,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
for (var i = 0; i < icons; i++)
{
var row = backgroundTemplate.Clone();
row.Bounds.Y += i * rowHeight;
if (palette.Horizontal)
row.Bounds.X += i * rowWidth;
else
row.Bounds.Y += i * rowHeight;
background.AddChild(row);
}
}
@@ -57,7 +61,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
for (var i = 0; i < icons; i++)
{
var row = foregroundTemplate.Clone();
row.Bounds.Y += i * rowHeight;
if (palette.Horizontal)
row.Bounds.X += i * rowWidth;
else
row.Bounds.Y += i * rowHeight;
foreground.AddChild(row);
}
}

View File

@@ -40,6 +40,8 @@ namespace OpenRA.Mods.Common.Widgets
public readonly string ClockSequence = "idle";
public readonly string ClockPalette = "chrome";
public readonly bool Horizontal = false;
public int IconCount { get; private set; }
public event Action<int, int> OnIconCountChanged = (a, b) => { };
@@ -124,7 +126,12 @@ namespace OpenRA.Mods.Common.Widgets
var rb = RenderBounds;
foreach (var p in powers)
{
var rect = new Rectangle(rb.X, rb.Y + IconCount * (IconSize.Y + IconMargin), IconSize.X, IconSize.Y);
Rectangle rect;
if (Horizontal)
rect = new Rectangle(rb.X + IconCount * (IconSize.X + IconMargin), rb.Y, IconSize.X, IconSize.Y);
else
rect = new Rectangle(rb.X, rb.Y + IconCount * (IconSize.Y + IconMargin), IconSize.X, IconSize.Y);
icon.Play(p.Info.Icon);
var power = new SupportPowerIcon()