using System; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; namespace ImGuiNET { public unsafe partial struct ImGuiWindowClass { public uint ClassId; public uint ParentViewportId; public ImGuiViewportFlags ViewportFlagsOverrideSet; public ImGuiViewportFlags ViewportFlagsOverrideClear; public ImGuiTabItemFlags TabItemFlagsOverrideSet; public ImGuiDockNodeFlags DockNodeFlagsOverrideSet; public byte DockingAlwaysTabBar; public byte DockingAllowUnclassed; } public unsafe partial struct ImGuiWindowClassPtr { public ImGuiWindowClass* NativePtr { get; } public ImGuiWindowClassPtr(ImGuiWindowClass* nativePtr) => NativePtr = nativePtr; public ImGuiWindowClassPtr(IntPtr nativePtr) => NativePtr = (ImGuiWindowClass*)nativePtr; public static implicit operator ImGuiWindowClassPtr(ImGuiWindowClass* nativePtr) => new ImGuiWindowClassPtr(nativePtr); public static implicit operator ImGuiWindowClass* (ImGuiWindowClassPtr wrappedPtr) => wrappedPtr.NativePtr; public static implicit operator ImGuiWindowClassPtr(IntPtr nativePtr) => new ImGuiWindowClassPtr(nativePtr); public ref uint ClassId => ref Unsafe.AsRef(&NativePtr->ClassId); public ref uint ParentViewportId => ref Unsafe.AsRef(&NativePtr->ParentViewportId); public ref ImGuiViewportFlags ViewportFlagsOverrideSet => ref Unsafe.AsRef(&NativePtr->ViewportFlagsOverrideSet); public ref ImGuiViewportFlags ViewportFlagsOverrideClear => ref Unsafe.AsRef(&NativePtr->ViewportFlagsOverrideClear); public ref ImGuiTabItemFlags TabItemFlagsOverrideSet => ref Unsafe.AsRef(&NativePtr->TabItemFlagsOverrideSet); public ref ImGuiDockNodeFlags DockNodeFlagsOverrideSet => ref Unsafe.AsRef(&NativePtr->DockNodeFlagsOverrideSet); public ref bool DockingAlwaysTabBar => ref Unsafe.AsRef(&NativePtr->DockingAlwaysTabBar); public ref bool DockingAllowUnclassed => ref Unsafe.AsRef(&NativePtr->DockingAllowUnclassed); public void Destroy() { ImGuiNative.ImGuiWindowClass_destroy((ImGuiWindowClass*)(NativePtr)); } } }