/// <summary> /// Creates an item of the specified type and adds it to the specified collection /// </summary> /// <param name="ribbon"></param> /// <param name="collection"></param> /// <param name="t"></param> protected virtual void CreateItem(Ribbon ribbon, RibbonItemCollection collection, Type t) { if (GetService(typeof(IDesignerHost)) is IDesignerHost host && collection != null && ribbon != null) { DesignerTransaction transaction = host.CreateTransaction("AddRibbonItem_" + Component.Site.Name); MemberDescriptor member = TypeDescriptor.GetProperties(Component)["Items"]; RaiseComponentChanging(member); RibbonItem item = host.CreateComponent(t) as RibbonItem; if (!(item is RibbonSeparator)) { if (item != null) { item.Text = item.Site.Name; } } collection.Add(item); ribbon.OnRegionsChanged(); RaiseComponentChanged(member, null, null); transaction.Commit(); } }
public void changeService_ComponentRemoved(object sender, ComponentEventArgs e) { RibbonTab tab = e.Component as RibbonTab; RibbonPanel panel = e.Component as RibbonPanel; RibbonItem item = e.Component as RibbonItem; IDesignerHost designerService = GetService(typeof(IDesignerHost)) as IDesignerHost; if (tab != null) { Ribbon.Tabs.Remove(tab); } else if (panel != null) { panel.OwnerTab.Panels.Remove(panel); } else if (item != null) { if (item.OwnerItem is RibbonItemGroup) { (item.OwnerItem as RibbonItemGroup).Items.Remove(item); } else if (item.OwnerPanel != null) { item.OwnerPanel.Items.Remove(item); } } RemoveRecursive(e.Component as IContainsRibbonComponents, designerService); SelectedElement = null; Ribbon.OnRegionsChanged(); }
/// <summary> /// Catches the event of a component on the ribbon being removed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void changeService_ComponentRemoved(object sender, ComponentEventArgs e) { RibbonTab tab = e.Component as RibbonTab; RibbonContext context = e.Component as RibbonContext; RibbonPanel panel = e.Component as RibbonPanel; RibbonItem item = e.Component as RibbonItem; IDesignerHost designerService = GetService(typeof(IDesignerHost)) as IDesignerHost; RemoveRecursive(e.Component as IContainsRibbonComponents, designerService); if (tab != null && Ribbon != null) { Ribbon.Tabs.Remove(tab); } else if (context != null) { Ribbon.Contexts.Remove(context); } else if (panel != null) { panel.OwnerTab.Panels.Remove(panel); } else if (item != null) { if (item.Canvas is RibbonOrbDropDown) { Ribbon.OrbDropDown.HandleDesignerItemRemoved(item); } else if (item.OwnerItem is RibbonItemGroup) { (item.OwnerItem as RibbonItemGroup).Items.Remove(item); } else if (item.OwnerPanel != null) { item.OwnerPanel.Items.Remove(item); } else if (Ribbon != null && Ribbon.QuickAccessToolbar.Items.Contains(item)) { Ribbon.QuickAccessToolbar.Items.Remove(item); } } SelectedElement = null; if (Ribbon != null) { Ribbon.OnRegionsChanged(); } }
public virtual void CreateItem(Ribbon ribbon, RibbonItemCollection collection, Type t) { IDesignerHost host = GetService(typeof(IDesignerHost)) as IDesignerHost; if (host != null && collection != null && ribbon != null) { DesignerTransaction transaction = host.CreateTransaction("AddRibbonItem_" + Component.Site.Name); MemberDescriptor member = TypeDescriptor.GetProperties(Component)["Items"]; base.RaiseComponentChanging(member); RibbonItem item = host.CreateComponent(t) as RibbonItem; if (!(item is RibbonSeparator)) item.Text = item.Site.Name; collection.Add(item); ribbon.OnRegionsChanged(); base.RaiseComponentChanged(member, null, null); transaction.Commit(); } }