You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.3 KiB
65 lines
2.3 KiB
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"); |
|
} |
|
}
|
|
|