public AnalyzerItem(AnalyzersFolderItem analyzersFolder, AnalyzerReference analyzerReference, IContextMenuController contextMenuController) : base(GetNameText(analyzerReference)) { _analyzersFolder = analyzersFolder; _analyzerReference = analyzerReference; _contextMenuController = contextMenuController; }
public LegacyDiagnosticItem(AnalyzerItem analyzerItem, DiagnosticDescriptor descriptor, ReportDiagnostic effectiveSeverity, IContextMenuController contextMenuController) : base(descriptor, effectiveSeverity) { _analyzerItem = analyzerItem; _contextMenuController = contextMenuController; }
public DiagnosticItem(AnalyzerItem analyzerItem, DiagnosticDescriptor descriptor, ReportDiagnostic effectiveSeverity, IContextMenuController contextMenuController) : base(string.Format("{0}: {1}", descriptor.Id, descriptor.Title)) { _analyzerItem = analyzerItem; _descriptor = descriptor; _effectiveSeverity = effectiveSeverity; _contextMenuController = contextMenuController; }
public void OpenSubMenu(IContextMenuItem subMenuItem) { // Find Item ContextMenuCardController cardController = m_CardControllers[subMenuItem.Id]; Vector3 position = cardController.transform.position + new Vector3(m_size.x / 2, 0); // Create a new submenu at its spot _SubMenu = ContextMenuManager.Instance.CreateContextMenu(Camera.main.ScreenToWorldPoint(position), subMenuItem.GetSubMenu(), this); }
public AnalyzersFolderItem( Workspace workspace, ProjectId projectId, IVsHierarchyItem parentItem, IContextMenuController contextMenuController) : base(SolutionExplorerShim.Analyzers) { _workspace = workspace; _projectId = projectId; _parentItem = parentItem; _contextMenuController = contextMenuController; }
public AnalyzersFolderItem( Workspace workspace, ProjectId projectId, IVsHierarchyItem parentItem, IContextMenuController contextMenuController) : base(SolutionExplorerShim.AnalyzersFolderItem_Name) { _workspace = workspace; _projectId = projectId; _parentItem = parentItem; _contextMenuController = contextMenuController; }
public void Init(IContextMenuItem item, IContextMenuController ContextMenuController) { Item = item; m_DisplayText.text = Item.GetDisplayString(); if (Item.HasSubMenu()) { m_Button.onClick.AddListener(() => { ContextMenuController.OpenSubMenu(item); }); } else { m_Button.onClick.AddListener(() => { Item.GetAction()?.Invoke(); ContextMenuController.CloseMenu(); }); } }
public void Init(Vector3 screenPositionOfClick, IContextMenu menu, IContextMenuController parent) { name = $"ContextMenu {menu.Id}"; _Menu = menu; _Parent = parent; m_CardControllers = new Dictionary <uint, ContextMenuCardController>(); m_size = m_MinSize; foreach (IContextMenuItem item in menu.Items) { ContextMenuCardController card = Instantiate(m_ContextMenuCardPrefab); card.transform.SetParent(m_ContextMenuCardHolder); card.Init(item, this); m_size.x = Mathf.Max(m_size.x, m_CharacterSize * item.GetDisplayString().Length); m_size.y += m_LineSize; m_CardControllers.Add(item.Id, card); } GetComponent <RectTransform>().sizeDelta = m_size; // Set the position make sure to offset so that the mouse appears in uper left corner GetComponent <RectTransform>().position = screenPositionOfClick + (new Vector3(m_size.x, m_size.y * -1) * .9f) / 2; // TODO add a button handler so that when the user clicks off the menu they close the menu m_IsMouseOverThisMenu = false; ClickOffMenuHandler = new ButtonHandler(ButtonHandler.RightClick, // Down (handler, position) => { if (!m_IsMouseOverThisMenu && _SubMenu == null) { CloseMenu(); } }, // Up (handler, position) => { }); ClickOffMenuHandler.IgnoreUI = false; ClickOffMenuHandler.OnlyUI = false; InputController.Instance.RegisterHandler(ClickOffMenuHandler); }
public void RemoveSubMenu() { Debug.Assert(_SubMenu != null); // Sub menu should handle destroying itself _SubMenu = null; }
public ContextMenuController CreateContextMenu(Vector3 position, IContextMenu menu, IContextMenuController parent) { Debug.Log($"adding context menu at {position}"); ContextMenuController newContextMenu = Instantiate(m_ContextMenuPrefab); newContextMenu.transform.SetParent(m_ContextMenuCanvas.transform); newContextMenu.Init(Camera.main.WorldToScreenPoint(position), menu, parent); return(newContextMenu); }