CssBackgroundPositionProperty
sealed class CssBackgroundPositionProperty : CssProperty, ICssBackgroundPositionProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-position
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssBackgroundPositionProperty : CssProperty, ICssBackgroundPositionProperty, ICssProperty
{
internal static readonly Point Default = Point.Center;
internal static readonly IValueConverter<Point> SingleConverter = Converters.PointConverter;
internal static readonly IValueConverter<Point[]> Converter = SingleConverter.FromList();
private readonly List<Point> _positions;
public IEnumerable<Point> Positions => _positions;
internal CssBackgroundPositionProperty(CssStyleDeclaration rule)
: base(PropertyNames.BackgroundPosition, rule, PropertyFlags.Animatable)
{
_positions = new List<Point>();
Reset();
}
public void SetPositions(IEnumerable<Point> positions)
{
_positions.Clear();
_positions.AddRange(positions);
}
internal override void Reset()
{
_positions.Clear();
_positions.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetPositions);
}
}
}