Add documentation to IElement, Anchor and UIElement.
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using System.Numerics;
|
||||
using Voile.Input;
|
||||
using Voile.Rendering;
|
||||
|
||||
namespace Voile.UI;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a basic UI element with position and size information.
|
||||
/// </summary>
|
||||
public interface IElement
|
||||
{
|
||||
/// <summary>
|
||||
@@ -16,6 +18,9 @@ public interface IElement
|
||||
public Rect Size { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that can contain child elements.
|
||||
/// </summary>
|
||||
public interface IParentableElement
|
||||
{
|
||||
/// <summary>
|
||||
@@ -34,6 +39,10 @@ public interface IParentableElement
|
||||
public void RemoveChild(UIElement child);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that can provide a minimum size constraint.<br />
|
||||
/// Implement this interface if your UI element is expected to be resizeable.
|
||||
/// </summary>
|
||||
public interface IResizeableElement
|
||||
{
|
||||
/// <summary>
|
||||
@@ -42,10 +51,13 @@ public interface IResizeableElement
|
||||
public abstract Rect MinimumSize { get; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that supports updates when its state changes.
|
||||
/// </summary>
|
||||
public interface IUpdatableElement
|
||||
{
|
||||
/// <summary>
|
||||
/// Specifies if this element's properties have changed, making it necessary to update it.
|
||||
/// Gets a value indicating whether the element's state has changed and needs to be updated.
|
||||
/// </summary>
|
||||
public bool Dirty { get; }
|
||||
/// <summary>
|
||||
@@ -58,6 +70,9 @@ public interface IUpdatableElement
|
||||
void MarkDirty();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that can be rendered to the screen.
|
||||
/// </summary>
|
||||
public interface IRenderableElement
|
||||
{
|
||||
/// <summary>
|
||||
@@ -77,6 +92,9 @@ public interface IRenderableElement
|
||||
public void DrawSize(RenderSystem renderer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that can receive and process user input.
|
||||
/// </summary>
|
||||
public interface IInputElement
|
||||
{
|
||||
/// <summary>
|
||||
@@ -90,9 +108,23 @@ public interface IInputElement
|
||||
void Input(UIInputContext action);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Represents a UI element that supports positional anchoring within a parent.
|
||||
/// </summary>
|
||||
public interface IAnchorableElement
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the anchor point relative to the parent container.
|
||||
/// </summary>
|
||||
public Anchor Anchor { get; set; }
|
||||
/// <summary>
|
||||
/// Gets or sets an additional offset to apply after anchoring, in pixels.
|
||||
/// </summary>
|
||||
public Vector2 AnchorOffset { get; set; }
|
||||
/// <summary>
|
||||
/// Applies the current anchor settings based on the parent's position and size.
|
||||
/// </summary>
|
||||
/// <param name="parentPosition">The parent's top-left global position.</param>
|
||||
/// <param name="parentRect">The bounding rectangle of the parent container.</param>
|
||||
public void ApplyAnchor(Vector2 parentPosition, Rect parentRect);
|
||||
}
|
||||
Reference in New Issue
Block a user