public void Replace(int start, int count, IEnumerable <ITextItem> _additems) { AncestorRelease(); items.RemoveRange(start, count); items.InsertRange(start, _additems); this.linecount = 1; this.skipcount = isskip ? 1 : 0; for (int i = 0; i < items.Count(); i++) { items[i].Parent = this; items[i].ID = i; items[i].Level = Level + 1; if (items[i] is ITextTrim) { ITextTrim trim = (ITextTrim)items[i]; linecount += trim.GetEnterCount(); } if (items[i] is ITextZone) { ITextZone zone = (ITextZone)items[i]; linecount += zone.LineCount - 1; skipcount += zone.SkipCount; } } AncestorCapture(); }
public bool HasEnterEnd() { for (int i = Items.Count - 1; i >= 0; i--) { ITextItem item = Items[i]; if (item is ITextTrim) { ITextTrim trim = (ITextTrim)item; return(trim.GetEnterCount() > 0); } if (item is ITextLine) { ITextLine line = (ITextLine)item; return(line.HasEnterEnd()); } return(false); } return(false); }
public void Add(ITextItem item) { AncestorRelease(); item.Parent = this; item.ID = items.Count(); item.Level = Level + 1; items.Add(item); if (item is ITextTrim) { ITextTrim trim = (ITextTrim)item; linecount += trim.GetEnterCount(); } if (item is ITextZone) { ITextZone zone = (ITextZone)item; linecount += zone.LineCount - 1; skipcount += zone.SkipCount; } AncestorCapture(); }
public void Remove(ITextItem item) { AncestorRelease(); for (int i = item.ID + 1; i < items.Count(); i++) { items[i].ID--; } items.Remove(item); item.Parent = null; item.ID = -1; item.Level = -1; if (item is ITextTrim) { ITextTrim trim = (ITextTrim)item; linecount -= trim.GetEnterCount(); } if (item is ITextZone) { ITextZone zone = (ITextZone)item; linecount -= zone.LineCount - 1; skipcount -= zone.SkipCount; } AncestorCapture(); }
public void Insert(int id, ITextItem item) { AncestorRelease(); item.Parent = this; item.ID = id; item.Level = Level + 1; for (int i = id; i < items.Count(); i++) { items[i].ID++; } items.Insert(id, item); if (item is ITextTrim) { ITextTrim trim = (ITextTrim)item; linecount += trim.GetEnterCount(); } if (item is ITextZone) { ITextZone zone = (ITextZone)item; linecount += zone.LineCount - 1; skipcount += zone.SkipCount; } AncestorCapture(); }