| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Runtime.CompilerServices;
- namespace BansheeEngine
- {
- public sealed class GUIToggle : GUIElement
- {
- public delegate void OnClickDelegate();
- public delegate void OnHoverDelegate();
- public delegate void OnOutDelegate();
- public delegate void OnToggleDelegate(bool toggled);
- public event OnClickDelegate OnClick;
- public event OnHoverDelegate OnHover;
- public event OnOutDelegate OnOut;
- public event OnToggleDelegate OnToggled;
- internal GUIToggle(GUILayout parentLayout, GUIContent content, GUIToggleGroup toggleGroup, GUIElementStyle style, params GUIOption[] options)
- :base(parentLayout)
- {
- Internal_CreateInstance(this, parentLayout, content, toggleGroup, style, options);
- }
- public void SetContent(GUIContent content)
- {
- Internal_SetContent(mCachedPtr, content);
- }
- public void ToggleOn()
- {
- Internal_ToggleOn();
- }
- public void ToggleOff()
- {
- Internal_ToggleOff();
- }
- private void DoOnClick()
- {
- if (OnClick != null)
- OnClick();
- }
- private void DoOnHover()
- {
- if (OnHover != null)
- OnHover();
- }
- private void DoOnOut()
- {
- if (OnOut != null)
- OnOut();
- }
- private void DoOnToggled(bool toggled)
- {
- if (OnToggled != null)
- OnToggled(toggled);
- }
- [MethodImpl(MethodImplOptions.InternalCall)]
- private static extern void Internal_CreateInstance(GUIToggle instance, GUILayout layout, GUIContent content,
- GUIToggleGroup toggleGroup, GUIElementStyle style, GUIOption[] options);
- [MethodImpl(MethodImplOptions.InternalCall)]
- private static extern void Internal_SetContent(IntPtr nativeInstance, GUIContent content);
- [MethodImpl(MethodImplOptions.InternalCall)]
- private static extern void Internal_ToggleOn();
- [MethodImpl(MethodImplOptions.InternalCall)]
- private static extern void Internal_ToggleOff();
- }
- }
|