using System.Drawing; using System.Numerics; namespace Dashboard.Events { [Flags] public enum MouseButtons { M1 = 1 << 0, M2 = 1 << 1, M3 = 1 << 2, M4 = 1 << 3, M5 = 1 << 4, M6 = 1 << 5, M7 = 1 << 6, M8 = 1 << 7, Left = M1, Right = M2, Middle = M3, } public sealed class MouseMoveEventArgs(Vector2 clientPosition, Vector2 delta) : UiEventArgs(UiEventType.MouseMove) { public Vector2 ClientPosition { get; } = clientPosition; public Vector2 Delta { get; } = delta; } public sealed class MouseButtonEventArgs(Vector2 clientPosition, MouseButtons buttons, ModifierKeys modifierKeys, bool up) : UiEventArgs(up ? UiEventType.MouseButtonUp : UiEventType.MouseButtonDown) { public ModifierKeys ModifierKeys { get; } = modifierKeys; public Vector2 ClientPosition { get; } = clientPosition; public MouseButtons Buttons { get; } = buttons; } public sealed class MouseScrollEventArgs(Vector2 clientPosition, Vector2 scrollDelta) : UiEventArgs(UiEventType.MouseScroll) { public Vector2 ClientPosition { get; } = clientPosition; public Vector2 ScrollDelta { get; } = scrollDelta; } }