GUISpace.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public sealed class GUIFixedSpace : GUIElement
  6. {
  7. internal GUIFixedSpace(GUILayout parentLayout, int size)
  8. {
  9. Internal_CreateInstanceAdd(this, parentLayout, size);
  10. }
  11. internal GUIFixedSpace(GUILayout parentLayout, int index, int size)
  12. {
  13. Internal_CreateInstanceInsert(this, parentLayout, index, size);
  14. }
  15. internal override bool IsStatic()
  16. {
  17. return true;
  18. }
  19. internal override void SetParent(GUILayout layout)
  20. {
  21. // Space only gets one parent set on initialization and then it cannot be moved
  22. if (parent == null)
  23. {
  24. parent = layout;
  25. if (parent != null)
  26. parent.children.Add(this);
  27. }
  28. }
  29. public void SetSize(int size)
  30. {
  31. Internal_SetSize(mCachedPtr, size);
  32. }
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. private static extern void Internal_CreateInstanceAdd(GUIFixedSpace instance, GUILayout parentLayout, int size);
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. private static extern void Internal_CreateInstanceInsert(GUIFixedSpace instance, GUILayout parentLayout, int index, int size);
  37. [MethodImpl(MethodImplOptions.InternalCall)]
  38. private static extern void Internal_SetSize(IntPtr nativeInstance, int size);
  39. }
  40. public sealed class GUIFlexibleSpace : GUIElement
  41. {
  42. internal GUIFlexibleSpace(GUILayout parentLayout)
  43. {
  44. Internal_CreateInstanceAdd(this, parentLayout);
  45. }
  46. internal GUIFlexibleSpace(GUILayout parentLayout, int index)
  47. {
  48. Internal_CreateInstanceInsert(this, parentLayout, index);
  49. }
  50. internal override bool IsStatic()
  51. {
  52. return true;
  53. }
  54. internal override void SetParent(GUILayout layout)
  55. {
  56. // Space only gets one parent set on initialization and then it cannot be moved
  57. if (parent == null)
  58. {
  59. parent = layout;
  60. if (parent != null)
  61. parent.children.Add(this);
  62. }
  63. }
  64. [MethodImpl(MethodImplOptions.InternalCall)]
  65. private static extern void Internal_CreateInstanceAdd(GUIFlexibleSpace instance, GUILayout parentLayout);
  66. [MethodImpl(MethodImplOptions.InternalCall)]
  67. private static extern void Internal_CreateInstanceInsert(GUIFlexibleSpace instance, GUILayout parentLayout, int index);
  68. }
  69. }