Beispiel #1
0
        /// <summary>
        /// Adds a new subpart at the end of the list.
        /// </summary>
        /// <param name="subPart">The new Subpart to add.</param>
        public void AddSubPart(RenderElement subPart)
        {
            if (Subparts != null && Subparts.Contains(subPart))
            {
                return;
            }

            if (Subparts == null)
            {
                Subparts = new LinkedList <RenderElement>();
            }
            Subparts.AddLast(subPart);
            subPart.SetParent(this);
            updateBoundingBox(subPart);
        }
Beispiel #2
0
        /// <summary>
        /// Adds a subpart before a specific one.
        /// </summary>
        /// <param name="subPart">The element to add.</param>
        /// <param name="nextSibling">An element to add after this.
        /// If the element does not exist or is not inserted in the list,
        /// the element will be added as first element.
        /// </param>
        public void AddSubPartBefore(RenderElement subPart, RenderElement nextSibling)
        {
            if (Subparts != null && Subparts.Contains(subPart))
            {
                return;
            }

            if (Subparts == null)
            {
                Subparts = new LinkedList <RenderElement>();
            }
            if (Subparts.Contains(nextSibling))
            {
                Subparts.AddBefore(Subparts.Find(nextSibling), subPart);
            }
            else
            {
                Subparts.AddFirst(subPart);
            }
            subPart.SetParent(this);
            updateBoundingBox(subPart);
        }
Beispiel #3
0
        /// <summary>
        /// Adds a subpart after a specific one.
        /// </summary>
        /// <param name="subPart">The element to add.</param>
        /// <param name="previousSibling">An element to add this after.
        /// If the element does not exist or is not inserted in the list,
        /// the element will be added as last element.
        /// </param>
        public void AddSubPartAfter(RenderElement subPart, RenderElement previousSibling)
        {
            if (Subparts != null && Subparts.Contains(subPart))
            {
                return;
            }

            if (Subparts == null)
            {
                Subparts = new LinkedList <RenderElement>();
            }
            if (Subparts.Contains(previousSibling))
            {
                Subparts.AddAfter(Subparts.Find(previousSibling), subPart);
                subPart.SetParent(this);
                updateBoundingBox(subPart);
            }
            else
            {
                AddSubPart(subPart);
            }
        }