66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | using System.Reflection; | ||
|  | 
 | ||
|  | using UnityEngine; | ||
|  | 
 | ||
|  | namespace Unity.PlasticSCM.Editor.UI | ||
|  | { | ||
|  |     internal static class PlasticSplitterGUILayout | ||
|  |     { | ||
|  |         internal static void BeginHorizontalSplit(object splitterState) | ||
|  |         { | ||
|  |             InternalBeginHorizontalSplit.Invoke( | ||
|  |                 null, new object[] {splitterState, new GUILayoutOption[] { }}); | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static void EndHorizontalSplit() | ||
|  |         { | ||
|  |             InternalEndHorizontalSplit.Invoke( | ||
|  |                 null, new object[] { }); | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static void BeginVerticalSplit(object splitterState) | ||
|  |         { | ||
|  |             InternalBeginVerticalSplit.Invoke( | ||
|  |                 null, new object[] {splitterState, new GUILayoutOption[] { }}); | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static void EndVerticalSplit() | ||
|  |         { | ||
|  |             InternalEndVerticalSplit.Invoke( | ||
|  |                 null, new object[] { }); | ||
|  |         } | ||
|  | 
 | ||
|  |         internal static object InitSplitterState( | ||
|  |             float[] relativeSizes, int[] minSizes, int[] maxSizes) | ||
|  |         { | ||
|  |             ConstructorInfo ctorInfo = SplitterState.GetConstructor( | ||
|  |                 new Type[] {typeof(float[]), typeof(int[]), typeof(int[])}); | ||
|  | 
 | ||
|  |             return ctorInfo.Invoke( | ||
|  |                 new object[] {relativeSizes, minSizes, maxSizes}); | ||
|  |         } | ||
|  | 
 | ||
|  |         static readonly Type SplitterState = | ||
|  |             typeof(UnityEditor.Editor).Assembly. | ||
|  |                 GetType("UnityEditor.SplitterState"); | ||
|  |         static readonly Type InternalSplitterGUILayout = | ||
|  |             typeof(UnityEditor.Editor).Assembly. | ||
|  |                 GetType("UnityEditor.SplitterGUILayout"); | ||
|  | 
 | ||
|  |         static readonly MethodInfo InternalBeginHorizontalSplit = | ||
|  |             InternalSplitterGUILayout.GetMethod( | ||
|  |                 "BeginHorizontalSplit", | ||
|  |                 new Type[] { SplitterState, typeof(GUILayoutOption[]) }); | ||
|  |         static readonly MethodInfo InternalEndHorizontalSplit = | ||
|  |             InternalSplitterGUILayout.GetMethod("EndHorizontalSplit"); | ||
|  | 
 | ||
|  |         static readonly MethodInfo InternalBeginVerticalSplit = | ||
|  |             InternalSplitterGUILayout.GetMethod( | ||
|  |                 "BeginVerticalSplit", | ||
|  |                 new Type[] { SplitterState, typeof(GUILayoutOption[]) }); | ||
|  |         static readonly MethodInfo InternalEndVerticalSplit = | ||
|  |             InternalSplitterGUILayout.GetMethod("EndVerticalSplit"); | ||
|  |     } | ||
|  | } |