Files
RaindropViewer/Assets/NotchSolution/Editor/Tools/NotchSolutionShortcuts.cs
T

46 lines
1.9 KiB
C#

using UnityEditor;
using UnityEditor.ShortcutManagement;
using UnityEngine;
namespace E7.NotchSolution.Editor
{
internal static class NotchSolutionShortcuts
{
private const string notchSolutionPrefPrefix = "Notch Solution/";
internal const string toggleSimulationShortcut = notchSolutionPrefPrefix + "Toggle Notch Simulator";
internal const string switchConfigurationShortcut = notchSolutionPrefPrefix + "Switch configuration";
/// <summary>
/// Switch between narrowest and widest aspect specified in the preferences to validate design.
/// Switch to the narrowest if currently on neither aspects.
/// </summary>
[Shortcut(switchConfigurationShortcut, null, KeyCode.M, ShortcutModifiers.Alt)]
internal static void SwitchConfiguration()
{
Settings.Instance.NextConfiguration();
NotchSimulator.Redraw();
NotchSimulator.UpdateAllMockups();
NotchSimulator.UpdateSimulatorTargets();
// Using shortcut to change aspect ratio actually will not proc the [ExecuteAlways] Update()
// of adaptation components, unlike using the drop down.
// But it mostly do so because we always have some uGUI components which indirectly cause
// those updates on ratio change. While the scene with no uGUI at all maybe rare,
// it never hurts to proc them manually.. just in case.
EditorApplication.QueuePlayerLoopUpdate();
}
[Shortcut(toggleSimulationShortcut, null, KeyCode.N, ShortcutModifiers.Alt)]
private static void ToggleSimulation()
{
var settings = Settings.Instance;
settings.EnableSimulation = !settings.EnableSimulation;
settings.Save();
NotchSimulator.UpdateAllMockups();
NotchSimulator.UpdateSimulatorTargets();
NotchSimulator.Redraw();
}
}
}