GUISkin.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public sealed class GUISkin : Resource
  6. {
  7. // Constructor for runtime use only (dummy parameter to differentiate from the normal constructor)
  8. private GUISkin(bool dummy)
  9. { }
  10. public GUISkin()
  11. {
  12. Internal_CreateInstance(this);
  13. }
  14. public string[] StyleNames
  15. {
  16. get { return Internal_GetStyleNames(mCachedPtr); }
  17. }
  18. public GUIElementStyle GetStyle(string name)
  19. {
  20. return Internal_GetStyle(mCachedPtr, name);
  21. }
  22. public void SetStyle(string name, GUIElementStyle style)
  23. {
  24. IntPtr stylePtr = IntPtr.Zero;
  25. if (style != null)
  26. stylePtr = style.GetCachedPtr();
  27. Internal_SetStyle(mCachedPtr, name, stylePtr);
  28. }
  29. public void RemoveStyle(string name)
  30. {
  31. Internal_RemoveStyle(mCachedPtr, name);
  32. }
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. private static extern void Internal_CreateInstance(GUISkin instance);
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. private static extern GUIElementStyle Internal_GetStyle(IntPtr thisPtr, string name);
  37. [MethodImpl(MethodImplOptions.InternalCall)]
  38. private static extern void Internal_SetStyle(IntPtr thisPtr, string name, IntPtr style);
  39. [MethodImpl(MethodImplOptions.InternalCall)]
  40. private static extern void Internal_RemoveStyle(IntPtr thisPtr, string name);
  41. [MethodImpl(MethodImplOptions.InternalCall)]
  42. private static extern string[] Internal_GetStyleNames(IntPtr thisPtr);
  43. }
  44. }