示例#1
0
 private void Draw(PaintArgs p, Plot plot, PlotAxis axis, bool drawMajors)
 {
     if (this.Visible && plot != null)
     {
         string       dockDataViewName = axis.DockDataViewName;
         PlotDataView plotDataView     = plot.DataViews[dockDataViewName];
         if (plotDataView != null)
         {
             p.Graphics.SetClip(plotDataView.BoundsClip);
             this.DrawToDataView(p, axis, plotDataView.BoundsClip, drawMajors);
             foreach (PlotDataView dataView in plot.DataViews)
             {
                 if (dataView != plotDataView)
                 {
                     if (axis.DockVertical)
                     {
                         if (PlotBase.GetNamesMatch(dataView.GridLinesMirrorVertical, dockDataViewName))
                         {
                             this.DrawToDataView(p, axis, dataView.BoundsClip, drawMajors);
                         }
                     }
                     else if (PlotBase.GetNamesMatch(dataView.GridLinesMirrorHorizontal, dockDataViewName))
                     {
                         this.DrawToDataView(p, axis, dataView.BoundsClip, drawMajors);
                     }
                 }
             }
         }
     }
 }
示例#2
0
 private void DrawLine(PaintArgs p, PlotAxis axis, Rectangle r, Pen pen, int APixels)
 {
     if (axis.DockHorizontal)
     {
         p.Graphics.DrawLine(pen, r.Left, APixels, r.Right, APixels);
     }
     else
     {
         p.Graphics.DrawLine(pen, APixels, r.Top, APixels, r.Bottom);
     }
 }
示例#3
0
 public override void ObjectAdded(PlotObject value)
 {
     base.ObjectAdded(value);
     if (value is PlotAxis && value.Name == this.m_DockStartAxisName)
     {
         this.m_CachedDockStartAxis = (value as PlotAxis);
     }
     else if (value is PlotAxis && value.Name == this.m_DockStopAxisName)
     {
         this.m_CachedDockStopAxis = (value as PlotAxis);
     }
 }
示例#4
0
 public override void ObjectRemoved(PlotObject value)
 {
     base.ObjectRemoved(value);
     if (value == this.m_CachedDockStartAxis)
     {
         this.m_CachedDockStartAxis = null;
     }
     else if (value == this.m_CachedDockStopAxis)
     {
         this.m_CachedDockStopAxis = null;
     }
 }
示例#5
0
 private void Draw(PaintArgs p, Pen pen, PlotDataCursorDisplayCollection displays)
 {
     if (this.HitRegion != null)
     {
         this.HitRegion.Dispose();
         this.HitRegion = null;
     }
     if (this.Visible && this.DataCursor != null && this.XAxis != null && this.YAxis != null)
     {
         bool     swap              = this.Style == PlotAxisReference.YAxis ^ this.DataCursor.XYSwapped;
         PlotAxis axisPosition      = this.AxisPosition;
         PlotAxis axisRange         = this.AxisRange;
         int      positionPixels    = this.PositionPixels;
         int      dataViewPixelsMin = axisRange.DataViewPixelsMin;
         int      dataViewPixelsMax = axisRange.DataViewPixelsMax;
         this.m_PositionArray.Clear();
         this.m_PositionArray.Add(dataViewPixelsMin);
         this.m_PositionArray.Add(dataViewPixelsMax);
         if (this.DataCursor.WindowShowing)
         {
             foreach (PlotDataCursorDisplay display in displays)
             {
                 if (!display.DisableWindow)
                 {
                     if (this.Style == PlotAxisReference.XAxis)
                     {
                         this.m_PositionArray.Add(this.AxisRange.PercentToPixels(display.YPosition) - this.DataCursor.Window.Size);
                         this.m_PositionArray.Add(this.AxisRange.PercentToPixels(display.YPosition) + this.DataCursor.Window.Size);
                     }
                     else
                     {
                         this.m_PositionArray.Add(this.AxisRange.PercentToPixels(display.XPosition) - this.DataCursor.Window.Size);
                         this.m_PositionArray.Add(this.AxisRange.PercentToPixels(display.XPosition) + this.DataCursor.Window.Size);
                     }
                 }
             }
         }
         this.m_PositionArray.Sort();
         for (int i = 0; i < this.m_PositionArray.Count; i += 2)
         {
             Point pt  = iDraw.Point(swap, positionPixels, (int)this.m_PositionArray[i]);
             Point pt2 = iDraw.Point(swap, positionPixels, (int)this.m_PositionArray[i + 1]);
             p.Graphics.DrawLine(pen, pt, pt2);
         }
         Rectangle b = iRectangle.FromLTRB(swap, positionPixels, dataViewPixelsMin, positionPixels, dataViewPixelsMax);
         b.Inflate(this.DataCursor.HitRegionSize, this.DataCursor.HitRegionSize);
         GraphicsPath graphicsPath = new GraphicsPath();
         graphicsPath.AddRectangle(Rectangle.Intersect(this.DataCursor.BoundsClip, b));
         this.HitRegion        = new Region(graphicsPath);
         this.m_PositionPixels = positionPixels;
     }
 }
