public void TraverseItem(HCItemTraverse aTraverse) { if (aTraverse != null) { HCDomainInfo vDomainInfo; for (int i = 0; i <= Items.Count - 1; i++) { if (aTraverse.Stop) { break; } if (Items[i] is HCDomainItem) { if (HCDomainItem.IsBeginMark(Items[i])) { vDomainInfo = new HCDomainInfo(); GetDomainFrom(i, HC.OffsetAfter, vDomainInfo); aTraverse.DomainStack.Push(vDomainInfo); } else { aTraverse.DomainStack.Pop(); } } aTraverse.Process(this, i, aTraverse.Tag, aTraverse.DomainStack, ref aTraverse.Stop); if (Items[i].StyleNo < HCStyle.Null) { (Items[i] as HCCustomRectItem).TraverseItem(aTraverse); } } } }
public void GetDomainStackFrom(int aItemNo, int aOffset, Stack <HCDomainInfo> aDomainStack) { HCDomainInfo vDomainInfo; for (int i = 0; i < aItemNo; i++) { if (Items[i] is HCDomainItem) { if (HCDomainItem.IsBeginMark(Items[i])) { vDomainInfo = new HCDomainInfo(); vDomainInfo.Data = this; vDomainInfo.BeginNo = i; aDomainStack.Push(vDomainInfo); } else { aDomainStack.Pop(); } } } }