No Description
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.

PlasticSplitterGUILayout.cs 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Reflection;
  3. using UnityEngine;
  4. namespace Unity.PlasticSCM.Editor.UI
  5. {
  6. internal static class PlasticSplitterGUILayout
  7. {
  8. internal static void BeginHorizontalSplit(object splitterState)
  9. {
  10. InternalBeginHorizontalSplit.Invoke(
  11. null, new object[] {splitterState, new GUILayoutOption[] { }});
  12. }
  13. internal static void EndHorizontalSplit()
  14. {
  15. InternalEndHorizontalSplit.Invoke(
  16. null, new object[] { });
  17. }
  18. internal static void BeginVerticalSplit(object splitterState)
  19. {
  20. InternalBeginVerticalSplit.Invoke(
  21. null, new object[] {splitterState, new GUILayoutOption[] { }});
  22. }
  23. internal static void EndVerticalSplit()
  24. {
  25. InternalEndVerticalSplit.Invoke(
  26. null, new object[] { });
  27. }
  28. internal static object InitSplitterState(
  29. float[] relativeSizes, int[] minSizes, int[] maxSizes)
  30. {
  31. ConstructorInfo ctorInfo = SplitterState.GetConstructor(
  32. new Type[] {typeof(float[]), typeof(int[]), typeof(int[])});
  33. return ctorInfo.Invoke(
  34. new object[] {relativeSizes, minSizes, maxSizes});
  35. }
  36. static readonly Type SplitterState =
  37. typeof(UnityEditor.Editor).Assembly.
  38. GetType("UnityEditor.SplitterState");
  39. static readonly Type InternalSplitterGUILayout =
  40. typeof(UnityEditor.Editor).Assembly.
  41. GetType("UnityEditor.SplitterGUILayout");
  42. static readonly MethodInfo InternalBeginHorizontalSplit =
  43. InternalSplitterGUILayout.GetMethod(
  44. "BeginHorizontalSplit",
  45. new Type[] { SplitterState, typeof(GUILayoutOption[]) });
  46. static readonly MethodInfo InternalEndHorizontalSplit =
  47. InternalSplitterGUILayout.GetMethod("EndHorizontalSplit");
  48. static readonly MethodInfo InternalBeginVerticalSplit =
  49. InternalSplitterGUILayout.GetMethod(
  50. "BeginVerticalSplit",
  51. new Type[] { SplitterState, typeof(GUILayoutOption[]) });
  52. static readonly MethodInfo InternalEndVerticalSplit =
  53. InternalSplitterGUILayout.GetMethod("EndVerticalSplit");
  54. }
  55. }