Beispiel #1
0
 public AnalyzerItem(AnalyzersFolderItem analyzersFolder, AnalyzerReference analyzerReference, IContextMenuController contextMenuController)
     : base(GetNameText(analyzerReference))
 {
     _analyzersFolder       = analyzersFolder;
     _analyzerReference     = analyzerReference;
     _contextMenuController = contextMenuController;
 }
Beispiel #2
0
        public LegacyDiagnosticItem(AnalyzerItem analyzerItem, DiagnosticDescriptor descriptor, ReportDiagnostic effectiveSeverity, IContextMenuController contextMenuController)
            : base(descriptor, effectiveSeverity)
        {
            _analyzerItem = analyzerItem;

            _contextMenuController = contextMenuController;
        }
Beispiel #3
0
 public AnalyzerItem(AnalyzersFolderItem analyzersFolder, AnalyzerReference analyzerReference, IContextMenuController contextMenuController)
     : base(GetNameText(analyzerReference))
 {
     _analyzersFolder = analyzersFolder;
     _analyzerReference = analyzerReference;
     _contextMenuController = contextMenuController;
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 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);
    }
Beispiel #7
0
 public AnalyzersFolderItem(
     Workspace workspace,
     ProjectId projectId,
     IVsHierarchyItem parentItem,
     IContextMenuController contextMenuController)
     : base(SolutionExplorerShim.Analyzers)
 {
     _workspace             = workspace;
     _projectId             = projectId;
     _parentItem            = parentItem;
     _contextMenuController = contextMenuController;
 }
Beispiel #8
0
 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;
 }
Beispiel #12
0
    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);
    }