Exemple #1
0
        public static RibbonPanelSource AddRibbonPanel(string tabAlias, string panelAlias, string panelText)
        {
            var        fileName   = Application.GetSystemVariable("MENUNAME") as string;
            var        custSect   = new CustomizationSection(fileName);
            RibbonRoot ribbonRoot = custSect.MenuGroup.RibbonRoot;

            RibbonPanelSource ribbonPanel = ribbonRoot.FindPanelWithAlias(panelAlias);

            if (ribbonPanel != null)
            {
                return(null);
            }

            ribbonPanel = new RibbonPanelSource(ribbonRoot);
            ribbonPanel.Aliases.Add(panelAlias);
            ribbonPanel.Name = panelAlias;
            ribbonPanel.Text = panelText;
            ribbonPanel.Items.Clear();
            ribbonRoot.RibbonPanelSources.Add(ribbonPanel);

            RibbonTabSource tab      = ribbonRoot.FindTabWithAlias(tabAlias);
            var             panelRef = new RibbonPanelSourceReference(tab);

            panelRef.PanelId = ribbonPanel.ElementID;
            tab.Items.Add(panelRef);

            return(ribbonPanel);
        }
Exemple #2
0
        public static bool RemoveRibbonPanel(string tabAlias, string panelAlias, PluginCommandButton[] buttons)
        {
            var        fileName    = Application.GetSystemVariable("MENUNAME") as string;
            var        custSection = new CustomizationSection(fileName);
            RibbonRoot ribbonRoot  = custSection.MenuGroup.RibbonRoot;

            RibbonPanelSource ribbonPanel = ribbonRoot.FindPanelWithAlias(panelAlias);

            if (ribbonPanel == null)
            {
                return(false);
            }

            // Remove command and split buttons,  and panel row
            var row         = ribbonPanel.Items[0] as RibbonRow;
            var splitButton = row.Items[0] as RibbonSplitButton;

            splitButton.Items.Clear();
            splitButton.SetIsModified();

            row.Items.Clear();
            row.SetIsModified();

            ribbonPanel.Items.Clear();
            ribbonPanel.SetIsModified();

            // Remove the reference to panel from Add-ins tab
            RibbonTabSource tab = ribbonRoot.FindTabWithAlias(tabAlias);

            RemoveRibbonPanelSourceReference(tab, ribbonPanel.ElementID);

            RemoveMacrosOfCommandButtons(custSection, buttons);

            ribbonRoot.RibbonPanelSources.Remove(ribbonPanel);
            ribbonRoot.SetIsModified();

            custSection.Save();

            return(true);
        }