Exemple #1
0
        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);
                    }
                }
            }
        }
Exemple #2
0
        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();
                    }
                }
            }
        }