You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
7.8 KiB

  1. using UnityEngine;
  2. using UnityEditor;
  3. using System.Collections;
  4. namespace TMPro.EditorUtilities
  5. {
  6. public static class TMP_UIStyleManager
  7. {
  8. public static GUIStyle label;
  9. public static GUIStyle textAreaBoxWindow;
  10. public static GUIStyle boldFoldout;
  11. public static GUIStyle panelTitle;
  12. public static GUIStyle centeredLabel;
  13. public static GUIStyle lockButton;
  14. public static GUIStyle wrappingTextArea;
  15. public static GUIStyle alignmentButtonLeft;
  16. public static GUIStyle alignmentButtonMid;
  17. public static GUIStyle alignmentButtonRight;
  18. // Alignment Button Textures
  19. public static Texture2D alignLeft;
  20. public static Texture2D alignCenter;
  21. public static Texture2D alignRight;
  22. public static Texture2D alignJustified;
  23. public static Texture2D alignFlush;
  24. public static Texture2D alignGeoCenter;
  25. public static Texture2D alignTop;
  26. public static Texture2D alignMiddle;
  27. public static Texture2D alignBottom;
  28. public static Texture2D alignBaseline;
  29. public static Texture2D alignMidline;
  30. public static Texture2D alignCapline;
  31. public static GUIContent[] alignContentA;
  32. public static GUIContent[] alignContentB;
  33. static TMP_UIStyleManager()
  34. {
  35. // Find to location of the TextMesh Pro Asset Folder (as users may have moved it)
  36. var tmproAssetFolderPath = TMP_EditorUtility.packageRelativePath;
  37. if (EditorGUIUtility.isProSkin)
  38. {
  39. alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft.psd", typeof(Texture2D)) as Texture2D;
  40. alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter.psd", typeof(Texture2D)) as Texture2D;
  41. alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight.psd", typeof(Texture2D)) as Texture2D;
  42. alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified.psd", typeof(Texture2D)) as Texture2D;
  43. alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush.psd", typeof(Texture2D)) as Texture2D;
  44. alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo.psd", typeof(Texture2D)) as Texture2D;
  45. alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop.psd", typeof(Texture2D)) as Texture2D;
  46. alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle.psd", typeof(Texture2D)) as Texture2D;
  47. alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom.psd", typeof(Texture2D)) as Texture2D;
  48. alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine.psd", typeof(Texture2D)) as Texture2D;
  49. alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine.psd", typeof(Texture2D)) as Texture2D;
  50. alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine.psd", typeof(Texture2D)) as Texture2D;
  51. }
  52. else
  53. {
  54. alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft_Light.psd", typeof(Texture2D)) as Texture2D;
  55. alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter_Light.psd", typeof(Texture2D)) as Texture2D;
  56. alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight_Light.psd", typeof(Texture2D)) as Texture2D;
  57. alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified_Light.psd", typeof(Texture2D)) as Texture2D;
  58. alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush_Light.psd", typeof(Texture2D)) as Texture2D;
  59. alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd", typeof(Texture2D)) as Texture2D;
  60. alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop_Light.psd", typeof(Texture2D)) as Texture2D;
  61. alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle_Light.psd", typeof(Texture2D)) as Texture2D;
  62. alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom_Light.psd", typeof(Texture2D)) as Texture2D;
  63. alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine_Light.psd", typeof(Texture2D)) as Texture2D;
  64. alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine_Light.psd", typeof(Texture2D)) as Texture2D;
  65. alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine_Light.psd", typeof(Texture2D)) as Texture2D;
  66. }
  67. label = new GUIStyle(EditorStyles.label) { richText = true, wordWrap = true, stretchWidth = true };
  68. textAreaBoxWindow = new GUIStyle(EditorStyles.textArea) { richText = true };
  69. boldFoldout = new GUIStyle(EditorStyles.foldout) { fontStyle = FontStyle.Bold };
  70. panelTitle = new GUIStyle(EditorStyles.label) { fontStyle = FontStyle.Bold };
  71. centeredLabel = new GUIStyle(EditorStyles.label) { alignment = TextAnchor.MiddleCenter};
  72. lockButton = "IN LockButton";
  73. alignmentButtonLeft = new GUIStyle(EditorStyles.miniButtonLeft);
  74. alignmentButtonLeft.padding.left = 4;
  75. alignmentButtonLeft.padding.right = 4;
  76. alignmentButtonLeft.padding.top = 2;
  77. alignmentButtonLeft.padding.bottom = 2;
  78. alignmentButtonMid = new GUIStyle(EditorStyles.miniButtonMid);
  79. alignmentButtonMid.padding.left = 4;
  80. alignmentButtonMid.padding.right = 4;
  81. alignmentButtonLeft.padding.top = 2;
  82. alignmentButtonLeft.padding.bottom = 2;
  83. alignmentButtonRight = new GUIStyle(EditorStyles.miniButtonRight);
  84. alignmentButtonRight.padding.left = 4;
  85. alignmentButtonRight.padding.right = 4;
  86. alignmentButtonLeft.padding.top = 2;
  87. alignmentButtonLeft.padding.bottom = 2;
  88. wrappingTextArea = new GUIStyle(EditorStyles.textArea);
  89. wrappingTextArea.wordWrap = true;
  90. alignContentA = new []
  91. {
  92. new GUIContent(alignLeft, "Left"),
  93. new GUIContent(alignCenter, "Center"),
  94. new GUIContent(alignRight, "Right"),
  95. new GUIContent(alignJustified, "Justified"),
  96. new GUIContent(alignFlush, "Flush"),
  97. new GUIContent(alignGeoCenter, "Geometry Center")
  98. };
  99. alignContentB = new []
  100. {
  101. new GUIContent(alignTop, "Top"),
  102. new GUIContent(alignMiddle, "Middle"),
  103. new GUIContent(alignBottom, "Bottom"),
  104. new GUIContent(alignBaseline, "Baseline"),
  105. new GUIContent(alignMidline, "Midline"),
  106. new GUIContent(alignCapline, "Capline")
  107. };
  108. }
  109. }
  110. }