Spring – Rev 1

Subversion Repositories:
Rev:
using System;

namespace Spring.MouseKeyboard
{
    internal class KeyActionMouseScrollDirection : KeyAction, IEquatable<KeyActionMouseScrollDirection>
    {
#region Public Enums, Properties and Fields

        public MouseScrollDirection Direction { get; }

#endregion

#region Constructors, Destructors and Finalizers

        public KeyActionMouseScrollDirection(MouseScrollDirection direction) => Direction = direction;

#endregion

#region Public Methods

        public bool Equals(KeyActionMouseScrollDirection other)
        {
            if (ReferenceEquals(null, other))
            {
                return false;
            }

            if (ReferenceEquals(this, other))
            {
                return true;
            }

            return Direction == other.Direction;
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj))
            {
                return false;
            }

            if (ReferenceEquals(this, obj))
            {
                return true;
            }

            if (obj.GetType() != GetType())
            {
                return false;
            }

            return Equals((KeyActionMouseScrollDirection) obj);
        }

        public override int GetHashCode() => (int) Direction;

#endregion
    }
}