Esempio n. 1
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)
        {
            //[ <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);
            }));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public Boolean TryConvert(ICssValue value, Action <T> setResult)
 {
     return(_previous.TryConvert(value, setResult) || _next.TryConvert(value, setResult));
 }
Esempio n. 7
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, SetDistance));
 }
Esempio n. 8
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, SetDecorationStyle));
 }
Esempio n. 9
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, m => SetPosition(m.Item1.X, m.Item1.Y, m.Item2)));
 }
Esempio n. 10
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, SetAttachments));
 }
Esempio n. 11
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, m => SetWidth(m.Item1, m.Item2, m.Item3, m.Item4)));
 }
Esempio n. 12
0
 protected override Boolean IsValid(ICssValue value)
 {
     return(Converter.TryConvert(value, m => _position = m));
 }
Esempio n. 13
0
 protected override Boolean TrySetCustom(ICssValue value)
 {
     return(Converter.TryConvert(value, m => _frequency = m));
 }
Esempio n. 14
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, SetTransforms));
 }
Esempio n. 15
0
 protected override Boolean TrySetCustom(ICssValue value)
 {
     return(Converter.TryConvert(value, m => _grid = m == 1));
 }
Esempio n. 16
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, SetTimingFunctions));
 }
Esempio n. 17
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(Converters.LengthOrPercentConverter.TryConvert(value, SetAlignment) || Converter.TryConvert(value, SetAlignment));
 }
Esempio n. 18
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, m => SetRadius(m.Item1, m.Item2 ?? m.Item1)));
 }
Esempio n. 19
0
 protected override Boolean TrySetCustom(ICssValue value)
 {
     return(Converter.TryConvert(value, m => _interlace = m));
 }
Esempio n. 20
0
 public bool TryGetValue <T>(IValueConverter <T> valueConverter, out Value <T> value)
 {
     return(valueConverter.TryConvert(Slice, out value));
 }
Esempio n. 21
0
 public Boolean TryConvert(ICssValue value, Action <T> setResult)
 {
     return(_converter.TryConvert(Reduce(value), setResult));
 }
Esempio n. 22
0
 protected override Boolean IsValid(ICssValue value)
 {
     return(Converter.TryConvert(value, m => _fitting = m));
 }
Esempio n. 23
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, SetShadows));
 }
Esempio n. 24
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, m => SetRepeat(m[0], m.Length == 2 ? m[1] : m[0])));
 }
Esempio n. 25
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));
 }
Esempio n. 26
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, SetVisibility));
 }