using System; using System.Runtime.CompilerServices; namespace BansheeEngine { /// /// Wrapper around the native GUIWidget class. /// /// internal class NativeGUIWidget : ScriptObject { /// /// Skin used for rendering all the GUI elements belonging to this widget. /// internal GUISkin Skin { get { return Internal_GetSkin(mCachedPtr); } set { IntPtr skinPtr = IntPtr.Zero; if (value != null) skinPtr = value.GetCachedPtr(); Internal_SetSkin(mCachedPtr, skinPtr); } } /// /// Determines to which camera are the GUI elements belonong to this widget rendered. If null then they will be /// rendered on the main camera. /// internal Camera Camera { get { return Internal_GetCamera(mCachedPtr); } set { IntPtr cameraPtr = IntPtr.Zero; if (value != null) cameraPtr = value.GetCachedPtr(); Internal_SetCamera(mCachedPtr, cameraPtr); } } /// /// Container into which all GUI elements belonging to this widget should be placed. /// internal GUIPanel Panel { get { return Internal_GetPanel(mCachedPtr); } } /// /// Deletes the GUI widget and all child GUI elements. /// internal void Destroy() { Internal_Destroy(mCachedPtr); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern GUISkin Internal_GetSkin(IntPtr instance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetSkin(IntPtr instance, IntPtr skin); [MethodImpl(MethodImplOptions.InternalCall)] private static extern Camera Internal_GetCamera(IntPtr instance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_SetCamera(IntPtr instance, IntPtr camera); [MethodImpl(MethodImplOptions.InternalCall)] private static extern GUIPanel Internal_GetPanel(IntPtr instance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_Destroy(IntPtr instance); } }