GUIButton.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public sealed class GUIButton : GUIElement
  6. {
  7. public delegate void OnClickDelegate();
  8. public delegate void OnHoverDelegate();
  9. public delegate void OnOutDelegate();
  10. public event OnClickDelegate OnClick;
  11. public event OnHoverDelegate OnHover;
  12. public event OnOutDelegate OnOut;
  13. public GUIButton(GUIContent content, string style, params GUIOption[] options)
  14. {
  15. Internal_CreateInstance(this, content, style, options);
  16. }
  17. public GUIButton(GUIContent content, string style)
  18. {
  19. Internal_CreateInstance(this, content, style, new GUIOption[0]);
  20. }
  21. public GUIButton(GUIContent content, params GUIOption[] options)
  22. {
  23. Internal_CreateInstance(this, content, "", options);
  24. }
  25. public void SetContent(GUIContent content)
  26. {
  27. Internal_SetContent(mCachedPtr, content);
  28. }
  29. public void SetTint(Color color)
  30. {
  31. Internal_SetTint(mCachedPtr, color);
  32. }
  33. private void DoOnClick()
  34. {
  35. if (OnClick != null)
  36. OnClick();
  37. }
  38. private void DoOnHover()
  39. {
  40. if (OnHover != null)
  41. OnHover();
  42. }
  43. private void DoOnOut()
  44. {
  45. if (OnOut != null)
  46. OnOut();
  47. }
  48. [MethodImpl(MethodImplOptions.InternalCall)]
  49. private static extern void Internal_CreateInstance(GUIButton instance, GUIContent content, string style, GUIOption[] options);
  50. [MethodImpl(MethodImplOptions.InternalCall)]
  51. private static extern void Internal_SetContent(IntPtr nativeInstance, GUIContent content);
  52. [MethodImpl(MethodImplOptions.InternalCall)]
  53. private static extern void Internal_SetTint(IntPtr nativeInstance, Color color);
  54. }
  55. }