diff --git a/ANX.Framework/ANX.Framework.csproj b/ANX.Framework/ANX.Framework.csproj index 213e7f37..910661cc 100644 --- a/ANX.Framework/ANX.Framework.csproj +++ b/ANX.Framework/ANX.Framework.csproj @@ -272,6 +272,7 @@ + diff --git a/ANX.Framework/Input/Keyboard.cs b/ANX.Framework/Input/Keyboard.cs index b84e006d..cf73700f 100644 --- a/ANX.Framework/Input/Keyboard.cs +++ b/ANX.Framework/Input/Keyboard.cs @@ -1,7 +1,54 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +#region Using Statements +using System; + +#endregion // Using Statements + +#region License + +// +// This file is part of the ANX.Framework created by the "ANX.Framework developer group". +// +// This file is released under the Ms-PL license. +// +// +// +// Microsoft Public License (Ms-PL) +// +// This license governs use of the accompanying software. If you use the software, you accept this license. +// If you do not accept the license, do not use the software. +// +// 1.Definitions +// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning +// here as under U.S. copyright law. +// A "contribution" is the original software, or any additions or changes to the software. +// A "contributor" is any person that distributes its contribution under this license. +// "Licensed patents" are a contributor's patent claims that read directly on its contribution. +// +// 2.Grant of Rights +// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations +// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to +// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution +// or any derivative works that you create. +// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in +// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed +// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution +// in the software or derivative works of the contribution in the software. +// +// 3.Conditions and Limitations +// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. +// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your +// patent license from such contributor to the software ends automatically. +// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution +// notices that are present in the software. +// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including +// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or +// object code form, you may only do so under a license that complies with this license. +// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, +// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the +// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a +// particular purpose and non-infringement. + +#endregion // License namespace ANX.Framework.Input { diff --git a/ANX.Framework/Input/Mouse.cs b/ANX.Framework/Input/Mouse.cs index 79c9bcd8..c376b533 100644 --- a/ANX.Framework/Input/Mouse.cs +++ b/ANX.Framework/Input/Mouse.cs @@ -1,20 +1,79 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +#region Using Statements +using System; +using ANX.Framework.NonXNA; + +#endregion // Using Statements + +#region License + +// +// This file is part of the ANX.Framework created by the "ANX.Framework developer group". +// +// This file is released under the Ms-PL license. +// +// +// +// Microsoft Public License (Ms-PL) +// +// This license governs use of the accompanying software. If you use the software, you accept this license. +// If you do not accept the license, do not use the software. +// +// 1.Definitions +// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning +// here as under U.S. copyright law. +// A "contribution" is the original software, or any additions or changes to the software. +// A "contributor" is any person that distributes its contribution under this license. +// "Licensed patents" are a contributor's patent claims that read directly on its contribution. +// +// 2.Grant of Rights +// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations +// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to +// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution +// or any derivative works that you create. +// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in +// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed +// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution +// in the software or derivative works of the contribution in the software. +// +// 3.Conditions and Limitations +// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. +// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your +// patent license from such contributor to the software ends automatically. +// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution +// notices that are present in the software. +// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including +// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or +// object code form, you may only do so under a license that complies with this license. +// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, +// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the +// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a +// particular purpose and non-infringement. + +#endregion // License namespace ANX.Framework.Input { public static class Mouse { - public static IntPtr WindowHandle { get; set; } + private static IMouse mouse; + + static Mouse() + { + mouse = AddInSystemFactory.Instance.GetCurrentCreator().Mouse; + } + + public static IntPtr WindowHandle + { + get { return mouse.WindowHandle; } + set { mouse.WindowHandle = value; } + } public static MouseState GetState() { - throw new NotImplementedException(); + return mouse.GetState(); } public static void SetPosition(int x, int y) { - throw new NotImplementedException(); + mouse.SetPosition(x, y); } } } diff --git a/ANX.Framework/Input/MouseState.cs b/ANX.Framework/Input/MouseState.cs index 537eef7f..20e4fdac 100644 --- a/ANX.Framework/Input/MouseState.cs +++ b/ANX.Framework/Input/MouseState.cs @@ -52,8 +52,38 @@ using System; namespace ANX.Framework.Input { + [SerializableAttribute] public struct MouseState { + private int x; + private int y; + private int scrollWheel; + private ButtonState leftButton; + private ButtonState middleButton; + private ButtonState rightButton; + private ButtonState xButton1; + private ButtonState xButton2; + public MouseState (int x, int y, int scrollWheel,ButtonState leftButton,ButtonState middleButton,ButtonState rightButton,ButtonState xButton1,ButtonState xButton2) + { + this.x = x; + this.y = y; + this.scrollWheel = scrollWheel; + this.leftButton = leftButton; + this.middleButton = middleButton; + this.rightButton = rightButton; + this.xButton1 = xButton1; + this.xButton2 = xButton2; + } + + public ButtonState LeftButton { get { return this.leftButton; } } + public ButtonState MiddleButton { get { return this.middleButton; } } + public ButtonState RightButton { get { return this.rightButton; } } + public ButtonState XButton1 { get { return this.xButton1; } } + public ButtonState XButton2 { get { return this.xButton2; } } + public int ScrollWheelValue { get { return this.scrollWheel; } } + public int X { get { return this.x; } } + public int Y { get { return this.y; } } + } } diff --git a/ANX.Framework/NonXNA/InputSystem/IInputSystemCreator.cs b/ANX.Framework/NonXNA/InputSystem/IInputSystemCreator.cs index 507e5183..d178de65 100644 --- a/ANX.Framework/NonXNA/InputSystem/IInputSystemCreator.cs +++ b/ANX.Framework/NonXNA/InputSystem/IInputSystemCreator.cs @@ -59,5 +59,6 @@ namespace ANX.Framework.NonXNA public interface IInputSystemCreator : ICreator { IGamePad GamePad { get; } + IMouse Mouse { get; } } } diff --git a/ANX.Framework/NonXNA/InputSystem/IMouse.cs b/ANX.Framework/NonXNA/InputSystem/IMouse.cs new file mode 100644 index 00000000..d865bdd2 --- /dev/null +++ b/ANX.Framework/NonXNA/InputSystem/IMouse.cs @@ -0,0 +1,64 @@ +#region Using Statements +using System; +using System.IO; +using ANX.Framework.NonXNA; +using ANX.Framework.Input; + +#endregion // Using Statements + +#region License + +// +// This file is part of the ANX.Framework created by the "ANX.Framework developer group". +// +// This file is released under the Ms-PL license. +// +// +// +// Microsoft Public License (Ms-PL) +// +// This license governs use of the accompanying software. If you use the software, you accept this license. +// If you do not accept the license, do not use the software. +// +// 1.Definitions +// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning +// here as under U.S. copyright law. +// A "contribution" is the original software, or any additions or changes to the software. +// A "contributor" is any person that distributes its contribution under this license. +// "Licensed patents" are a contributor's patent claims that read directly on its contribution. +// +// 2.Grant of Rights +// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations +// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to +// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution +// or any derivative works that you create. +// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in +// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed +// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution +// in the software or derivative works of the contribution in the software. +// +// 3.Conditions and Limitations +// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. +// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your +// patent license from such contributor to the software ends automatically. +// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution +// notices that are present in the software. +// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including +// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or +// object code form, you may only do so under a license that complies with this license. +// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees, +// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the +// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a +// particular purpose and non-infringement. + +#endregion // License + +namespace ANX.Framework.NonXNA +{ + public interface IMouse + { + IntPtr WindowHandle { get; set; } + MouseState GetState(); + void SetPosition(int x, int y); + } +} diff --git a/ANX.InputSystem.Windows.XInput/ANX.InputSystem.Windows.XInput.csproj b/ANX.InputSystem.Windows.XInput/ANX.InputSystem.Windows.XInput.csproj index 1df368e2..f0ea1700 100644 --- a/ANX.InputSystem.Windows.XInput/ANX.InputSystem.Windows.XInput.csproj +++ b/ANX.InputSystem.Windows.XInput/ANX.InputSystem.Windows.XInput.csproj @@ -47,8 +47,9 @@ + - + diff --git a/ANX.InputSystem.Windows.XInput/Creator.cs b/ANX.InputSystem.Windows.XInput/Creator.cs index 863f3e42..ea05fd0f 100644 --- a/ANX.InputSystem.Windows.XInput/Creator.cs +++ b/ANX.InputSystem.Windows.XInput/Creator.cs @@ -67,12 +67,18 @@ namespace ANX.InputSystem.Windows.XInput public IGamePad GamePad { - get { return new XInput(); } + get { return new GamePad(); } } public void RegisterCreator(AddInSystemFactory factory) { factory.AddCreator(this); } + + + public IMouse Mouse + { + get { return new Mouse(); } + } } } diff --git a/ANX.InputSystem.Windows.XInput/XInput.cs b/ANX.InputSystem.Windows.XInput/GamePad.cs similarity index 96% rename from ANX.InputSystem.Windows.XInput/XInput.cs rename to ANX.InputSystem.Windows.XInput/GamePad.cs index 3c1ba885..7884347f 100644 --- a/ANX.InputSystem.Windows.XInput/XInput.cs +++ b/ANX.InputSystem.Windows.XInput/GamePad.cs @@ -61,11 +61,11 @@ using SharpDX.XInput; namespace ANX.InputSystem.Windows.XInput { - public class XInput : IGamePad + public class GamePad : IGamePad { private Controller[] controller; - public XInput() + public GamePad() { controller = new Controller[4]; controller[0] = new Controller(UserIndex.One); diff --git a/ANX.InputSystem.Windows.XInput/Mouse.cs b/ANX.InputSystem.Windows.XInput/Mouse.cs new file mode 100644 index 00000000..a1eadb7c --- /dev/null +++ b/ANX.InputSystem.Windows.XInput/Mouse.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ANX.Framework.NonXNA; +using ANX.Framework.Input; + +namespace ANX.InputSystem.Windows.XInput +{ + class Mouse:IMouse + { + public IntPtr WindowHandle + { + get + { + throw new NotImplementedException(); + } + set + { + throw new NotImplementedException(); + } + } + + public MouseState GetState() + { + throw new NotImplementedException(); + } + + public void SetPosition(int x, int y) + { + throw new NotImplementedException(); + } + } +}