/// <summary> /// Parse length property to add only valid lengths. /// </summary> /// <param name="propName">the name of the css property to add</param> /// <param name="propValue">the value of the css property to add</param> /// <param name="properties">the properties collection to add to</param> private static void ParseLengthProperty(string propName, string propValue, Dictionary <string, string> properties) { if (CssValueParser.IsValidLength(propValue) || propValue.Equals(CssConstants.Auto, StringComparison.OrdinalIgnoreCase)) { properties[propName] = propValue; } }
/// <summary> /// Init. /// </summary> public CssParser(RAdapter adapter) { ArgChecker.AssertArgNotNull(adapter, "global"); _valueParser = new CssValueParser(adapter); _adapter = adapter; }
/// <summary> /// Parse the given substring to extract border width substring. /// Assume given substring is not empty and all indexes are valid!<br/> /// </summary> /// <returns>found border width value or null</returns> private static string ParseBorderWidth(string str, int idx, int length) { if ((length > 2 && char.IsDigit(str[idx])) || (length > 3 && str[idx] == '.')) { string unit = null; if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Px)) { unit = CssConstants.Px; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Pt)) { unit = CssConstants.Pt; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Em)) { unit = CssConstants.Em; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Ex)) { unit = CssConstants.Ex; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.In)) { unit = CssConstants.In; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Cm)) { unit = CssConstants.Cm; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Mm)) { unit = CssConstants.Mm; } else if (CommonUtils.SubStringEquals(str, idx + length - 2, 2, CssConstants.Pc)) { unit = CssConstants.Pc; } if (unit != null) { if (CssValueParser.IsFloat(str, idx, length - 2)) { return(str.Substring(idx, length)); } } } else { if (CommonUtils.SubStringEquals(str, idx, length, CssConstants.Thin)) { return(CssConstants.Thin); } if (CommonUtils.SubStringEquals(str, idx, length, CssConstants.Medium)) { return(CssConstants.Medium); } if (CommonUtils.SubStringEquals(str, idx, length, CssConstants.Thick)) { return(CssConstants.Thick); } } return(null); }