135 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			135 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using UnityEngine; | |||
|  | using UnityEditor; | |||
|  | using System.Collections; | |||
|  | 
 | |||
|  | 
 | |||
|  | namespace TMPro.EditorUtilities | |||
|  | { | |||
|  | 
 | |||
|  |     public static class TMP_UIStyleManager | |||
|  |     { | |||
|  |         public static GUIStyle label; | |||
|  |         public static GUIStyle textAreaBoxWindow; | |||
|  |         public static GUIStyle boldFoldout; | |||
|  |         public static GUIStyle panelTitle; | |||
|  |         public static GUIStyle sectionHeader; | |||
|  |         public static GUIStyle centeredLabel; | |||
|  |         public static GUIStyle rightLabel; | |||
|  |         public static GUIStyle wrappingTextArea; | |||
|  | 
 | |||
|  |         public static GUIStyle alignmentButtonLeft; | |||
|  |         public static GUIStyle alignmentButtonMid; | |||
|  |         public static GUIStyle alignmentButtonRight; | |||
|  | 
 | |||
|  |         // Alignment Button Textures | |||
|  |         public static Texture2D alignLeft; | |||
|  |         public static Texture2D alignCenter; | |||
|  |         public static Texture2D alignRight; | |||
|  |         public static Texture2D alignJustified; | |||
|  |         public static Texture2D alignFlush; | |||
|  |         public static Texture2D alignGeoCenter; | |||
|  |         public static Texture2D alignTop; | |||
|  |         public static Texture2D alignMiddle; | |||
|  |         public static Texture2D alignBottom; | |||
|  |         public static Texture2D alignBaseline; | |||
|  |         public static Texture2D alignMidline; | |||
|  |         public static Texture2D alignCapline; | |||
|  |         public static Texture2D sectionHeaderTexture; | |||
|  |          | |||
|  |         public static GUIContent[] alignContentA; | |||
|  |         public static GUIContent[] alignContentB; | |||
|  | 
 | |||
|  |         static TMP_UIStyleManager() | |||
|  |         { | |||
|  |             // Find to location of the TextMesh Pro Asset Folder (as users may have moved it) | |||
|  |             var tmproAssetFolderPath = TMP_EditorUtility.packageRelativePath; | |||
|  | 
 | |||
|  |             if (EditorGUIUtility.isProSkin) | |||
|  |             { | |||
|  |                 alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 sectionHeaderTexture = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/SectionHeader_Dark.psd", typeof(Texture2D)) as Texture2D; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |                 sectionHeaderTexture = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/SectionHeader_Light.psd", typeof(Texture2D)) as Texture2D; | |||
|  |             } | |||
|  | 
 | |||
|  |             label = new GUIStyle(EditorStyles.label) { richText = true, wordWrap = true, stretchWidth = true }; | |||
|  |             textAreaBoxWindow = new GUIStyle(EditorStyles.textArea) { richText = true }; | |||
|  |             boldFoldout = new GUIStyle(EditorStyles.foldout) { fontStyle = FontStyle.Bold }; | |||
|  |             panelTitle = new GUIStyle(EditorStyles.label) { fontStyle = FontStyle.Bold }; | |||
|  | 
 | |||
|  |             sectionHeader = new GUIStyle(EditorStyles.label) { fixedHeight = 22, richText = true, border = new RectOffset(9, 9, 0, 0), overflow = new RectOffset(9, 0, 0, 0), padding = new RectOffset(0, 0, 4, 0) }; | |||
|  |             sectionHeader.normal.background = sectionHeaderTexture; | |||
|  | 
 | |||
|  |             centeredLabel = new GUIStyle(EditorStyles.label) { alignment = TextAnchor.MiddleCenter}; | |||
|  |             rightLabel = new GUIStyle(EditorStyles.label) { alignment = TextAnchor.MiddleRight, richText = true }; | |||
|  | 
 | |||
|  | 
 | |||
|  |             alignmentButtonLeft = new GUIStyle(EditorStyles.miniButtonLeft); | |||
|  |             alignmentButtonLeft.padding.left = 4; | |||
|  |             alignmentButtonLeft.padding.right = 4; | |||
|  |             alignmentButtonLeft.padding.top = 2; | |||
|  |             alignmentButtonLeft.padding.bottom = 2; | |||
|  | 
 | |||
|  |             alignmentButtonMid = new GUIStyle(EditorStyles.miniButtonMid); | |||
|  |             alignmentButtonMid.padding.left = 4; | |||
|  |             alignmentButtonMid.padding.right = 4; | |||
|  |             alignmentButtonLeft.padding.top = 2; | |||
|  |             alignmentButtonLeft.padding.bottom = 2; | |||
|  | 
 | |||
|  |             alignmentButtonRight = new GUIStyle(EditorStyles.miniButtonRight); | |||
|  |             alignmentButtonRight.padding.left = 4; | |||
|  |             alignmentButtonRight.padding.right = 4; | |||
|  |             alignmentButtonLeft.padding.top = 2; | |||
|  |             alignmentButtonLeft.padding.bottom = 2; | |||
|  | 
 | |||
|  |             wrappingTextArea = new GUIStyle(EditorStyles.textArea); | |||
|  |             wrappingTextArea.wordWrap = true; | |||
|  | 
 | |||
|  |             alignContentA = new [] | |||
|  |             {  | |||
|  |                 new GUIContent(alignLeft, "Left"),  | |||
|  |                 new GUIContent(alignCenter, "Center"),  | |||
|  |                 new GUIContent(alignRight, "Right"),  | |||
|  |                 new GUIContent(alignJustified, "Justified"), | |||
|  |                 new GUIContent(alignFlush, "Flush"), | |||
|  |                 new GUIContent(alignGeoCenter, "Geometry Center") | |||
|  |             }; | |||
|  | 
 | |||
|  |             alignContentB = new [] | |||
|  |             {  | |||
|  |                 new GUIContent(alignTop, "Top"),  | |||
|  |                 new GUIContent(alignMiddle, "Middle"),  | |||
|  |                 new GUIContent(alignBottom, "Bottom"), | |||
|  |                 new GUIContent(alignBaseline, "Baseline"), | |||
|  |                 new GUIContent(alignMidline, "Midline"), | |||
|  |                 new GUIContent(alignCapline, "Capline") | |||
|  |             }; | |||
|  |         } | |||
|  |     } | |||
|  | } |