44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
namespace Dashboard.Windowing
|
|
{
|
|
/// <summary>
|
|
/// Interface for a class that composites multiple windows together.
|
|
/// </summary>
|
|
public interface ICompositor : IDisposable
|
|
{
|
|
void Composite(IPhysicalWindow window, IEnumerable<IVirtualWindow> windows);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Interface for classes that implement a window manager.
|
|
/// </summary>
|
|
public interface IWindowManager : IEnumerable<IVirtualWindow>, IEventListener, IPaintable, IDisposable
|
|
{
|
|
/// <summary>
|
|
/// The physical window that this window manager is associated with.
|
|
/// </summary>
|
|
IPhysicalWindow PhysicalWindow { get; }
|
|
|
|
/// <summary>
|
|
/// The compositor that will composite all virtual windows.
|
|
/// </summary>
|
|
ICompositor Compositor { get; set; }
|
|
|
|
/// <summary>
|
|
/// The window that is currently focused.
|
|
/// </summary>
|
|
IVirtualWindow? FocusedWindow { get; }
|
|
|
|
/// <summary>
|
|
/// Create a virtual window.
|
|
/// </summary>
|
|
/// <returns>Virtual window handle.</returns>
|
|
IVirtualWindow CreateWindow();
|
|
|
|
/// <summary>
|
|
/// Focus a virtual window, if it is owned by this window manager.
|
|
/// </summary>
|
|
/// <param name="window">The window to focus.</param>
|
|
void Focus(IVirtualWindow window);
|
|
}
|
|
}
|