Baconit.PanelManager.OnScreenSizeChanged C# (CSharp) Method

OnScreenSizeChanged() private method

private OnScreenSizeChanged ( int newSize, bool forceSet = false, bool toggleFullScreen = null ) : void
newSize int
forceSet bool
toggleFullScreen bool
return void
        private void OnScreenSizeChanged(int newSize, bool forceSet = false, bool? toggleFullScreen = null)
        {
            // Figure what mode we should be in.
            ScreenMode newMode = newSize > (MAX_PANEL_SIZE *2) ? ScreenMode.Split : ScreenMode.Single;

            // Enter full screen if we should.
            if(toggleFullScreen.HasValue && toggleFullScreen.Value)
            {
                newMode = ScreenMode.FullScreen;
            }

            // If we are in full screen...
            if(m_screenMode == ScreenMode.FullScreen)
            {
                // and we don't have a value for toggle or the value it true...
                if(!toggleFullScreen.HasValue || toggleFullScreen.Value)
                {
                    // Make sure we stay in full screen.
                    newMode = ScreenMode.FullScreen;
                }
            }

            if (newMode != m_screenMode || forceSet)
            {
                // If we are animating we can't update. So set the deferral and it will
                // be taken care of when the animation is done.
                lock (m_panelStack)
                {
                    if (m_state != State.Idle)
                    {
                        m_deferedScreenUpdate = newMode;
                        return;
                    }

                    // Otherwise do the logic
                    ExecuteOnScreenSizeChagnedLogic(newMode);
                }
            }
        }