MessageWindow.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System;
  2. using UnityEngine;
  3. namespace COM3D2.MeidoPhotoStudio.Plugin
  4. {
  5. public class MessageWindow : BaseWindow
  6. {
  7. MessageWindowManager messageWindowManager;
  8. TextField nameTextField;
  9. Slider fontSizeSlider;
  10. TextArea messageTextArea;
  11. Button okButton;
  12. private int fontSize = 25;
  13. private bool showingMessage = false;
  14. public MessageWindow(MessageWindowManager messageWindowManager) : base()
  15. {
  16. this.messageWindowManager = messageWindowManager;
  17. nameTextField = new TextField();
  18. Controls.Add(nameTextField);
  19. fontSizeSlider = new Slider(25, 60);
  20. fontSizeSlider.ControlEvent += ChangeFontSize;
  21. Controls.Add(fontSizeSlider);
  22. messageTextArea = new TextArea();
  23. Controls.Add(messageTextArea);
  24. okButton = new Button("OK");
  25. okButton.ControlEvent += ShowMessage;
  26. Controls.Add(okButton);
  27. }
  28. public void ToggleVisibility()
  29. {
  30. if (showingMessage)
  31. {
  32. messageWindowManager.CloseMessagePanel();
  33. showingMessage = false;
  34. }
  35. else
  36. {
  37. Visible = !Visible;
  38. }
  39. }
  40. private void ChangeFontSize(object sender, EventArgs args)
  41. {
  42. fontSize = (int)fontSizeSlider.Value;
  43. messageWindowManager.SetFontSize(fontSize);
  44. }
  45. private void ShowMessage(object sender, EventArgs args)
  46. {
  47. Visible = false;
  48. showingMessage = true;
  49. messageWindowManager.ShowMessage(nameTextField.Value, messageTextArea.Value);
  50. }
  51. public override void Draw(params GUILayoutOption[] layoutOptions)
  52. {
  53. GUILayout.BeginHorizontal();
  54. GUILayout.Label("Name", GUILayout.ExpandWidth(false));
  55. nameTextField.Draw(GUILayout.Width(120));
  56. GUILayout.Space(30);
  57. GUILayout.Label("Font Size", GUILayout.ExpandWidth(false));
  58. fontSizeSlider.Draw(GUILayout.Width(120), GUILayout.ExpandWidth(false));
  59. GUILayout.Label($"{(int)fontSize}pt");
  60. GUILayout.EndHorizontal();
  61. messageTextArea.Draw(GUILayout.MinHeight(90));
  62. okButton.Draw(GUILayout.ExpandWidth(false), GUILayout.Width(30));
  63. }
  64. }
  65. }