using System; #nullable enable namespace Avalonia.Layout { /// /// Manages measuring and arranging of controls. /// public interface ILayoutManager : IDisposable { /// /// Raised when the layout manager completes a layout pass. /// event EventHandler LayoutUpdated; /// /// Notifies the layout manager that a control requires a measure. /// /// The control. void InvalidateMeasure(ILayoutable control); /// /// Notifies the layout manager that a control requires an arrange. /// /// The control. void InvalidateArrange(ILayoutable control); /// /// Executes a layout pass. /// /// /// You should not usually need to call this method explictly, the layout manager will /// schedule layout passes itself. /// void ExecuteLayoutPass(); /// /// Executes the initial layout pass on a layout root. /// /// /// You should not usually need to call this method explictly, the layout root will call /// it to carry out the initial layout of the control. /// void ExecuteInitialLayoutPass(); /// /// Executes the initial layout pass on a layout root. /// /// The control to lay out. /// /// You should not usually need to call this method explictly, the layout root will call /// it to carry out the initial layout of the control. /// [Obsolete("Call ExecuteInitialLayoutPass without parameter")] void ExecuteInitialLayoutPass(ILayoutRoot root); /// /// Registers a control as wanting to receive effective viewport notifications. /// /// The control. void RegisterEffectiveViewportListener(ILayoutable control); /// /// Registers a control as no longer wanting to receive effective viewport notifications. /// /// The control. void UnregisterEffectiveViewportListener(ILayoutable control); } }