+2005-11-30 Jackson Harper <jackson@ximian.com>
+
+ * Menu.cs: We were misusing Add. Add goes behind the specified
+ index according to the docs, and does not replace the specified
+ index. So I added an Insert method.
+
2005-11-30 Peter Dennis Bartok <pbartok@novell.com>
* TextBoxBase.cs: Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
case MenuMerge.MergeItems:
{
int pos = FindMergePosition (menuSrc.MenuItems[i].MergeOrder - 1);
- MenuItems.Add (pos, menuSrc.MenuItems[i].CloneMenu ());
+ MenuItems.Insert (pos, menuSrc.MenuItems[i].CloneMenu ());
break;
}
return index;
}
+ internal void Insert (int index, MenuItem mi)
+ {
+ if (index < 0 || index > Count)
+ throw new ArgumentOutOfRangeException ("Index of out range");
+ UpdateItemsIndices ();
+ owner.MenuChanged ();
+ }
+
public virtual MenuItem Add (string s, EventHandler e)
{
MenuItem item = new MenuItem (s, e);
void IList.Insert (int index, object value)
{
- Add (index, (MenuItem) value);
+ Insert (index, (MenuItem) value);
}
void IList.Remove (object value)