70 lines
1.8 KiB
C#
70 lines
1.8 KiB
C#
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 : UiEventArgs
|
|
{
|
|
public Vector2 ClientPosition { get; }
|
|
public Vector2 Delta { get; }
|
|
|
|
public MouseMoveEventArgs(Vector2 clientPosition, Vector2 delta)
|
|
: base(UiEventType.MouseMove)
|
|
{
|
|
ClientPosition = clientPosition;
|
|
Delta = delta;
|
|
}
|
|
}
|
|
|
|
public sealed class MouseButtonEventArgs : UiEventArgs
|
|
{
|
|
public Vector2 ClientPosition { get; }
|
|
public MouseButtons Buttons { get; }
|
|
|
|
public MouseButtonEventArgs(Vector2 clientPosition, MouseButtons buttons, bool up)
|
|
: base(up ? UiEventType.MouseButtonUp : UiEventType.MouseButtonDown)
|
|
{
|
|
ClientPosition = clientPosition;
|
|
Buttons = buttons;
|
|
}
|
|
}
|
|
|
|
public sealed class MouseScrollEventArgs : UiEventArgs
|
|
{
|
|
public Vector2 ClientPosition { get; }
|
|
public Vector2 ScrollDelta { get; }
|
|
|
|
public MouseScrollEventArgs(Vector2 clientPosition, Vector2 scrollDelta)
|
|
: base(UiEventType.MouseScroll)
|
|
{
|
|
ClientPosition = clientPosition;
|
|
ScrollDelta = scrollDelta;
|
|
}
|
|
}
|
|
|
|
public interface IMouseEvents
|
|
{
|
|
event EventHandler<MouseMoveEventArgs> MouseMoved;
|
|
event EventHandler<MouseButtonEventArgs> MouseButtonDown;
|
|
event EventHandler<MouseButtonEventArgs> MouseButtonUp;
|
|
event EventHandler<MouseScrollEventArgs> MouseScroll;
|
|
}
|
|
}
|