Spring – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Windows.Forms;

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

        public MouseButtons MouseButtons { get; }

#endregion

#region Constructors, Destructors and Finalizers

        public KeyActionMouseButtons(MouseButtons mouseButtons) => MouseButtons = mouseButtons;

#endregion

#region Public Methods

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

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

            return MouseButtons == other.MouseButtons;
        }

        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((KeyActionMouseButtons) obj);
        }

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

#endregion
    }
}