using System; using System.Runtime.CompilerServices; namespace BansheeEngine { /// /// A GUI element that represents a horizontal slider with a draggable handle. /// public sealed class GUISliderH : GUIElement { public delegate void OnChangedDelegate(float percent); /// /// Triggered when the slider handle moves. Provided parameter represents /// the position of the handle, in percent ranging [0, 1]. /// public event OnChangedDelegate OnChanged; /// /// Returns the position of the slider handle, in percent ranging [0, 1]. /// public float Percent { get { return Internal_GetPercent(mCachedPtr); } set { Internal_SetPercent(mCachedPtr, value); } } /// /// Creates a new horizontal slider. /// /// Optional style to use for the element. Style controls the look of the element, as well as /// default layout options. Style will be retrieved from the active GUISkin. If not specified /// default element style is used. /// Options that allow you to control how is the element positioned and sized. This will /// override any similar options set by style. public GUISliderH(string style, params GUIOption[] options) { Internal_CreateInstance(this, style, options); } /// /// Creates a new vertical slider. /// /// Optional style to use for the element. Style controls the look of the element, as well as /// default layout options. Style will be retrieved from the active GUISkin. If not specified /// default element style is used. public GUISliderH(string style = "") { Internal_CreateInstance(this, style, new GUIOption[0]); } /// /// Colors the element with a specific tint. /// /// Tint to apply to the element. public void SetTint(Color color) { Internal_SetTint(mCachedPtr, color); } /// /// Triggered by the native interop object when the slider handle is moved. /// /// New position of the slider handle, in percent ranging [0, 1]. private void DoOnChanged(float percent) { if (OnChanged != null) OnChanged(percent); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_CreateInstance(GUISliderH instance, string style, GUIOption[] options); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_GetPercent(IntPtr nativeInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetPercent(IntPtr nativeInstance, float percent); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetTint(IntPtr nativeInstance, Color color); } /// /// A GUI element that represents a vertical slider with a draggable handle. /// public sealed class GUISliderV : GUIElement { public delegate void OnChangedDelegate(float percent); /// /// Triggered when the slider handle moves. Provided parameter represents /// the position of the handle, in percent ranging [0, 1]. /// public event OnChangedDelegate OnChanged; /// /// Returns the position of the slider handle, in percent ranging [0, 1]. /// public float Percent { get { return Internal_GetPercent(mCachedPtr); } set { Internal_SetPercent(mCachedPtr, value); } } /// /// Creates a new vertical slider. /// /// Optional style to use for the element. Style controls the look of the element, as well as /// default layout options. Style will be retrieved from the active GUISkin. If not specified /// default element style is used. /// Options that allow you to control how is the element positioned and sized. This will /// override any similar options set by style. public GUISliderV(string style, params GUIOption[] options) { Internal_CreateInstance(this, style, options); } /// /// Creates a new vertical slider. /// /// Optional style to use for the element. Style controls the look of the element, as well as /// default layout options. Style will be retrieved from the active GUISkin. If not specified /// default element style is used. public GUISliderV(string style = "") { Internal_CreateInstance(this, style, new GUIOption[0]); } /// /// Colors the element with a specific tint. /// /// Tint to apply to the element. public void SetTint(Color color) { Internal_SetTint(mCachedPtr, color); } /// /// Triggered by the native interop object when the slider handle is moved. /// /// New position of the slider handle, in percent ranging [0, 1]. private void DoOnChanged(float percent) { if (OnChanged != null) OnChanged(percent); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_CreateInstance(GUISliderV instance, string style, GUIOption[] options); [MethodImpl(MethodImplOptions.InternalCall)] private static extern float Internal_GetPercent(IntPtr nativeInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetPercent(IntPtr nativeInstance, float percent); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetTint(IntPtr nativeInstance, Color color); } }