You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
2.0 KiB
51 lines
2.0 KiB
using System; |
|
using UnityEngine; |
|
|
|
namespace UnityEditor.Timeline.Actions |
|
{ |
|
/// <summary> |
|
/// Use this attribute to add a menu item to a context menu. |
|
/// Used to indicate path and priority that are auto added to the menu |
|
/// (examples can be found on <see href="https://docs.unity3d.com/ScriptReference/MenuItem.html"/>). |
|
/// </summary> |
|
/// <example> |
|
/// <code source="../../DocCodeExamples/TimelineAttributesExamples.cs" region="declare-menuEntryAttribute" title="menuEntryAttr"/> |
|
/// </example> |
|
/// <remarks> |
|
/// Unlike Menu item, MenuEntryAttribute doesn't handle shortcuts in the menu name. See <see cref="TimelineShortcutAttribute"/>. |
|
/// </remarks> |
|
[AttributeUsage(AttributeTargets.Class)] |
|
public class MenuEntryAttribute : Attribute |
|
{ |
|
internal readonly int priority; |
|
internal readonly string name; |
|
internal readonly string subMenuPath; |
|
|
|
/// <summary> |
|
/// Constructor for Menu Entry Attribute to define information about the menu item for an action. |
|
/// </summary> |
|
/// <param name="path">Path to the menu. If there is a "/" in the path, it will create one (or multiple) submenu items.</param> |
|
/// <param name="priority">Priority to decide where the menu will be positioned in the menu. |
|
/// The lower the priority, the higher the menu item will be in the context menu. |
|
/// </param> |
|
/// <seealso cref="MenuPriority"/> |
|
public MenuEntryAttribute(string path = default, int priority = MenuPriority.defaultPriority) |
|
{ |
|
path = path ?? string.Empty; |
|
path = L10n.Tr(path); |
|
this.priority = priority; |
|
|
|
var index = path.LastIndexOf('/'); |
|
if (index >= 0) |
|
{ |
|
name = (index == path.Length - 1) ? string.Empty : path.Substring(index + 1); |
|
subMenuPath = path.Substring(0, index + 1); |
|
} |
|
else |
|
{ |
|
name = path; |
|
subMenuPath = string.Empty; |
|
} |
|
} |
|
} |
|
}
|
|
|