123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- using System;
- using UnityEngine;
- namespace COM3D2.MeidoPhotoStudio.Plugin
- {
- public class MessageWindow : BaseWindow
- {
- private MessageWindowManager messageWindowManager;
- private TextField nameTextField;
- private Slider fontSizeSlider;
- private TextArea messageTextArea;
- private Button okButton;
- public override Rect WindowRect
- {
- get
- {
- windowRect.width = Mathf.Clamp(Screen.width * 0.4f, 440, Mathf.Infinity);
- windowRect.height = Mathf.Clamp(Screen.height * 0.15f, 150, Mathf.Infinity);
- windowRect.x = Mathf.Clamp(
- windowRect.x,
- -windowRect.width + Utility.GetPix(20),
- Screen.width - Utility.GetPix(20)
- );
- windowRect.y = Mathf.Clamp(
- windowRect.y,
- -windowRect.height + Utility.GetPix(20),
- Screen.height - Utility.GetPix(20)
- );
- return windowRect;
- }
- set => windowRect = value;
- }
- private int fontSize = 25;
- private bool showingMessage = false;
- public MessageWindow(MessageWindowManager messageWindowManager) : base()
- {
- windowRect = new Rect(Screen.width / 2f - 220f, Screen.height - 150f, 440f, 150f);
- this.messageWindowManager = messageWindowManager;
- nameTextField = new TextField();
- Controls.Add(nameTextField);
- fontSizeSlider = new Slider(25, 60);
- fontSizeSlider.ControlEvent += ChangeFontSize;
- Controls.Add(fontSizeSlider);
- messageTextArea = new TextArea();
- Controls.Add(messageTextArea);
- okButton = new Button("OK");
- okButton.ControlEvent += ShowMessage;
- Controls.Add(okButton);
- }
- public void ToggleVisibility()
- {
- if (showingMessage)
- {
- messageWindowManager.CloseMessagePanel();
- showingMessage = false;
- }
- else
- {
- Visible = !Visible;
- }
- }
- private void ChangeFontSize(object sender, EventArgs args)
- {
- fontSize = (int)fontSizeSlider.Value;
- messageWindowManager.SetFontSize(fontSize);
- }
- private void ShowMessage(object sender, EventArgs args)
- {
- Visible = false;
- showingMessage = true;
- messageWindowManager.ShowMessage(nameTextField.Value, messageTextArea.Value);
- }
- public override void Update()
- {
- base.Update();
- if (Input.GetKeyDown(KeyCode.M))
- {
- this.ToggleVisibility();
- }
- }
- public override void Draw()
- {
- GUILayout.BeginHorizontal();
- GUILayout.Label("Name", GUILayout.ExpandWidth(false));
- nameTextField.Draw(GUILayout.Width(120));
- GUILayout.Space(30);
- GUILayout.Label("Font Size", GUILayout.ExpandWidth(false));
- fontSizeSlider.Draw(GUILayout.Width(120), GUILayout.ExpandWidth(false));
- GUILayout.Label($"{(int)fontSize}pt");
- GUILayout.EndHorizontal();
- messageTextArea.Draw(GUILayout.MinHeight(90));
- okButton.Draw(GUILayout.ExpandWidth(false), GUILayout.Width(30));
- }
- public override void Deactivate()
- {
- if (showingMessage)
- {
- messageWindowManager.CloseMessagePanel();
- showingMessage = false;
- }
- Visible = false;
- }
- }
- }
|