GUIIntField.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 titleStyle = "",
  16. string inputStyle = "", params GUIOption[] options)
  17. {
  18. Internal_CreateInstance(this, title, titleWidth, titleStyle, inputStyle, options, true);
  19. }
  20. public GUIIntField(string inputStyle = "", params GUIOption[] options)
  21. {
  22. Internal_CreateInstance(this, null, 0, "", inputStyle, options, false);
  23. }
  24. private void DoOnChanged(int newValue)
  25. {
  26. if (OnChanged != null)
  27. OnChanged(newValue);
  28. }
  29. [MethodImpl(MethodImplOptions.InternalCall)]
  30. private static extern void Internal_CreateInstance(GUIIntField instance, GUIContent title, int titleWidth,
  31. string titleStyle, string inputStyle, GUIOption[] options, bool withTitle);
  32. [MethodImpl(MethodImplOptions.InternalCall)]
  33. private static extern int Internal_GetValue(IntPtr nativeInstance);
  34. [MethodImpl(MethodImplOptions.InternalCall)]
  35. private static extern void Internal_SetValue(IntPtr nativeInstance, int value);
  36. }
  37. }