77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | namespace SRF.UI | |||
|  | { | |||
|  |     using Internal; | |||
|  |     using UnityEngine; | |||
|  |     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. | |||
|  |     /// </summary> | |||
|  |     [RequireComponent(typeof(RectTransform))] | |||
|  |     [ExecuteInEditMode] | |||
|  |     [AddComponentMenu(ComponentMenuPaths.CopySizeIntoLayoutElement)] | |||
|  |     public class CopySizeIntoLayoutElement : LayoutElement | |||
|  |     { | |||
|  |         public RectTransform CopySource; | |||
|  |         public float PaddingHeight; | |||
|  |         public float PaddingWidth; | |||
|  | 
 | |||
|  |         public bool SetPreferredSize = false; | |||
|  |         public bool SetMinimumSize = false; | |||
|  | 
 | |||
|  |         public override float preferredWidth | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (!SetPreferredSize || CopySource == null || !IsActive()) | |||
|  |                 { | |||
|  |                     return -1f; | |||
|  |                 } | |||
|  |                 return CopySource.rect.width + PaddingWidth; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public override float preferredHeight | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (!SetPreferredSize || CopySource == null || !IsActive()) | |||
|  |                 { | |||
|  |                     return -1f; | |||
|  |                 } | |||
|  |                 return CopySource.rect.height + PaddingHeight; | |||
|  |             } | |||
|  |         } | |||
|  |         public override float minWidth | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (!SetMinimumSize || CopySource == null || !IsActive()) | |||
|  |                 { | |||
|  |                     return -1f; | |||
|  |                 } | |||
|  |                 return CopySource.rect.width + PaddingWidth; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public override float minHeight | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 if (!SetMinimumSize || CopySource == null || !IsActive()) | |||
|  |                 { | |||
|  |                     return -1f; | |||
|  |                 } | |||
|  |                 return CopySource.rect.height + PaddingHeight; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         public override int layoutPriority | |||
|  |         { | |||
|  |             get { return 2; } | |||
|  |         } | |||
|  |     } | |||
|  | } |