Пример #1
0
 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();
 }
Пример #2
0
 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);
 }
Пример #3
0
 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();
 }
Пример #4
0
 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();
 }
Пример #5
0
 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();
 }