summaryrefslogtreecommitdiff
path: root/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs')
-rw-r--r--Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs78
1 files changed, 78 insertions, 0 deletions
diff --git a/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs
new file mode 100644
index 0000000..cdee245
--- /dev/null
+++ b/Assets/uGUI-2017.1/UnityEngine.UI/UI/Core/Layout/LayoutElement.cs
@@ -0,0 +1,78 @@
+using UnityEngine.EventSystems;
+
+namespace UnityEngine.UI
+{
+ [AddComponentMenu("Layout/Layout Element", 140)]
+ [RequireComponent(typeof(RectTransform))]
+ [ExecuteInEditMode]
+ public class LayoutElement : UIBehaviour, ILayoutElement, ILayoutIgnorer
+ {
+ [SerializeField] private bool m_IgnoreLayout = false;
+ [SerializeField] private float m_MinWidth = -1;
+ [SerializeField] private float m_MinHeight = -1;
+ [SerializeField] private float m_PreferredWidth = -1;
+ [SerializeField] private float m_PreferredHeight = -1;
+ [SerializeField] private float m_FlexibleWidth = -1;
+ [SerializeField] private float m_FlexibleHeight = -1;
+ [SerializeField] private int m_LayoutPriority = 1;
+
+
+ public virtual bool ignoreLayout { get { return m_IgnoreLayout; } set { if (SetPropertyUtility.SetStruct(ref m_IgnoreLayout, value)) SetDirty(); } }
+
+ public virtual void CalculateLayoutInputHorizontal() {}
+ public virtual void CalculateLayoutInputVertical() {}
+ public virtual float minWidth { get { return m_MinWidth; } set { if (SetPropertyUtility.SetStruct(ref m_MinWidth, value)) SetDirty(); } }
+ public virtual float minHeight { get { return m_MinHeight; } set { if (SetPropertyUtility.SetStruct(ref m_MinHeight, value)) SetDirty(); } }
+ public virtual float preferredWidth { get { return m_PreferredWidth; } set { if (SetPropertyUtility.SetStruct(ref m_PreferredWidth, value)) SetDirty(); } }
+ public virtual float preferredHeight { get { return m_PreferredHeight; } set { if (SetPropertyUtility.SetStruct(ref m_PreferredHeight, value)) SetDirty(); } }
+ public virtual float flexibleWidth { get { return m_FlexibleWidth; } set { if (SetPropertyUtility.SetStruct(ref m_FlexibleWidth, value)) SetDirty(); } }
+ public virtual float flexibleHeight { get { return m_FlexibleHeight; } set { if (SetPropertyUtility.SetStruct(ref m_FlexibleHeight, value)) SetDirty(); } }
+ public virtual int layoutPriority { get { return m_LayoutPriority; } set { if (SetPropertyUtility.SetStruct(ref m_LayoutPriority, value)) SetDirty(); } }
+
+
+ protected LayoutElement()
+ {}
+
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+ SetDirty();
+ }
+
+ protected override void OnTransformParentChanged()
+ {
+ SetDirty();
+ }
+
+ protected override void OnDisable()
+ {
+ SetDirty();
+ base.OnDisable();
+ }
+
+ protected override void OnDidApplyAnimationProperties()
+ {
+ SetDirty();
+ }
+
+ protected override void OnBeforeTransformParentChanged()
+ {
+ SetDirty();
+ }
+
+ protected void SetDirty()
+ {
+ if (!IsActive())
+ return;
+ LayoutRebuilder.MarkLayoutForRebuild(transform as RectTransform);
+ }
+
+ #if UNITY_EDITOR
+ protected override void OnValidate()
+ {
+ SetDirty();
+ }
+
+ #endif
+ }
+}