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); }
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); }
private static XshdReference <XshdColor> GetColorReference(XmlElement element) { XshdColor color = GetColorFromElement(element); if (color != null) { return(new XshdReference <XshdColor>(color)); } else { return(new XshdReference <XshdColor>()); } }
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); }
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); }
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()); } }