// THIS FILE IS PART OF SVG PROJECT // THE SVG PROJECT IS AN OPENSOURCE LIBRARY LICENSED UNDER THE MS-PL License. // COPYRIGHT (C) svg-net. ALL RIGHTS RESERVED. // GITHUB: https://github.com/svg-net/SVG using System.Collections.Generic; namespace AntdUI.Svg.Pathing { public sealed class SvgPathSegmentList : IList { internal SvgPath _owner; private List _segments; public SvgPathSegmentList() { _segments = new List(); } public SvgPathSegment Last { get { return _segments[_segments.Count - 1]; } } public int IndexOf(SvgPathSegment item) { return _segments.IndexOf(item); } public void Insert(int index, SvgPathSegment item) { _segments.Insert(index, item); if (_owner != null) { _owner.OnPathUpdated(); } } public void RemoveAt(int index) { _segments.RemoveAt(index); if (_owner != null) { _owner.OnPathUpdated(); } } public SvgPathSegment this[int index] { get { return _segments[index]; } set { _segments[index] = value; _owner.OnPathUpdated(); } } public void Add(SvgPathSegment item) { _segments.Add(item); if (_owner != null) { _owner.OnPathUpdated(); } } public void Clear() { _segments.Clear(); } public bool Contains(SvgPathSegment item) { return _segments.Contains(item); } public void CopyTo(SvgPathSegment[] array, int arrayIndex) { _segments.CopyTo(array, arrayIndex); } public int Count { get { return _segments.Count; } } public bool IsReadOnly { get { return false; } } public bool Remove(SvgPathSegment item) { bool removed = _segments.Remove(item); if (removed) { if (_owner != null) { _owner.OnPathUpdated(); } } return removed; } public IEnumerator GetEnumerator() { return _segments.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return _segments.GetEnumerator(); } } }