using System.Drawing; using Dashboard.Events; namespace Dashboard.Windowing { /// /// Base class of all Dashboard windows. /// public interface IWindow : IPaintable, IDisposable, IAnimationTickEvent, IMouseEvents { /// /// Name of the window. /// string Title { get; set; } /// /// The size of the window that includes the window extents. /// SizeF OuterSize { get; set; } /// /// The size of the window that excludes the window extents. /// SizeF ClientSize { get; set; } } /// /// Base class for all Dashboard windows that are DPI-aware. /// public interface IDpiAwareWindow : IWindow { /// /// DPI of the window. /// float Dpi { get; } /// /// Scale of the window. /// float Scale { get; } } /// /// An object that represents a window in a virtual space, usually another window or a rendering system. /// public interface IVirtualWindow : IWindow, IEventListener { } /// /// An object that represents a native operating system window. /// public interface IPhysicalWindow : IWindow { /// /// The device context for this window. /// IDeviceContext DeviceContext { get; } /// /// True if the window is double buffered. /// public bool DoubleBuffered { get; } /// /// The window manager for this physical window. /// public IWindowManager? WindowManager { get; set; } } }