Merge pull request #8840 from deniz1a/dropdown-gap

Removes spacing between dropdown menu items.
This commit is contained in:
Pavel Penev
2015-08-23 01:32:53 +03:00
26 changed files with 44 additions and 14 deletions

View File

@@ -24,14 +24,14 @@ namespace OpenRA.Mods.Common.Widgets
{
if (widget.Children.Count == 0)
{
widget.ContentHeight = widget.ItemSpacing;
pos = new int2(widget.ItemSpacing, widget.ItemSpacing);
widget.ContentHeight = 2 * widget.TopBottomSpacing;
pos = new int2(widget.ItemSpacing, widget.TopBottomSpacing);
}
if (pos.X + widget.ItemSpacing + w.Bounds.Width > widget.Bounds.Width - widget.ScrollbarWidth)
if (pos.X + w.Bounds.Width + widget.ItemSpacing > widget.Bounds.Width - widget.ScrollbarWidth)
{
/* start a new row */
pos = new int2(widget.ItemSpacing, widget.ContentHeight);
pos = new int2(widget.ItemSpacing, widget.ContentHeight - widget.TopBottomSpacing + widget.ItemSpacing);
}
w.Bounds.X += pos.X;
@@ -39,11 +39,9 @@ namespace OpenRA.Mods.Common.Widgets
pos = pos.WithX(pos.X + w.Bounds.Width + widget.ItemSpacing);
widget.ContentHeight = Math.Max(widget.ContentHeight, pos.Y + widget.ItemSpacing + w.Bounds.Height);
widget.ContentHeight = Math.Max(widget.ContentHeight, pos.Y + w.Bounds.Height + widget.TopBottomSpacing);
}
public void AdjustChildren()
{
}
public void AdjustChildren() { }
}
}

View File

@@ -21,22 +21,26 @@ namespace OpenRA.Mods.Common.Widgets
public void AdjustChild(Widget w)
{
if (widget.Children.Count == 0)
widget.ContentHeight = widget.ItemSpacing;
widget.ContentHeight = 2 * widget.TopBottomSpacing - widget.ItemSpacing;
w.Bounds.Y = widget.ContentHeight;
w.Bounds.Y = widget.ContentHeight - widget.TopBottomSpacing + widget.ItemSpacing;
if (!widget.CollapseHiddenChildren || w.IsVisible())
widget.ContentHeight += w.Bounds.Height + widget.ItemSpacing;
}
public void AdjustChildren()
{
widget.ContentHeight = widget.ItemSpacing;
widget.ContentHeight = widget.TopBottomSpacing;
foreach (var w in widget.Children)
{
w.Bounds.Y = widget.ContentHeight;
if (!widget.CollapseHiddenChildren || w.IsVisible())
widget.ContentHeight += w.Bounds.Height + widget.ItemSpacing;
}
// The loop above appended an extra widget.ItemSpacing after the last item.
// Replace it with proper bottom spacing.
widget.ContentHeight += widget.TopBottomSpacing - widget.ItemSpacing;
}
}
}

View File

@@ -33,7 +33,8 @@ namespace OpenRA.Mods.Common.Widgets
{
readonly Ruleset modRules;
public int ScrollbarWidth = 24;
public int ItemSpacing = 2;
public int TopBottomSpacing = 2;
public int ItemSpacing = 0;
public int ButtonDepth = ChromeMetrics.Get<int>("ButtonDepth");
public string Background = "scrollpanel-bg";
public string Button = "scrollpanel-button";