예제 #1
0
        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);
                    }
                };
            });
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        private static void GVMenuItem()
        {
            var gameView = FindCandidateForFullscreen(Types.GameView, FullscreenUtility.GetMainGameView());

            Fullscreen.ToggleFullscreen(Types.GameView, gameView);
        }