示例#6
0
        private int AddXY(double x, double y, bool nullValue, bool emptyValue, double radius)
        {
            if (this.RequireConsecutiveData)
            {
                base.CheckForValidNextX(x);
            }
            PlotDataPointBubble plotDataPointBubble = (PlotDataPointBubble)base.m_Data.AddNew();

            base.DataPointInitializing = true;
            try
            {
                plotDataPointBubble.X      = x;
                plotDataPointBubble.Y      = y;
                plotDataPointBubble.Null   = nullValue;
                plotDataPointBubble.Empty  = emptyValue;
                plotDataPointBubble.Radius = radius;
            }
            finally
            {
                base.DataPointInitializing = false;
            }
            base.m_Data.UpdateMinMaxMean(plotDataPointBubble);
            if (base.SendXAxisTrackingData)
            {
                PlotAxis xAxis = base.XAxis;
                if (xAxis != null)
                {
                    xAxis.Tracking.NewData(x - radius);
                    xAxis.Tracking.NewData(x + radius);
                }
            }
            if (!nullValue && !emptyValue && base.SendYAxisTrackingData)
            {
                PlotAxis yAxis = base.YAxis;
                if (yAxis != null)
                {
                    yAxis.Tracking.NewData(y + radius);
                    yAxis.Tracking.NewData(y - radius);
                }
            }
            this.DoDataChange();
            return(base.m_Data.LastNewDataPointIndex);
        }
示例#7
0
        private int AddXY(double x, double y, bool nullValue, bool emptyValue, double width)
        {
            base.CheckForValidNextX(x);
            PlotDataPointBar plotDataPointBar = (PlotDataPointBar)base.m_Data.AddNew();

            base.DataPointInitializing = true;
            try
            {
                plotDataPointBar.X     = x;
                plotDataPointBar.Y     = y;
                plotDataPointBar.Null  = nullValue;
                plotDataPointBar.Empty = emptyValue;
                plotDataPointBar.Width = width;
            }
            finally
            {
                base.DataPointInitializing = false;
            }
            base.m_Data.UpdateMinMaxMean(plotDataPointBar);
            if (base.SendXAxisTrackingData)
            {
                PlotAxis xAxis = base.XAxis;
                if (xAxis != null)
                {
                    base.XAxis.Tracking.NewData(x - this.Width / 2.0);
                    base.XAxis.Tracking.NewData(x + this.Width / 2.0);
                }
            }
            if (!nullValue && !emptyValue && base.SendYAxisTrackingData)
            {
                PlotAxis yAxis = base.YAxis;
                if (yAxis != null)
                {
                    base.YAxis.Tracking.NewData(y);
                    base.YAxis.Tracking.NewData(this.Reference);
                }
            }
            this.DoDataChange();
            return(base.m_Data.LastNewDataPointIndex);
        }
