Forex_Strategy_Builder.Info_Panel.CalculateScrollBarStatus C# (CSharp) Method

CalculateScrollBarStatus() private method

Scroll Bars status
private CalculateScrollBarStatus ( ) : void
return void
        void CalculateScrollBarStatus()
        {
            width  = ClientSize.Width  - 2 * border;
            height = ClientSize.Height - border;

            bool needHorisontal = width  < maxParamWidth + paddingParamData + maxValueWidth - 2;
            bool needVertical   = height < requiredHeight;
            bool isHorisontal   = needHorisontal;
            bool isVertical     = needVertical;

            if (needHorisontal && needVertical)
            {
                isVertical   = true;
                isHorisontal = true;
            }
            else if (needHorisontal && !needVertical)
            {
                isHorisontal = true;
                height       = ClientSize.Height - hScrollBar.Height - border;
                isVertical   = height < requiredHeight;
            }
            else if (!needHorisontal && needVertical)
            {
                isVertical   = true;
                width        = ClientSize.Width - vScrollBar.Width - 2 * border;
                isHorisontal = width < maxParamWidth + paddingParamData + maxValueWidth - 2;
            }
            else
            {
                isHorisontal = false;
                isVertical   = false;
            }

            if (isHorisontal)
                height = ClientSize.Height - hScrollBar.Height - border;

            if (isVertical)
                width = ClientSize.Width - vScrollBar.Width - 2 * border;

            vScrollBar.Enabled = isVertical;
            vScrollBar.Visible = isVertical;
            hScrollBar.Enabled = isHorisontal;
            hScrollBar.Visible = isHorisontal;

            hScrollBar.Value = 0;
            if (isHorisontal)
            {
                int iPoinShort = (int)(maxParamWidth + paddingParamData + maxValueWidth - width);
                hScrollBar.Maximum = iPoinShort + hScrollBar.LargeChange - 2;
            }

            rectfCaption = new RectangleF(0, 0, ClientSize.Width, captionHeight);
            visibleRows = (int)Math.Min(((height - captionHeight) / rowHeight), rows);

            vScrollBar.Value = 0;
            vScrollBar.Maximum = rows - visibleRows + vScrollBar.LargeChange - 1;

            return;
        }