private bool PassesSwitchAllTest(ISvgTests element) { SvgDocument ownerDocument = ((SvgElement)element).OwnerDocument; bool requiredFeatures = true; if (element.RequiredFeatures.NumberOfItems > 0) { foreach (string req in element.RequiredFeatures) { if (!ownerDocument.Supports(req, string.Empty)) { requiredFeatures = false; break; } } } if (!requiredFeatures) { return(false); } bool requiredExtensions = true; if (element.RequiredExtensions.NumberOfItems > 0) { foreach (string req in element.RequiredExtensions) { if (!ownerDocument.Supports(req, string.Empty)) { requiredExtensions = false; break; } } } if (!requiredExtensions) { return(false); } bool systemLanguage = true; if (element.SystemLanguage.NumberOfItems > 0) { systemLanguage = false; // TODO: or if one of the languages indicated by user preferences exactly // equals a prefix of one of the languages given in the value of this // parameter such that the first tag character following the prefix is "-". foreach (string req in element.SystemLanguage) { if (string.Equals(req, _currentLang, StringComparison.OrdinalIgnoreCase)) { systemLanguage = true; } } } return(systemLanguage); }
private bool passesAllTest(ISvgTests element) { SvgDocument ownerDocument = ((SvgElement)element).OwnerDocument; if(element.RequiredFeatures.NumberOfItems>0) { foreach(string req in (SvgStringList)element.RequiredFeatures) { if(!ownerDocument.Supports(req, String.Empty)) return false; } } if(element.RequiredExtensions.NumberOfItems>0) { foreach(string req in (SvgStringList)element.RequiredExtensions) { if(!ownerDocument.Supports(req, String.Empty)) return false; } } if(element.SystemLanguage.NumberOfItems>0) { // TODO: or if one of the languages indicated by user preferences exactly equals a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix is "-". bool found = false; string currentLang = System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName; foreach(string req in (SvgStringList)element.SystemLanguage) { if(req == currentLang) found = true; } if(!found) return false; } return true; }
public override void RenderChildren(ISvgRenderer renderer) { // search through all child elements and find one that passes all tests foreach (XmlNode node in ChildNodes) { SvgElement element = node as SvgElement; ISvgTests testsElement = node as ISvgTests; if (element != null && testsElement != null && passesAllTest(testsElement)) { element.Render(renderer); // make sure we only render the first element that passes break; } } }
private bool passesAllTest(ISvgTests element) { SvgDocument ownerDocument = ((SvgElement)element).OwnerDocument; if (element.RequiredFeatures.NumberOfItems > 0) { foreach (string req in (SvgStringList)element.RequiredFeatures) { if (!ownerDocument.Supports(req, String.Empty)) { return(false); } } } if (element.RequiredExtensions.NumberOfItems > 0) { foreach (string req in (SvgStringList)element.RequiredExtensions) { if (!ownerDocument.Supports(req, String.Empty)) { return(false); } } } if (element.SystemLanguage.NumberOfItems > 0) { // TODO: or if one of the languages indicated by user preferences exactly equals a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix is "-". bool found = false; string currentLang = System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName; foreach (string req in (SvgStringList)element.SystemLanguage) { if (req == currentLang) { found = true; } } if (!found) { return(false); } } return(true); }
private void RenderSwitchChildren(ISvgElement svgElement) { // search through all child elements and find one that passes all tests foreach (XmlNode node in svgElement.ChildNodes) { if (node.NodeType != XmlNodeType.Element) { continue; } SvgElement element = node as SvgElement; ISvgTests testsElement = node as ISvgTests; if (element != null && testsElement != null && PassesSwitchAllTest(testsElement)) { this.Render(element); // make sure we only render the first element that passes break; } } }
private bool PassesSwitchAllTest(ISvgTests element) { SvgDocument ownerDocument = ((SvgElement)element).OwnerDocument; bool requiredFeatures = true; if (element.RequiredFeatures.NumberOfItems > 0) { foreach (string req in element.RequiredFeatures) { if (!ownerDocument.Supports(req, String.Empty)) { requiredFeatures = false; break; } } } if (!requiredFeatures) { return false; } bool requiredExtensions = true; if (element.RequiredExtensions.NumberOfItems > 0) { foreach (string req in element.RequiredExtensions) { if (!ownerDocument.Supports(req, String.Empty)) { requiredExtensions = false; break; } } } if (!requiredExtensions) { return false; } bool systemLanguage = true; if (element.SystemLanguage.NumberOfItems > 0) { systemLanguage = false; // TODO: or if one of the languages indicated by user preferences exactly // equals a prefix of one of the languages given in the value of this // parameter such that the first tag character following the prefix is "-". foreach (string req in element.SystemLanguage) { if (String.Equals(req, _currentLang, StringComparison.OrdinalIgnoreCase)) { systemLanguage = true; } } } return systemLanguage; }