Skip to content

Commit

Permalink
Merge pull request #8766 from AvaloniaUI/make-pointerpoint-to-be-a-st…
Browse files Browse the repository at this point in the history
…ruct

Make PointerPoint and PointerPointProperties to be a struct.
  • Loading branch information
Dan Walmsley authored Aug 18, 2022
2 parents 90670a4 + c164942 commit e33d295
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
4 changes: 2 additions & 2 deletions samples/ControlCatalog/Pages/PointerCanvas.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,9 @@ void HandleEvent(PointerEventArgs e)
var lastPointer = e.GetCurrentPoint(this);
_lastProperties = lastPointer.Properties;

if (_lastProperties.PointerUpdateKind != PointerUpdateKind.Other)
if (_lastProperties?.PointerUpdateKind != PointerUpdateKind.Other)
{
_lastNonOtherUpdateKind = _lastProperties.PointerUpdateKind;
_lastNonOtherUpdateKind = _lastProperties?.PointerUpdateKind;
}

if (e.RoutedEvent == PointerReleasedEvent && e.Pointer.Type == PointerType.Touch)
Expand Down
30 changes: 15 additions & 15 deletions src/Avalonia.Base/Input/PointerPoint.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Avalonia.Input
/// <summary>
/// Provides basic properties for the input pointer associated with a single mouse, pen/stylus, or touch contact.
/// </summary>
public sealed class PointerPoint
public struct PointerPoint
{
public PointerPoint(IPointer pointer, Point position, PointerPointProperties properties)
{
Expand Down Expand Up @@ -33,55 +33,55 @@ public PointerPoint(IPointer pointer, Point position, PointerPointProperties pro
/// <summary>
/// Provides extended properties for a PointerPoint object.
/// </summary>
public sealed class PointerPointProperties
public struct PointerPointProperties
{
/// <summary>
/// Gets a value that indicates whether the pointer input was triggered by the primary action mode of an input device.
/// </summary>
public bool IsLeftButtonPressed { get; }
public bool IsLeftButtonPressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the pointer input was triggered by the tertiary action mode of an input device.
/// </summary>
public bool IsMiddleButtonPressed { get; }
public bool IsMiddleButtonPressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the pointer input was triggered by the secondary action mode (if supported) of an input device.
/// </summary>
public bool IsRightButtonPressed { get; }
public bool IsRightButtonPressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the pointer input was triggered by the first extended mouse button (XButton1).
/// </summary>
public bool IsXButton1Pressed { get; }
public bool IsXButton1Pressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the pointer input was triggered by the second extended mouse button (XButton2).
/// </summary>
public bool IsXButton2Pressed { get; }
public bool IsXButton2Pressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the barrel button of the pen/stylus device is pressed.
/// </summary>
public bool IsBarrelButtonPressed { get; }
public bool IsBarrelButtonPressed { get; } = false;

/// <summary>
/// Gets a value that indicates whether the input is from a pen eraser.
/// </summary>
public bool IsEraser { get; }
public bool IsEraser { get; } = false;

/// <summary>
/// Gets a value that indicates whether the digitizer pen is inverted.
/// </summary>
public bool IsInverted { get; }
public bool IsInverted { get; } = false;

/// <summary>
/// Gets the clockwise rotation in degrees of a pen device around its own major axis (such as when the user spins the pen in their fingers).
/// </summary>
/// <returns>
/// A value between 0.0 and 359.0 in degrees of rotation. The default value is 0.0.
/// </returns>
public float Twist { get; }
public float Twist { get; } = 0.0F;

/// <summary>
/// Gets a value that indicates the force that the pointer device (typically a pen/stylus) exerts on the surface of the digitizer.
Expand All @@ -97,22 +97,22 @@ public sealed class PointerPointProperties
/// <returns>
/// The value is 0.0 when the finger or pen is perpendicular to the digitizer surface, between 0.0 and 90.0 when tilted to the right of perpendicular, and between 0.0 and -90.0 when tilted to the left of perpendicular. The default value is 0.0.
/// </returns>
public float XTilt { get; }
public float XTilt { get; } = 0.0F;

/// <summary>
/// Gets the plane angle between the X-Z plane and the plane that contains the X axis and the axis of the input device (typically a pen/stylus).
/// </summary>
/// <returns>
/// The value is 0.0 when the finger or pen is perpendicular to the digitizer surface, between 0.0 and 90.0 when tilted towards the user, and between 0.0 and -90.0 when tilted away from the user. The default value is 0.0.
/// </returns>
public float YTilt { get; }
public float YTilt { get; } = 0.0F;

/// <summary>
/// Gets the kind of pointer state change.
/// </summary>
public PointerUpdateKind PointerUpdateKind { get; }
public PointerUpdateKind PointerUpdateKind { get; } = PointerUpdateKind.LeftButtonPressed;

private PointerPointProperties()
public PointerPointProperties()
{
}

Expand Down

0 comments on commit e33d295

Please sign in to comment.