public override string ToString()
        {
            if (DisplayableStyles.Contains(Style))
            {
                PropertyCollection.Add(Style.ToString());
            }
            if (DisplayableSpaceVariations.Contains(Spacing))
            {
                PropertyCollection.Add(Spacing.ToString());
            }
            if (DisplayableAlignments.Contains(Alignment))
            {
                Attributes.Add(AlignmentAttributeKey, Alignment.ToString());
            }

            if (MakeSmall)
            {
                PropertyCollection.Add(SmallPropertyText);
            }
            if (IsVertical)
            {
                PropertyCollection.Add(VerticalPropertyText);
            }

            return(base.ToString());
        }
示例#2
0
        public void SaveToXml()
        {
            WriteToXml("Asset/FontName", Font);
            WriteToXml("Asset/Size", Size.ToString());
            WriteToXml("Asset/Style", GetStyle());
            WriteToXml("Asset/Spacing", Spacing.ToString());
            WriteToXml("Asset/UseKerning", Kerning.ToString().ToLower());

            if (HasDefChar)
            {
                WriteToXml("Asset/DefaultCharacter", DefaultCharacter.ToString());
            }
            else
            {
                RemoveFromXml("Asset/DefaultCharacter");
            }

            XmlNode root = _xmlDocument.DocumentElement;

            WriteToXml("Asset/CharacterRegions", Kerning.ToString());
            XmlNode crs = root.SelectSingleNode("Asset/CharacterRegions");

            crs.RemoveAll();

            foreach (var n in CharacterRegions)
            {
                n.Save(_xmlDocument, crs);
            }
        }
示例#3
0
 public override Property[] ToPropertyArray()
 {
     return(new Property[]
     {
         new Property {
             Name = "Rate", Value = Speed.ToString()
         },
         new Property {
             Name = "Spacing", Value = Spacing.ToString()
         },
         new Property {
             Name = "Circular", Value = Circular ? "1":"0"
         },
         new Property {
             Name = "Angle", Value = ((int)Direction).ToString()
         }
     });
 }
示例#4
0
        public string ToRawAss(string styleFormat = DefaultAssStyleFormat)
        {
            var sb = new StringBuilder();

            sb.Append("Style: ");
            var format = styleFormat.ToLowerInvariant().Substring(8).Split(',');

            for (int i = 0; i < format.Length; i++)
            {
                string f = format[i].Trim();
                if (f == "name")
                {
                    sb.Append(Name);
                }
                else if (f == "fontname")
                {
                    sb.Append(FontName);
                }
                else if (f == "fontsize")
                {
                    sb.Append(FontSize.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "primarycolour")
                {
                    sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Primary));
                }
                else if (f == "secondarycolour")
                {
                    sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Secondary));
                }
                else if (f == "outlinecolour")
                {
                    sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Outline));
                }
                else if (f == "backcolour")
                {
                    sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Background));
                }
                else if (f == "bold")
                {
                    sb.Append(BoolToRawSsa(Bold));
                }
                else if (f == "italic")
                {
                    sb.Append(BoolToRawSsa(Italic));
                }
                else if (f == "underline")
                {
                    sb.Append(BoolToRawSsa(Underline));
                }
                else if (f == "strikeout")
                {
                    sb.Append(BoolToRawSsa(Strikeout));
                }
                else if (f == "outline")
                {
                    sb.Append(OutlineWidth.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "shadow")
                {
                    sb.Append(ShadowWidth.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "alignment")
                {
                    sb.Append(Alignment);
                }
                else if (f == "marginl")
                {
                    sb.Append(MarginLeft);
                }
                else if (f == "marginr")
                {
                    sb.Append(MarginRight);
                }
                else if (f == "marginv")
                {
                    sb.Append(MarginVertical);
                }
                else if (f == "borderstyle")
                {
                    sb.Append(BorderStyle);
                }
                else if (f == "encoding")
                {
                    sb.Append('1');
                }
                else if (f == "strikeout")
                {
                    sb.Append('0');
                }
                else if (f == "scalex")
                {
                    sb.Append(ScaleX.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "scaley")
                {
                    sb.Append(ScaleY.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "spacing")
                {
                    sb.Append(Spacing.ToString(CultureInfo.InvariantCulture));
                }
                else if (f == "angle")
                {
                    sb.Append(Angle.ToString(CultureInfo.InvariantCulture));
                }

                sb.Append(',');
            }

            var s = sb.ToString().Trim();

            return(s.Substring(0, s.Length - 1));
        }
示例#5
0
 private double GetStringSpacingForEnum( Spacing e )
 {
     if( e != Spacing.Perfect && e != Spacing.Custom )
     {
         string strTemp = e.ToString();
         strTemp = strTemp.Substring( strTemp.Length - 3 );
         return Double.Parse( strTemp ) / 10;
     }
     return m_dPerPoleStringSpacing * 5;
 }