|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Collections;
|
|
|
|
|
|
namespace TMPro.EditorUtilities
|
|
{
|
|
|
|
[CustomPropertyDrawer(typeof(TMP_Glyph))]
|
|
public class GlyphInfoDrawer : PropertyDrawer
|
|
{
|
|
|
|
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
{
|
|
SerializedProperty prop_id = property.FindPropertyRelative("id");
|
|
SerializedProperty prop_x = property.FindPropertyRelative("x");
|
|
SerializedProperty prop_y = property.FindPropertyRelative("y");
|
|
SerializedProperty prop_width = property.FindPropertyRelative("width");
|
|
SerializedProperty prop_height = property.FindPropertyRelative("height");
|
|
SerializedProperty prop_xOffset = property.FindPropertyRelative("xOffset");
|
|
SerializedProperty prop_yOffset = property.FindPropertyRelative("yOffset");
|
|
SerializedProperty prop_xAdvance = property.FindPropertyRelative("xAdvance");
|
|
SerializedProperty prop_scale = property.FindPropertyRelative("scale");
|
|
|
|
|
|
// We get Rect since a valid position may not be provided by the caller.
|
|
Rect rect = GUILayoutUtility.GetRect(position.width, 48);
|
|
rect.y -= 15;
|
|
|
|
//GUI.enabled = false;
|
|
EditorGUIUtility.labelWidth = 40f;
|
|
EditorGUIUtility.fieldWidth = 45f;
|
|
|
|
bool prevGuiState = GUI.enabled;
|
|
GUI.enabled = true;
|
|
EditorGUI.LabelField(new Rect(rect.x + 5f, rect.y, 80f, 18), new GUIContent("Ascii: <color=#FFFF80>" + prop_id.intValue + "</color>"), TMP_UIStyleManager.label);
|
|
EditorGUI.LabelField(new Rect(rect.x + 90f, rect.y, 80f, 18), new GUIContent("Hex: <color=#FFFF80>" + prop_id.intValue.ToString("X") + "</color>"), TMP_UIStyleManager.label);
|
|
EditorGUI.LabelField(new Rect(rect.x + 170f, rect.y, 80, 18), "Char: [ <color=#FFFF80>" + (char)prop_id.intValue + "</color> ]", TMP_UIStyleManager.label);
|
|
GUI.enabled = prevGuiState;
|
|
|
|
EditorGUIUtility.labelWidth = 35f;
|
|
EditorGUIUtility.fieldWidth = 10f;
|
|
|
|
float width = (rect.width - 5f) / 4;
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 0, rect.y + 22, width - 5f, 18), prop_x, new GUIContent("X:"));
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 1, rect.y + 22, width - 5f, 18), prop_y, new GUIContent("Y:"));
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 2, rect.y + 22, width - 5f, 18), prop_width, new GUIContent("W:"));
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 3, rect.y + 22, width - 5f, 18), prop_height, new GUIContent("H:"));
|
|
|
|
//GUI.enabled = true;
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 0, rect.y + 44, width - 5f, 18), prop_xOffset, new GUIContent("OX:"));
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 1, rect.y + 44, width - 5f, 18), prop_yOffset, new GUIContent("OY:"));
|
|
//GUI.enabled = true;
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 2, rect.y + 44, width - 5f, 18), prop_xAdvance, new GUIContent("ADV:"));
|
|
EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 3, rect.y + 44, width - 5f, 18), prop_scale, new GUIContent("SF:"));
|
|
}
|
|
|
|
}
|
|
}
|