Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }