private static void OverrideMaximizeOnPlay() { After.Frames(1, () => { // Call after one frame, so we don't acess the styles class before it's created var stylesClass = Types.GameView.GetNestedType("Styles", ReflectionUtility.FULL_BINDING); var currentContent = stylesClass.GetFieldValue <GUIContent>("maximizeOnPlayContent"); var newContent = new GUIContent("Fullscreen on Play", FullscreenUtility.FullscreenOnPlayIcon); var originalContent = new GUIContent(currentContent); var overrideEnabled = FullscreenPreferences.FullscreenOnPlayEnabled; currentContent.text = overrideEnabled ? newContent.text : originalContent.text; currentContent.image = overrideEnabled ? newContent.image : originalContent.image; currentContent.tooltip = overrideEnabled ? newContent.tooltip : originalContent.tooltip; FullscreenPreferences.FullscreenOnPlayEnabled.OnValueSaved += v => { currentContent.text = v ? newContent.text : originalContent.text; currentContent.image = v ? newContent.image : originalContent.image; currentContent.tooltip = v ? newContent.tooltip : originalContent.tooltip; if (FullscreenUtility.GetMainGameView()) { FullscreenUtility.GetMainGameView().SetPropertyValue("maximizeOnPlay", v); } }; }); }
private static void MosaicMenuItem() { var openFullscreens = Fullscreen.GetAllFullscreen(); if (openFullscreens.Length > 0) { foreach (var fs in openFullscreens) { fs.Close(); } return; } var displays = DisplayInfo .GetDisplays() .Where(d => (d.displayDevice.StateFlags & DisplayDeviceStateFlags.AttachedToDesktop) != 0) .ToList(); for (var i = 0; i < displays.Count && i < 8; i++) { var candidate = FindCandidateForFullscreen(Types.GameView, FullscreenUtility.GetMainGameView()); if (candidate) { candidate = EditorWindow.Instantiate(candidate); candidate.Show(); } var fs = Fullscreen.MakeFullscreen(Types.GameView, candidate, true); var gameView = fs.ActualViewPyramid.Window; var targetDisplay = FullscreenPreferences.MosaicMapping.Value[i]; fs.Rect = displays[i].DpiCorrectedArea; FullscreenUtility.SetGameViewDisplayTarget(gameView, targetDisplay); } }
private static void GVMenuItem() { var gameView = FindCandidateForFullscreen(Types.GameView, FullscreenUtility.GetMainGameView()); Fullscreen.ToggleFullscreen(Types.GameView, gameView); }