#region License // // The Open Toolkit Library License // // Copyright (c) 2006 - 2009 the Open Toolkit library. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // OTHER DEALINGS IN THE SOFTWARE. // #endregion using System; using System.ComponentModel; using System.Drawing; using OpenTK.Input; using OpenTK.Platform; namespace OpenTK { /// Defines the interface for a native window. public interface INativeWindow : IDisposable { /// Gets the current contents of the clipboard. string GetClipboardText(); /// Sets the current contents of the clipboard. void SetClipboardText( string value ); /// Gets or sets the of the window. Icon Icon { get; set; } /// Gets or sets the title of the window. string Title { get; set; } /// Gets a System.Boolean that indicates whether this window has input focus. bool Focused { get; } /// Gets or sets a System.Boolean that indicates whether the window is visible. bool Visible { get; set; } /// Gets a System.Boolean that indicates whether the window has been created and has not been destroyed. bool Exists { get; } /// Gets the for this window. IWindowInfo WindowInfo { get; } /// Gets or sets the for this window. WindowState WindowState { get; set; } /// Gets or sets a structure the contains the external bounds of this window, in screen coordinates. /// External bounds include the title bar, borders and drawing area of the window. Rectangle Bounds { get; set; } /// Gets or sets a structure that contains the location of this window on the desktop. Point Location { get; set; } /// Gets or sets a structure that contains the external size of this window. Size Size { get; set; } /// Gets or sets the horizontal location of this window on the desktop. int X { get; set; } /// Gets or sets the vertical location of this window on the desktop. int Y { get; set; } /// Gets or sets the external width of this window. int Width { get; set; } /// Gets or sets the external height of this window. int Height { get; set; } /// Gets or sets a structure that contains the internal bounds of this window, in client coordinates. /// The internal bounds include the drawing area of the window, but exclude the titlebar and window borders. Rectangle ClientRectangle { get; set; } /// Gets or sets a structure that contains the internal size this window. Size ClientSize { get; set; } /// Closes this window. void Close(); /// Processes pending window events. void ProcessEvents(); /// Transforms the specified point from screen to client coordinates. /// A to transform. /// The point transformed to client coordinates. Point PointToClient(Point point); /// Transforms the specified point from client to screen coordinates. /// A to transform. /// The point transformed to screen coordinates. Point PointToScreen(Point point); /// Gets the available KeyboardDevice. KeyboardDevice Keyboard { get; } /// Gets the available MouseDevice. MouseDevice Mouse { get; } /// Gets or sets the cursor position in screen coordinates. Point DesktopCursorPos { get; set; } /// Gets or sets whether the cursor is visible in the window. bool CursorVisible { get; set; } /// Occurs whenever the window is moved. event EventHandler Move; /// Occurs whenever the window is resized. event EventHandler Resize; /// Occurs when the window is about to close. event EventHandler Closing; /// Occurs after the window has closed. event EventHandler Closed; /// Occurs when the window is disposed. event EventHandler Disposed; /// Occurs when the property of the window changes. event EventHandler IconChanged; /// Occurs when the property of the window changes. event EventHandler TitleChanged; /// Occurs when the property of the window changes. event EventHandler VisibleChanged; /// Occurs when the property of the window changes. event EventHandler FocusedChanged; /// Occurs when the property of the window changes. event EventHandler WindowStateChanged; /// Occurs whenever a character is typed. event EventHandler KeyPress; /// Occurs whenever the mouse cursor leaves the window . event EventHandler MouseLeave; /// Occurs whenever the mouse cursor enters the window . event EventHandler MouseEnter; } }