using System;
using UnityEngine;

namespace UnityEditor.ProBuilder
{
	/// <summary>
	/// Decorate MenuAction classes to set default ShortcutBinding or override the ShortcutContext (default is global).
	/// </summary>
	[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
	class MenuActionShortcutAttribute : Attribute
	{
		internal Type context { get; private set; }

		internal KeyCode key;

		internal EventModifiers modifiers;

		public MenuActionShortcutAttribute(KeyCode defaultKeyCode, EventModifiers defaultShorcutModifiers = EventModifiers.None)
			: this(null, defaultKeyCode, defaultShorcutModifiers)
		{
		}

		public MenuActionShortcutAttribute(Type defaultContext)
			: this(defaultContext, KeyCode.None, EventModifiers.None)
		{
		}

		public MenuActionShortcutAttribute(Type defaultContext, KeyCode defaultKeyCode, EventModifiers defaultShorcutModifiers = EventModifiers.None)
		{
			context = defaultContext;
			key = defaultKeyCode;
			modifiers = defaultShorcutModifiers;
		}
	}
}