Bloom.Workspace.WorkspaceView.AdjustTabStripDisplayForScreenSize C# (CSharp) Method

AdjustTabStripDisplayForScreenSize() private method

private AdjustTabStripDisplayForScreenSize ( ) : void
return void
        private void AdjustTabStripDisplayForScreenSize()
        {
            if (!_viewInitialized)
                return;

            if (_originalToolStripPanelWidth == 0)
            {
                SaveOriginalWidthValues();
                SaveOriginalButtonTexts();
            }

            switch (_currentShrinkage)
            {
                default:
                    // Shrinkage.FullSize
                    if (Width < STAGE_1)
                    {
                        // shrink to stage 1
                        _currentShrinkage = Shrinkage.Stage1;
                        ShrinkToStage1();

                        // It is possible that we are jumping from FullScreen to a 'remembered'
                        // smaller screen size, so test for all of them!
                        if (Width < STAGE_2)
                        {
                            _currentShrinkage = Shrinkage.Stage2;
                            ShrinkToStage2();

                            if (Width < STAGE_3)
                            {
                                _currentShrinkage = Shrinkage.Stage3;
                                ShrinkToStage3();
                            }
                        }
                    }
                    break;
                case Shrinkage.Stage1:
                    if (Width >= STAGE_1)
                    {
                        // grow back to unshrunk
                        _currentShrinkage = Shrinkage.FullSize;
                        GrowToFullSize();
                        break;
                    }
                    if (Width < STAGE_2)
                    {
                        // shrink to stage 2
                        _currentShrinkage = Shrinkage.Stage2;
                        ShrinkToStage2();
                    }
                    break;
                case Shrinkage.Stage2:
                    if (Width >= STAGE_2)
                    {
                        // grow back to stage 1
                        _currentShrinkage = Shrinkage.Stage1;
                        GrowToStage1();
                        break;
                    }
                    if (Width < STAGE_3)
                    {
                        // shrink to stage 3
                        _currentShrinkage = Shrinkage.Stage3;
                        ShrinkToStage3();
                    }
                    break;
                case Shrinkage.Stage3:
                    if (Width >= STAGE_3)
                    {
                        // grow back to stage 2
                        _currentShrinkage = Shrinkage.Stage2;
                        GrowToStage2();
                    }
                    break;
            }
        }