public override void AddToMenu(GenericMenu menu, WindowState state) { var mousePosition = Event.current.mousePosition; action.SetMousePosition(mousePosition); var displayState = action.GetDisplayState(state); action.ClearMousePosition(); var content = new GUIContent(MenuItemActionBase.GetDisplayName(action)); switch (displayState) { case MenuActionDisplayState.Visible: menu.AddItem(content, action.IsChecked(state), () => { action.SetMousePosition(mousePosition); action.Execute(state); action.ClearMousePosition(); }); break; case MenuActionDisplayState.Disabled: menu.AddDisabledItem(content); break; } }
protected static string GetDisplayName(MenuItemActionBase action) { object[] customAttributes = action.GetType().GetCustomAttributes(typeof(ShortcutAttribute), true); object[] customAttributes2 = action.GetType().GetCustomAttributes(typeof(DisplayNameAttribute), true); StringBuilder stringBuilder = new StringBuilder(); if (customAttributes2.Length > 0) { stringBuilder.Append((customAttributes2[0] as DisplayNameAttribute).DisplayName); } else { stringBuilder.Append(action.GetType().Name); } if (customAttributes.Length > 0) { stringBuilder.Append("\t\t"); } for (int num = 0; num != customAttributes.Length; num++) { if (num > 0) { stringBuilder.Append(", "); } stringBuilder.Append(customAttributes[num]); } return(stringBuilder.ToString()); }
public static string GetDisplayName(MenuItemActionBase action) { var shortcutAttribute = GetShortcutAttributeForAction(action); var displayNameAttributes = action.GetType().GetCustomAttributes(typeof(DisplayNameAttribute), true).FirstOrDefault() as DisplayNameAttribute; var builder = new StringBuilder(); if (displayNameAttributes != null) { builder.Append(L10n.Tr(displayNameAttributes.DisplayName)); } else { builder.Append(L10n.Tr(action.GetType().Name)); } if (shortcutAttribute != null) { var shortcut = shortcutAttribute.GetMenuShortcut(); if (shortcut != string.Empty) { builder.Append(" "); builder.Append(shortcut); } } return(builder.ToString()); }
public static void ShowItemContextMenu(Vector2 mousePosition, TimelineClip[] clips, IMarker[] markers) { var menu = new GenericMenu(); var items = new List <MenuActionItem>(); BuildItemContextMenu(items, mousePosition, clips, markers); MenuItemActionBase.BuildMenu(menu, items); menu.ShowAsContext(); }
public static void ShowMarkerHeaderContextMenu(Vector2?mousePosition, WindowState state) { var menu = new GenericMenu(); List <MenuActionItem> items = new List <MenuActionItem>(100); BuildMarkerHeaderContextMenu(items, mousePosition, state); MenuItemActionBase.BuildMenu(menu, items); menu.ShowAsContext(); }
public static void ShowNewTracksContextMenu(ICollection <TrackAsset> tracks, WindowState state) { var menu = new GenericMenu(); List <MenuActionItem> items = new List <MenuActionItem>(100); BuildNewTracksContextMenu(items, tracks, state); MenuItemActionBase.BuildMenu(menu, items); menu.ShowAsContext(); }
public static ActiveInModeAttribute GetActiveInModeAttribute(MenuItemActionBase action) { var attr = action.GetType().GetCustomAttributes(typeof(ActiveInModeAttribute), true); if (attr.Length > 0) { return(attr[0] as ActiveInModeAttribute); } return(null); }
protected static CategoryAttribute GetCategoryAttribute(MenuItemActionBase action) { var attr = action.GetType().GetCustomAttributes(typeof(CategoryAttribute), true); if (attr.Length > 0) { return(attr[0] as CategoryAttribute); } return(null); }
protected static SeparatorMenuItemAttribute GetSeparator(MenuItemActionBase action) { var attr = action.GetType().GetCustomAttributes(typeof(SeparatorMenuItemAttribute), true); if (attr.Length > 0) { return(attr[0] as SeparatorMenuItemAttribute); } return(null); }
public static void AddToMenu(GenericMenu menu, TimelineWindow.TimelineState state) { T[] items = (from x in SelectionManager.SelectedItemGUI() select x.selectableObject).OfType <T>().ToArray <T>(); if (items.Length >= 1) { menu.AddSeparator(""); ItemAction <T> .actions.ForEach(delegate(ItemAction <T> action) { string text = string.Empty; CategoryAttribute categoryAttribute = MenuItemActionBase.GetCategoryAttribute(action); if (categoryAttribute == null) { text = string.Empty; } else { text = categoryAttribute.Category; if (!text.EndsWith("/")) { text += "/"; } } string displayName = MenuItemActionBase.GetDisplayName(action); string text2 = text + displayName; SeparatorMenuItemAttribute separator = MenuItemActionBase.GetSeparator(action); bool flag = !MenuItemActionBase.IsHiddenInMenu(action); if (flag) { MenuActionDisplayState displayState = action.GetDisplayState(state, items); if (displayState == MenuActionDisplayState.Visible) { if (separator != null && separator.before) { menu.AddSeparator(text); } menu.AddItem(new GUIContent(text2), false, delegate(object f) { action.Execute(state, items); }, action); } if (displayState == MenuActionDisplayState.Disabled) { menu.AddDisabledItem(new GUIContent(text2)); } if (displayState != MenuActionDisplayState.Hidden && separator != null && separator.after) { menu.AddSeparator(text); } } }); } }
public static void ShowTrackContextMenu(TrackAsset[] tracks, Vector2?mousePosition) { if (tracks == null || tracks.Length == 0) { return; } var items = new List <MenuActionItem>(); var menu = new GenericMenu(); BuildTrackContextMenu(items, tracks, mousePosition); MenuItemActionBase.BuildMenu(menu, items); menu.ShowAsContext(); }
protected static SeparatorMenuItemAttribute GetSeparator(MenuItemActionBase action) { object[] customAttributes = action.GetType().GetCustomAttributes(typeof(SeparatorMenuItemAttribute), true); SeparatorMenuItemAttribute result; if (customAttributes.Length > 0) { result = (customAttributes[0] as SeparatorMenuItemAttribute); } else { result = null; } return(result); }
protected static CategoryAttribute GetCategoryAttribute(MenuItemActionBase action) { object[] customAttributes = action.GetType().GetCustomAttributes(typeof(CategoryAttribute), true); CategoryAttribute result; if (customAttributes.Length > 0) { result = (customAttributes[0] as CategoryAttribute); } else { result = null; } return(result); }
public static void AddToMenu(GenericMenu menu, TimelineWindow.TimelineState state) { TrackAsset[] tracks = SelectionManager.SelectedTracks().ToArray <TrackAsset>(); TrackAction.actions.ForEach(delegate(TrackAction action) { string text = string.Empty; CategoryAttribute categoryAttribute = MenuItemActionBase.GetCategoryAttribute(action); if (categoryAttribute == null) { text = string.Empty; } else { text = categoryAttribute.Category; if (!text.EndsWith("/")) { text += "/"; } } string displayName = MenuItemActionBase.GetDisplayName(action); string text2 = text + displayName; SeparatorMenuItemAttribute separator = MenuItemActionBase.GetSeparator(action); bool flag = !MenuItemActionBase.IsHiddenInMenu(action); if (flag) { MenuActionDisplayState displayState = action.GetDisplayState(state, tracks); if (displayState == MenuActionDisplayState.Visible) { menu.AddItem(new GUIContent(text2), false, delegate(object f) { action.Execute(state, tracks); }, action); } if (displayState == MenuActionDisplayState.Disabled) { menu.AddDisabledItem(new GUIContent(text2)); } if (displayState != MenuActionDisplayState.Hidden && separator != null && separator.after) { menu.AddSeparator(text); } } }); }
public static ShortcutAttribute GetShortcutAttributeForAction(MenuItemActionBase action) { var shortcutAttributes = action.GetType() .GetCustomAttributes(typeof(ShortcutAttribute), true) .Cast <ShortcutAttribute>(); foreach (var shortcutAttribute in shortcutAttributes) { var shortcutOverride = shortcutAttribute as ShortcutPlatformOverrideAttribute; if (shortcutOverride != null) { if (shortcutOverride.MatchesCurrentPlatform()) { return(shortcutOverride); } } else { return(shortcutAttribute); } } return(null); }
public static bool IsActionActiveInMode(MenuItemActionBase action, TimelineModes mode) { ActiveInModeAttribute attr = GetActiveInModeAttribute(action); return(attr != null && (attr.modes & mode) != 0); }
protected static bool IsHiddenInMenu(MenuItemActionBase action) { object[] customAttributes = action.GetType().GetCustomAttributes(typeof(HideInMenuAttribute), true); return(customAttributes.Length > 0); }