/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { //[ <bg-layer> , ]* <final-bg-layer> where: // <bg-layer> = // <bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> // <final-bg-layer> = // <bg-image> || <position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box> || <background-color> return(Converter.TryConvert(value, m => { _image.TrySetValue(Transform(m, n => n.Item1)); _position.TrySetValue(Transform(m, n => n.Item2.Item1)); _size.TrySetValue(Transform(m, n => n.Item2.Item2)); _repeat.TrySetValue(Transform(m, n => n.Item3)); _attachment.TrySetValue(Transform(m, n => n.Item4)); _origin.TrySetValue(Transform(m, n => n.Item5)); _clip.TrySetValue(Transform(m, n => n.Item6)); _color.TrySetValue(m.Item2.Item7); })); }
public Boolean TryConvert(ICssValue value, Action <T[]> setResult) { var items = value as CssValueList; if (items == null || items.Length != _arguments) { return(false); } var array = new T[_arguments]; for (int i = 0; i < _arguments; i++) { if (!_converter.TryConvert(items[i], m => array[i] = m)) { return(false); } } setResult(array); return(true); }
public Boolean TryConvert(ICssValue value, Action <T[]> setResult) { var items = value.AsEnumeration().ToArray(); if (items.Length < _minimum || items.Length > _maximum) { return(false); } var targets = new T[items.Length]; for (var i = 0; i < items.Length; i++) { if (!_converter.TryConvert(items[i], nv => targets[i] = nv)) { return(false); } } setResult(targets); return(true); }
public Boolean TryConvert(ICssValue value, Action <Tuple <T[], U> > setResult) { var values = value as CssValueList; var end = default(ICssValue); if (values != null) { var items = values.ToList(); end = items[items.Count - 1].Reduce(); items.RemoveAt(items.Count - 1); values = items.ToSeparatedList(); } else { values = new CssValueList(); end = value; } T[] v1 = default(T[]); U v2 = default(U); if (!_endConverter.TryConvert(end, m => v2 = m)) { return(false); } if (values.Length != 0 && !_listConverter.TryConvert(values, m => v1 = m)) { return(false); } else if (values.Length == 0) { v1 = new T[0]; } setResult(Tuple.Create(v1, v2)); return(true); }
Value <TValue> GetValue() { Value <TValue> value = null; TextSlice slice; if (_position.HasValue && _slice.TryGetSlice(_position.Value, out slice)) { Value <TValue> getValue; value = _converter.TryConvert(slice, out getValue) ? getValue : new InvalidValue <TValue>(slice); } else { slice = _slice; } _valueSlice = slice ?? Slice.Missing; _value = value ?? Value.Missing <TValue>(); _valueComputed = true; return(_value); }
public Boolean TryConvert(ICssValue value, Action <T> setResult) { return(_previous.TryConvert(value, setResult) || _next.TryConvert(value, setResult)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetDistance)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetDecorationStyle)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => SetPosition(m.Item1.X, m.Item1.Y, m.Item2))); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetAttachments)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => SetWidth(m.Item1, m.Item2, m.Item3, m.Item4))); }
protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => _position = m)); }
protected override Boolean TrySetCustom(ICssValue value) { return(Converter.TryConvert(value, m => _frequency = m)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetTransforms)); }
protected override Boolean TrySetCustom(ICssValue value) { return(Converter.TryConvert(value, m => _grid = m == 1)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetTimingFunctions)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converters.LengthOrPercentConverter.TryConvert(value, SetAlignment) || Converter.TryConvert(value, SetAlignment)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => SetRadius(m.Item1, m.Item2 ?? m.Item1))); }
protected override Boolean TrySetCustom(ICssValue value) { return(Converter.TryConvert(value, m => _interlace = m)); }
public bool TryGetValue <T>(IValueConverter <T> valueConverter, out Value <T> value) { return(valueConverter.TryConvert(Slice, out value)); }
public Boolean TryConvert(ICssValue value, Action <T> setResult) { return(_converter.TryConvert(Reduce(value), setResult)); }
protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => _fitting = m)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetShadows)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, m => SetRepeat(m[0], m.Length == 2 ? m[1] : m[0]))); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetPosition)); }
/// <summary> /// Determines if the given value represents a valid state of this property. /// </summary> /// <param name="value">The state that should be used.</param> /// <returns>True if the state is valid, otherwise false.</returns> protected override Boolean IsValid(ICssValue value) { return(Converter.TryConvert(value, SetVisibility)); }