forked from MoonsideGames/MoonWorks
				
			add support for mouse X1 and X2 buttons (#36)
Reviewed-on: MoonsideGames/MoonWorks#36moar-validation
							parent
							
								
									fa992652b1
								
							
						
					
					
						commit
						faf81bceed
					
				| 
						 | 
				
			
			@ -8,6 +8,8 @@ namespace MoonWorks.Input
 | 
			
		|||
		public MouseButton LeftButton { get; }
 | 
			
		||||
		public MouseButton MiddleButton { get; }
 | 
			
		||||
		public MouseButton RightButton { get; }
 | 
			
		||||
		public MouseButton X1Button { get; }
 | 
			
		||||
		public MouseButton X2Button { get; }
 | 
			
		||||
 | 
			
		||||
		public int X { get; private set; }
 | 
			
		||||
		public int Y { get; private set; }
 | 
			
		||||
| 
						 | 
				
			
			@ -41,27 +43,23 @@ namespace MoonWorks.Input
 | 
			
		|||
 | 
			
		||||
		private readonly Dictionary<MouseButtonCode, MouseButton> CodeToButton;
 | 
			
		||||
 | 
			
		||||
		private IEnumerable<MouseButton> Buttons
 | 
			
		||||
		{
 | 
			
		||||
			get
 | 
			
		||||
			{
 | 
			
		||||
				yield return LeftButton;
 | 
			
		||||
				yield return MiddleButton;
 | 
			
		||||
				yield return RightButton;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		private IEnumerable<MouseButton> Buttons => CodeToButton.Values;
 | 
			
		||||
 | 
			
		||||
		public Mouse()
 | 
			
		||||
		{
 | 
			
		||||
			LeftButton = new MouseButton(this, MouseButtonCode.Left, SDL.SDL_BUTTON_LMASK);
 | 
			
		||||
			MiddleButton = new MouseButton(this, MouseButtonCode.Middle, SDL.SDL_BUTTON_MMASK);
 | 
			
		||||
			RightButton = new MouseButton(this, MouseButtonCode.Right, SDL.SDL_BUTTON_RMASK);
 | 
			
		||||
			X1Button = new MouseButton(this, MouseButtonCode.X1, SDL.SDL_BUTTON_X1MASK);
 | 
			
		||||
			X2Button = new MouseButton(this, MouseButtonCode.X2, SDL.SDL_BUTTON_X2MASK);
 | 
			
		||||
 | 
			
		||||
			CodeToButton = new Dictionary<MouseButtonCode, MouseButton>
 | 
			
		||||
			{
 | 
			
		||||
				{ MouseButtonCode.Left, LeftButton },
 | 
			
		||||
				{ MouseButtonCode.Right, RightButton },
 | 
			
		||||
				{ MouseButtonCode.Middle, MiddleButton }
 | 
			
		||||
				{ MouseButtonCode.Middle, MiddleButton },
 | 
			
		||||
				{ MouseButtonCode.X1, X1Button },
 | 
			
		||||
				{ MouseButtonCode.X2, X2Button }
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -80,12 +78,10 @@ namespace MoonWorks.Input
 | 
			
		|||
			Wheel = WheelRaw - previousWheelRaw;
 | 
			
		||||
			previousWheelRaw = WheelRaw;
 | 
			
		||||
 | 
			
		||||
			LeftButton.Update();
 | 
			
		||||
			MiddleButton.Update();
 | 
			
		||||
			RightButton.Update();
 | 
			
		||||
 | 
			
		||||
			foreach (var button in Buttons)
 | 
			
		||||
			{
 | 
			
		||||
				button.Update();
 | 
			
		||||
 | 
			
		||||
				if (button.IsPressed)
 | 
			
		||||
				{
 | 
			
		||||
					AnyPressed = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,8 @@ namespace MoonWorks.Input
 | 
			
		|||
    {
 | 
			
		||||
        Left,
 | 
			
		||||
        Right,
 | 
			
		||||
        Middle
 | 
			
		||||
        Middle,
 | 
			
		||||
		X1,
 | 
			
		||||
		X2
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue