* Test/System.Windows.Forms/DataGridViewCellTest.cs: Added
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / NumericUpDownAccelerationCollection.cs
1 // Permission is hereby granted, free of charge, to any person obtaining\r
2 // a copy of this software and associated documentation files (the\r
3 // "Software"), to deal in the Software without restriction, including\r
4 // without limitation the rights to use, copy, modify, merge, publish,\r
5 // distribute, sublicense, and/or sell copies of the Software, and to\r
6 // permit persons to whom the Software is furnished to do so, subject to\r
7 // the following conditions:\r
8 //\r
9 // The above copyright notice and this permission notice shall be\r
10 // included in all copies or substantial portions of the Software.\r
11 //\r
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
19 //\r
20 // Copyright (c) 2007 Novell, Inc.\r
21 //\r
22 // Authors:\r
23 //      Andreia Gaita (avidigal@novell.com)\r
24 \r
25 #if NET_2_0\r
26 \r
27 using System;\r
28 using System.Collections;\r
29 using System.ComponentModel;\r
30 using System.Collections.Generic;\r
31 \r
32 namespace System.Windows.Forms\r
33 {\r
34         [ListBindable (false)]\r
35         public class NumericUpDownAccelerationCollection : MarshalByRefObject, ICollection<NumericUpDownAcceleration>, \r
36                 IEnumerable<NumericUpDownAcceleration>, IEnumerable\r
37         {\r
38                 #region Fields\r
39                 private List<NumericUpDownAcceleration> items;\r
40                 #endregion\r
41 \r
42                 #region Properties\r
43                 public int Count {\r
44                         get { return items.Count; }\r
45                 }\r
46 \r
47                 public bool IsReadOnly {\r
48                         get { return false; }\r
49                 }\r
50 \r
51                 public NumericUpDownAcceleration this[int index] {\r
52                         get { return items[index]; }\r
53                 }\r
54                 #endregion\r
55 \r
56                 #region Constructor\r
57                 public NumericUpDownAccelerationCollection ()\r
58                 {\r
59                         items = new List<NumericUpDownAcceleration> ();\r
60                 }\r
61                 #endregion\r
62 \r
63                 #region Public Methods\r
64                 public void Add (NumericUpDownAcceleration acceleration)\r
65                 {\r
66                         if (acceleration == null)\r
67                                 throw new ArgumentNullException ("Acceleration cannot be null");\r
68 \r
69                         int i = 0;\r
70                         for (; i < items.Count; i++) {\r
71                                 if (acceleration.Seconds < items[i].Seconds)\r
72                                         break;\r
73                         }\r
74                         items.Insert (i, acceleration);\r
75                 }\r
76 \r
77                 public void AddRange (params NumericUpDownAcceleration[] accelerations)\r
78                 {\r
79                         for (int i = 0; i < accelerations.Length; i++)\r
80                                 Add (accelerations [i]);\r
81                 }\r
82 \r
83                 public void Clear ()\r
84                 {\r
85                         items.Clear ();\r
86                 }\r
87 \r
88                 public bool Contains (NumericUpDownAcceleration acceleration)\r
89                 {\r
90                         return items.Contains (acceleration);\r
91                 }\r
92 \r
93                 public void CopyTo (NumericUpDownAcceleration[] array, int index)\r
94                 {\r
95                         items.CopyTo (array, index);\r
96                 }\r
97 \r
98                 public bool Remove (NumericUpDownAcceleration acceleration)\r
99                 {\r
100                         return items.Remove (acceleration);\r
101                 }\r
102 \r
103                 IEnumerator<NumericUpDownAcceleration> IEnumerable<NumericUpDownAcceleration>.GetEnumerator ()\r
104                 {\r
105                         return items.GetEnumerator ();\r
106                 }\r
107 \r
108                 IEnumerator IEnumerable.GetEnumerator ()\r
109                 {\r
110                         return items.GetEnumerator ();\r
111                 }\r
112                 #endregion\r
113         }\r
114 }\r
115 #endif