1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Collections.Generic;
- using UnityEngine;
- using static MeidoPhotoStudio.Plugin.Constants;
- namespace MeidoPhotoStudio.Plugin
- {
- public class WindowManager : IManager
- {
- private readonly Dictionary<Window, BaseWindow> Windows = new();
- public BaseWindow this[Window id]
- {
- get => Windows[id];
- set
- {
- Windows[id] = value;
- Windows[id].Activate();
- }
- }
- public WindowManager() =>
- InputManager.Register(MpsKey.ToggleUI, KeyCode.Tab, "Show/hide all UI");
- public void DrawWindow(BaseWindow window)
- {
- if (!window.Visible)
- return;
- var windowStyle = new GUIStyle(GUI.skin.box);
- window.WindowRect = GUI.Window(window.windowID, window.WindowRect, window.GUIFunc, "", windowStyle);
- }
- public void DrawWindows()
- {
- foreach (var window in Windows.Values)
- DrawWindow(window);
- }
- public void Update()
- {
- foreach (var window in Windows.Values)
- window.Update();
- }
- public void Activate()
- {
- foreach (var window in Windows.Values)
- window.Activate();
- }
- public void Deactivate()
- {
- foreach (var window in Windows.Values)
- window.Deactivate();
- }
- }
- }
|