From f71e2feb62ee4f51afc7f03bc7a8425c0c99f730 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Fri, 18 Nov 2022 10:28:49 -0800 Subject: [PATCH] add support for X1 and X2 buttons --- src/Input/Mouse.cs | 24 ++++++++++-------------- src/Input/MouseButtonCode.cs | 4 +++- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/Input/Mouse.cs b/src/Input/Mouse.cs index 03b9a5e..9826279 100644 --- a/src/Input/Mouse.cs +++ b/src/Input/Mouse.cs @@ -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 CodeToButton; - private IEnumerable Buttons - { - get - { - yield return LeftButton; - yield return MiddleButton; - yield return RightButton; - } - } + private IEnumerable 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.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; diff --git a/src/Input/MouseButtonCode.cs b/src/Input/MouseButtonCode.cs index 83b6c61..614658f 100644 --- a/src/Input/MouseButtonCode.cs +++ b/src/Input/MouseButtonCode.cs @@ -4,6 +4,8 @@ namespace MoonWorks.Input { Left, Right, - Middle + Middle, + X1, + X2 } }