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.
151 lines
6.3 KiB
151 lines
6.3 KiB
using UnityEditor.AnimatedValues; |
|
using UnityEngine; |
|
using UnityEngine.UI; |
|
|
|
namespace UnityEditor.UI |
|
{ |
|
[CanEditMultipleObjects] |
|
[CustomEditor(typeof(InputField), true)] |
|
/// <summary> |
|
/// Custom Editor for the InputField Component. |
|
/// Extend this class to write a custom editor for a component derived from InputField. |
|
/// </summary> |
|
public class InputFieldEditor : SelectableEditor |
|
{ |
|
SerializedProperty m_TextComponent; |
|
SerializedProperty m_Text; |
|
SerializedProperty m_ContentType; |
|
SerializedProperty m_LineType; |
|
SerializedProperty m_InputType; |
|
SerializedProperty m_CharacterValidation; |
|
SerializedProperty m_KeyboardType; |
|
SerializedProperty m_CharacterLimit; |
|
SerializedProperty m_CaretBlinkRate; |
|
SerializedProperty m_CaretWidth; |
|
SerializedProperty m_CaretColor; |
|
SerializedProperty m_CustomCaretColor; |
|
SerializedProperty m_SelectionColor; |
|
SerializedProperty m_HideMobileInput; |
|
SerializedProperty m_Placeholder; |
|
SerializedProperty m_OnValueChanged; |
|
SerializedProperty m_OnSubmit; |
|
SerializedProperty m_OnDidEndEdit; |
|
SerializedProperty m_ReadOnly; |
|
SerializedProperty m_ShouldActivateOnSelect; |
|
|
|
AnimBool m_CustomColor; |
|
|
|
GUIContent m_EndEditContent = new GUIContent("On End Edit"); |
|
|
|
protected override void OnEnable() |
|
{ |
|
base.OnEnable(); |
|
m_TextComponent = serializedObject.FindProperty("m_TextComponent"); |
|
m_Text = serializedObject.FindProperty("m_Text"); |
|
m_ContentType = serializedObject.FindProperty("m_ContentType"); |
|
m_LineType = serializedObject.FindProperty("m_LineType"); |
|
m_InputType = serializedObject.FindProperty("m_InputType"); |
|
m_CharacterValidation = serializedObject.FindProperty("m_CharacterValidation"); |
|
m_KeyboardType = serializedObject.FindProperty("m_KeyboardType"); |
|
m_CharacterLimit = serializedObject.FindProperty("m_CharacterLimit"); |
|
m_CaretBlinkRate = serializedObject.FindProperty("m_CaretBlinkRate"); |
|
m_CaretWidth = serializedObject.FindProperty("m_CaretWidth"); |
|
m_CaretColor = serializedObject.FindProperty("m_CaretColor"); |
|
m_CustomCaretColor = serializedObject.FindProperty("m_CustomCaretColor"); |
|
m_SelectionColor = serializedObject.FindProperty("m_SelectionColor"); |
|
m_HideMobileInput = serializedObject.FindProperty("m_HideMobileInput"); |
|
m_Placeholder = serializedObject.FindProperty("m_Placeholder"); |
|
m_OnValueChanged = serializedObject.FindProperty("m_OnValueChanged"); |
|
m_OnSubmit = serializedObject.FindProperty("m_OnSubmit"); |
|
m_OnDidEndEdit = serializedObject.FindProperty("m_OnDidEndEdit"); |
|
m_ReadOnly = serializedObject.FindProperty("m_ReadOnly"); |
|
m_ShouldActivateOnSelect = serializedObject.FindProperty("m_ShouldActivateOnSelect"); |
|
|
|
m_CustomColor = new AnimBool(m_CustomCaretColor.boolValue); |
|
m_CustomColor.valueChanged.AddListener(Repaint); |
|
} |
|
|
|
protected override void OnDisable() |
|
{ |
|
base.OnDisable(); |
|
m_CustomColor.valueChanged.RemoveListener(Repaint); |
|
} |
|
|
|
public override void OnInspectorGUI() |
|
{ |
|
serializedObject.Update(); |
|
|
|
base.OnInspectorGUI(); |
|
|
|
EditorGUILayout.Space(); |
|
|
|
EditorGUILayout.PropertyField(m_TextComponent); |
|
|
|
if (m_TextComponent != null && m_TextComponent.objectReferenceValue != null) |
|
{ |
|
Text text = m_TextComponent.objectReferenceValue as Text; |
|
if (text.supportRichText) |
|
{ |
|
EditorGUILayout.HelpBox("Using Rich Text with input is unsupported.", MessageType.Warning); |
|
} |
|
} |
|
|
|
using (new EditorGUI.DisabledScope(m_TextComponent == null || m_TextComponent.objectReferenceValue == null)) |
|
{ |
|
EditorGUILayout.PropertyField(m_Text); |
|
EditorGUILayout.PropertyField(m_CharacterLimit); |
|
|
|
EditorGUILayout.Space(); |
|
|
|
EditorGUILayout.PropertyField(m_ContentType); |
|
if (!m_ContentType.hasMultipleDifferentValues) |
|
{ |
|
EditorGUI.indentLevel++; |
|
|
|
if (m_ContentType.enumValueIndex == (int)InputField.ContentType.Standard || |
|
m_ContentType.enumValueIndex == (int)InputField.ContentType.Autocorrected || |
|
m_ContentType.enumValueIndex == (int)InputField.ContentType.Custom) |
|
EditorGUILayout.PropertyField(m_LineType); |
|
|
|
if (m_ContentType.enumValueIndex == (int)InputField.ContentType.Custom) |
|
{ |
|
EditorGUILayout.PropertyField(m_InputType); |
|
EditorGUILayout.PropertyField(m_KeyboardType); |
|
EditorGUILayout.PropertyField(m_CharacterValidation); |
|
} |
|
|
|
EditorGUI.indentLevel--; |
|
} |
|
|
|
EditorGUILayout.Space(); |
|
|
|
EditorGUILayout.PropertyField(m_Placeholder); |
|
EditorGUILayout.PropertyField(m_CaretBlinkRate); |
|
EditorGUILayout.PropertyField(m_CaretWidth); |
|
|
|
EditorGUILayout.PropertyField(m_CustomCaretColor); |
|
|
|
m_CustomColor.target = m_CustomCaretColor.boolValue; |
|
|
|
if (EditorGUILayout.BeginFadeGroup(m_CustomColor.faded)) |
|
{ |
|
EditorGUILayout.PropertyField(m_CaretColor); |
|
} |
|
EditorGUILayout.EndFadeGroup(); |
|
|
|
EditorGUILayout.PropertyField(m_SelectionColor); |
|
EditorGUILayout.PropertyField(m_HideMobileInput); |
|
EditorGUILayout.PropertyField(m_ReadOnly); |
|
EditorGUILayout.PropertyField(m_ShouldActivateOnSelect); |
|
|
|
EditorGUILayout.Space(); |
|
|
|
EditorGUILayout.PropertyField(m_OnValueChanged); |
|
EditorGUILayout.PropertyField(m_OnSubmit); |
|
EditorGUILayout.PropertyField(m_OnDidEndEdit, m_EndEditContent); |
|
} |
|
|
|
serializedObject.ApplyModifiedProperties(); |
|
} |
|
} |
|
}
|
|
|