示例#8
0
 private void DrawToDataView(PaintArgs p, PlotAxis axis, Rectangle r, bool drawMajors)
 {
     p.Graphics.SetClip(r);
     if (this.Major.Visible && drawMajors)
     {
         Pen pen = this.I_Major.GetPen(p);
         foreach (ScaleTickBase tick in axis.ScaleDisplay.TickList)
         {
             if (tick is ScaleTickMajor)
             {
                 this.DrawLine(p, axis, r, pen, axis.ScaleDisplay.ValueToPixels(tick.Value));
             }
         }
     }
     if (this.Mid.Visible && drawMajors)
     {
         Pen pen = this.I_Mid.GetPen(p);
         foreach (ScaleTickBase tick2 in axis.ScaleDisplay.TickList)
         {
             if (tick2 is ScaleTickMid)
             {
                 this.DrawLine(p, axis, r, pen, axis.ScaleDisplay.ValueToPixels(tick2.Value));
             }
         }
     }
     if (this.Minor.Visible && !drawMajors)
     {
         Pen pen = this.I_Minor.GetPen(p);
         foreach (ScaleTickBase tick3 in axis.ScaleDisplay.TickList)
         {
             if (tick3 is ScaleTickMinor)
             {
                 this.DrawLine(p, axis, r, pen, axis.ScaleDisplay.ValueToPixels(tick3.Value));
             }
         }
     }
 }
示例#9
0
        private void Draw(PaintArgs p, PlotDataCursorDisplay display)
        {
            int num = 3;

            if (this.DataCursor.WindowShowing)
            {
                num += this.DataCursor.Window.Size;
            }
            if (this.HitRegion != null)
            {
                this.HitRegion.Dispose();
                this.HitRegion = null;
            }
            if (this.Visible && !this.Hide && this.DataCursor != null && this.XAxis != null && this.YAxis != null)
            {
                PlotDataCursorPointer pointer  = this.DataCursor.Pointer1;
                PlotDataCursorPointer pointer2 = this.DataCursor.Pointer2;
                Pen  pen = p.Graphics.Pen(this.DataCursor.Line.Color, DashStyle.Dash, (float)this.DataCursor.Line.Thickness);
                bool flag;
                int  num2;
                if (pointer.Visible && pointer2.Visible && pointer.AxisPosition == pointer2.AxisPosition)
                {
                    flag = true;
                    this.AxisPosition = pointer.AxisRange;
                    num2 = (pointer.PositionPixels + pointer2.PositionPixels) / 2;
                }
                else if (pointer.Visible && pointer2.Visible)
                {
                    flag = false;
                    if (pointer.AxisRange.DockHorizontal)
                    {
                        this.AxisPosition = pointer.AxisRange;
                        num2 = pointer.PositionPixels;
                    }
                    else
                    {
                        this.AxisPosition = pointer2.AxisRange;
                        num2 = pointer2.PositionPixels;
                    }
                }
                else
                {
                    flag = false;
                    if (pointer.Visible)
                    {
                        this.AxisPosition = pointer.AxisRange;
                        num2 = pointer.AxisPosition.PercentToPixels(display.XPosition);
                    }
                    else
                    {
                        this.AxisPosition = pointer2.AxisRange;
                        num2 = pointer2.AxisPosition.PercentToPixels(display.YPosition);
                    }
                }
                Orientation orientation = this.AxisPosition.DockHorizontal ? Orientation.Vertical : Orientation.Horizontal;
                Size        size        = p.Graphics.MeasureString(this.Text, this.Font);
                int         width       = size.Width;
                int         height      = size.Height;
                int         num3        = width + 6;
                int         num4        = height + 6;
                int         num5        = this.AxisPosition.PercentToPixels(display.HintPosition);
                Rectangle   r;
                if (orientation == Orientation.Vertical)
                {
                    int num6 = width + num + 6;
                    r = new Rectangle(num2 - num3 / 2, num5 - num4 / 2, num3, num4);
                    if (!flag)
                    {
                        if (num2 + num6 > this.DataCursor.BoundsClip.Right)
                        {
                            r.Offset(-(num3 / 2 + num), 0);
                        }
                        else
                        {
                            r.Offset(num3 / 2 + num, 0);
                        }
                    }
                    else
                    {
                        p.Graphics.DrawLine(pen, pointer.PositionPixels, num5, pointer2.PositionPixels, num5);
                    }
                }
                else
                {
                    int num6 = height + num + 6;
                    r = new Rectangle(num5 - num3 / 2, num2 - num4 / 2, num3, num4);
                    if (!flag)
                    {
                        if (num2 + num6 > this.DataCursor.BoundsClip.Bottom)
                        {
                            r.Offset(0, -(num4 / 2 + num));
                        }
                        else
                        {
                            r.Offset(0, num4 / 2 + num);
                        }
                    }
                    else
                    {
                        p.Graphics.DrawLine(pen, num5, pointer.PositionPixels, num5, pointer2.PositionPixels);
                    }
                }
                this.DrawHintBox(p, r);
            }
        }
