Browse Source

Removed 'distance' argument to LayoutManager.

No longer needed.
pull/387/merge
Steven Kirk 11 years ago
parent
commit
b310ead6a1
  1. 6
      src/Perspex.Layout/ILayoutManager.cs
  2. 6
      src/Perspex.Layout/LayoutManager.cs
  3. 24
      src/Perspex.Layout/Layoutable.cs

6
src/Perspex.Layout/ILayoutManager.cs

@ -53,14 +53,12 @@ namespace Perspex.Layout
/// Notifies the layout manager that a control requires a measure.
/// </summary>
/// <param name="control">The control.</param>
/// <param name="distance">The control's distance from the layout root.</param>
void InvalidateMeasure(ILayoutable control, int distance);
void InvalidateMeasure(ILayoutable control);
/// <summary>
/// Notifies the layout manager that a control requires an arrange.
/// </summary>
/// <param name="control">The control.</param>
/// <param name="distance">The control's distance from the layout root.</param>
void InvalidateArrange(ILayoutable control, int distance);
void InvalidateArrange(ILayoutable control);
}
}

6
src/Perspex.Layout/LayoutManager.cs

@ -77,8 +77,7 @@ namespace Perspex.Layout
/// Notifies the layout manager that a control requires a measure.
/// </summary>
/// <param name="control">The control.</param>
/// <param name="distance">The control's distance from the layout root.</param>
public void InvalidateMeasure(ILayoutable control, int distance)
public void InvalidateMeasure(ILayoutable control)
{
Contract.Requires<ArgumentNullException>(control != null);
Dispatcher.UIThread.VerifyAccess();
@ -92,8 +91,7 @@ namespace Perspex.Layout
/// Notifies the layout manager that a control requires an arrange.
/// </summary>
/// <param name="control">The control.</param>
/// <param name="distance">The control's distance from the layout root.</param>
public void InvalidateArrange(ILayoutable control, int distance)
public void InvalidateArrange(ILayoutable control)
{
Contract.Requires<ArgumentNullException>(control != null);
Dispatcher.UIThread.VerifyAccess();

24
src/Perspex.Layout/Layoutable.cs

@ -396,7 +396,7 @@ namespace Perspex.Layout
IsArrangeValid = false;
var root = GetLayoutRoot();
root?.Item1.LayoutManager?.InvalidateMeasure(this, root.Item2);
root?.LayoutManager?.InvalidateMeasure(this);
}
}
@ -412,7 +412,7 @@ namespace Perspex.Layout
IsArrangeValid = false;
var root = GetLayoutRoot();
root?.Item1.LayoutManager?.InvalidateArrange(this, root.Item2);
root?.LayoutManager?.InvalidateArrange(this);
}
}
@ -675,23 +675,13 @@ namespace Perspex.Layout
}
/// <summary>
/// Gets the layout root, together with its distance.
/// Gets the layout root.
/// </summary>
/// <returns>
/// A tuple containing the layout root and the root's distance from this control.
/// </returns>
private Tuple<ILayoutRoot, int> GetLayoutRoot()
private ILayoutRoot GetLayoutRoot()
{
var control = (IVisual)this;
var distance = 0;
while (control != null && !(control is ILayoutRoot))
{
control = control.GetVisualParent();
++distance;
}
return control != null ? Tuple.Create((ILayoutRoot)control, distance) : null;
return this.GetSelfAndVisualAncestors()
.OfType<ILayoutRoot>()
.FirstOrDefault();
}
}
}

Loading…
Cancel
Save