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