MpsGui.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public static class MpsGui
  4. {
  5. public static readonly GUILayoutOption HalfSlider = GUILayout.Width(98);
  6. public static readonly Texture2D White = Utility.MakeTex(2, 2, Color.white);
  7. public static readonly Texture2D TransparentBlack = Utility.MakeTex(2, 2, new(0f, 0f, 0f, 0.8f));
  8. public static readonly GUIStyle SliderLabelStyle;
  9. public static readonly GUIStyle SliderStyle;
  10. public static readonly GUIStyle SliderStyleNoLabel;
  11. public static readonly GUIStyle SliderTextBoxStyle;
  12. public static readonly GUIStyle SliderThumbStyle;
  13. public static readonly GUIStyle SliderResetButtonStyle;
  14. private static readonly GUIStyle LineStyleWhite;
  15. private static readonly GUIStyle LineStyleBlack;
  16. private static readonly GUIStyle TextureBoxStyle;
  17. private static readonly GUIStyle HeaderLabelStyle;
  18. static MpsGui()
  19. {
  20. GUI.skin = null;
  21. LineStyleWhite = new(GUI.skin.box)
  22. {
  23. margin = new(0, 0, 8, 8),
  24. normal = { background = Utility.MakeTex(2, 2, new(1f, 1f, 1f, 0.2f)) },
  25. };
  26. LineStyleWhite.padding = LineStyleWhite.border = new(0, 0, 1, 1);
  27. LineStyleBlack = new(LineStyleWhite)
  28. {
  29. normal = { background = Utility.MakeTex(2, 2, new(0f, 0f, 0f, 0.3f)) },
  30. };
  31. TextureBoxStyle = new(GUI.skin.box)
  32. {
  33. normal = { background = Utility.MakeTex(2, 2, new(0f, 0f, 0f, 0f)) },
  34. };
  35. TextureBoxStyle.padding = TextureBoxStyle.margin = new(0, 0, 0, 0);
  36. HeaderLabelStyle = new(GUI.skin.label)
  37. {
  38. padding = new(7, 0, 0, -5),
  39. normal = { textColor = Color.white },
  40. fontSize = 14,
  41. };
  42. SliderLabelStyle = new(GUI.skin.label)
  43. {
  44. alignment = TextAnchor.LowerLeft,
  45. fontSize = 13,
  46. normal = { textColor = Color.white },
  47. };
  48. SliderStyle = new(GUI.skin.horizontalSlider);
  49. SliderStyleNoLabel = new(SliderStyle)
  50. {
  51. margin = { top = 10 },
  52. };
  53. SliderTextBoxStyle = new(GUI.skin.textField)
  54. {
  55. fontSize = 12,
  56. };
  57. SliderResetButtonStyle = new(GUI.skin.button)
  58. {
  59. alignment = TextAnchor.MiddleRight,
  60. fontSize = 10,
  61. };
  62. SliderThumbStyle = new(GUI.skin.horizontalSliderThumb);
  63. }
  64. public static void WhiteLine() =>
  65. Line(LineStyleWhite);
  66. public static void BlackLine() =>
  67. Line(LineStyleBlack);
  68. public static void DrawTexture(Texture texture, params GUILayoutOption[] layoutOptions) =>
  69. GUILayout.Box(texture, TextureBoxStyle, layoutOptions);
  70. public static int ClampFont(int size, int min, int max) =>
  71. Mathf.Clamp(Utility.GetPix(size), min, max);
  72. public static void Header(string text, params GUILayoutOption[] layoutOptions) =>
  73. GUILayout.Label(text, HeaderLabelStyle, layoutOptions);
  74. private static void Line(GUIStyle style) =>
  75. GUILayout.Box(GUIContent.none, style, GUILayout.Height(1));
  76. }