Ejemplo n.º 1
0
 internal CSSBorderImageSliceProperty()
     : base(PropertyNames.BorderImageSlice)
 {
     _inherited = false;
     _top       = _default;
     _right     = _default;
     _bottom    = _default;
     _left      = _default;
     _fill      = false;
 }
Ejemplo n.º 2
0
        Boolean Evaluate(CSSValueList values)
        {
            if (values.Length > 5)
            {
                return(false);
            }

            var fill  = false;
            var modes = new List <SliceMode>(values.Length);

            foreach (var value in values)
            {
                if (!fill && value.Is("fill"))
                {
                    fill = true;
                }
                else if (ToMode(value) == null)
                {
                    return(false);
                }
                else
                {
                    modes.Add(ToMode(value));
                }
            }

            if (modes.Count == 5 || modes.Count == 0)
            {
                return(false);
            }

            _fill   = fill;
            _top    = modes[0];
            _right  = modes[0];
            _left   = modes[0];
            _bottom = modes[0];

            if (modes.Count > 1)
            {
                _right = modes[1];
                _left  = modes[1];

                if (modes.Count > 2)
                {
                    _bottom = modes[2];

                    if (modes.Count > 3)
                    {
                        _left = modes[3];
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
        protected override Boolean IsValid(CSSValue value)
        {
            var mode = ToMode(value);

            if (mode != null)
            {
                _top = _left = _bottom = _right = mode;
            }
            else if (value is CSSValueList)
            {
                return(Evaluate((CSSValueList)value));
            }
            else if (value != CSSValue.Inherit)
            {
                return(false);
            }

            return(true);
        }