//done
        private TextStyle.TextStyle GetStyle(string Name)
        {
            if (styleLookup[Name] == null)
            {
                var s = new TextStyle.TextStyle();
                styleLookup.Add(Name, s);
            }

            return((TextStyle.TextStyle)styleLookup[Name]);
        }
        //done
        private void ParseStyle(XmlNode node)
        {
            string Name = "";
            string ForeColor = "", BackColor = "";
            bool   Bold = false, Italic = false, Underline = false;


            foreach (XmlAttribute att in node.Attributes)
            {
                switch (att.Name.ToLowerInvariant())
                {
                case "name":
                    Name = att.Value;
                    break;

                case "forecolor":
                    ForeColor = att.Value;
                    break;

                case "backcolor":
                    BackColor = att.Value;
                    break;

                case "bold":
                    Bold = bool.Parse(att.Value);
                    break;

                case "italic":
                    Italic = bool.Parse(att.Value);
                    break;

                case "underline":
                    Underline = bool.Parse(att.Value);
                    break;
                }
            }

            TextStyle.TextStyle st = GetStyle(Name);

            if (BackColor != "")
            {
                st.BackColor = Color.FromName(BackColor);
            }

            st.ForeColor = Color.FromName(ForeColor);
            st.Bold      = Bold;
            st.Italic    = Italic;
            st.Underline = Underline;
            st.Name      = Name;
        }