SboxSuperuser/Engine/Vendor/ImGui/ImGuiKey.cs

Enum mapping ImGui keys and modifier masks used by the vendored sbox-imgui integration. It defines named values for keyboard keys, keypad, mouse buttons, a COUNT sentinel, and bit-shifted modifier masks.

// 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 enum ImGuiKey
{
	None = 0,
	Tab = 512,
	LeftArrow, RightArrow, UpArrow, DownArrow,
	PageUp, PageDown, Home, End, Insert, Delete, Backspace, Space, Enter, Escape,
	LeftCtrl, LeftShift, LeftAlt, LeftSuper,
	RightCtrl, RightShift, RightAlt, RightSuper,
	Menu,
	_0, _1, _2, _3, _4, _5, _6, _7, _8, _9,
	A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
	F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
	Apostrophe, Comma, Minus, Period, Slash, Semicolon, Equal, LeftBracket, Backslash, RightBracket, GraveAccent,
	CapsLock, ScrollLock, NumLock, PrintScreen, Pause,
	Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9,
	KeypadDecimal, KeypadDivide, KeypadMultiply, KeypadSubtract, KeypadAdd, KeypadEnter, KeypadEqual,

	MouseLeft, MouseRight, MouseMiddle, MouseX1, MouseX2, MouseWheelX, MouseWheelY,

	COUNT,

	// Modifiers (may be combined with keys in shortcut APIs)
	ImGuiMod_None = 0,
	ImGuiMod_Ctrl = 1 << 12,
	ImGuiMod_Shift = 1 << 13,
	ImGuiMod_Alt = 1 << 14,
	ImGuiMod_Super = 1 << 15,
	ImGuiMod_Mask_ = 0xF000,
}