diff options
Diffstat (limited to 'Assets/uGUI-2017.1/Editor/UI/InputFieldEditor.cs')
-rw-r--r-- | Assets/uGUI-2017.1/Editor/UI/InputFieldEditor.cs | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/Assets/uGUI-2017.1/Editor/UI/InputFieldEditor.cs b/Assets/uGUI-2017.1/Editor/UI/InputFieldEditor.cs new file mode 100644 index 0000000..f100f07 --- /dev/null +++ b/Assets/uGUI-2017.1/Editor/UI/InputFieldEditor.cs @@ -0,0 +1,139 @@ +using UnityEditor.AnimatedValues; +using UnityEngine; +using UnityEngine.UI; + +namespace UnityEditor.UI +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(InputField), true)] + 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_OnEndEdit; + SerializedProperty m_ReadOnly; + + AnimBool m_CustomColor; + + 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_OnEndEdit = serializedObject.FindProperty("m_OnEndEdit"); + m_ReadOnly = serializedObject.FindProperty("m_ReadOnly"); + + 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.Space(); + + EditorGUILayout.PropertyField(m_OnValueChanged); + EditorGUILayout.PropertyField(m_OnEndEdit); + } + + serializedObject.ApplyModifiedProperties(); + } + } +} |