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