-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
Copy pathInputMessages.cs
89 lines (76 loc) · 2.3 KB
/
InputMessages.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#nullable enable
using System;
/*
We are keeping copies of core events here, so they can be used
without referencing Avalonia itself, e. g. from projects that
are using WPF, GTK#, etc
*/
namespace Avalonia.Remote.Protocol.Input
{
/// <summary>
/// Keep this in sync with InputModifiers in the main library
/// </summary>
[Flags]
public enum InputModifiers
{
Alt,
Control,
Shift,
Windows,
LeftMouseButton,
RightMouseButton,
MiddleMouseButton
}
/// <summary>
/// Keep this in sync with InputModifiers in the main library
/// </summary>
public enum MouseButton
{
None,
Left,
Right,
Middle
}
public abstract class InputEventMessageBase
{
public InputModifiers[]? Modifiers { get; set; }
}
public abstract class PointerEventMessageBase : InputEventMessageBase
{
public double X { get; set; }
public double Y { get; set; }
}
[AvaloniaRemoteMessageGuid("6228F0B9-99F2-4F62-A621-414DA2881648")]
public class PointerMovedEventMessage : PointerEventMessageBase
{
}
[AvaloniaRemoteMessageGuid("7E9E2818-F93F-411A-800E-6B1AEB11DA46")]
public class PointerPressedEventMessage : PointerEventMessageBase
{
public MouseButton Button { get; set; }
}
[AvaloniaRemoteMessageGuid("4ADC84EE-E7C8-4BCF-986C-DE3A2F78EDE4")]
public class PointerReleasedEventMessage : PointerEventMessageBase
{
public MouseButton Button { get; set; }
}
[AvaloniaRemoteMessageGuid("79301A05-F02D-4B90-BB39-472563B504AE")]
public class ScrollEventMessage : PointerEventMessageBase
{
public double DeltaX { get; set; }
public double DeltaY { get; set; }
}
[AvaloniaRemoteMessageGuid("1C3B691E-3D54-4237-BFB0-9FEA83BC1DB8")]
public class KeyEventMessage : InputEventMessageBase
{
public bool IsDown { get; set; }
public Key Key { get; set; }
public PhysicalKey PhysicalKey { get; set; }
public string? KeySymbol { get; set; }
}
[AvaloniaRemoteMessageGuid("C174102E-7405-4594-916F-B10B8248A17D")]
public class TextInputEventMessage : InputEventMessageBase
{
public string Text { get; set; } = string.Empty;
}
}