internal CSSBorderImageSliceProperty() : base(PropertyNames.BorderImageSlice) { _inherited = false; _top = _default; _right = _default; _bottom = _default; _left = _default; _fill = false; }
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); }
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); }