using System; using System.Collections; namespace DevComponents.DotNetBar { /// /// Collection of RibbonTabItemGroup objects. /// public class RibbonTabItemGroupCollection:CollectionBase { #region Private Variables and Events public event EventHandler GroupRemoved; public event EventHandler GroupAdded; private RibbonStrip m_Owner=null; #endregion #region Internal Implementation /// /// Adds new object to the collection. /// /// Object to add. /// Index of newly added object. public int Add(RibbonTabItemGroup tab) { return List.Add(tab); } /// /// Adds new objects to the collection. /// /// Array of groups to add. public void AddRange(RibbonTabItemGroup[] groups) { foreach(RibbonTabItemGroup doc in groups) List.Add(doc); } /// /// Returns reference to the object in collection based on it's index. /// public RibbonTabItemGroup this[int index] { get {return (RibbonTabItemGroup)(List[index]);} set {List[index] = value;} } /// /// Returns reference to the object in collection based on it's name. /// public RibbonTabItemGroup this[string name] { get { foreach (RibbonTabItemGroup g in this.List) { if (g.Name == name) return g; } return null; } } /// /// Inserts new object into the collection. /// /// Position of the object. /// Object to insert. public void Insert(int index, RibbonTabItemGroup value) { List.Insert(index, value); } /// /// Returns index of the object inside of the collection. /// /// Reference to the object. /// Index of the object. public int IndexOf(RibbonTabItemGroup value) { return List.IndexOf(value); } /// /// Returns whether collection contains specified object. /// /// Object to look for. /// true if object is part of the collection, otherwise false. public bool Contains(RibbonTabItemGroup value) { return List.Contains(value); } /// /// Removes specified object from the collection. /// /// public void Remove(RibbonTabItemGroup value) { List.Remove(value); } protected override void OnRemoveComplete(int index,object value) { base.OnRemoveComplete(index,value); RibbonTabItemGroup item=value as RibbonTabItemGroup; item.ParentRibbonStrip=null; if(GroupRemoved!=null) GroupRemoved(item,new EventArgs()); } protected override void OnInsertComplete(int index,object value) { base.OnInsertComplete(index,value); RibbonTabItemGroup item=value as RibbonTabItemGroup; if(m_Owner!=null) item.ParentRibbonStrip=m_Owner; if(GroupAdded!=null) GroupAdded(item,new EventArgs()); } /// /// Copies collection into the specified array. /// /// Array to copy collection to. /// Starting index. public void CopyTo(RibbonTabItemGroup[] array, int index) { List.CopyTo(array, index); } /// /// Copies contained items to the RibbonTabItemGroup array. /// /// Array to copy to. internal void CopyTo(RibbonTabItemGroup[] array) { List.CopyTo(array,0); } internal RibbonStrip Owner { get {return m_Owner;} set {m_Owner=value;} } protected override void OnClear() { base.OnClear(); } #endregion } }