// ------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// ------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using HexaGen.Runtime;
using System.Numerics;
namespace Dalamud.Bindings.ImGui
{
///
/// To be documented.
///
[StructLayout(LayoutKind.Sequential)]
public partial struct ImGuiSettingsHandler
{
///
/// To be documented.
///
public unsafe byte* TypeName;
///
/// To be documented.
///
public uint TypeHash;
///
/// To be documented.
///
public unsafe void* ClearAllFn;
///
/// To be documented.
///
public unsafe void* ReadInitFn;
///
/// To be documented.
///
public unsafe void* ReadOpenFn;
///
/// To be documented.
///
public unsafe void* ReadLineFn;
///
/// To be documented.
///
public unsafe void* ApplyAllFn;
///
/// To be documented.
///
public unsafe void* WriteAllFn;
///
/// To be documented.
///
public unsafe void* UserData;
///
/// To be documented.
///
public unsafe ImGuiSettingsHandler(byte* typeName = default, uint typeHash = default, delegate* clearAllFn = default, delegate* readInitFn = default, delegate* readOpenFn = default, delegate* readLineFn = default, delegate* applyAllFn = default, delegate* writeAllFn = default, void* userData = default)
{
TypeName = typeName;
TypeHash = typeHash;
ClearAllFn = (void*)clearAllFn;
ReadInitFn = (void*)readInitFn;
ReadOpenFn = (void*)readOpenFn;
ReadLineFn = (void*)readLineFn;
ApplyAllFn = (void*)applyAllFn;
WriteAllFn = (void*)writeAllFn;
UserData = userData;
}
///
/// To be documented.
///
public unsafe void Destroy()
{
fixed (ImGuiSettingsHandler* @this = &this)
{
ImGui.DestroyNative(@this);
}
}
}
///
/// To be documented.
///
#if NET5_0_OR_GREATER
[DebuggerDisplay("{DebuggerDisplay,nq}")]
#endif
public unsafe struct ImGuiSettingsHandlerPtr : IEquatable
{
public ImGuiSettingsHandlerPtr(ImGuiSettingsHandler* handle) { Handle = handle; }
public ImGuiSettingsHandler* Handle;
public bool IsNull => Handle == null;
public static ImGuiSettingsHandlerPtr Null => new ImGuiSettingsHandlerPtr(null);
public ImGuiSettingsHandler this[int index] { get => Handle[index]; set => Handle[index] = value; }
public static implicit operator ImGuiSettingsHandlerPtr(ImGuiSettingsHandler* handle) => new ImGuiSettingsHandlerPtr(handle);
public static implicit operator ImGuiSettingsHandler*(ImGuiSettingsHandlerPtr handle) => handle.Handle;
public static bool operator ==(ImGuiSettingsHandlerPtr left, ImGuiSettingsHandlerPtr right) => left.Handle == right.Handle;
public static bool operator !=(ImGuiSettingsHandlerPtr left, ImGuiSettingsHandlerPtr right) => left.Handle != right.Handle;
public static bool operator ==(ImGuiSettingsHandlerPtr left, ImGuiSettingsHandler* right) => left.Handle == right;
public static bool operator !=(ImGuiSettingsHandlerPtr left, ImGuiSettingsHandler* right) => left.Handle != right;
public bool Equals(ImGuiSettingsHandlerPtr other) => Handle == other.Handle;
///
public override bool Equals(object obj) => obj is ImGuiSettingsHandlerPtr handle && Equals(handle);
///
public override int GetHashCode() => ((nuint)Handle).GetHashCode();
#if NET5_0_OR_GREATER
private string DebuggerDisplay => string.Format("ImGuiSettingsHandlerPtr [0x{0}]", ((nuint)Handle).ToString("X"));
#endif
///
/// To be documented.
///
public byte* TypeName { get => Handle->TypeName; set => Handle->TypeName = value; }
///
/// To be documented.
///
public ref uint TypeHash => ref Unsafe.AsRef(&Handle->TypeHash);
///
/// To be documented.
///
public void* ClearAllFn { get => Handle->ClearAllFn; set => Handle->ClearAllFn = value; }
///
/// To be documented.
///
public void* ReadInitFn { get => Handle->ReadInitFn; set => Handle->ReadInitFn = value; }
///
/// To be documented.
///
public void* ReadOpenFn { get => Handle->ReadOpenFn; set => Handle->ReadOpenFn = value; }
///
/// To be documented.
///
public void* ReadLineFn { get => Handle->ReadLineFn; set => Handle->ReadLineFn = value; }
///
/// To be documented.
///
public void* ApplyAllFn { get => Handle->ApplyAllFn; set => Handle->ApplyAllFn = value; }
///
/// To be documented.
///
public void* WriteAllFn { get => Handle->WriteAllFn; set => Handle->WriteAllFn = value; }
///
/// To be documented.
///
public void* UserData { get => Handle->UserData; set => Handle->UserData = value; }
///
/// To be documented.
///
public unsafe void Destroy()
{
ImGui.DestroyNative(Handle);
}
}
}