1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- namespace SRF.UI
- {
- using Internal;
- using UnityEngine;
- using UnityEngine.EventSystems;
- using UnityEngine.UI;
- /// <summary>
- /// Copies the preferred size of another layout element (useful for a parent object basing its sizing from a child
- /// element).
- /// This does have very quirky behaviour, though.
- /// TODO: Write custom editor for this to match layout element editor
- /// </summary>
- [RequireComponent(typeof (RectTransform))]
- [ExecuteInEditMode]
- [AddComponentMenu(ComponentMenuPaths.CopyLayoutElement)]
- public class CopyLayoutElement : UIBehaviour, ILayoutElement
- {
- public bool CopyMinHeight;
- public bool CopyMinWidth;
- public bool CopyPreferredHeight;
- public bool CopyPreferredWidth;
- public RectTransform CopySource;
- public float PaddingMinHeight;
- public float PaddingMinWidth;
- public float PaddingPreferredHeight;
- public float PaddingPreferredWidth;
- public float preferredWidth
- {
- get
- {
- if (!CopyPreferredWidth || CopySource == null || !IsActive())
- {
- return -1f;
- }
- return LayoutUtility.GetPreferredWidth(CopySource) + PaddingPreferredWidth;
- }
- }
- public float preferredHeight
- {
- get
- {
- if (!CopyPreferredHeight || CopySource == null || !IsActive())
- {
- return -1f;
- }
- return LayoutUtility.GetPreferredHeight(CopySource) + PaddingPreferredHeight;
- }
- }
- public float minWidth
- {
- get
- {
- if (!CopyMinWidth || CopySource == null || !IsActive())
- {
- return -1f;
- }
- return LayoutUtility.GetMinWidth(CopySource) + PaddingMinWidth;
- }
- }
- public float minHeight
- {
- get
- {
- if (!CopyMinHeight || CopySource == null || !IsActive())
- {
- return -1f;
- }
- return LayoutUtility.GetMinHeight(CopySource) + PaddingMinHeight;
- }
- }
- public int layoutPriority
- {
- get { return 2; }
- }
- public float flexibleHeight
- {
- get { return -1; }
- }
- public float flexibleWidth
- {
- get { return -1; }
- }
- public void CalculateLayoutInputHorizontal() {}
- public void CalculateLayoutInputVertical() {}
- }
- }
|