summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs')
-rw-r--r--Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs93
1 files changed, 93 insertions, 0 deletions
diff --git a/Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs b/Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs
new file mode 100644
index 0000000..3fc16ee
--- /dev/null
+++ b/Assets/uGUI-2017.1/Editor/UI/GraphicEditor.cs
@@ -0,0 +1,93 @@
+using System.Linq;
+using UnityEditor.AnimatedValues;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace UnityEditor.UI
+{
+ /// <summary>
+ /// Editor class used to edit UI Graphics.
+ /// </summary>
+
+ [CustomEditor(typeof(MaskableGraphic), false)]
+ [CanEditMultipleObjects]
+ public class GraphicEditor : Editor
+ {
+ protected SerializedProperty m_Script;
+ protected SerializedProperty m_Color;
+ protected SerializedProperty m_Material;
+ protected SerializedProperty m_RaycastTarget;
+
+ private GUIContent m_CorrectButtonContent;
+ protected AnimBool m_ShowNativeSize;
+
+ protected virtual void OnDisable()
+ {
+ Tools.hidden = false;
+ m_ShowNativeSize.valueChanged.RemoveListener(Repaint);
+ }
+
+ protected virtual void OnEnable()
+ {
+ m_CorrectButtonContent = new GUIContent("Set Native Size", "Sets the size to match the content.");
+
+ m_Script = serializedObject.FindProperty("m_Script");
+ m_Color = serializedObject.FindProperty("m_Color");
+ m_Material = serializedObject.FindProperty("m_Material");
+ m_RaycastTarget = serializedObject.FindProperty("m_RaycastTarget");
+
+ m_ShowNativeSize = new AnimBool(false);
+ m_ShowNativeSize.valueChanged.AddListener(Repaint);
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+ EditorGUILayout.PropertyField(m_Script);
+ AppearanceControlsGUI();
+ RaycastControlsGUI();
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected void SetShowNativeSize(bool show, bool instant)
+ {
+ if (instant)
+ m_ShowNativeSize.value = show;
+ else
+ m_ShowNativeSize.target = show;
+ }
+
+ protected void NativeSizeButtonGUI()
+ {
+ if (EditorGUILayout.BeginFadeGroup(m_ShowNativeSize.faded))
+ {
+ EditorGUILayout.BeginHorizontal();
+ {
+ GUILayout.Space(EditorGUIUtility.labelWidth);
+ if (GUILayout.Button(m_CorrectButtonContent, EditorStyles.miniButton))
+ {
+ foreach (Graphic graphic in targets.Select(obj => obj as Graphic))
+ {
+ Undo.RecordObject(graphic.rectTransform, "Set Native Size");
+ graphic.SetNativeSize();
+ EditorUtility.SetDirty(graphic);
+ }
+ }
+ }
+ EditorGUILayout.EndHorizontal();
+ }
+ EditorGUILayout.EndFadeGroup();
+ }
+
+ protected void AppearanceControlsGUI()
+ {
+ EditorGUILayout.PropertyField(m_Color);
+ EditorGUILayout.PropertyField(m_Material);
+ }
+
+ protected void RaycastControlsGUI()
+ {
+ EditorGUILayout.PropertyField(m_RaycastTarget);
+ }
+ }
+}