示例#10
0
 void IPlotAxisGridLines.DrawMinors(PaintArgs p, Plot plot, PlotAxis axis)
 {
     this.Draw(p, plot, axis, false);
 }
示例#11
0
 void IPlotAxisGridLines.DrawMajors(PaintArgs p, Plot plot, PlotAxis axis)
 {
     this.Draw(p, plot, axis, true);
 }
示例#12
0
        public void CalcualteDimensions(PaintArgs p)
        {
            this.TotalStackingPixels = 0;
            this.MaxDepthScreen      = 0;
            this.MaxDepthLayout      = 0;
            this.MaxDockMargin       = -10000;
            this.OverlapStart        = 0;
            PlotLayoutBase plotLayoutBase  = null;
            PlotLayoutBase plotLayoutBase2 = null;

            for (int i = 0; i < this.Items.Count; i++)
            {
                PlotLayoutBase @object = this.Items[i].Object;
                this.MaxDepthLayout            = Math.Max(this.MaxDepthLayout, 21);
                @object.TextOverlapPixelsStart = 0;
                @object.TextOverlapPixelsStop  = 0;
                @object.StackingPixelsStart    = 0;
                @object.StackingPixelsStop     = 0;
                if (@object.Visible)
                {
                    this.MaxDepthScreen = Math.Max(this.MaxDepthScreen, @object.DockDepthPixels);
                    this.MaxDockMargin  = Math.Max(this.MaxDockMargin, @object.DockMargin);
                    if (plotLayoutBase == null)
                    {
                        plotLayoutBase = @object;
                    }
                    plotLayoutBase2 = @object;
                }
            }
            if (this.MaxDockMargin == -10000)
            {
                this.MaxDockMargin = 0;
            }
            foreach (PlotLayoutBlockItem item in this.Items)
            {
                PlotAxis plotAxis = item.Object as PlotAxis;
                if (plotAxis != null)
                {
                    bool flag = plotLayoutBase != plotLayoutBase2;
                    if (plotAxis.DockForceStacking)
                    {
                        flag = true;
                    }
                    if (flag)
                    {
                        int num;
                        if (plotAxis.DockVertical)
                        {
                            num = (int)Math.Round((double)p.Graphics.MeasureString("0", plotAxis.ScaleDisplay.TickMajor.Font).Height *plotAxis.DockStackingEndsMargin);
                        }
                        num = (int)Math.Round((double)p.Graphics.MeasureString("0", plotAxis.ScaleDisplay.TickMajor.Font).Width *plotAxis.DockStackingEndsMargin);
                        if (plotAxis == plotLayoutBase && !plotAxis.DockForceStacking)
                        {
                            plotAxis.TextOverlapPixelsStop = plotAxis.ScaleDisplay.TextOverlapPixels;
                            plotAxis.StackingPixelsStop    = num;
                            this.TotalStackingPixels      += plotAxis.ScaleDisplay.TextOverlapPixels + num;
                        }
                        else if (plotAxis == plotLayoutBase2 && !plotAxis.DockForceStacking)
                        {
                            plotAxis.TextOverlapPixelsStart = plotAxis.ScaleDisplay.TextOverlapPixels;
                            plotAxis.StackingPixelsStart    = num;
                            this.TotalStackingPixels       += plotAxis.ScaleDisplay.TextOverlapPixels + num;
                        }
                        else
                        {
                            plotAxis.TextOverlapPixelsStart = plotAxis.ScaleDisplay.TextOverlapPixels;
                            plotAxis.TextOverlapPixelsStop  = plotAxis.ScaleDisplay.TextOverlapPixels;
                            plotAxis.StackingPixelsStart    = num;
                            plotAxis.StackingPixelsStop     = num;
                            this.TotalStackingPixels       += 2 * plotAxis.ScaleDisplay.TextOverlapPixels + 2 * num;
                        }
                    }
                }
            }
            if (plotLayoutBase != null)
            {
                PlotAxis plotAxis = plotLayoutBase as PlotAxis;
                if (plotAxis != null)
                {
                    this.OverlapStart = plotAxis.ScaleDisplay.TextOverlapPixels;
                }
            }
            if (plotLayoutBase2 != null)
            {
                PlotAxis plotAxis = plotLayoutBase2 as PlotAxis;
                if (plotAxis != null)
                {
                    this.OverlapStop = plotAxis.ScaleDisplay.TextOverlapPixels;
                }
            }
        }
