1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System.Collections.Generic;
- using UnityEngine;
- namespace COM3D2.MeidoPhotoStudio.Plugin
- {
- internal abstract class BaseWindow : BaseWindowPane
- {
- private static int id = 765;
- private static int ID => id++;
- public readonly int windowID;
- protected Rect windowRect = new Rect(0f, 0f, 480f, 270f);
- public virtual Rect WindowRect
- {
- get => windowRect;
- set
- {
- value.x = Mathf.Clamp(
- value.x, -value.width + Utility.GetPix(20), Screen.width - Utility.GetPix(20)
- );
- value.y = Mathf.Clamp(
- value.y, -value.height + Utility.GetPix(20), Screen.height - Utility.GetPix(20)
- );
- windowRect = value;
- }
- }
- protected Vector2 MiddlePosition => new Vector2(
- Screen.width / 2 - windowRect.width / 2,
- Screen.height / 2 - windowRect.height / 2
- );
- public BaseWindow ModalWindow { get; private set; }
- public BaseWindow() : base() => windowID = ID;
- public virtual void HandleZoom()
- {
- if (Input.mouseScrollDelta.y != 0f)
- {
- if (Visible)
- {
- Vector2 mousePos = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y);
- if (WindowRect.Contains(mousePos)) Input.ResetInputAxes();
- }
- }
- }
- public virtual void Update() => HandleZoom();
- public virtual void Activate() { }
- public virtual void Deactivate() { }
- public virtual void GUIFunc(int id)
- {
- Draw();
- GUI.DragWindow();
- }
- }
- }
|