@@ -5,7 +5,8 @@ namespace Terminal.Gui;
5
5
6
6
/// <summary>
7
7
/// Specifies the event arguments for <see cref="Terminal.Gui.MouseEventArgs"/>. This is a higher-level construct than
8
- /// the wrapped <see cref="Terminal.Gui.MouseEventArgs"/> class and is used for the events defined on <see cref="View"/> and subclasses
8
+ /// the wrapped <see cref="Terminal.Gui.MouseEventArgs"/> class and is used for the events defined on
9
+ /// <see cref="View"/> and subclasses
9
10
/// of View (e.g. <see cref="View.MouseEnter"/> and <see cref="View.MouseClick"/>).
10
11
/// </summary>
11
12
public class MouseEventArgs : HandledEventArgs
@@ -23,27 +24,76 @@ public class MouseEventArgs : HandledEventArgs
23
24
/// <summary>The deepest View who's <see cref="View.Frame"/> contains <see cref="ScreenPosition"/>.</summary>
24
25
public View ? View { get ; set ; }
25
26
26
- /// <summary>The position of the mouse in <see cref="View"/>'s Viewport-relative coordinates. Only valid if <see cref="View"/> is set.</summary>
27
+ /// <summary>
28
+ /// The position of the mouse in <see cref="View"/>'s Viewport-relative coordinates. Only valid if <see cref="View"/>
29
+ /// is set.
30
+ /// </summary>
27
31
public Point Position { get ; set ; }
28
32
29
- public bool IsButtonEvent
30
- {
31
- get
32
- {
33
- return Flags . HasFlag ( MouseFlags . Button1Clicked )
34
- || Flags . HasFlag ( MouseFlags . Button2Clicked )
35
- || Flags . HasFlag ( MouseFlags . Button3Clicked )
36
- || Flags . HasFlag ( MouseFlags . Button4Clicked )
37
- || Flags . HasFlag ( MouseFlags . Button1DoubleClicked )
38
- || Flags . HasFlag ( MouseFlags . Button2DoubleClicked )
39
- || Flags . HasFlag ( MouseFlags . Button3DoubleClicked )
40
- || Flags . HasFlag ( MouseFlags . Button4DoubleClicked )
41
- || Flags . HasFlag ( MouseFlags . Button1TripleClicked )
42
- || Flags . HasFlag ( MouseFlags . Button2TripleClicked )
43
- || Flags . HasFlag ( MouseFlags . Button3TripleClicked )
44
- || Flags . HasFlag ( MouseFlags . Button4TripleClicked ) ;
45
- }
46
- }
33
+ /// <summary>
34
+ /// Gets whether <see cref="Flags"/> contains any of the button pressed related flags.
35
+ /// </summary>
36
+ public bool IsPressed => Flags . HasFlag ( MouseFlags . Button1Pressed )
37
+ || Flags . HasFlag ( MouseFlags . Button2Pressed )
38
+ || Flags . HasFlag ( MouseFlags . Button3Pressed )
39
+ || Flags . HasFlag ( MouseFlags . Button4Pressed ) ;
40
+
41
+ /// <summary>
42
+ /// Gets whether <see cref="Flags"/> contains any of the button released related flags.
43
+ /// </summary>
44
+ public bool IsReleased => Flags . HasFlag ( MouseFlags . Button1Released )
45
+ || Flags . HasFlag ( MouseFlags . Button2Released )
46
+ || Flags . HasFlag ( MouseFlags . Button3Released )
47
+ || Flags . HasFlag ( MouseFlags . Button4Released ) ;
48
+
49
+ /// <summary>
50
+ /// Gets whether <see cref="Flags"/> contains any of the single-clicked related flags.
51
+ /// </summary>
52
+ public bool IsSingleClicked => Flags . HasFlag ( MouseFlags . Button1Clicked )
53
+ || Flags . HasFlag ( MouseFlags . Button2Clicked )
54
+ || Flags . HasFlag ( MouseFlags . Button3Clicked )
55
+ || Flags . HasFlag ( MouseFlags . Button4Clicked ) ;
56
+
57
+ /// <summary>
58
+ /// Gets whether <see cref="Flags"/> contains any of the double-clicked related flags.
59
+ /// </summary>
60
+ public bool IsDoubleClicked => Flags . HasFlag ( MouseFlags . Button1DoubleClicked )
61
+ || Flags . HasFlag ( MouseFlags . Button2DoubleClicked )
62
+ || Flags . HasFlag ( MouseFlags . Button3DoubleClicked )
63
+ || Flags . HasFlag ( MouseFlags . Button4DoubleClicked ) ;
64
+
65
+ /// <summary>
66
+ /// Gets whether <see cref="Flags"/> contains any of the triple-clicked related flags.
67
+ /// </summary>
68
+ public bool IsTripleClicked => Flags . HasFlag ( MouseFlags . Button1TripleClicked )
69
+ || Flags . HasFlag ( MouseFlags . Button2TripleClicked )
70
+ || Flags . HasFlag ( MouseFlags . Button3TripleClicked )
71
+ || Flags . HasFlag ( MouseFlags . Button4TripleClicked ) ;
72
+
73
+ /// <summary>
74
+ /// Gets whether <see cref="Flags"/> contains any of the mouse button clicked related flags.
75
+ /// </summary>
76
+ public bool IsSingleDoubleOrTripleClicked =>
77
+ Flags . HasFlag ( MouseFlags . Button1Clicked )
78
+ || Flags . HasFlag ( MouseFlags . Button2Clicked )
79
+ || Flags . HasFlag ( MouseFlags . Button3Clicked )
80
+ || Flags . HasFlag ( MouseFlags . Button4Clicked )
81
+ || Flags . HasFlag ( MouseFlags . Button1DoubleClicked )
82
+ || Flags . HasFlag ( MouseFlags . Button2DoubleClicked )
83
+ || Flags . HasFlag ( MouseFlags . Button3DoubleClicked )
84
+ || Flags . HasFlag ( MouseFlags . Button4DoubleClicked )
85
+ || Flags . HasFlag ( MouseFlags . Button1TripleClicked )
86
+ || Flags . HasFlag ( MouseFlags . Button2TripleClicked )
87
+ || Flags . HasFlag ( MouseFlags . Button3TripleClicked )
88
+ || Flags . HasFlag ( MouseFlags . Button4TripleClicked ) ;
89
+
90
+ /// <summary>
91
+ /// Gets whether <see cref="Flags"/> contains any of the mouse wheel related flags.
92
+ /// </summary>
93
+ public bool IsWheel => Flags . HasFlag ( MouseFlags . WheeledDown )
94
+ || Flags . HasFlag ( MouseFlags . WheeledUp )
95
+ || Flags . HasFlag ( MouseFlags . WheeledLeft )
96
+ || Flags . HasFlag ( MouseFlags . WheeledRight ) ;
47
97
48
98
/// <summary>Returns a <see cref="T:System.String"/> that represents the current <see cref="Terminal.Gui.MouseEventArgs"/>.</summary>
49
99
/// <returns>A <see cref="T:System.String"/> that represents the current <see cref="Terminal.Gui.MouseEventArgs"/>.</returns>
0 commit comments