/// <summary> /// Toggles fullscreen for the focused window. /// </summary> /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns> public static bool ToggleFocusedWindowFullscreen() { if (EditorWindow.focusedWindow != null) { return(EditorFullscreenState.ToggleFullscreenUsingOptions(EditorWindow.focusedWindow, EditorWindow.focusedWindow.GetType(), EditorFullscreenSettings.settings.currentlyFocusedWindow, false, true)); } else { return(false); } }
/// <summary> /// Toggle fullscreen for the window under the cursor. /// </summary> /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns> public static bool ToggleWindowUnderCursorFullscreen() { var mouseOverWin = EditorFullscreenState.GetMouseOverWindow(); if (mouseOverWin != null) { return(EditorFullscreenState.ToggleFullscreenUsingOptions(mouseOverWin, mouseOverWin.GetType(), EditorFullscreenSettings.settings.windowUnderCursor, false, true)); } else { return(false); } }
private static bool ToggleGameViewFullscreen(bool triggeredOnGameStart, int optionID) { EditorWindow focusedWindow = null; List <FullscreenOption> allGameWins = null; EditorFullscreenState.WindowFullscreenState state = null; bool setFullscreen; if (triggeredOnGameStart) { allGameWins = settings.AllGameWindows; setFullscreen = true; } else { setFullscreen = !EditorFullscreenState.WindowTypeIsFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.GameViewType, settings.GetFullscreenOption(optionID)); } EditorFullscreenState.RunOnLoad methodToRun; if (!triggeredOnGameStart) { methodToRun = () => ToggleGameViewFullscreen(false, optionID); } else { methodToRun = () => ToggleGameViewFullscreen(true, optionID); } if (EditorFullscreenState.RunAfterInitialStateLoaded(methodToRun)) { return(setFullscreen); } if (triggeredOnGameStart) { for (int i = 0; i < allGameWins.Count; i++) { if (allGameWins[i].openOnGameStart) { if (!EditorFullscreenState.WindowTypeIsFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.GameViewType, allGameWins[i])) { EditorFullscreenState.ToggleFullscreenUsingOptions(null, EditorFullscreenState.GameViewType, allGameWins[i], triggeredOnGameStart, false); } } } } else { state = EditorFullscreenState.ToggleFullscreenUsingOptions(null, EditorFullscreenState.GameViewType, settings.GetFullscreenOption(optionID), triggeredOnGameStart, false, out setFullscreen); focusedWindow = EditorWindow.focusedWindow; } EditorMainWindow.Focus(); if (focusedWindow != null) { focusedWindow.Focus(); } if (!triggeredOnGameStart) { bool isPlaying = EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode; if (settings.startGameWhenEnteringFullscreen && !isPlaying && setFullscreen) { //Enter play mode EditorApplication.ExecuteMenuItem("Edit/Play"); } else if (settings.stopGameWhenExitingFullscreen != EditorFullscreenSettings.StopGameWhenExitingFullscreen.Never && isPlaying && !setFullscreen) { if (settings.stopGameWhenExitingFullscreen == EditorFullscreenSettings.StopGameWhenExitingFullscreen.WhenAnyFullscreenGameViewIsExited || !WindowTypeIsFullscreen(EditorFullscreenState.GameViewType, state)) { //Exit play mode EditorApplication.ExecuteMenuItem("Edit/Play"); } } } return(setFullscreen); }
/// <summary> /// Toggles fullscreen for the scene view. /// </summary> public static bool ToggleSceneViewFullscreen() { return(EditorFullscreenState.ToggleFullscreenUsingOptions(typeof(CustomSceneView), settings.sceneWindow)); }
/// <summary> /// Triggers a Fullscreen Hotkey. /// </summary> /// <param name="keyCode">The key code of the hotkey to be triggered.</param> /// <param name="modifiers">The modifiers of the hotkey to be triggered.</param> /// <returns></returns> internal static bool TriggerFullscreenHotkey(KeyCode keyCode, EventModifiers modifiers) { if (EditorInput.performedHotkeyActionThisUpdate) { return(false); //Already triggered the hotkey } EWFDebugging.Begin(); bool setFullscreen = false; bool fullscreenHotkeyTriggered = true; var settings = EditorFullscreenSettings.settings; if (settings.debugModeEnabled) { EWFDebugging.LogLine("Triggered hotkey: " + EditorInput.GetKeysDownString(keyCode, modifiers) + " (key " + keyCode.ToKeyString() + " modifiers " + modifiers.ToString() + ")"); } EditorDisplay.ClearCachedDisplays(); EWFDebugging.StartTimer("Check hotkey and fullscreen"); if (CheckHotkeyTriggered(keyCode, modifiers, settings.closeAllFullscreenWindows)) { setFullscreen = CloseAllEditorFullscreenWindows(); //In this case setFullscreen is set to true if at least one fullscreen was closed. } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.mainUnityWindow)) { setFullscreen = ToggleMainWindowFullscreen(); } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.sceneWindow)) { setFullscreen = ToggleSceneViewFullscreen(); } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.gameWindow)) { setFullscreen = ToggleGameViewFullscreen(false, settings.gameWindow.OptionID); } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.currentlyFocusedWindow)) { setFullscreen = ToggleFocusedWindowFullscreen(); } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.windowUnderCursor)) { setFullscreen = ToggleWindowUnderCursorFullscreen(); } else if (CheckHotkeyTriggered(keyCode, modifiers, settings.toggleTopToolbar)) { ToggleTopToolbar(); } else { fullscreenHotkeyTriggered = false; //Check if a custom window hotkey is triggered if (settings.customWindows != null) { for (int i = 0; i < settings.customWindows.Count; i++) { if (CheckHotkeyTriggered(keyCode, modifiers, settings.customWindows[i])) { if (settings.customWindows[i].isGameView) { setFullscreen = ToggleGameViewFullscreen(false, settings.customWindows[i].OptionID); } else { setFullscreen = EditorFullscreenState.ToggleFullscreenUsingOptions(settings.customWindows[i].WindowType, settings.customWindows[i]); } fullscreenHotkeyTriggered = true; break; } } } } EWFDebugging.LogTime("Check hotkey and fullscreen"); if (fullscreenHotkeyTriggered) { triggeredHotkey = null; //Reset the triggered hotkey after fullscreen is toggled. } if (FullscreenHotkeyEventHandler != null && fullscreenHotkeyTriggered) { FullscreenHotkeyEventHandler.Invoke(keyCode, modifiers, setFullscreen); } EWFDebugging.LogLine("fullscreenHotkeyTriggered: " + fullscreenHotkeyTriggered + ", setFullscreen: " + setFullscreen); if (fullscreenHotkeyTriggered) { EWFDebugging.PrintLog(); EditorInput.performedHotkeyActionThisUpdate = true; } return(fullscreenHotkeyTriggered); }
/******************************************/ /************ Hotkeyed Methods ************/ /******************************************/ /// <summary> /// Toggles fullscreen for the main editor window. /// </summary> /// public static bool ToggleMainWindowFullscreen() { return(EditorFullscreenState.ToggleFullscreenUsingOptions(EditorFullscreenState.MainWindowType, settings.mainUnityWindow)); }