Code/SboxSuperuser/Engine/Vendor/ImGui/ImGuiContext.DragDrop.cs

Part of a vendored ImGui context that stores drag-and-drop state. It declares fields tracking whether a drag-drop operation is active, source/target flags and ids, payload, rectangles, mouse button and timing counters used by the ImGui drag-drop implementation.

// Vendored from zeljkovranjes/sbox-imgui; see LICENSE and PROVENANCE.md in this folder.
using Sandbox;
#pragma warning disable CS0649 // Upstream reserves fields for optional widgets and features.
namespace SboxSuperuser.Engine.Vendor.ImGui;

internal partial class ImGuiContext
{
	public bool DragDropActive;
	public bool DragDropWithinSource;
	public bool DragDropWithinTarget;
	public ImGuiDragDropFlags DragDropSourceFlags;
	public int DragDropSourceFrameCount = -1;
	public int DragDropMouseButton = -1;
	public readonly ImGuiPayload DragDropPayload = new();
	public ImRect DragDropTargetRect;
	public ImRect DragDropTargetClipRect;
	public int DragDropTargetId;
	public ImGuiDragDropFlags DragDropAcceptFlags;
	public float DragDropAcceptIdCurrRectSurface = float.MaxValue;
	public int DragDropAcceptIdCurr;
	public int DragDropAcceptIdPrev;
	public int DragDropAcceptFrameCount = -1;
	public int DragDropHoldJustPressedId;
}