first commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
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");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user