GUIIntField.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. public sealed class GUIIntField : GUIElement
  7. {
  8. public delegate void OnChangedDelegate(int newValue);
  9. public event OnChangedDelegate OnChanged;
  10. public int Value
  11. {
  12. get { return Internal_GetValue(mCachedPtr); }
  13. set { Internal_SetValue(mCachedPtr, value); }
  14. }
  15. public GUIIntField(GUIContent title, int titleWidth = 100, string style = "", params GUIOption[] options)
  16. {
  17. Internal_CreateInstance(this, title, titleWidth, style, options, true);
  18. }
  19. public GUIIntField(string style = "", params GUIOption[] options)
  20. {
  21. Internal_CreateInstance(this, null, 0, style, options, false);
  22. }
  23. private void DoOnChanged(int newValue)
  24. {
  25. if (OnChanged != null)
  26. OnChanged(newValue);
  27. }
  28. [MethodImpl(MethodImplOptions.InternalCall)]
  29. private static extern void Internal_CreateInstance(GUIIntField instance, GUIContent title, int titleWidth,
  30. string style, GUIOption[] options, bool withTitle);
  31. [MethodImpl(MethodImplOptions.InternalCall)]
  32. private static extern int Internal_GetValue(IntPtr nativeInstance);
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. private static extern void Internal_SetValue(IntPtr nativeInstance, int value);
  35. }
  36. }