示例#1
0
        /// <summary>
        /// Init.
        /// </summary>
        public CssParser(RAdapter adapter)
        {
            ArgChecker.AssertArgNotNull(adapter, "global");

            _valueParser = new CssValueParser(adapter);
            _adapter = adapter;
        }
示例#2
0
        /// <summary>
        /// Init.
        /// </summary>
        public CssParser(RAdapter adapter)
        {
            ArgChecker.AssertArgNotNull(adapter, "global");

            _valueParser = new CssValueParser(adapter);
            _adapter     = adapter;
        }
示例#3
0
 /// <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;
     }
 }
示例#4
0
        /// <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);
        }