using System.Drawing; namespace Dashboard { /// /// Base class of all Dashboard windows. /// public interface IWindow : IDisposable { /// /// 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 { /// /// Send an event to this window. /// /// The event arguments /// TODO: void SendEvent(EventArgs args); } /// /// Generic interface for the rendering system present in a /// public interface IDeviceContext { /// /// The swap group for this device context. /// ISwapGroup SwapGroup { get; } /// /// The size of the window framebuffer in pixels. /// Size FramebufferSize { get; } } /// /// Interface that is used to swap the buffers of /// public interface ISwapGroup { /// /// The swap interval for this swap group. /// public int SwapInterval { get; set; } /// /// Swap buffers. /// void Swap(); } /// /// 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; } } }