UNPKG

anomaly-packer

Version:

Anomaly Packer is a utility package for STALKER Anomaly creators to help them develop addons at speed with TypeScript's type-safety and game-oriented build tools.

911 lines (870 loc) 33.9 kB
/** @noSelfInFile */ // Dear ImGui bindings from `script_imgui_script.cpp` (module `ImGui`) — added by // the modded exes, mirrors the Dear ImGui API. Values come from `imgui.h`. // // Conventions: // - `vector2`/`vector`/`vector4` map to `Fvector2`/`Fvector`/`Fvector4`; `fcolor` // (see math.d.ts) maps to `Fcolor`. Sizes/positions are passed and returned as // `vector2`. // - Parameters are REQUIRED unless an explicit overload drops them: unlike a // normal Lua API, the luabind exports do not honour C++ default arguments, so a // function registered once must be called with all of its parameters. // - `*Flags` parameters are bitmasks typed as `number` — combine members of the // named enum with `bit.bor(...)`. Single-choice enums (e.g. `ImGuiCol`, // `ImGuiKey`, `ImGuiDir`) are typed directly. // - Functions using ImGui's out-values (e.g. widgets that edit a value) return a // `LuaMultiReturn` whose first element is the "changed/pressed" boolean and the // remaining elements are the updated value(s). /** ImGui-generated widget/window identifier (`ImGuiID`, an unsigned 32-bit int). */ type ImGuiID = number declare const enum ImGuiCond { Always = 1 << 0, Once = 1 << 1, FirstUseEver = 1 << 2, Appearing = 1 << 3, } declare const enum ImGuiDir { Left = 0, Right = 1, Up = 2, Down = 3, } declare const enum ImGuiWindowFlags { NoTitleBar = 1 << 0, NoResize = 1 << 1, NoMove = 1 << 2, NoScrollbar = 1 << 3, NoScrollWithMouse = 1 << 4, NoCollapse = 1 << 5, AlwaysAutoResize = 1 << 6, NoBackground = 1 << 7, NoSavedSettings = 1 << 8, NoMouseInputs = 1 << 9, MenuBar = 1 << 10, HorizontalScrollbar = 1 << 11, NoFocusOnAppearing = 1 << 12, NoBringToFrontOnFocus = 1 << 13, AlwaysVerticalScrollbar = 1 << 14, AlwaysHorizontalScrollbar = 1 << 15, NoNavInputs = 1 << 16, NoNavFocus = 1 << 17, UnsavedDocument = 1 << 18, NoDocking = 1 << 19, NoNav = (1 << 16) | (1 << 17), NoDecoration = (1 << 0) | (1 << 1) | (1 << 3) | (1 << 5), NoInputs = (1 << 9) | (1 << 16) | (1 << 17), } declare const enum ImGuiItemFlags { NoTabStop = 1 << 0, NoNav = 1 << 1, NoNavDefaultFocus = 1 << 2, ButtonRepeat = 1 << 3, AutoClosePopups = 1 << 4, AllowDuplicateId = 1 << 5, } declare const enum ImGuiSelectableFlags { NoAutoClosePopups = 1 << 0, SpanAllColumns = 1 << 1, AllowDoubleClick = 1 << 2, Disabled = 1 << 3, AllowOverlap = 1 << 4, Highlight = 1 << 5, } declare const enum ImGuiInputTextFlags { CharsDecimal = 1 << 0, CharsHexadecimal = 1 << 1, CharsScientific = 1 << 2, CharsUppercase = 1 << 3, CharsNoBlank = 1 << 4, AllowTabInput = 1 << 5, EnterReturnsTrue = 1 << 6, EscapeClearsAll = 1 << 7, CtrlEnterForNewLine = 1 << 8, ReadOnly = 1 << 9, Password = 1 << 10, AlwaysOverwrite = 1 << 11, AutoSelectAll = 1 << 12, ParseEmptyRefVal = 1 << 13, DisplayEmptyRefVal = 1 << 14, NoHorizontalScroll = 1 << 15, NoUndoRedo = 1 << 16, ElideLeft = 1 << 17, CallbackCompletion = 1 << 18, CallbackHistory = 1 << 19, CallbackAlways = 1 << 20, CallbackCharFilter = 1 << 21, CallbackResize = 1 << 22, CallbackEdit = 1 << 23, } declare const enum ImGuiTreeNodeFlags { Selected = 1 << 0, Framed = 1 << 1, AllowOverlap = 1 << 2, NoTreePushOnOpen = 1 << 3, NoAutoOpenOnLog = 1 << 4, DefaultOpen = 1 << 5, OpenOnDoubleClick = 1 << 6, OpenOnArrow = 1 << 7, Leaf = 1 << 8, Bullet = 1 << 9, FramePadding = 1 << 10, SpanAvailWidth = 1 << 11, SpanFullWidth = 1 << 12, SpanLabelWidth = 1 << 13, SpanAllColumns = 1 << 14, LabelSpanAllColumns = 1 << 15, NavLeftJumpsBackHere = 1 << 17, CollapsingHeader = (1 << 1) | (1 << 3) | (1 << 4), } declare const enum ImGuiPopupFlags { MouseButtonLeft = 0, MouseButtonRight = 1, MouseButtonMiddle = 2, NoReopen = 1 << 5, NoOpenOverExistingPopup = 1 << 7, NoOpenOverItems = 1 << 8, AnyPopupId = 1 << 10, AnyPopupLevel = 1 << 11, AnyPopup = (1 << 10) | (1 << 11), } declare const enum ImGuiTableRowFlags { Headers = 1 << 0, } declare const enum ImGuiTableBgTarget { RowBg0 = 1, RowBg1 = 2, CellBg = 3, } declare const enum ImGuiTableFlags { Resizable = 1 << 0, Reorderable = 1 << 1, Hideable = 1 << 2, Sortable = 1 << 3, NoSavedSettings = 1 << 4, ContextMenuInBody = 1 << 5, RowBg = 1 << 6, BordersInnerH = 1 << 7, BordersOuterH = 1 << 8, BordersInnerV = 1 << 9, BordersOuterV = 1 << 10, BordersH = (1 << 7) | (1 << 8), BordersV = (1 << 9) | (1 << 10), BordersInner = (1 << 9) | (1 << 7), BordersOuter = (1 << 10) | (1 << 8), Borders = (1 << 9) | (1 << 7) | (1 << 10) | (1 << 8), NoBordersInBody = 1 << 11, NoBordersInBodyUntilResize = 1 << 12, SizingFixedFit = 1 << 13, SizingFixedSame = 2 << 13, SizingStretchProp = 3 << 13, SizingStretchSame = 4 << 13, NoHostExtendX = 1 << 16, NoHostExtendY = 1 << 17, NoKeepColumnsVisible = 1 << 18, PreciseWidths = 1 << 19, NoClip = 1 << 20, PadOuterX = 1 << 21, NoPadOuterX = 1 << 22, NoPadInnerX = 1 << 23, ScrollX = 1 << 24, ScrollY = 1 << 25, SortMulti = 1 << 26, SortTristate = 1 << 27, HighlightHoveredColumn = 1 << 28, } declare const enum ImGuiTableColumnFlags { Disabled = 1 << 0, DefaultHide = 1 << 1, DefaultSort = 1 << 2, WidthStretch = 1 << 3, WidthFixed = 1 << 4, NoResize = 1 << 5, NoReorder = 1 << 6, NoHide = 1 << 7, NoClip = 1 << 8, NoSort = 1 << 9, NoSortAscending = 1 << 10, NoSortDescending = 1 << 11, NoHeaderLabel = 1 << 12, NoHeaderWidth = 1 << 13, PreferSortAscending = 1 << 14, /** Typo preserved from the engine binding (`PreferSortDescending`). */ PreferSortDescendin = 1 << 15, IndentEnable = 1 << 16, IndentDisable = 1 << 17, AngledHeader = 1 << 18, IsEnabled = 1 << 24, IsVisible = 1 << 25, IsSorted = 1 << 26, IsHovered = 1 << 27, } /** * WARNING: the engine binding maps these member names onto the WRONG underlying * `ImGuiTabBarFlags_` values (a copy-paste bug in `script_imgui_script.cpp`), so * the names below do NOT describe the actual behaviour. The real behaviour of * each value (by bit) is, in order: `Reorderable`, `AutoSelectNewTabs`, * `TabListPopupButton`, `NoCloseWithMiddleMouseButton`, `NoTabListScrollingButtons`, * `NoTooltip`, `DrawSelectedOverline`, `FittingPolicyResizeDown`, `FittingPolicyScroll`. */ declare const enum ImGuiTabBarFlags { Disabled = 1 << 0, DefaultHide = 1 << 1, DefaultSort = 1 << 2, WidthStretch = 1 << 3, WidthFixed = 1 << 4, NoResize = 1 << 5, NoReorder = 1 << 6, NoHide = 1 << 7, NoClip = 1 << 8, } declare const enum ImGuiTabItemFlags { UnsavedDocument = 1 << 0, SetSelected = 1 << 1, NoCloseWithMiddleMouseButton = 1 << 2, NoPushId = 1 << 3, NoTooltip = 1 << 4, NoReorder = 1 << 5, Leading = 1 << 6, Trailing = 1 << 7, NoAssumedClosure = 1 << 8, } declare const enum ImGuiHoveredFlags { ChildWindows = 1 << 0, RootWindow = 1 << 1, AnyWindow = 1 << 2, NoPopupHierarchy = 1 << 3, DockHierarchy = 1 << 4, AllowWhenBlockedByPopup = 1 << 5, AllowWhenBlockedByActiveItem = 1 << 7, AllowWhenOverlappedByItem = 1 << 8, AllowWhenOverlappedByWindow = 1 << 9, AllowWhenDisabled = 1 << 10, NoNavOverride = 1 << 11, AllowWhenOverlapped = (1 << 8) | (1 << 9), RectOnly = (1 << 5) | (1 << 7) | (1 << 8) | (1 << 9), RootAndChildWindows = (1 << 1) | (1 << 0), ForTooltip = 1 << 12, Stationary = 1 << 13, DelayNone = 1 << 14, DelayShort = 1 << 15, DelayNormal = 1 << 16, NoSharedDelay = 1 << 17, } declare const enum ImGuiFocusedFlags { ChildWindows = 1 << 0, RootWindow = 1 << 1, AnyWindow = 1 << 2, NoPopupHierarchy = 1 << 3, DockHierarchy = 1 << 4, RootAndChildWindows = (1 << 1) | (1 << 0), } /** Sequential enum (values match `imgui.h` order, `Text` == 0). */ declare const enum ImGuiCol { Text, TextDisabled, WindowBg, ChildBg, PopupBg, Border, BorderShadow, FrameBg, FrameBgHovered, FrameBgActive, TitleBg, TitleBgActive, TitleBgCollapsed, MenuBarBg, ScrollbarBg, ScrollbarGrab, ScrollbarGrabHovered, ScrollbarGrabActive, CheckMark, SliderGrab, SliderGrabActive, Button, ButtonHovered, ButtonActive, Header, HeaderHovered, HeaderActive, Separator, SeparatorHovered, SeparatorActive, ResizeGrip, ResizeGripHovered, ResizeGripActive, TabHovered, Tab, TabSelected, TabSelectedOverline, TabDimmed, TabDimmedSelected, TabDimmedSelectedOverline, DockingPreview, DockingEmptyBg, PlotLines, PlotLinesHovered, PlotHistogram, PlotHistogramHovered, TableHeaderBg, TableBorderStrong, TableBorderLight, TableRowBg, TableRowBgAlt, TextLink, TextSelectedBg, DragDropTarget, NavCursor, NavWindowingHighlight, NavWindowingDimBg, ModalWindowDimBg, } /** Sequential enum (values match `imgui.h` order, `Alpha` == 0). */ declare const enum ImGuiStyleVar { Alpha, DisabledAlpha, WindowPadding, WindowRounding, WindowBorderSize, WindowMinSize, WindowTitleAlign, ChildRounding, ChildBorderSize, PopupRounding, PopupBorderSize, FramePadding, FrameRounding, FrameBorderSize, ItemSpacing, ItemInnerSpacing, IndentSpacing, CellPadding, ScrollbarSize, ScrollbarRounding, GrabMinSize, GrabRounding, TabRounding, TabBorderSize, TabBarBorderSize, TabBarOverlineSize, TableAngledHeadersAngle, TableAngledHeadersTextAlign, ButtonTextAlign, SelectableTextAlign, SeparatorTextBorderSize, SeparatorTextAlign, SeparatorTextPadding, DockingSeparatorSize, } declare const enum ImGuiComboFlags { PopupAlignLeft = 1 << 0, HeightSmall = 1 << 1, HeightRegular = 1 << 2, HeightLarge = 1 << 3, HeightLargest = 1 << 4, NoArrowButton = 1 << 5, NoPreview = 1 << 6, WidthFitPreview = 1 << 7, } declare const enum ImGuiSortDirection { Ascending = 1, Descending = 2, } declare const enum ImGuiMouseButton { Left = 0, Right = 1, Middle = 2, } declare const enum ImGuiButtonFlags { MouseButtonLeft = 1 << 0, MouseButtonRight = 1 << 1, MouseButtonMiddle = 1 << 2, EnableNav = 1 << 3, } declare const enum ImGuiColorEditFlags { NoAlpha = 1 << 1, NoPicker = 1 << 2, NoOptions = 1 << 3, NoSmallPreview = 1 << 4, NoInputs = 1 << 5, NoTooltip = 1 << 6, NoLabel = 1 << 7, NoSidePreview = 1 << 8, NoDragDrop = 1 << 9, NoBorder = 1 << 10, AlphaOpaque = 1 << 11, AlphaNoBg = 1 << 12, AlphaPreviewHalf = 1 << 13, AlphaBar = 1 << 16, HDR = 1 << 19, DisplayRGB = 1 << 20, DisplayHSV = 1 << 21, DisplayHex = 1 << 22, Uint8 = 1 << 23, Float = 1 << 24, PickerHueBar = 1 << 25, PickerHueWheel = 1 << 26, InputRGB = 1 << 27, InputHSV = 1 << 28, } declare const enum ImGuiSliderFlags { Logarithmic = 1 << 5, NoRoundToFormat = 1 << 6, NoInput = 1 << 7, WrapAround = 1 << 8, ClampOnInput = 1 << 9, ClampZeroRange = 1 << 10, NoSpeedTweaks = 1 << 11, AlwaysClamp = (1 << 9) | (1 << 10), } declare const enum ImGuiInputFlags { RepeatRateDefault = 1 << 1, RepeatRateNavMove = 1 << 2, RepeatRateNavTweak = 1 << 3, RepeatUntilRelease = 1 << 4, RepeatUntilKeyModsChange = 1 << 5, RepeatUntilKeyModsChangeFromNone = 1 << 6, RepeatUntilOtherKeyPress = 1 << 7, LockThisFrame = 1 << 20, LockUntilRelease = 1 << 21, CondHovered = 1 << 22, CondActive = 1 << 23, } /** * Key identifier. Values are the `imgui.h` `ImGuiKey_*` constants (named keys * start at 512). Digit members are prefixed with `_` (`_0`..`_9`) to be valid * identifiers. */ declare const enum ImGuiKey { A = 546, B = 547, C = 548, D = 549, E = 550, F = 551, G = 552, H = 553, I = 554, J = 555, K = 556, L = 557, M = 558, N = 559, O = 560, P = 561, Q = 562, R = 563, S = 564, T = 565, U = 566, V = 567, W = 568, X = 569, Y = 570, Z = 571, _1 = 537, _2 = 538, _3 = 539, _4 = 540, _5 = 541, _6 = 542, _7 = 543, _8 = 544, _9 = 545, _0 = 536, Enter = 525, Escape = 526, Backspace = 523, Tab = 512, Space = 524, Minus = 598, Equal = 602, LeftBracket = 603, RightBracket = 605, Backslash = 604, Semicolon = 601, Apostrophe = 596, GraveAccent = 606, Comma = 597, Period = 599, Slash = 600, CapsLock = 607, F1 = 572, F2 = 573, F3 = 574, F4 = 575, F5 = 576, F6 = 577, F7 = 578, F8 = 579, F9 = 580, F10 = 581, F11 = 582, F12 = 583, ScrollLock = 608, Pause = 611, Insert = 521, Home = 519, PageUp = 517, Delete = 522, End = 520, PageDown = 518, RightArrow = 514, LeftArrow = 513, DownArrow = 516, UpArrow = 515, NumLock = 609, KeypadDivide = 623, KeypadMultiply = 624, KeypadSubtract = 625, KeypadAdd = 626, KeypadEnter = 627, Keypad1 = 613, Keypad2 = 614, Keypad3 = 615, Keypad4 = 616, Keypad5 = 617, Keypad6 = 618, Keypad7 = 619, Keypad8 = 620, Keypad9 = 621, Keypad0 = 612, KeypadDecimal = 622, Menu = 535, KeypadEqual = 628, LeftCtrl = 527, LeftShift = 528, LeftAlt = 529, LeftSuper = 530, RightCtrl = 531, RightShift = 532, RightAlt = 533, RightSuper = 534, } declare namespace ImGui { export function GetVersion(): string // Windows /** @returns `[visible, open]` — `visible` is whether to draw window contents, `open` reflects the (edited) close-button state. */ export function Begin(name: string, open: boolean, flags: number): LuaMultiReturn<[visible: boolean, open: boolean]> export function End(): void export function IsWindowAppearing(): boolean export function IsWindowCollapsed(): boolean /** @param flags bitmask of {@link ImGuiFocusedFlags} */ export function IsWindowFocused(flags: number): boolean /** @param flags bitmask of {@link ImGuiHoveredFlags} */ export function IsWindowHovered(flags: number): boolean export function GetWindowDpiScale(): number export function GetWindowPos(): vector2 export function GetWindowSize(): vector2 export function GetWindowWidth(): number export function GetWindowHeight(): number export function SetNextWindowPos(pos: vector2): void export function SetNextWindowPos(pos: vector2, cond: ImGuiCond): void export function SetNextWindowPos(pos: vector2, cond: ImGuiCond, pivot: vector2): void export function SetNextWindowSize(size: vector2, cond: ImGuiCond): void export function SetNextWindowSizeConstraints(size_min: vector2, size_max: vector2): void export function SetNextWindowContentSize(size: vector2): void export function SetNextWindowCollapsed(collapsed: boolean, cond: ImGuiCond): void export function SetNextWindowFocus(): void export function SetNextWindowScroll(scroll: vector2): void export function SetNextWindowBgAlpha(alpha: number): void export function SetWindowPos(pos: vector2, cond: ImGuiCond): void export function SetWindowSize(size: vector2, cond: ImGuiCond): void export function SetWindowCollapsed(collapsed: boolean): void export function SetWindowCollapsed(collapsed: boolean, cond: ImGuiCond): void export function SetWindowCollapsed(name: string, collapsed: boolean, cond: ImGuiCond): void export function SetWindowFocus(): void export function SetWindowFocus(name: string): void // Scrolling export function GetScrollX(): number export function GetScrollY(): number export function SetScrollX(scroll_x: number): void export function SetScrollY(scroll_y: number): void export function GetScrollMaxX(): number export function GetScrollMaxY(): number export function SetScrollHereX(center_x_ratio: number): void export function SetScrollHereY(center_y_ratio: number): void export function SetScrollFromPosX(local_x: number): void export function SetScrollFromPosX(local_x: number, center_x_ratio: number): void export function SetScrollFromPosY(local_y: number): void export function SetScrollFromPosY(local_y: number, center_y_ratio: number): void // Style /** @param idx one of {@link ImGuiCol} @param col packed `u32` color (`0xAARRGGBB`) */ export function PushStyleColor(idx: ImGuiCol, col: number): void export function PushStyleColor(idx: ImGuiCol, col: fcolor): void export function PopStyleColor(): void export function PopStyleColor(count: number): void export function PushStyleVar(idx: ImGuiStyleVar, val: number): void export function PushStyleVar(idx: ImGuiStyleVar, val: vector2): void export function PushStyleVarX(idx: ImGuiStyleVar, val_x: number): void export function PushStyleVarY(idx: ImGuiStyleVar, val_y: number): void export function PopStyleVar(): void export function PopStyleVar(count: number): void export function GetStyleColor(idx: ImGuiCol): fcolor // Item / width /** @param option one of {@link ImGuiItemFlags} */ export function PushItemFlag(option: number, enabled: boolean): void export function PopItemFlag(): void export function PushItemWidth(item_width: number): void export function PopItemWidth(): void export function SetNextItemWidth(item_width: number): void export function CalcItemWidth(): number export function PushTextWrapPos(wrap_local_pos_x: number): void export function PopTextWrapPos(): void // Cursor / layout positions export function GetCursorScreenPos(): vector2 export function SetCursorScreenPos(pos: vector2): void export function GetContentRegionAvail(): vector2 export function GetCursorPos(): vector2 export function GetCursorPosX(): number export function GetCursorPosY(): number export function SetCursorPos(local_pos: vector2): void export function SetCursorPosX(local_x: number): void export function SetCursorPosY(local_y: number): void export function GetCursorStartPos(): vector2 // Layout export function Separator(): void export function SameLine(): void export function SameLine(offset_from_start_x: number): void export function SameLine(offset_from_start_x: number, spacing: number): void export function NewLine(): void export function Spacing(): void export function Dummy(size: vector2): void export function Indent(indent_w: number): void export function Unindent(indent_w: number): void export function BeginGroup(): void export function EndGroup(): void export function AlignTextToFramePadding(): void export function GetTextLineHeight(): number export function GetTextLineHeightWithSpacing(): number export function GetFrameHeight(): number export function GetFrameHeightWithSpacing(): number // ID stack export function PushID(str_id: string): void export function PushID(int_id: number): void export function PopID(): void export function GetID(str_id: string): ImGuiID export function GetID(int_id: number): ImGuiID // Text export function Text(text: string): void export function TextUnformatted(text: string): void export function TextColored(col: fcolor, text: string): void export function TextDisabled(text: string): void export function TextWrapped(text: string): void export function TextLink(label: string): boolean export function TextLinkOpenURL(label: string, url: string): void export function LabelText(label: string, text: string): void export function Bullet(): void export function BulletText(text: string): void export function SeparatorText(text: string): void // Widgets export function Button(label: string): boolean export function Button(label: string, size: vector2): boolean export function SmallButton(label: string): boolean export function InvisibleButton(id: string): boolean export function InvisibleButton(id: string, size: vector2): boolean /** @param flags bitmask of {@link ImGuiButtonFlags} */ export function InvisibleButton(id: string, size: vector2, flags: number): boolean export function ArrowButton(str_id: string, dir: ImGuiDir): boolean /** @returns `[pressed, value]` */ export function Checkbox(label: string, value: boolean): LuaMultiReturn<[pressed: boolean, value: boolean]> export function RadioButton(label: string, active: boolean): boolean export function ProgressBar(fraction: number, size: vector2, overlay: string): void export function BeginCombo(label: string, preview_value: string, flags: number): boolean export function EndCombo(): void // Drag / Slider / Input /** @param flags bitmask of {@link ImGuiSliderFlags} @returns `[changed, value]` */ export function DragFloat(label: string, value: number, speed: number, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: number]> export function DragFloat2(label: string, value: vector2, speed: number, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector2]> export function DragFloat3(label: string, value: vector, speed: number, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector]> export function DragFloat4(label: string, value: vector4, speed: number, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector4]> /** @returns `[changed, current_min, current_max]` */ export function DragFloatRange2(label: string, current_min: number, current_max: number, speed: number, min: number, max: number, format: string, format_max: string, flags: number): LuaMultiReturn<[changed: boolean, current_min: number, current_max: number]> /** @param flags bitmask of {@link ImGuiSliderFlags} @returns `[changed, value]` */ export function SliderFloat(label: string, value: number, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: number]> export function SliderFloat2(label: string, value: vector2, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector2]> export function SliderFloat3(label: string, value: vector, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector]> export function SliderFloat4(label: string, value: vector4, min: number, max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector4]> /** @returns `[changed, radians]` */ export function SliderAngle(label: string, value_rad: number, degrees_min: number, degrees_max: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, radians: number]> /** @param flags bitmask of {@link ImGuiInputTextFlags} @returns `[text, changed]` */ export function InputText(label: string, text: string, capacity: number, flags: number): LuaMultiReturn<[text: string, changed: boolean]> export function InputTextMultiline(label: string, text: string, capacity: number, size: vector2, flags: number): LuaMultiReturn<[text: string, changed: boolean]> export function InputTextWithHint(label: string, hint: string, text: string, capacity: number, flags: number): LuaMultiReturn<[text: string, changed: boolean]> /** @param flags bitmask of {@link ImGuiInputTextFlags} @returns `[changed, value]` */ export function InputFloat(label: string, value: number, step: number, step_fast: number, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: number]> export function InputFloat2(label: string, value: vector2, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector2]> export function InputFloat3(label: string, value: vector, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector]> export function InputFloat4(label: string, value: vector4, format: string, flags: number): LuaMultiReturn<[changed: boolean, value: vector4]> // Color widgets /** @param flags bitmask of {@link ImGuiColorEditFlags} @returns `[changed, color]` */ export function ColorEdit3(label: string, color: fcolor, flags: number): LuaMultiReturn<[changed: boolean, color: fcolor]> export function ColorEdit4(label: string, color: fcolor, flags: number): LuaMultiReturn<[changed: boolean, color: fcolor]> export function ColorPicker3(label: string, color: fcolor, flags: number): LuaMultiReturn<[changed: boolean, color: fcolor]> export function ColorPicker4(label: string, color: fcolor, flags: number): LuaMultiReturn<[changed: boolean, color: fcolor]> export function ColorButton(desc_id: string, color: fcolor, flags: number, size: vector2): LuaMultiReturn<[pressed: boolean, color: fcolor]> // Trees export function TreeNode(label: string): boolean /** @param flags bitmask of {@link ImGuiTreeNodeFlags} */ export function TreeNodeEx(label: string, flags: number): boolean export function TreePush(str_id: string): void export function TreePop(): void export function GetTreeNodeToLabelSpacing(): number export function CollapsingHeader(label: string): boolean /** @param flags bitmask of {@link ImGuiTreeNodeFlags} */ export function CollapsingHeader(label: string, flags: number): boolean /** @returns `[open, visible]` — pass/receive the close-button `visible` state. */ export function CollapsingHeader(label: string, visible: boolean): LuaMultiReturn<[open: boolean, visible: boolean]> export function CollapsingHeader(label: string, visible: boolean, flags: number): LuaMultiReturn<[open: boolean, visible: boolean]> export function SetNextItemOpen(is_open: boolean, cond: ImGuiCond): void // List box export function BeginListBox(label: string, size: vector2): boolean export function EndListBox(): void /** @param flags bitmask of {@link ImGuiSelectableFlags} */ export function Selectable(label: string, selected: boolean, flags: number, size: vector2): boolean // Menus export function BeginMenuBar(): boolean export function EndMenuBar(): void export function BeginMenu(label: string): boolean export function BeginMenu(label: string, enabled: boolean): boolean export function EndMenu(): void /** @returns `[activated, selected]` */ export function MenuItem(label: string, shortcut: string, selected: boolean, enabled: boolean): LuaMultiReturn<[activated: boolean, selected: boolean]> // Tooltips export function BeginTooltip(): boolean export function EndTooltip(): void export function SetTooltip(text: string): void export function BeginItemTooltip(): boolean export function SetItemTooltip(text: string): void // Popups /** @param flags bitmask of {@link ImGuiWindowFlags} */ export function BeginPopup(str_id: string, flags: number): boolean /** @param flags bitmask of {@link ImGuiWindowFlags} @returns `[visible, open]` */ export function BeginPopupModal(name: string, open: boolean, flags: number): LuaMultiReturn<[visible: boolean, open: boolean]> export function EndPopup(): void export function OpenPopup(str_id: string): void /** @param flags bitmask of {@link ImGuiPopupFlags} */ export function OpenPopup(str_id: string, flags: number): void export function OpenPopup(id: ImGuiID): void export function OpenPopup(id: ImGuiID, flags: number): void /** @param flags bitmask of {@link ImGuiPopupFlags} */ export function OpenPopupOnItemClick(str_id: string, flags: number): void export function CloseCurrentPopup(): void /** @param flags bitmask of {@link ImGuiPopupFlags} */ export function BeginPopupContextItem(str_id: string, flags: number): boolean export function BeginPopupContextWindow(str_id: string, flags: number): boolean export function BeginPopupContextVoid(str_id: string, flags: number): boolean export function IsPopupOpen(str_id: string): boolean /** @param flags bitmask of {@link ImGuiPopupFlags} */ export function IsPopupOpen(str_id: string, flags: number): boolean // Tables /** @param flags bitmask of {@link ImGuiTableFlags} */ export function BeginTable(str_id: string, columns: number, flags: number, outer_size: vector2, inner_width: number): boolean export function EndTable(): void /** @param row_flags bitmask of {@link ImGuiTableRowFlags} */ export function TableNextRow(row_flags: number, min_row_height: number): void export function TableNextColumn(): boolean export function TableSetColumnIndex(column_n: number): boolean /** @param flags bitmask of {@link ImGuiTableColumnFlags} */ export function TableSetupColumn(label: string, flags: number, init_width_or_weight: number, user_id: ImGuiID): void export function TableSetupScrollFreeze(cols: number, rows: number): void export function TableHeader(label: string): void export function TableHeadersRow(): void export function TableAngledHeadersRow(): void export function TableGetColumnCount(): number export function TableGetColumnIndex(): number export function TableGetRowIndex(): number export function TableGetColumnName(column_n: number): string /** @returns bitmask of {@link ImGuiTableColumnFlags} */ export function TableGetColumnFlags(column_n: number): number /** * @deprecated The engine binding wires this name to `TableAngledHeadersRow` * (a copy-paste bug), so it does NOT enable/disable a column. Avoid. */ export function TableSetColumnEnabled(): void export function TableGetHoveredColumn(): number export function TableSetBgColor(target: ImGuiTableBgTarget, color: fcolor, column_n: number): void // Tab bars /** @param flags bitmask of {@link ImGuiTabBarFlags} (note the mislabelled values) */ export function BeginTabBar(str_id: string, flags: number): boolean export function EndTabBar(): void /** @param flags bitmask of {@link ImGuiTabItemFlags} @returns `[visible, open]` */ export function BeginTabItem(label: string, open: boolean, flags: number): LuaMultiReturn<[visible: boolean, open: boolean]> export function EndTabItem(): void /** @param flags bitmask of {@link ImGuiTabItemFlags} */ export function TabItemButton(label: string, flags: number): boolean export function SetTabItemClosed(tab_or_docked_window_label: string): void // Disabling export function BeginDisabled(): void export function BeginDisabled(disabled: boolean): void export function EndDisabled(): void // Clipping export function PushClipRect(clip_rect_min: vector2, clip_rect_max: vector2, intersect_with_current_clip_rect: boolean): void export function PopClipRect(): void // Focus / navigation export function SetItemDefaultFocus(): void export function SetKeyboardFocusHere(offset: number): void export function SetNavCursorVisible(visible: boolean): void export function SetNextItemAllowOverlap(): void // Item queries /** @param flags bitmask of {@link ImGuiHoveredFlags} */ export function IsItemHovered(flags: number): boolean export function IsItemActive(): boolean export function IsItemFocused(): boolean export function IsItemClicked(mouse_button: ImGuiMouseButton): boolean export function IsItemVisible(): boolean export function IsItemEdited(): boolean export function IsItemActivated(): boolean export function IsItemDeactivated(): boolean export function IsItemDeactivatedAfterEdit(): boolean export function IsItemToggledOpen(): boolean export function IsAnyItemHovered(): boolean export function IsAnyItemActive(): boolean export function IsAnyItemFocused(): boolean export function GetItemID(): ImGuiID export function GetItemRectMin(): vector2 export function GetItemRectMax(): vector2 export function GetItemRectSize(): vector2 // Keyboard export function IsKeyDown(key: ImGuiKey): boolean export function IsKeyPressed(key: ImGuiKey): boolean export function IsKeyPressed(key: ImGuiKey, repeat: boolean): boolean export function IsKeyReleased(key: ImGuiKey): boolean /** @param key_chord an `ImGuiKey` optionally combined with modifier bits (`ImGuiKeyChord`) */ export function IsKeyChordPressed(key_chord: number): boolean export function GetKeyPressedAmount(key: ImGuiKey, repeat_delay: number, rate: number): number export function GetKeyName(key: ImGuiKey): string export function SetNextFrameWantCaptureKeyboard(want_capture_keyboard: boolean): void export function Shortcut(key_chord: number): boolean /** @param flags bitmask of {@link ImGuiInputFlags} */ export function Shortcut(key_chord: number, flags: number): boolean export function SetNextItemShortcut(key_chord: number, flags: number): void export function SetItemKeyOwner(key: ImGuiKey): void /** @param flags bitmask of {@link ImGuiInputFlags} */ export function SetItemKeyOwner(key: ImGuiKey, flags: number): void export function CalcTextSize(text: string, hide_text_after_double_hash: boolean, wrap_width: number): vector2 // Mouse export function IsMouseDown(button: ImGuiMouseButton): boolean export function IsMouseClicked(button: ImGuiMouseButton, repeat: boolean): boolean export function IsMouseReleased(button: ImGuiMouseButton): boolean export function IsMouseDoubleClicked(button: ImGuiMouseButton): boolean export function IsMouseReleasedWithDelay(button: ImGuiMouseButton, delay: number): boolean export function GetMouseClickedCount(button: ImGuiMouseButton): number export function IsMouseHoveringRect(r_min: vector2, r_max: vector2): boolean export function IsMouseHoveringRect(r_min: vector2, r_max: vector2, clip: boolean): boolean export function IsMousePosValid(mouse_pos: vector2): boolean export function IsAnyMouseDown(): boolean export function GetMousePos(): vector2 export function GetMousePosOnOpeningCurrentPopup(): vector2 export function IsMouseDragging(button: ImGuiMouseButton, lock_threshold: number): boolean export function GetMouseDragDelta(button: ImGuiMouseButton, lock_threshold: number): vector2 export function ResetMouseDragDelta(button: ImGuiMouseButton): void export function SetNextFrameWantCaptureMouse(want_capture_mouse: boolean): void // Fonts export function PushFont(name: string): void export function PopFont(): void export function GetFontSize(): number // Clipboard export function GetClipboardText(): string export function SetClipboardText(text: string): void }