* Menu.cs: We were misusing Add. Add goes behind the specified
authorJackson Harper <jackson@novell.com>
Wed, 30 Nov 2005 09:54:17 +0000 (09:54 -0000)
committerJackson Harper <jackson@novell.com>
Wed, 30 Nov 2005 09:54:17 +0000 (09:54 -0000)
index according to the docs, and does not replace the specified
index. So I added an Insert method.

svn path=/trunk/mcs/; revision=53670

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/Menu.cs

index bbceccdba717dffe30c9a2c2a62f1c688fd3b552..040c14554aa3f6bf4f64c37e16592b1461adf672 100644 (file)
@@ -1,3 +1,9 @@
+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
index bf2535d67183a3040244f60be6208436536bd530..b6040482cfc95f9267cf553dce3f1dac7ae72a3d 100644 (file)
@@ -227,7 +227,7 @@ namespace System.Windows.Forms
                                        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;
                                        }
@@ -345,6 +345,14 @@ namespace System.Windows.Forms
                                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);
@@ -408,7 +416,7 @@ namespace System.Windows.Forms
 
                        void IList.Insert (int index, object value)
                        {
-                               Add (index, (MenuItem) value);
+                               Insert (index, (MenuItem) value);
                        }
 
                        void IList.Remove (object value)