IfcDoc.FormEdit.SpaceHorz C# (CSharp) Method

SpaceHorz() private method

private SpaceHorz ( double offset, bool absolute ) : void
offset double
absolute bool
return void
        private void SpaceHorz(double offset, bool absolute)
        {
            if (!(this.ctlExpressG.Selection is DocDefinition))
                return;

            // find extents
            DocRectangle dc = ((DocDefinition)this.ctlExpressG.Selection).DiagramRectangle;
            double min = dc.X;
            double max = dc.X + dc.Width;
            double thick = 0.0;

            SortedList<double, DocDefinition> sortlist = new SortedList<double, DocDefinition>();

            foreach (DocDefinition docDef in this.ctlExpressG.Multiselection)
            {
                DocRectangle rcEach = docDef.DiagramRectangle;

                if (min > rcEach.X)
                    min = rcEach.X;

                if (max < rcEach.X + rcEach.Width)
                    max = rcEach.X + rcEach.Width;

                thick += rcEach.Width;

                if (!sortlist.ContainsKey(rcEach.X))
                {
                    sortlist.Add(rcEach.X, docDef);
                }
            }

            double spacing = (max - min - thick) / (this.ctlExpressG.Multiselection.Count - 1);

            if (absolute)
            {
                spacing = offset;
            }
            else
            {
                spacing += offset;
            }

            double pos = min;
            foreach (DocDefinition docDef in sortlist.Values)
            {
                if (pos != min) // skip the first one
                {
                    docDef.DiagramRectangle.X = pos;
                }
                pos += docDef.DiagramRectangle.Width + spacing;

                this.ctlExpressG.LayoutDefinition(docDef);
            }

            this.ctlExpressG.Redraw();
        }
FormEdit