public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { string text = value as string; char ch; if (culture == null) { ch = CultureInfo.CurrentCulture.TextInfo.ListSeparator[0]; } else { ch = culture.TextInfo.ListSeparator[0]; } return(StiTextOptionsHelper.ConvertStringToTextOptions(text, ch)); } return(base.ConvertFrom(context, culture, value)); }
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { if (value == null) { return("null"); } else { char ch; if (culture == null) { ch = CultureInfo.CurrentCulture.TextInfo.ListSeparator[0]; } else { ch = culture.TextInfo.ListSeparator[0]; } StiTextOptions op = (StiTextOptions)value; //return StiTextOptionsHelper.ConvertTextOptionsToString(op, ch); return(StiTextOptionsHelper.ConvertTextOptionsToLocalizedString(op, ch, false)); } } if (destinationType == typeof(InstanceDescriptor) && value != null) { StiTextOptions options = (StiTextOptions)value; if (options.FirstTabOffset == 40f && options.DistanceBetweenTabs == 20f) { Type[] types = new Type[] { typeof(bool), typeof(bool), typeof(bool), typeof(float), typeof(HotkeyPrefix), typeof(StringTrimming) }; ConstructorInfo info = typeof(StiTextOptions).GetConstructor(types); if (info != null) { object[] objs = new object[] { options.RightToLeft, options.LineLimit, options.WordWrap, options.Angle, options.HotkeyPrefix, options.Trimming }; return(CreateNewInstanceDescriptor(info, objs)); } } else { Type[] types = new Type[] { typeof(bool), typeof(bool), typeof(bool), typeof(float), typeof(HotkeyPrefix), typeof(StringTrimming), typeof(float), typeof(float) }; ConstructorInfo info = typeof(StiTextOptions).GetConstructor(types); if (info != null) { object[] objs = new object[] { options.RightToLeft, options.LineLimit, options.WordWrap, options.Angle, options.HotkeyPrefix, options.Trimming, options.FirstTabOffset, options.DistanceBetweenTabs }; return(CreateNewInstanceDescriptor(info, objs)); } } } return(base.ConvertTo(context, culture, value, destinationType)); }