Example #1
0
        private static XshdColor GetColorFromElement(XmlElement element)
        {
            if (!element.HasAttribute("bold") && !element.HasAttribute("italic") && !element.HasAttribute("color") && !element.HasAttribute("bgcolor"))
            {
                return(null);
            }
            XshdColor color = new XshdColor();

            if (element.HasAttribute("bold"))
            {
                color.FontWeight = XmlConvert.ToBoolean(element.GetAttribute("bold")) ? FontWeights.Bold : FontWeights.Normal;
            }
            if (element.HasAttribute("italic"))
            {
                color.FontStyle = XmlConvert.ToBoolean(element.GetAttribute("italic")) ? FontStyles.Italic : FontStyles.Normal;
            }
            if (element.HasAttribute("color"))
            {
                color.Foreground = ParseColor(element.GetAttribute("color"));
            }
            if (element.HasAttribute("bgcolor"))
            {
                color.Background = ParseColor(element.GetAttribute("bgcolor"));
            }
            return(color);
        }
            public object VisitColor(XshdColor color)
            {
                HighlightingColor c;

                if (color.Name != null)
                {
                    c = def.colorDict[color.Name];
                }
                else if (color.Foreground == null && color.Background == null && color.Underline == null && color.FontStyle == null && color.FontWeight == null)
                {
                    return(null);
                }
                else
                {
                    c = new HighlightingColor();
                }

                c.Name          = color.Name;
                c.Foreground    = color.Foreground;
                c.Background    = color.Background;
                c.Underline     = color.Underline;
                c.Strikethrough = color.Strikethrough;
                c.FontStyle     = color.FontStyle;
                c.FontWeight    = color.FontWeight;
                c.FontFamily    = color.FontFamily;
                c.FontSize      = color.FontSize;
                return(c);
            }
Example #3
0
        private static XshdColor ParseNamedColor(XmlReader reader)
        {
            XshdColor color = ParseColorAttributes(reader);

            // check removed: invisible named colors may be useful now that apps can read highlighting data
            //if (color.Foreground == null && color.FontWeight == null && color.FontStyle == null)
            //	throw Error(reader, "A named color must have at least one element.");
            color.Name = reader.GetAttribute("name");
            CheckElementName(reader, color.Name);
            color.ExampleText = reader.GetAttribute("exampleText");
            return(color);
        }
Example #4
0
        private static XshdReference <XshdColor> GetColorReference(XmlElement element)
        {
            XshdColor color = GetColorFromElement(element);

            if (color != null)
            {
                return(new XshdReference <XshdColor>(color));
            }
            else
            {
                return(new XshdReference <XshdColor>());
            }
        }
Example #5
0
 object IXshdVisitor.VisitColor(XshdColor color)
 {
     writer.WriteStartElement("Color", Namespace);
     if (color.Name != null)
     {
         writer.WriteAttributeString("name", color.Name);
     }
     WriteColorAttributes(color);
     if (color.ExampleText != null)
     {
         writer.WriteAttributeString("exampleText", color.ExampleText);
     }
     writer.WriteEndElement();
     return(null);
 }
Example #6
0
        private static XshdColor ParseColorAttributes(XmlReader reader)
        {
            XshdColor color = new XshdColor();

            SetPosition(color, reader);
            IXmlLineInfo position = reader as IXmlLineInfo;

            color.Foreground    = ParseColor(position, reader.GetAttribute("foreground"));
            color.Background    = ParseColor(position, reader.GetAttribute("background"));
            color.FontWeight    = ParseFontWeight(reader.GetAttribute("fontWeight"));
            color.FontStyle     = ParseFontStyle(reader.GetAttribute("fontStyle"));
            color.Underline     = reader.GetBoolAttribute("underline");
            color.Strikethrough = reader.GetBoolAttribute("strikethrough");
            color.FontFamily    = ParseFontFamily(position, reader.GetAttribute("fontFamily"));
            color.FontSize      = ParseFontSize(position, reader.GetAttribute("fontSize"));
            return(color);
        }
            public object VisitColor(XshdColor color)
            {
                if (color.Name != null)
                {
                    if (color.Name.Length == 0)
                    {
                        throw Error(color, "Name must not be the empty string");
                    }
                    if (def.colorDict.ContainsKey(color.Name))
                    {
                        throw Error(color, "Duplicate color name '" + color.Name + "'.");
                    }

                    def.colorDict.Add(color.Name, new HighlightingColor());
                }
                return(null);
            }
Example #8
0
 private void WriteColorAttributes(XshdColor color)
 {
     if (color.Foreground != null)
     {
         writer.WriteAttributeString("foreground", color.Foreground.ToString());
     }
     if (color.Background != null)
     {
         writer.WriteAttributeString("background", color.Background.ToString());
     }
     if (color.FontWeight != null)
     {
         writer.WriteAttributeString("fontWeight", V2Loader.FontWeightConverter.ConvertToInvariantString(color.FontWeight.Value).ToLowerInvariant());
     }
     if (color.FontStyle != null)
     {
         writer.WriteAttributeString("fontStyle", V2Loader.FontStyleConverter.ConvertToInvariantString(color.FontStyle.Value).ToLowerInvariant());
     }
 }