// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.

using Avalonia.Interactivity;
using Avalonia.VisualTree;

namespace Avalonia.Input
{
    public class PointerEventArgs : RoutedEventArgs
    {
        public PointerEventArgs()
        {

        }

        public PointerEventArgs(RoutedEvent routedEvent)
           : base(routedEvent)
        {

        }

        public IPointerDevice Device { get; set; }

        public InputModifiers InputModifiers { get; set; }

        public Point GetPosition(IVisual relativeTo)
        {
            return Device.GetPosition(relativeTo);
        }
    }
    
    public enum MouseButton
    {
        None,
        Left,
        Right,
        Middle
    }

    public class PointerPressedEventArgs : PointerEventArgs
    {
        public PointerPressedEventArgs()
            : base(InputElement.PointerPressedEvent)
        {
        }

        public PointerPressedEventArgs(RoutedEvent routedEvent)
            : base(routedEvent)
        {
        }

        public int ClickCount { get; set; }
        public MouseButton MouseButton { get; set; }
    }

    public class PointerReleasedEventArgs : PointerEventArgs
    {
        public PointerReleasedEventArgs()
            : base(InputElement.PointerReleasedEvent)
        {
        }

        public PointerReleasedEventArgs(RoutedEvent routedEvent)
            : base(routedEvent)
        {
        }

        public MouseButton MouseButton { get; set; }
    }
}
