SourceCode/PROMS/DotNetBar Source Code/ContextMenusCollection.cs

102 lines
1.8 KiB
C#

using System;
namespace DevComponents.DotNetBar
{
/// <summary>
/// Summary description for Popups.
/// </summary>
public class ContextMenusCollection:System.Collections.CollectionBase
{
private DotNetBarManager m_Owner;
public ContextMenusCollection(DotNetBarManager owner)
{
m_Owner=owner;
}
public int Add(BaseItem item)
{
item.SetOwner(m_Owner);
item.Visible=false;
item.Displayed=false;
return List.Add(item);
}
public BaseItem this[int index]
{
get {return (BaseItem)(List[index]);}
set {List[index] = value;}
}
public BaseItem this[string name]
{
get {return (BaseItem)(List[this.IndexOf(name)]);}
set {List[this.IndexOf(name)] = value;}
}
public void Insert(int index, BaseItem value)
{
value.Visible=false;
value.Displayed=false;
List.Insert(index, value);
}
public int IndexOf(BaseItem value)
{
return List.IndexOf(value);
}
public int IndexOf(string name)
{
int i=-1;
foreach(BaseItem item in List)
{
i++;
if(item.Name==name)
return i;
}
return -1;
}
public bool Contains(BaseItem value)
{
return List.Contains(value);
}
public bool Contains(string name)
{
foreach(BaseItem item in List)
{
if(item.Name==name)
return true;
}
return false;
}
public void Remove(BaseItem value)
{
List.Remove(value);
}
public void CopyTo(BaseItem[] array, int index)
{
List.CopyTo(array, index);
}
protected override void OnClear()
{
IOwner owner=m_Owner as IOwner;
if(List.Count>0 && owner!=null)
{
foreach(BaseItem objSub in this)
{
if(owner!=null)
owner.RemoveShortcutsFromItem(objSub);
}
}
base.OnClear();
}
internal void SetOwner(DotNetBarManager owner)
{
m_Owner=owner;
}
}
}