A game framework written with osu! in mind.
at master 1.0 kB view raw
1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. 2// See the LICENCE file in the repository root for full licence text. 3 4using osu.Framework.Extensions.TypeExtensions; 5using osu.Framework.Input.States; 6using osuTK; 7using osuTK.Input; 8 9namespace osu.Framework.Input.Events 10{ 11 /// <summary> 12 /// Represents events of a mouse button. 13 /// </summary> 14 public abstract class MouseButtonEvent : MouseEvent 15 { 16 public readonly MouseButton Button; 17 public readonly Vector2 ScreenSpaceMouseDownPosition; 18 19 public Vector2 MouseDownPosition => ToLocalSpace(ScreenSpaceMouseDownPosition); 20 21 protected MouseButtonEvent(InputState state, MouseButton button, Vector2? screenSpaceMouseDownPosition) 22 : base(state) 23 { 24 Button = button; 25 ScreenSpaceMouseDownPosition = screenSpaceMouseDownPosition ?? ScreenSpaceMousePosition; 26 } 27 28 public override string ToString() => $"{GetType().ReadableName()}({Button})"; 29 } 30}