#region License
/* FNA - XNA4 Reimplementation for Desktop Platforms
* Copyright 2009-2016 Ethan Lee and the MonoGame Team
*
* Released under the Microsoft Public License.
* See LICENSE for details.
*/
#endregion
#region Using Statements
using System;
using System.ComponentModel;
using Microsoft.Xna.Framework.Input;
#endregion
namespace Microsoft.Xna.Framework
{
public abstract class GameWindow
{
#region Public Properties
[DefaultValue(false)]
public abstract bool AllowUserResizing
{
get;
set;
}
public abstract Rectangle ClientBounds
{
get;
}
public abstract DisplayOrientation CurrentOrientation
{
get;
}
public abstract IntPtr Handle
{
get;
}
public abstract string ScreenDeviceName
{
get;
}
public string Title
{
get
{
return _title;
}
set
{
if (_title != value)
{
SetTitle(value);
_title = value;
}
}
}
///
/// Determines whether the border of the window is visible.
///
///
/// Thrown when trying to use this property on an unsupported platform.
///
public virtual bool IsBorderlessEXT
{
get
{
return false;
}
set
{
throw new NotImplementedException();
}
}
#endregion
#region Private Variables
private string _title;
#endregion
#region Protected Constructors
protected GameWindow()
{
}
#endregion
#region Events
public event EventHandler ClientSizeChanged;
public event EventHandler OrientationChanged;
public event EventHandler ScreenDeviceNameChanged;
#endregion
#region Public Methods
public abstract void BeginScreenDeviceChange(bool willBeFullScreen);
public abstract void EndScreenDeviceChange(
string screenDeviceName,
int clientWidth,
int clientHeight
);
public void EndScreenDeviceChange(string screenDeviceName)
{
EndScreenDeviceChange(
screenDeviceName,
ClientBounds.Width,
ClientBounds.Height
);
}
#endregion
#region Protected Methods
protected void OnActivated()
{
}
protected void OnClientSizeChanged()
{
if (ClientSizeChanged != null)
{
ClientSizeChanged(this, EventArgs.Empty);
}
}
protected void OnDeactivated()
{
}
protected void OnOrientationChanged()
{
if (OrientationChanged != null)
{
OrientationChanged(this, EventArgs.Empty);
}
}
protected void OnPaint()
{
}
protected void OnScreenDeviceNameChanged()
{
if (ScreenDeviceNameChanged != null)
{
ScreenDeviceNameChanged(this, EventArgs.Empty);
}
}
protected internal abstract void SetSupportedOrientations(
DisplayOrientation orientations
);
protected abstract void SetTitle(string title);
#endregion
}
}