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");
|
|
}
|
|
}
|