* Test/System.Windows.Forms/DataGridViewCellTest.cs: Added
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ImageKeyConverter.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 //   Jonathan Pobst  monkey@jpobst.com\r
24 //\r
25 \r
26 #if NET_2_0\r
27 using System.Drawing;\r
28 using System.ComponentModel;\r
29 using System.Collections;\r
30 using System.Diagnostics;\r
31 using System.Globalization;\r
32 using System.Runtime.InteropServices;\r
33 \r
34 namespace System.Windows.Forms\r
35 {\r
36         public class ImageKeyConverter : StringConverter\r
37         {\r
38                 #region Constructors\r
39                 public ImageKeyConverter () { }\r
40                 #endregion Constructors\r
41 \r
42                 #region Protected Properties\r
43                 protected virtual bool IncludeNoneAsStandardValue {\r
44                         get { return true; }\r
45                 }\r
46                 #endregion Protected Properties\r
47 \r
48                 #region Public Methods\r
49                 public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType)\r
50                 {\r
51                         if (sourceType == typeof (string))\r
52                                 return true;\r
53 \r
54                         return false;\r
55                 }\r
56                 \r
57                 public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value)\r
58                 {\r
59                         if (value != null && value is string)\r
60                                 return (string) value;\r
61                         else\r
62                                 return base.ConvertFrom (context, culture, value);\r
63                 }\r
64 \r
65                 public override object ConvertTo (ITypeDescriptorContext context, CultureInfo culture,\r
66                                                   object value, Type destinationType)\r
67                 {\r
68                         if (value == null)\r
69                                 return "(none)";\r
70                         else if (destinationType == typeof (string)) {\r
71                                 if (value is string && (string) value == string.Empty)\r
72                                         return "(none)";\r
73                                 else\r
74                                         return value.ToString ();\r
75                         }\r
76                         else\r
77                                 return base.ConvertTo (context, culture, value, destinationType);\r
78                 }\r
79 \r
80                 public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context)\r
81                 {\r
82                         string[] stdVal = new string[] { string.Empty };\r
83                         return new TypeConverter.StandardValuesCollection (stdVal);\r
84                 }\r
85 \r
86                 public override bool GetStandardValuesExclusive (ITypeDescriptorContext context)\r
87                 {\r
88                         return true;\r
89                 }\r
90 \r
91                 public override bool GetStandardValuesSupported (ITypeDescriptorContext context)\r
92                 {\r
93                         return true;\r
94                 }\r
95                 #endregion Public Methods\r
96         }\r
97 }\r
98 #endif