示例#13
0
        public void CalculateAndSetAllDockObjectBounds()
        {
            int num     = this.InnerRectangleScreen.Left;
            int num2    = this.InnerRectangleLayout.Left;
            int height  = this.InnerRectangleScreen.Height;
            int height2 = this.InnerRectangleLayout.Height;
            int maxDepthScreen;
            int maxDepthLayout;

            foreach (PlotLayoutUniqueDockOrder uniqueDockOrder in this.ListLeft.UniqueDockOrders)
            {
                maxDepthScreen = uniqueDockOrder.MaxDepthScreen;
                maxDepthLayout = uniqueDockOrder.MaxDepthLayout;
                int num3  = num - uniqueDockOrder.MaxDockMargin;
                int num4  = num2;
                int left  = num3 - maxDepthScreen;
                int left2 = num4 - maxDepthLayout;
                foreach (PlotLayoutBlockItem item in uniqueDockOrder.Items)
                {
                    PlotLayoutDockableDataView plotLayoutDockableDataView = item.Object as PlotLayoutDockableDataView;
                    if (plotLayoutDockableDataView != null)
                    {
                        int num5   = (int)((double)this.InnerRectangleScreen.Bottom - plotLayoutDockableDataView.DockPercentStart * (double)height);
                        int bottom = (int)((double)this.InnerRectangleLayout.Bottom - plotLayoutDockableDataView.DockPercentStart * (double)height2);
                        num5 -= plotLayoutDockableDataView.TextOverlapPixelsStart + plotLayoutDockableDataView.StackingPixelsStart;
                        int num6 = (int)((double)this.InnerRectangleScreen.Bottom - plotLayoutDockableDataView.DockPercentStop * (double)height);
                        int top  = (int)((double)this.InnerRectangleLayout.Bottom - plotLayoutDockableDataView.DockPercentStop * (double)height2);
                        num6 += plotLayoutDockableDataView.TextOverlapPixelsStop + plotLayoutDockableDataView.StackingPixelsStop;
                        item.BoundsScreen = iRectangle.FromLTRB(left, num6, num3, num5);
                        item.BoundsLayout = iRectangle.FromLTRB(left2, top, num4, bottom);
                        PlotAxis plotAxis = item.Object as PlotAxis;
                        if (plotAxis != null)
                        {
                            item.BoundsClip = iRectangle.FromLTRB(left, num6 - plotAxis.ScaleTextOverlapPixels, num3, num5 + plotAxis.ScaleTextOverlapPixels);
                        }
                        else
                        {
                            item.BoundsClip = item.BoundsScreen;
                        }
                    }
                }
                num  -= maxDepthScreen + uniqueDockOrder.MaxDockMargin;
                num2 -= maxDepthLayout;
            }
            num     = this.InnerRectangleScreen.Right;
            num2    = this.InnerRectangleLayout.Right;
            height  = this.InnerRectangleScreen.Height;
            height2 = this.InnerRectangleLayout.Height;
            foreach (PlotLayoutUniqueDockOrder uniqueDockOrder2 in this.ListRight.UniqueDockOrders)
            {
                maxDepthScreen = uniqueDockOrder2.MaxDepthScreen;
                maxDepthLayout = uniqueDockOrder2.MaxDepthLayout;
                int left  = num + uniqueDockOrder2.MaxDockMargin;
                int left2 = num2;
                int num3  = left + maxDepthScreen;
                int num4  = left2 + maxDepthLayout;
                foreach (PlotLayoutBlockItem item2 in uniqueDockOrder2.Items)
                {
                    PlotLayoutDockableDataView plotLayoutDockableDataView = item2.Object as PlotLayoutDockableDataView;
                    if (plotLayoutDockableDataView != null)
                    {
                        int num5   = (int)((double)this.InnerRectangleScreen.Bottom - plotLayoutDockableDataView.DockPercentStart * (double)height);
                        int bottom = (int)((double)this.InnerRectangleLayout.Bottom - plotLayoutDockableDataView.DockPercentStart * (double)height2);
                        num5 -= plotLayoutDockableDataView.TextOverlapPixelsStart + plotLayoutDockableDataView.StackingPixelsStart;
                        int num6 = (int)((double)this.InnerRectangleScreen.Bottom - plotLayoutDockableDataView.DockPercentStop * (double)height);
                        int top  = (int)((double)this.InnerRectangleLayout.Bottom - plotLayoutDockableDataView.DockPercentStop * (double)height2);
                        num6 += plotLayoutDockableDataView.TextOverlapPixelsStop + plotLayoutDockableDataView.StackingPixelsStop;
                        item2.BoundsScreen = iRectangle.FromLTRB(left, num6, num3, num5);
                        item2.BoundsLayout = iRectangle.FromLTRB(left2, top, num4, bottom);
                        PlotAxis plotAxis = item2.Object as PlotAxis;
                        if (plotAxis != null)
                        {
                            item2.BoundsClip = iRectangle.FromLTRB(left, num6 - plotAxis.ScaleTextOverlapPixels, num3, num5 + plotAxis.ScaleTextOverlapPixels);
                        }
                        else
                        {
                            item2.BoundsClip = item2.BoundsScreen;
                        }
                    }
                }
                num  += maxDepthScreen + uniqueDockOrder2.MaxDockMargin;
                num2 += maxDepthLayout;
            }
            num            = this.InnerRectangleScreen.Top;
            num2           = this.InnerRectangleLayout.Top;
            maxDepthScreen = this.InnerRectangleScreen.Width;
            maxDepthLayout = this.InnerRectangleLayout.Width;
            foreach (PlotLayoutUniqueDockOrder uniqueDockOrder3 in this.ListTop.UniqueDockOrders)
            {
                height  = uniqueDockOrder3.MaxDepthScreen;
                height2 = uniqueDockOrder3.MaxDepthLayout;
                int num5   = num - uniqueDockOrder3.MaxDockMargin;
                int bottom = num2;
                int num6   = num5 - height;
                int top    = bottom - height2;
                foreach (PlotLayoutBlockItem item3 in uniqueDockOrder3.Items)
                {
                    PlotLayoutDockableDataView plotLayoutDockableDataView = item3.Object as PlotLayoutDockableDataView;
                    if (plotLayoutDockableDataView != null)
                    {
                        int left  = (int)((double)this.InnerRectangleScreen.Left + plotLayoutDockableDataView.DockPercentStart * (double)maxDepthScreen);
                        int left2 = (int)((double)this.InnerRectangleLayout.Left + plotLayoutDockableDataView.DockPercentStart * (double)maxDepthLayout);
                        left += plotLayoutDockableDataView.TextOverlapPixelsStart + plotLayoutDockableDataView.StackingPixelsStart;
                        int num3 = (int)((double)this.InnerRectangleScreen.Left + plotLayoutDockableDataView.DockPercentStop * (double)maxDepthScreen);
                        int num4 = (int)((double)this.InnerRectangleLayout.Left + plotLayoutDockableDataView.DockPercentStop * (double)maxDepthLayout);
                        num3 -= plotLayoutDockableDataView.TextOverlapPixelsStop + plotLayoutDockableDataView.StackingPixelsStop;
                        item3.BoundsScreen = iRectangle.FromLTRB(left, num6, num3, num5);
                        item3.BoundsLayout = iRectangle.FromLTRB(left2, top, num4, bottom);
                        PlotAxis plotAxis = item3.Object as PlotAxis;
                        if (plotAxis != null)
                        {
                            item3.BoundsClip = iRectangle.FromLTRB(left - plotAxis.ScaleTextOverlapPixels, num6, num3 + plotAxis.ScaleTextOverlapPixels, num5);
                        }
                        else
                        {
                            item3.BoundsClip = item3.BoundsScreen;
                        }
                    }
                }
                num  -= height + uniqueDockOrder3.MaxDockMargin;
                num2 -= height2;
            }
            num            = this.InnerRectangleScreen.Bottom;
            num2           = this.InnerRectangleLayout.Bottom;
            maxDepthScreen = this.InnerRectangleScreen.Width;
            maxDepthLayout = this.InnerRectangleLayout.Width;
            foreach (PlotLayoutUniqueDockOrder uniqueDockOrder4 in this.ListBottom.UniqueDockOrders)
            {
                height  = uniqueDockOrder4.MaxDepthScreen;
                height2 = uniqueDockOrder4.MaxDepthLayout;
                int num6   = num + uniqueDockOrder4.MaxDockMargin;
                int top    = num2;
                int num5   = num6 + height;
                int bottom = top + height2;
                foreach (PlotLayoutBlockItem item4 in uniqueDockOrder4.Items)
                {
                    PlotLayoutDockableDataView plotLayoutDockableDataView = item4.Object as PlotLayoutDockableDataView;
                    if (plotLayoutDockableDataView != null)
                    {
                        int left  = (int)((double)this.InnerRectangleScreen.Left + plotLayoutDockableDataView.DockPercentStart * (double)maxDepthScreen);
                        int left2 = (int)((double)this.InnerRectangleLayout.Left + plotLayoutDockableDataView.DockPercentStart * (double)maxDepthLayout);
                        left += plotLayoutDockableDataView.TextOverlapPixelsStart + plotLayoutDockableDataView.StackingPixelsStart;
                        int num3 = (int)((double)this.InnerRectangleScreen.Left + plotLayoutDockableDataView.DockPercentStop * (double)maxDepthScreen);
                        int num4 = (int)((double)this.InnerRectangleLayout.Left + plotLayoutDockableDataView.DockPercentStop * (double)maxDepthLayout);
                        num3 -= plotLayoutDockableDataView.TextOverlapPixelsStop + plotLayoutDockableDataView.StackingPixelsStop;
                        item4.BoundsScreen = iRectangle.FromLTRB(left, num6, num3, num5);
                        item4.BoundsLayout = iRectangle.FromLTRB(left2, top, num4, bottom);
                        PlotAxis plotAxis = item4.Object as PlotAxis;
                        if (plotAxis != null)
                        {
                            item4.BoundsClip = iRectangle.FromLTRB(left - plotAxis.ScaleTextOverlapPixels, num6, num3 + plotAxis.ScaleTextOverlapPixels, num5);
                        }
                        else
                        {
                            item4.BoundsClip = item4.BoundsScreen;
                        }
                    }
                }
                num  += height + uniqueDockOrder4.MaxDockMargin;
                num2 += height2;
            }
            int val  = 2147483647;
            int val2 = -2147483648;
            int val3 = 2147483647;
            int val4 = -2147483648;

            if (base.Object != null)
            {
                val  = Math.Min(val, this.ListLeft.GetMinBoundsScreenTop());
                val  = Math.Min(val, this.ListRight.GetMinBoundsScreenTop());
                val2 = Math.Max(val2, this.ListLeft.GetMaxBoundsScreenBottom());
                val2 = Math.Max(val2, this.ListRight.GetMaxBoundsScreenBottom());
                val3 = Math.Min(val3, this.ListTop.GetMinBoundsScreenLeft());
                val3 = Math.Min(val3, this.ListBottom.GetMinBoundsScreenLeft());
                val4 = Math.Max(val4, this.ListTop.GetMaxBoundsScreenRight());
                val4 = Math.Max(val4, this.ListBottom.GetMaxBoundsScreenRight());
                if (val == 2147483647)
                {
                    val = this.InnerRectangleScreen.Top;
                }
                if (val2 == -2147483648)
                {
                    val2 = this.InnerRectangleScreen.Bottom;
                }
                if (val3 == 2147483647)
                {
                    val3 = this.InnerRectangleScreen.Left;
                }
                if (val4 == -2147483648)
                {
                    val4 = this.InnerRectangleScreen.Right;
                }
                this.InnerRectangleScreen = Rectangle.FromLTRB(val3, val, val4, val2);
            }
        }