#region Using Statements using System; using ANX.Framework.NonXNA.Development; #endregion // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework { [PercentageComplete(100)] [Developer("Glatzemann")] [TestState(TestStateAttribute.TestState.Untested)] public abstract class GameHost { internal event EventHandler Activated; internal event EventHandler Deactivated; internal event EventHandler Exiting; internal event EventHandler Idle; internal event EventHandler Resume; internal event EventHandler Suspend; public abstract GameWindow Window { get; } public GameHost() { } public abstract void Run(); public abstract void Exit(); protected void OnActivated() { InvokeIfNotNull(this.Activated); } protected void OnDeactivated() { InvokeIfNotNull(this.Deactivated); } protected void OnIdle() { InvokeIfNotNull(this.Idle); } protected void OnExiting() { InvokeIfNotNull(this.Exiting); } private void InvokeIfNotNull(EventHandler eventHandler) { if (eventHandler != null) eventHandler(this, EventArgs.Empty); } } }