GUIArea.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public sealed class GUIArea : ScriptObject
  6. {
  7. private GUILayout _layout;
  8. private GUIBase parent;
  9. public GUILayout layout
  10. {
  11. get { return _layout;}
  12. }
  13. internal GUIArea()
  14. { }
  15. internal static GUIArea Create(GUIBase parent, int x, int y, int width, int height, short depth)
  16. {
  17. GUIArea newArea = new GUIArea();
  18. Internal_CreateInstance(newArea, parent, x, y, width, height, depth);
  19. newArea.parent = parent;
  20. newArea._layout = new GUILayoutX(newArea);
  21. return newArea;
  22. }
  23. internal static GUIArea CreateResizableX(GUIBase parent, int offsetLeft, int offsetRight, int offsetTop, int height, short depth)
  24. {
  25. GUIArea newArea = new GUIArea();
  26. Internal_CreateInstanceResizableX(newArea, parent, offsetLeft, offsetRight, offsetTop, height, depth);
  27. newArea.parent = parent;
  28. newArea._layout = new GUILayoutX(newArea);
  29. return newArea;
  30. }
  31. internal static GUIArea CreateResizableY(GUIBase parent, int offsetTop, int offsetBottom, int offsetLeft, int width, short depth)
  32. {
  33. GUIArea newArea = new GUIArea();
  34. Internal_CreateInstanceResizableY(newArea, parent, offsetTop, offsetBottom, offsetLeft, width, depth);
  35. newArea.parent = parent;
  36. newArea._layout = new GUILayoutX(newArea);
  37. return newArea;
  38. }
  39. internal static GUIArea CreateResizableXY(GUIBase parent, int offsetLeft, int offsetRight, int offsetTop, int offsetBottom, short depth)
  40. {
  41. GUIArea newArea = new GUIArea();
  42. Internal_CreateInstanceResizableXY(newArea, parent, offsetLeft, offsetRight, offsetTop, offsetBottom, depth);
  43. newArea.parent = parent;
  44. newArea._layout = new GUILayoutX(newArea);
  45. return newArea;
  46. }
  47. public void Destroy()
  48. {
  49. _layout.Destroy();
  50. parent.childAreas.Remove(this);
  51. Internal_Destroy(mCachedPtr);
  52. }
  53. public void Enable()
  54. {
  55. Internal_Enable(mCachedPtr);
  56. }
  57. public void Disable()
  58. {
  59. Internal_Disable(mCachedPtr);
  60. }
  61. [MethodImpl(MethodImplOptions.InternalCall)]
  62. private static extern void Internal_CreateInstance(GUIArea instance, GUIBase parent, int x, int y, int width, int height, short depth);
  63. [MethodImpl(MethodImplOptions.InternalCall)]
  64. private static extern void Internal_CreateInstanceResizableX(GUIArea instance, GUIBase parent, int offsetLeft, int offsetRight, int offsetTop,
  65. int height, short depth);
  66. [MethodImpl(MethodImplOptions.InternalCall)]
  67. private static extern void Internal_CreateInstanceResizableY(GUIArea instance, GUIBase parent, int offsetTop, int offsetBottom, int offsetLeft,
  68. int width, short depth);
  69. [MethodImpl(MethodImplOptions.InternalCall)]
  70. private static extern void Internal_CreateInstanceResizableXY(GUIArea instance, GUIBase parent, int offsetLeft, int offsetRight, int offsetTop,
  71. int offsetBottom, short depth);
  72. [MethodImpl(MethodImplOptions.InternalCall)]
  73. private static extern void Internal_Destroy(IntPtr nativeInstance);
  74. [MethodImpl(MethodImplOptions.InternalCall)]
  75. private static extern void Internal_Enable(IntPtr nativeInstance);
  76. [MethodImpl(MethodImplOptions.InternalCall)]
  77. private static extern void Internal_Disable(IntPtr nativeInstance);
  78. }
  79. }