1 // Permission is hereby granted, free of charge, to any person obtaining 2 // a copy of this software and associated documentation files (the 3 // "Software"), to deal in the Software without restriction, including 4 // without limitation the rights to use, copy, modify, merge, publish, 5 // distribute, sublicense, and/or sell copies of the Software, and to 6 // permit persons to whom the Software is furnished to do so, subject to 7 // the following conditions: 8 // 9 // The above copyright notice and this permission notice shall be 10 // included in all copies or substantial portions of the Software. 11 // 12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 // 20 // Copyright (c) 2005 Novell, Inc. (http://www.novell.com) 21 // 22 // Authors: 23 // Peter Bartok (pbartok@novell.com) 24 // 25 // 26 27 // COMPLETE 28 29 using System; 30 using System.Collections; 31 using System.ComponentModel; 32 using System.Globalization; 33 using System.Text; 34 35 namespace System.Windows.Forms { 36 public class OpacityConverter : TypeConverter { 37 #region Public Constructors OpacityConverter()38 public OpacityConverter() { 39 } 40 #endregion // Public Constructors 41 42 #region Public Instance Methods CanConvertFrom(ITypeDescriptorContext context, Type sourceType)43 public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { 44 if (sourceType == typeof(string)) { 45 return true; 46 } 47 return false; 48 } 49 ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)50 public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { 51 if (value is string) { 52 string s; 53 54 s = (string)value; 55 if (s.EndsWith("%")) { 56 s = ((string)value).Substring(0, ((string)value).Length - 1); 57 } 58 return Double.Parse(s, NumberStyles.Any, culture) / 100; 59 } 60 return base.ConvertFrom (context, culture, value); 61 } 62 ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)63 public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { 64 if (destinationType == typeof(string)) { 65 double v; 66 67 v = ((double)value) * 100; 68 return v.ToString() + "%"; 69 } 70 return base.ConvertTo (context, culture, value, destinationType); 71 } 72 #endregion // Public Instance Methods 73 } 74 } 75