diff --git a/Makefile b/Makefile index d3a6573af..4f32af296 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ define generate endef define cimgui - $(call generate,cimgui,cimgui/cimgui.h,cimgui/cimgui_templates/definitions.json,cimgui/cimgui_templates/structs_and_enums.json, cimgui/cimgui_templates/typedefs_dict.json) + $(call generate,cimgui,cwrappers/cimgui.h,cwrappers/cimgui_templates/definitions.json,cwrappers/cimgui_templates/structs_and_enums.json, cwrappers/cimgui_templates/typedefs_dict.json) endef ## cimgui: generate cimgui binding @@ -39,7 +39,7 @@ cimgui: setup $(call cimgui) define cimplot - $(call generate,cimplot,cimgui/cimplot.h,cimgui/cimplot_templates/definitions.json,cimgui/cimplot_templates/structs_and_enums.json,cimgui/cimplot_templates/typedefs_dict.json,-r cimgui/cimgui_templates/structs_and_enums.json -rt cimgui/cimgui_templates/typedefs_dict.json) + $(call generate,cimplot,cwrappers/cimplot.h,cwrappers/cimplot_templates/definitions.json,cwrappers/cimplot_templates/structs_and_enums.json,cwrappers/cimplot_templates/typedefs_dict.json,-r cwrappers/cimgui_templates/structs_and_enums.json -rt cwrappers/cimgui_templates/typedefs_dict.json) endef ## cimplot: generate implot binding @@ -48,7 +48,7 @@ cimplot: setup $(call cimplot) define cimnodes - $(call generate,cimnodes,cimgui/cimnodes.h,cimgui/cimnodes_templates/definitions.json,cimgui/cimnodes_templates/structs_and_enums.json,cimgui/cimnodes_templates/typedefs_dict.json,-r cimgui/cimgui_templates/structs_and_enums.json -rt cimgui/cimgui_templates/typedefs_dict.json) + $(call generate,cimnodes,cwrappers/cimnodes.h,cwrappers/cimnodes_templates/definitions.json,cwrappers/cimnodes_templates/structs_and_enums.json,cwrappers/cimnodes_templates/typedefs_dict.json,-r cwrappers/cimgui_templates/structs_and_enums.json -rt cwrappers/cimgui_templates/typedefs_dict.json) endef ## cimnodes: generate imnodes binding @@ -57,7 +57,7 @@ cimnodes: setup $(call cimnodes) define cimmarkdown - $(call generate,cimmarkdown,cimgui/cimmarkdown.h,cimgui/cimmarkdown_templates/definitions.json,cimgui/cimmarkdown_templates/structs_and_enums.json,cimgui/cimmarkdown_templates/typedefs_dict.json,-r cimgui/cimgui_templates/structs_and_enums.json -rt cimgui/cimgui_templates/typedefs_dict.json) + $(call generate,cimmarkdown,cwrappers/cimmarkdown.h,cwrappers/cimmarkdown_templates/definitions.json,cwrappers/cimmarkdown_templates/structs_and_enums.json,cwrappers/cimmarkdown_templates/typedefs_dict.json,-r cwrappers/cimgui_templates/structs_and_enums.json -rt cwrappers/cimgui_templates/typedefs_dict.json) endef ## cimmarkdown: generate immarkdown binding @@ -91,25 +91,25 @@ define update git checkout $4 cd tmp/$1/generator; \ bash generator.sh --target "internal noimstrv comments" --cflags "glfw opengl3 opengl2 sdl2 -DIMGUI_USE_WCHAR32" - cp -f tmp/$1/$1* cimgui/ + cp -f tmp/$1/$1* cwrappers/ if test -e tmp/$1/generator/output/$1*; then \ - cp -f tmp/$1/generator/output/$1* cimgui/; \ + cp -f tmp/$1/generator/output/$1* cwrappers/; \ fi - mkdir cimgui/$1_templates - cp -f tmp/$1/generator/output/*json cimgui/$1_templates - mkdir -p cimgui/$3 - cp -rf tmp/$1/$3/* cimgui/$3 + mkdir cwrappers/$1_templates + cp -f tmp/$1/generator/output/*json cwrappers/$1_templates + mkdir -p cwrappers/$3 + cp -rf tmp/$1/$3/* cwrappers/$3 cd tmp/$1; \ - echo "$1 ($2) HEAD is on: `git rev-parse HEAD`" >> ../../cimgui/VERSION.txt + echo "$1 ($2) HEAD is on: `git rev-parse HEAD`" >> ../../cwrappers/VERSION.txt cd tmp/$1/$3; \ - echo "$1/$3 HEAD is on: `git rev-parse HEAD`" >> ../../../cimgui/VERSION.txt + echo "$1/$3 HEAD is on: `git rev-parse HEAD`" >> ../../../cwrappers/VERSION.txt endef .PHONY: update update: setup - rm -rf cimgui/* + rm -rf cwrappers/* $(call update,cimgui,https://github.com/cimgui/cimgui,imgui,docking) - cat templates/assert.h >> cimgui/imgui/imconfig.h + cat templates/assert.h >> cwrappers/imgui/imconfig.h $(call cimgui) $(call update,cimplot,https://github.com/cimgui/cimplot,implot,master) $(call cimplot) @@ -118,7 +118,7 @@ update: setup $(call update,cimmarkdown,https://github.com/gucio321/cimmarkdown,imgui_markdown,main) $(call cimmarkdown) echo -e "// +build rquired\n\npackage imgui\n\nimport (\n" > dummy.go - for i in `find cimgui -type f \( -name "*.h" -o -name "*.cpp" \) -exec dirname {} \; | sort -u`; do \ + for i in `find cwrappers -type f \( -name "*.h" -o -name "*.cpp" \) -exec dirname {} \; | sort -u`; do \ cp templates/dummy.go.template $$i/dummy.go; \ echo -e "\t\"github.com/AllenDang/cimgui-go/$$i\"" >> dummy.go; \ done diff --git a/backend/glfwbackend/glfw_backend.cpp b/backend/glfwbackend/glfw_backend.cpp index 5ec28fe59..8606740e8 100644 --- a/backend/glfwbackend/glfw_backend.cpp +++ b/backend/glfwbackend/glfw_backend.cpp @@ -4,8 +4,8 @@ #define CIMGUI_USE_OPENGL3 #include "glfw_backend.h" -#include "../../cimgui/cimgui.h" -#include "../../cimgui/cimgui_impl.h" +#include "../../cwrappers/cimgui.h" +#include "../../cwrappers/cimgui_impl.h" #include "../../thirdparty/glfw/include/GLFW/glfw3.h" // Will drag system OpenGL headers #include diff --git a/backend/sdlbackend/sdl_backend.cpp b/backend/sdlbackend/sdl_backend.cpp index daafd1bf5..f52c7c247 100644 --- a/backend/sdlbackend/sdl_backend.cpp +++ b/backend/sdlbackend/sdl_backend.cpp @@ -12,8 +12,8 @@ // - Introduction, links and more at the top of imgui.cpp #include "sdl_backend.h" -#include "../../cimgui/cimgui.h" -#include "../../cimgui/cimgui_impl.h" +#include "../../cwrappers/cimgui.h" +#include "../../cwrappers/cimgui_impl.h" #include #include diff --git a/cimgui/VERSION.txt b/cimgui/VERSION.txt deleted file mode 100644 index dacc29d58..000000000 --- a/cimgui/VERSION.txt +++ /dev/null @@ -1,8 +0,0 @@ -cimgui (https://github.com/cimgui/cimgui) HEAD is on: 4486dace2a560c179be549b8137392c49cb8eab2 -cimgui/imgui HEAD is on: c6aa051629753f0ef0d26bf775a8b6a92aa213b2 -cimplot (https://github.com/cimgui/cimplot) HEAD is on: 439f705b1cfae0e9fbe42c13ab5b45becc47d404 -cimplot/implot HEAD is on: f156599faefe316f7dd20fe6c783bf87c8bb6fd9 -cimnodes (https://github.com/cimgui/cimnodes) HEAD is on: f20c83c3cab8e99828d85c66ed3acd087f632c21 -cimnodes/imnodes HEAD is on: e9bb6cadc0382e8288be70a524ccb557f9e8c422 -cimmarkdown (https://github.com/gucio321/cimmarkdown) HEAD is on: c418b67e4893b690816c2d7b6ad05f104beb14e8 -cimmarkdown/imgui_markdown HEAD is on: 49bb387f99bd9df295e97be9aff9048de3bfc226 diff --git a/cimgui_enums.go b/cimgui_enums.go index 7346f6cc2..de113ca49 100644 --- a/cimgui_enums.go +++ b/cimgui_enums.go @@ -143,7 +143,7 @@ const ( ButtonFlagsNoKeyModifiers ButtonFlagsPrivate = 65536 // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only) ButtonFlagsNoHoldingActiveId ButtonFlagsPrivate = 131072 - // don't override navigation focus when activated (FIXME: this is essentially used everytime an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags) + // don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags) ButtonFlagsNoNavFocus ButtonFlagsPrivate = 262144 // don't report as hovered when nav focus is on this item ButtonFlagsNoHoveredOnFocus ButtonFlagsPrivate = 524288 @@ -166,13 +166,13 @@ const ( // React on right mouse button ButtonFlagsMouseButtonRight ButtonFlags = 2 // React on center mouse button - ButtonFlagsMouseButtonMiddle ButtonFlags = 4 - ButtonFlagsMouseButtonMask ButtonFlags = 7 - ButtonFlagsMouseButtonDefault ButtonFlags = 1 + ButtonFlagsMouseButtonMiddle ButtonFlags = 4 + // [Internal] + ButtonFlagsMouseButtonMask ButtonFlags = 7 ) // Flags for ImGui::BeginChild() -// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'. +// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Borders to be backward compatible with old API using 'bool border = false'. // About using AutoResizeX/AutoResizeY flags: // - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints"). // - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing. @@ -187,7 +187,7 @@ type ChildFlags int32 const ( ChildFlagsNone ChildFlags = 0 // Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason) - ChildFlagsBorder ChildFlags = 1 + ChildFlagsBorders ChildFlags = 1 // Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense) ChildFlagsAlwaysUseWindowPadding ChildFlags = 2 // Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags) @@ -202,6 +202,8 @@ const ( ChildFlagsAlwaysAutoResize ChildFlags = 64 // Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding. ChildFlagsFrameStyle ChildFlags = 128 + // [BETA] Share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. + ChildFlagsNavFlattened ChildFlags = 256 ) // Enumeration for PushStyleColor() / PopStyleColor() @@ -252,42 +254,52 @@ const ( ColResizeGrip Col = 30 ColResizeGripHovered Col = 31 ColResizeGripActive Col = 32 - // TabItem in a TabBar - ColTab Col = 33 - ColTabHovered Col = 34 - ColTabActive Col = 35 - ColTabUnfocused Col = 36 - ColTabUnfocusedActive Col = 37 + // Tab background, when hovered + ColTabHovered Col = 33 + // Tab background, when tab-bar is focused & tab is unselected + ColTab Col = 34 + // Tab background, when tab-bar is focused & tab is selected + ColTabSelected Col = 35 + // Tab horizontal overline, when tab-bar is focused & tab is selected + ColTabSelectedOverline Col = 36 + // Tab background, when tab-bar is unfocused & tab is unselected + ColTabDimmed Col = 37 + // Tab background, when tab-bar is unfocused & tab is selected + ColTabDimmedSelected Col = 38 + //..horizontal overline, when tab-bar is unfocused & tab is selected + ColTabDimmedSelectedOverline Col = 39 // Preview overlay color when about to docking something - ColDockingPreview Col = 38 + ColDockingPreview Col = 40 // Background color for empty node (e.g. CentralNode with no window docked into it) - ColDockingEmptyBg Col = 39 - ColPlotLines Col = 40 - ColPlotLinesHovered Col = 41 - ColPlotHistogram Col = 42 - ColPlotHistogramHovered Col = 43 + ColDockingEmptyBg Col = 41 + ColPlotLines Col = 42 + ColPlotLinesHovered Col = 43 + ColPlotHistogram Col = 44 + ColPlotHistogramHovered Col = 45 // Table header background - ColTableHeaderBg Col = 44 + ColTableHeaderBg Col = 46 // Table outer and header borders (prefer using Alpha=1.0 here) - ColTableBorderStrong Col = 45 + ColTableBorderStrong Col = 47 // Table inner borders (prefer using Alpha=1.0 here) - ColTableBorderLight Col = 46 + ColTableBorderLight Col = 48 // Table row background (even rows) - ColTableRowBg Col = 47 + ColTableRowBg Col = 49 // Table row background (odd rows) - ColTableRowBgAlt Col = 48 - ColTextSelectedBg Col = 49 + ColTableRowBgAlt Col = 50 + // Hyperlink color + ColTextLink Col = 51 + ColTextSelectedBg Col = 52 // Rectangle highlighting a drop target - ColDragDropTarget Col = 50 + ColDragDropTarget Col = 53 // Gamepad/keyboard: current highlighted item - ColNavHighlight Col = 51 + ColNavHighlight Col = 54 // Highlight window when using CTRL+TAB - ColNavWindowingHighlight Col = 52 + ColNavWindowingHighlight Col = 55 // Darken/colorize entire screen behind the CTRL+TAB window list, when active - ColNavWindowingDimBg Col = 53 + ColNavWindowingDimBg Col = 56 // Darken/colorize entire screen behind a modal window, when one is active - ColModalWindowDimBg Col = 54 - ColCOUNT Col = 55 + ColModalWindowDimBg Col = 57 + ColCOUNT Col = 58 ) // Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton() @@ -416,12 +428,14 @@ const ( ConfigFlagsNavEnableSetMousePos ConfigFlags = 4 // Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set. ConfigFlagsNavNoCaptureKeyboard ConfigFlags = 8 - // Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend. + // Instruct dear imgui to disable mouse inputs and interactions. ConfigFlagsNoMouse ConfigFlags = 16 // Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead. ConfigFlagsNoMouseCursorChange ConfigFlags = 32 + // Instruct dear imgui to disable keyboard inputs and interactions. This is done by ignoring keyboard events and clearing existing states. + ConfigFlagsNoKeyboard ConfigFlags = 64 // Docking enable flags. - ConfigFlagsDockingEnable ConfigFlags = 64 + ConfigFlagsDockingEnable ConfigFlags = 128 // Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends) ConfigFlagsViewportsEnable ConfigFlags = 1024 // [BETA: Don't use] FIXME-DPI: Reposition and resize imgui windows when the DpiScale of a viewport changed (mostly useful for the main viewport hosting other window). Note that resizing the main window itself is up to your application. @@ -463,9 +477,9 @@ const ( type DataTypePrivate int32 const ( - DataTypeString DataTypePrivate = 11 - DataTypePointer DataTypePrivate = 12 - DataTypeID DataTypePrivate = 13 + DataTypeString DataTypePrivate = 12 + DataTypePointer DataTypePrivate = 13 + DataTypeID DataTypePrivate = 14 ) // A primary data type @@ -493,7 +507,9 @@ const ( DataTypeFloat DataType = 8 // double DataTypeDouble DataType = 9 - DataTypeCOUNT DataType = 10 + // bool (provided for user convenience, not supported by scalar widgets) + DataTypeBool DataType = 10 + DataTypeCOUNT DataType = 11 ) // original name: ImGuiDebugLogFlags_ @@ -519,7 +535,7 @@ const ( ) // A cardinal direction -// original name: ImGuiDir_ +// original name: ImGuiDir type Dir int32 const ( @@ -620,7 +636,11 @@ const ( // External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously. DragDropFlagsSourceExtern DragDropFlags = 16 // Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged) - DragDropFlagsSourceAutoExpirePayload DragDropFlags = 32 + DragDropFlagsPayloadAutoExpire DragDropFlags = 32 + // Hint to specify that the payload may not be copied outside current dear imgui context. + DragDropFlagsPayloadNoCrossContext DragDropFlags = 64 + // Hint to specify that the payload may not be copied outside current process. + DragDropFlagsPayloadNoCrossProcess DragDropFlags = 128 // AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered. DragDropFlagsAcceptBeforeDelivery DragDropFlags = 1024 // Do not draw the default highlight rectangle when hovering over target. @@ -739,61 +759,78 @@ const ( InputEventTypeCOUNT InputEventType = 8 ) +// Extend ImGuiInputFlags_ // Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner() // Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function) -// original name: ImGuiInputFlags_ -type InputFlags int32 +// original name: ImGuiInputFlagsPrivate_ +type InputFlagsPrivate int32 const ( - InputFlagsNone InputFlags = 0 - // Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1. - InputFlagsRepeat InputFlags = 1 // Repeat rate: Regular (default) - InputFlagsRepeatRateDefault InputFlags = 2 + InputFlagsRepeatRateDefault InputFlagsPrivate = 2 // Repeat rate: Fast - InputFlagsRepeatRateNavMove InputFlags = 4 + InputFlagsRepeatRateNavMove InputFlagsPrivate = 4 // Repeat rate: Faster - InputFlagsRepeatRateNavTweak InputFlags = 8 + InputFlagsRepeatRateNavTweak InputFlagsPrivate = 8 // Stop repeating when released (default for all functions except Shortcut). This only exists to allow overriding Shortcut() default behavior. - InputFlagsRepeatUntilRelease InputFlags = 16 + InputFlagsRepeatUntilRelease InputFlagsPrivate = 16 // Stop repeating when released OR if keyboard mods are changed (default for Shortcut) - InputFlagsRepeatUntilKeyModsChange InputFlags = 32 + InputFlagsRepeatUntilKeyModsChange InputFlagsPrivate = 32 // Stop repeating when released OR if keyboard mods are leaving the None state. Allows going from Mod+Key to Key by releasing Mod. - InputFlagsRepeatUntilKeyModsChangeFromNone InputFlags = 64 + InputFlagsRepeatUntilKeyModsChangeFromNone InputFlagsPrivate = 64 // Stop repeating when released OR if any other keyboard key is pressed during the repeat - InputFlagsRepeatUntilOtherKeyPress InputFlags = 128 - // Only set if item is hovered (default to both) - InputFlagsCondHovered InputFlags = 256 - // Only set if item is active (default to both) - InputFlagsCondActive InputFlags = 512 - InputFlagsCondDefault InputFlags = 768 + InputFlagsRepeatUntilOtherKeyPress InputFlagsPrivate = 128 // Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame. - InputFlagsLockThisFrame InputFlags = 1024 + InputFlagsLockThisFrame InputFlagsPrivate = 1048576 // Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when the key is released or at end of each frame if key is released. - InputFlagsLockUntilRelease InputFlags = 2048 - // (Default) Honor focus route: Accept inputs if window is in focus stack. Deep-most focused window takes inputs. ActiveId takes inputs over deep-most focused window. - InputFlagsRouteFocused InputFlags = 4096 - // Register route globally (lowest priority: unless a focused window or active item registered the route) -> recommended Global priority IF you need a Global priority. - InputFlagsRouteGlobalLow InputFlags = 8192 - // Register route globally (medium priority: unless an active item registered the route, e.g. CTRL+A registered by InputText will take priority over this). - InputFlagsRouteGlobal InputFlags = 16384 - // Register route globally (higher priority: unlikely you need to use that: will interfere with every active items, e.g. CTRL+A registered by InputText will be overriden by this) - InputFlagsRouteGlobalHigh InputFlags = 32768 + InputFlagsLockUntilRelease InputFlagsPrivate = 2097152 + // Only set if item is hovered (default to both) + InputFlagsCondHovered InputFlagsPrivate = 4194304 + // Only set if item is active (default to both) + InputFlagsCondActive InputFlagsPrivate = 8388608 + InputFlagsCondDefault InputFlagsPrivate = 12582912 + InputFlagsRepeatRateMask InputFlagsPrivate = 14 + InputFlagsRepeatUntilMask InputFlagsPrivate = 240 + InputFlagsRepeatMask InputFlagsPrivate = 255 + InputFlagsCondMask InputFlagsPrivate = 12582912 + InputFlagsRouteTypeMask InputFlagsPrivate = 15360 + InputFlagsRouteOptionsMask InputFlagsPrivate = 245760 + InputFlagsSupportedByIsKeyPressed InputFlagsPrivate = 255 + InputFlagsSupportedByIsMouseClicked InputFlagsPrivate = 1 + InputFlagsSupportedByShortcut InputFlagsPrivate = 261375 + InputFlagsSupportedBySetNextItemShortcut InputFlagsPrivate = 523519 + InputFlagsSupportedBySetKeyOwner InputFlagsPrivate = 3145728 + InputFlagsSupportedBySetItemKeyOwner InputFlagsPrivate = 15728640 +) + +// Flags for Shortcut(), SetNextItemShortcut(), +// (and for upcoming extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner() that are still in imgui_internal.h) +// Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function) +// original name: ImGuiInputFlags_ +type InputFlags int32 + +const ( + InputFlagsNone InputFlags = 0 + // Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1. + InputFlagsRepeat InputFlags = 1 + // Route to active item only. + InputFlagsRouteActive InputFlags = 1024 + // Route to windows in the focus stack (DEFAULT). Deep-most focused window takes inputs. Active item takes inputs over deep-most focused window. + InputFlagsRouteFocused InputFlags = 2048 + // Global route (unless a focused window or active item registered the route). + InputFlagsRouteGlobal InputFlags = 4096 // Do not register route, poll keys directly. - InputFlagsRouteAlways InputFlags = 65536 - // Global routes will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications. - InputFlagsRouteUnlessBgFocused InputFlags = 131072 - InputFlagsRepeatRateMask InputFlags = 14 - InputFlagsRepeatUntilMask InputFlags = 240 - InputFlagsRepeatMask InputFlags = 255 - InputFlagsCondMask InputFlags = 768 - // _Always not part of this! - InputFlagsRouteMask InputFlags = 61440 - InputFlagsSupportedByIsKeyPressed InputFlags = 255 - InputFlagsSupportedByIsMouseClicked InputFlags = 1 - InputFlagsSupportedByShortcut InputFlags = 258303 - InputFlagsSupportedBySetKeyOwner InputFlags = 3072 - InputFlagsSupportedBySetItemKeyOwner InputFlags = 3840 + InputFlagsRouteAlways InputFlags = 8192 + // Option: global route: higher priority than focused route (unless active item in focused route). + InputFlagsRouteOverFocused InputFlags = 16384 + // Option: global route: higher priority than active item. Unlikely you need to use that: will interfere with every active items, e.g. CTRL+A registered by InputText will be overridden by this. May not be fully honored as user/internal code is likely to always assume they can access keys when active. + InputFlagsRouteOverActive InputFlags = 32768 + // Option: global route: will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications. + InputFlagsRouteUnlessBgFocused InputFlags = 65536 + // Option: route evaluated from the point of view of root window rather than current window. + InputFlagsRouteFromRootWindow InputFlags = 131072 + // Automatically display a tooltip when hovering item [BETA] Unsure of right api (opt-in/opt-out) + InputFlagsTooltip InputFlags = 262144 ) // original name: ImGuiInputSource @@ -805,9 +842,7 @@ const ( InputSourceMouse InputSource = 1 InputSourceKeyboard InputSource = 2 InputSourceGamepad InputSource = 3 - // Currently only used by InputText() - InputSourceClipboard InputSource = 4 - InputSourceCOUNT InputSource = 5 + InputSourceCOUNT InputSource = 4 ) // Extend ImGuiInputTextFlags_ @@ -821,6 +856,8 @@ const ( InputTextFlagsNoMarkEdited InputTextFlagsPrivate = 134217728 // For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match. InputTextFlagsMergedItem InputTextFlagsPrivate = 268435456 + // For internal use by InputScalar() and TempInputScalar() + InputTextFlagsLocalizeDecimalPoint InputTextFlagsPrivate = 536870912 ) // Flags for ImGui::InputText() @@ -834,80 +871,97 @@ const ( InputTextFlagsCharsDecimal InputTextFlags = 1 // Allow 0123456789ABCDEFabcdef InputTextFlagsCharsHexadecimal InputTextFlags = 2 + // Allow 0123456789.+-*/eE (Scientific notation input) + InputTextFlagsCharsScientific InputTextFlags = 4 // Turn a..z into A..Z - InputTextFlagsCharsUppercase InputTextFlags = 4 + InputTextFlagsCharsUppercase InputTextFlags = 8 // Filter out spaces, tabs - InputTextFlagsCharsNoBlank InputTextFlags = 8 - // Select entire text when first taking mouse focus - InputTextFlagsAutoSelectAll InputTextFlags = 16 + InputTextFlagsCharsNoBlank InputTextFlags = 16 + // Pressing TAB input a '\t' character into the text field + InputTextFlagsAllowTabInput InputTextFlags = 32 // Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function. - InputTextFlagsEnterReturnsTrue InputTextFlags = 32 + InputTextFlagsEnterReturnsTrue InputTextFlags = 64 + // Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert) + InputTextFlagsEscapeClearsAll InputTextFlags = 128 + // In multi-line mode, validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter). + InputTextFlagsCtrlEnterForNewLine InputTextFlags = 256 + // Read-only mode + InputTextFlagsReadOnly InputTextFlags = 512 + // Password mode, display all characters as '*', disable copy + InputTextFlagsPassword InputTextFlags = 1024 + // Overwrite mode + InputTextFlagsAlwaysOverwrite InputTextFlags = 2048 + // Select entire text when first taking mouse focus + InputTextFlagsAutoSelectAll InputTextFlags = 4096 + // InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value. + InputTextFlagsParseEmptyRefVal InputTextFlags = 8192 + // InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal. + InputTextFlagsDisplayEmptyRefVal InputTextFlags = 16384 + // Disable following the cursor horizontally + InputTextFlagsNoHorizontalScroll InputTextFlags = 32768 + // Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID(). + InputTextFlagsNoUndoRedo InputTextFlags = 65536 // Callback on pressing TAB (for completion handling) - InputTextFlagsCallbackCompletion InputTextFlags = 64 + InputTextFlagsCallbackCompletion InputTextFlags = 131072 // Callback on pressing Up/Down arrows (for history handling) - InputTextFlagsCallbackHistory InputTextFlags = 128 + InputTextFlagsCallbackHistory InputTextFlags = 262144 // Callback on each iteration. User code may query cursor position, modify text buffer. - InputTextFlagsCallbackAlways InputTextFlags = 256 + InputTextFlagsCallbackAlways InputTextFlags = 524288 // Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard. - InputTextFlagsCallbackCharFilter InputTextFlags = 512 - // Pressing TAB input a '\t' character into the text field - InputTextFlagsAllowTabInput InputTextFlags = 1024 - // In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter). - InputTextFlagsCtrlEnterForNewLine InputTextFlags = 2048 - // Disable following the cursor horizontally - InputTextFlagsNoHorizontalScroll InputTextFlags = 4096 - // Overwrite mode - InputTextFlagsAlwaysOverwrite InputTextFlags = 8192 - // Read-only mode - InputTextFlagsReadOnly InputTextFlags = 16384 - // Password mode, display all characters as '*' - InputTextFlagsPassword InputTextFlags = 32768 - // Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID(). - InputTextFlagsNoUndoRedo InputTextFlags = 65536 - // Allow 0123456789.+-*/eE (Scientific notation input) - InputTextFlagsCharsScientific InputTextFlags = 131072 + InputTextFlagsCallbackCharFilter InputTextFlags = 1048576 // Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this) - InputTextFlagsCallbackResize InputTextFlags = 262144 + InputTextFlagsCallbackResize InputTextFlags = 2097152 // Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active) - InputTextFlagsCallbackEdit InputTextFlags = 524288 - // Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert) - InputTextFlagsEscapeClearsAll InputTextFlags = 1048576 + InputTextFlagsCallbackEdit InputTextFlags = 4194304 ) -// Flags used by upcoming items +// Extend ImGuiItemFlags // - input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags. // - output: stored in g.LastItemData.InFlags -// Current window shared by all windows. -// This is going to be exposed in imgui.h when stabilized enough. -// original name: ImGuiItemFlags_ -type ItemFlags int32 +// original name: ImGuiItemFlagsPrivate_ +type ItemFlagsPrivate int32 const ( - ItemFlagsNone ItemFlags = 0 - // false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav. - ItemFlagsNoTabStop ItemFlags = 1 - // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. - ItemFlagsButtonRepeat ItemFlags = 2 - // false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211 - ItemFlagsDisabled ItemFlags = 4 - // false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls) - ItemFlagsNoNav ItemFlags = 8 - // false // Disable item being a candidate for default focus (e.g. used by title bar items) - ItemFlagsNoNavDefaultFocus ItemFlags = 16 - // false // Disable MenuItem/Selectable() automatically closing their popup window - ItemFlagsSelectableDontClosePopup ItemFlags = 32 - // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets) - ItemFlagsMixedValue ItemFlags = 64 + // false // Disable interactions (DOES NOT affect visuals, see BeginDisabled()/EndDisabled() for full disable feature, and github #211). + ItemFlagsDisabled ItemFlagsPrivate = 1024 // false // [ALPHA] Allow hovering interactions but underlying value is not changed. - ItemFlagsReadOnly ItemFlags = 128 + ItemFlagsReadOnly ItemFlagsPrivate = 2048 + // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets) + ItemFlagsMixedValue ItemFlagsPrivate = 4096 // false // Disable hoverable check in ItemHoverable() - ItemFlagsNoWindowHoverableCheck ItemFlags = 256 + ItemFlagsNoWindowHoverableCheck ItemFlagsPrivate = 8192 // false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame. - ItemFlagsAllowOverlap ItemFlags = 512 + ItemFlagsAllowOverlap ItemFlagsPrivate = 16384 // false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature. - ItemFlagsInputable ItemFlags = 1024 + ItemFlagsInputable ItemFlagsPrivate = 1048576 + // false // Set by SetNextItemSelectionUserData() + ItemFlagsHasSelectionUserData ItemFlagsPrivate = 2097152 // false // Set by SetNextItemSelectionUserData() - ItemFlagsHasSelectionUserData ItemFlags = 2048 + ItemFlagsIsMultiSelect ItemFlagsPrivate = 4194304 + // Please don't change, use PushItemFlag() instead. + ItemFlagsDefault ItemFlagsPrivate = 16 +) + +// Flags for ImGui::PushItemFlag() +// (Those are shared by all items) +// original name: ImGuiItemFlags_ +type ItemFlags int32 + +const ( + // (Default) + ItemFlagsNone ItemFlags = 0 + // false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav. + ItemFlagsNoTabStop ItemFlags = 1 + // false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls). + ItemFlagsNoNav ItemFlags = 2 + // false // Disable item being a candidate for default focus (e.g. used by title bar items). + ItemFlagsNoNavDefaultFocus ItemFlags = 4 + // false // Any button-like behavior will have repeat mode enabled (based on io.KeyRepeatDelay and io.KeyRepeatRate values). Note that you can also call IsItemActive() after any button to tell if it is being held. + ItemFlagsButtonRepeat ItemFlags = 8 + // true // MenuItem()/Selectable() automatically close their parent popup window. + ItemFlagsAutoClosePopups ItemFlags = 16 + // false // Allow submitting an item with the same identifier as an item already submitted this frame without triggering a warning tooltip if io.ConfigDebugHighlightIdConflicts is set. + ItemFlagsAllowDuplicateId ItemFlags = 32 ) // Status flags for an already submitted item @@ -935,8 +989,10 @@ const ( ItemStatusFlagsHoveredWindow ItemStatusFlags = 128 // [WIP] Set when item is overlapping the current clipping rectangle (Used internally. Please don't use yet: API/system will change as we refactor Itemadd()). ItemStatusFlagsVisible ItemStatusFlags = 256 - // g.LastItemData.ClipRect is valid + // g.LastItemData.ClipRect is valid. ItemStatusFlagsHasClipRect ItemStatusFlags = 512 + // g.LastItemData.Shortcut valid. Set by SetNextItemShortcut() -> ItemAdd(). + ItemStatusFlagsHasShortcut ItemStatusFlags = 1024 ) // A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values. @@ -1143,18 +1199,16 @@ const ( KeyReservedForModSuper Key = 665 KeyCOUNT Key = 666 ModNone Key = 0 - // Ctrl + // Ctrl (non-macOS), Cmd (macOS) ModCtrl Key = 4096 // Shift ModShift Key = 8192 // Option/Menu ModAlt Key = 16384 - // Cmd/Super/Windows + // Windows/Super (non-macOS), Ctrl (macOS) ModSuper Key = 32768 - // Alias for Ctrl (non-macOS) _or_ Super (macOS). - ModShortcut Key = 2048 - // 5-bits - ModMask Key = 63488 + // 4-bits + ModMask Key = 61440 KeyNamedKeyBEGIN Key = 512 KeyNamedKeyEND Key = 666 KeyNamedKeyCOUNT Key = 154 @@ -1187,10 +1241,12 @@ const ( LocKeyWindowingMainMenuBar LocKey = 5 LocKeyWindowingPopup LocKey = 6 LocKeyWindowingUntitled LocKey = 7 - LocKeyDockingHideTabBar LocKey = 8 - LocKeyDockingHoldShiftToDock LocKey = 9 - LocKeyDockingDragToUndockOrMoveNode LocKey = 10 - LocKeyCOUNT LocKey = 11 + LocKeyOpenLinks LocKey = 8 + LocKeyCopyLink LocKey = 9 + LocKeyDockingHideTabBar LocKey = 10 + LocKeyDockingHoldShiftToDock LocKey = 11 + LocKeyDockingDragToUndockOrMoveNode LocKey = 12 + LocKeyCOUNT LocKey = 13 ) // original name: ImGuiLogType @@ -1260,6 +1316,46 @@ const ( MouseSourceCOUNT MouseSource = 3 ) +// Flags for BeginMultiSelect() +// original name: ImGuiMultiSelectFlags_ +type MultiSelectFlags int32 + +const ( + MultiSelectFlagsNone MultiSelectFlags = 0 + // Disable selecting more than one item. This is available to allow single-selection code to share same code/logic if desired. It essentially disables the main purpose of BeginMultiSelect() tho! + MultiSelectFlagsSingleSelect MultiSelectFlags = 1 + // Disable CTRL+A shortcut to select all. + MultiSelectFlagsNoSelectAll MultiSelectFlags = 2 + // Disable Shift+selection mouse/keyboard support (useful for unordered 2D selection). With BoxSelect is also ensure contiguous SetRange requests are not combined into one. This allows not handling interpolation in SetRange requests. + MultiSelectFlagsNoRangeSelect MultiSelectFlags = 4 + // Disable selecting items when navigating (useful for e.g. supporting range-select in a list of checkboxes). + MultiSelectFlagsNoAutoSelect MultiSelectFlags = 8 + // Disable clearing selection when navigating or selecting another one (generally used with ImGuiMultiSelectFlags_NoAutoSelect. useful for e.g. supporting range-select in a list of checkboxes). + MultiSelectFlagsNoAutoClear MultiSelectFlags = 16 + // Disable clearing selection when clicking/selecting an already selected item. + MultiSelectFlagsNoAutoClearOnReselect MultiSelectFlags = 32 + // Enable box-selection with same width and same x pos items (e.g. full row Selectable()). Box-selection works better with little bit of spacing between items hit-box in order to be able to aim at empty space. + MultiSelectFlagsBoxSelect1d MultiSelectFlags = 64 + // Enable box-selection with varying width or varying x pos items support (e.g. different width labels, or 2D layout/grid). This is slower: alters clipping logic so that e.g. horizontal movements will update selection of normally clipped items. + MultiSelectFlagsBoxSelect2d MultiSelectFlags = 128 + // Disable scrolling when box-selecting near edges of scope. + MultiSelectFlagsBoxSelectNoScroll MultiSelectFlags = 256 + // Clear selection when pressing Escape while scope is focused. + MultiSelectFlagsClearOnEscape MultiSelectFlags = 512 + // Clear selection when clicking on empty location within scope. + MultiSelectFlagsClearOnClickVoid MultiSelectFlags = 1024 + // Scope for _BoxSelect and _ClearOnClickVoid is whole window (Default). Use if BeginMultiSelect() covers a whole window or used a single time in same window. + MultiSelectFlagsScopeWindow MultiSelectFlags = 2048 + // Scope for _BoxSelect and _ClearOnClickVoid is rectangle encompassing BeginMultiSelect()/EndMultiSelect(). Use if BeginMultiSelect() is called multiple times in same window. + MultiSelectFlagsScopeRect MultiSelectFlags = 4096 + // Apply selection on mouse down when clicking on unselected item. (Default) + MultiSelectFlagsSelectOnClick MultiSelectFlags = 8192 + // Apply selection on mouse release when clicking an unselected item. Allow dragging an unselected item without altering selection. + MultiSelectFlagsSelectOnClickRelease MultiSelectFlags = 16384 + // [Temporary] Enable navigation wrapping on X axis. Provided as a convenience because we don't have a design for the general Nav API for this yet. When the more general feature be public we may obsolete this flag in favor of new one. + MultiSelectFlagsNavWrapX MultiSelectFlags = 65536 +) + // original name: ImGuiNavHighlightFlags_ type NavHighlightFlags int32 @@ -1317,16 +1413,20 @@ const ( NavMoveFlagsNoSelect NavMoveFlags = 8192 // Do not alter the visible state of keyboard vs mouse nav highlight NavMoveFlagsNoSetNavHighlight NavMoveFlags = 16384 + // (Experimental) Do not clear active id when applying move result + NavMoveFlagsNoClearActiveId NavMoveFlags = 32768 ) // original name: ImGuiNextItemDataFlags_ type NextItemDataFlags int32 const ( - NextItemDataFlagsNone NextItemDataFlags = 0 - NextItemDataFlagsHasWidth NextItemDataFlags = 1 - NextItemDataFlagsHasOpen NextItemDataFlags = 2 - NextItemDataFlagsHasShortcut NextItemDataFlags = 4 + NextItemDataFlagsNone NextItemDataFlags = 0 + NextItemDataFlagsHasWidth NextItemDataFlags = 1 + NextItemDataFlagsHasOpen NextItemDataFlags = 2 + NextItemDataFlagsHasShortcut NextItemDataFlags = 4 + NextItemDataFlagsHasRefVal NextItemDataFlags = 8 + NextItemDataFlagsHasStorageID NextItemDataFlags = 16 ) // original name: ImGuiNextWindowDataFlags_ @@ -1343,9 +1443,10 @@ const ( NextWindowDataFlagsHasBgAlpha NextWindowDataFlags = 64 NextWindowDataFlagsHasScroll NextWindowDataFlags = 128 NextWindowDataFlagsHasChildFlags NextWindowDataFlags = 256 - NextWindowDataFlagsHasViewport NextWindowDataFlags = 512 - NextWindowDataFlagsHasDock NextWindowDataFlags = 1024 - NextWindowDataFlagsHasWindowClass NextWindowDataFlags = 2048 + NextWindowDataFlagsHasRefreshPolicy NextWindowDataFlags = 512 + NextWindowDataFlagsHasViewport NextWindowDataFlags = 1024 + NextWindowDataFlagsHasDock NextWindowDataFlags = 2048 + NextWindowDataFlagsHasWindowClass NextWindowDataFlags = 4096 ) // Flags for internal's BeginColumns(). This is an obsolete API. Prefer using BeginTable() nowadays! @@ -1470,8 +1571,8 @@ type SelectableFlags int32 const ( SelectableFlagsNone SelectableFlags = 0 - // Clicking this doesn't close parent popup window - SelectableFlagsDontClosePopups SelectableFlags = 1 + // Clicking this doesn't close parent popup window (overrides ImGuiItemFlags_AutoClosePopups) + SelectableFlagsNoAutoClosePopups SelectableFlags = 1 // Frame will span all columns of its container table (text will still fit in current column) SelectableFlagsSpanAllColumns SelectableFlags = 2 // Generate press events on double clicks too @@ -1480,6 +1581,20 @@ const ( SelectableFlagsDisabled SelectableFlags = 8 // (WIP) Hit testing to allow subsequent widgets to overlap this one SelectableFlagsAllowOverlap SelectableFlags = 16 + // Make the item be displayed as if it is hovered + SelectableFlagsHighlight SelectableFlags = 32 +) + +// Selection request type +// original name: ImGuiSelectionRequestType +type SelectionRequestType int32 + +const ( + SelectionRequestTypeNone SelectionRequestType = 0 + // Request app to clear selection (if Selected==false) or select all items (if Selected==true). We cannot set RangeFirstItem/RangeLastItem as its contents is entirely up to user (not necessarily an index) + SelectionRequestTypeSetAll SelectionRequestType = 1 + // Request app to select/unselect [RangeFirstItem..RangeLastItem] items (inclusive) based on value of Selected. Only EndMultiSelect() request this, app code can read after BeginMultiSelect() and it will always be false. + SelectionRequestTypeSetRange SelectionRequestType = 2 ) // original name: ImGuiSeparatorFlags_ @@ -1517,16 +1632,18 @@ const ( SliderFlagsAlwaysClamp SliderFlags = 16 // Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits. SliderFlagsLogarithmic SliderFlags = 32 - // Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits) + // Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits). SliderFlagsNoRoundToFormat SliderFlags = 64 - // Disable CTRL+Click or Enter key allowing to input text directly into the widget + // Disable CTRL+Click or Enter key allowing to input text directly into the widget. SliderFlagsNoInput SliderFlags = 128 + // Enable wrapping around from max to min and from min to max (only supported by DragXXX() functions for now. + SliderFlagsWrapAround SliderFlags = 256 // [Internal] We treat using those bits as being potentially a 'float power' argument from the previous API that has got miscast to this enum, and will trigger an assert if needed. SliderFlagsInvalidMask SliderFlags = 1879048207 ) // A sorting direction -// original name: ImGuiSortDirection_ +// original name: ImGuiSortDirection type SortDirection int32 const ( @@ -1541,8 +1658,9 @@ const ( // - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. // During initialization or between frames, feel free to just poke into ImGuiStyle directly. // - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description. -// In Visual Studio IDE: CTRL+comma ("Edit.GoToAll") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot. -// With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments. +// - In Visual Studio: CTRL+comma ("Edit.GoToAll") can follow symbols inside comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot. +// - In Visual Studio w/ Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols inside comments. +// - In VS Code, CLion, etc.: CTRL+click can follow symbols inside comments. // - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type. // // original name: ImGuiStyleVar_ @@ -1595,21 +1713,29 @@ const ( StyleVarGrabRounding StyleVar = 21 // float TabRounding StyleVarTabRounding StyleVar = 22 + // float TabBorderSize + StyleVarTabBorderSize StyleVar = 23 // float TabBarBorderSize - StyleVarTabBarBorderSize StyleVar = 23 + StyleVarTabBarBorderSize StyleVar = 24 + // float TabBarOverlineSize + StyleVarTabBarOverlineSize StyleVar = 25 + // float TableAngledHeadersAngle + StyleVarTableAngledHeadersAngle StyleVar = 26 + // ImVec2 TableAngledHeadersTextAlign + StyleVarTableAngledHeadersTextAlign StyleVar = 27 // ImVec2 ButtonTextAlign - StyleVarButtonTextAlign StyleVar = 24 + StyleVarButtonTextAlign StyleVar = 28 // ImVec2 SelectableTextAlign - StyleVarSelectableTextAlign StyleVar = 25 - // float SeparatorTextBorderSize - StyleVarSeparatorTextBorderSize StyleVar = 26 + StyleVarSelectableTextAlign StyleVar = 29 + // float SeparatorTextBorderSize + StyleVarSeparatorTextBorderSize StyleVar = 30 // ImVec2 SeparatorTextAlign - StyleVarSeparatorTextAlign StyleVar = 27 + StyleVarSeparatorTextAlign StyleVar = 31 // ImVec2 SeparatorTextPadding - StyleVarSeparatorTextPadding StyleVar = 28 + StyleVarSeparatorTextPadding StyleVar = 32 // float DockingSeparatorSize - StyleVarDockingSeparatorSize StyleVar = 29 - StyleVarCOUNT StyleVar = 30 + StyleVarDockingSeparatorSize StyleVar = 33 + StyleVarCOUNT StyleVar = 34 ) // Extend ImGuiTabBarFlags_ @@ -1642,12 +1768,14 @@ const ( TabBarFlagsNoTabListScrollingButtons TabBarFlags = 16 // Disable tooltips when hovering a tab TabBarFlagsNoTooltip TabBarFlags = 32 + // Draw selected overline markers over selected tab + TabBarFlagsDrawSelectedOverline TabBarFlags = 64 // Resize tabs when they don't fit - TabBarFlagsFittingPolicyResizeDown TabBarFlags = 64 + TabBarFlagsFittingPolicyResizeDown TabBarFlags = 128 // Add scroll buttons when tabs don't fit - TabBarFlagsFittingPolicyScroll TabBarFlags = 128 - TabBarFlagsFittingPolicyMask TabBarFlags = 192 - TabBarFlagsFittingPolicyDefault TabBarFlags = 64 + TabBarFlagsFittingPolicyScroll TabBarFlags = 256 + TabBarFlagsFittingPolicyMask TabBarFlags = 384 + TabBarFlagsFittingPolicyDefault TabBarFlags = 128 ) // Extend ImGuiTabItemFlags_ @@ -1743,7 +1871,7 @@ const ( TableColumnFlagsNoSortAscending TableColumnFlags = 1024 // Disable ability to sort in the descending direction. TableColumnFlagsNoSortDescending TableColumnFlags = 2048 - // TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. + // TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call. TableColumnFlagsNoHeaderLabel TableColumnFlags = 4096 // Disable header text width contribution to automatic column width. TableColumnFlagsNoHeaderWidth TableColumnFlags = 8192 @@ -1905,9 +2033,11 @@ const ( type TreeNodeFlagsPrivate int32 const ( - TreeNodeFlagsClipLabelForTrailingButton TreeNodeFlagsPrivate = 1048576 - // (FIXME-WIP) Turn Down arrow into an Up arrow, but reversed trees (#6517) - TreeNodeFlagsUpsideDownArrow TreeNodeFlagsPrivate = 2097152 + // FIXME-WIP: Hard-coded for CollapsingHeader() + TreeNodeFlagsClipLabelForTrailingButton TreeNodeFlagsPrivate = 268435456 + // FIXME-WIP: Turn Down arrow into an Up arrow, but reversed trees (#6517) + TreeNodeFlagsUpsideDownArrow TreeNodeFlagsPrivate = 536870912 + TreeNodeFlagsOpenOnMask TreeNodeFlagsPrivate = 192 ) // Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*() @@ -1928,24 +2058,26 @@ const ( TreeNodeFlagsNoAutoOpenOnLog TreeNodeFlags = 16 // Default node to be open TreeNodeFlagsDefaultOpen TreeNodeFlags = 32 - // Need double-click to open node + // Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined. TreeNodeFlagsOpenOnDoubleClick TreeNodeFlags = 64 - // Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open. + // Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined. TreeNodeFlagsOpenOnArrow TreeNodeFlags = 128 // No collapsing, no arrow (use as a convenience for leaf nodes). TreeNodeFlagsLeaf TreeNodeFlags = 256 // Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag! TreeNodeFlagsBullet TreeNodeFlags = 512 - // Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding(). + // Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node. TreeNodeFlagsFramePadding TreeNodeFlags = 1024 - // Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default. + // Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode. TreeNodeFlagsSpanAvailWidth TreeNodeFlags = 2048 - // Extend hit box to the left-most and right-most edges (bypass the indented area). + // Extend hit box to the left-most and right-most edges (cover the indent area). TreeNodeFlagsSpanFullWidth TreeNodeFlags = 4096 + // Narrow hit box + narrow hovering highlight, will only cover the label text. + TreeNodeFlagsSpanTextWidth TreeNodeFlags = 8192 // Frame will span all columns of its container table (text will still fit in current column) - TreeNodeFlagsSpanAllColumns TreeNodeFlags = 8192 + TreeNodeFlagsSpanAllColumns TreeNodeFlags = 16384 // (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop) - TreeNodeFlagsNavLeftJumpsBackHere TreeNodeFlags = 16384 + TreeNodeFlagsNavLeftJumpsBackHere TreeNodeFlags = 32768 TreeNodeFlagsCollapsingHeader TreeNodeFlags = 26 ) @@ -1971,7 +2103,7 @@ const ( ViewportFlagsIsPlatformWindow ViewportFlags = 1 // Represent a Platform Monitor (unused yet) ViewportFlagsIsPlatformMonitor ViewportFlags = 2 - // Platform Window: Was created/managed by the user application? (rather than our backend) + // Platform Window: Is created/managed by the user application? (rather than our backend) ViewportFlagsOwnedByApp ViewportFlags = 4 // Platform Window: Disable platform decorations: title bar, borders, etc. (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips) ViewportFlagsNoDecoration ViewportFlags = 8 @@ -2005,13 +2137,15 @@ const ( type WindowDockStyleCol int32 const ( - WindowDockStyleColText WindowDockStyleCol = 0 - WindowDockStyleColTab WindowDockStyleCol = 1 - WindowDockStyleColTabHovered WindowDockStyleCol = 2 - WindowDockStyleColTabActive WindowDockStyleCol = 3 - WindowDockStyleColTabUnfocused WindowDockStyleCol = 4 - WindowDockStyleColTabUnfocusedActive WindowDockStyleCol = 5 - WindowDockStyleColCOUNT WindowDockStyleCol = 6 + WindowDockStyleColText WindowDockStyleCol = 0 + WindowDockStyleColTabHovered WindowDockStyleCol = 1 + WindowDockStyleColTabFocused WindowDockStyleCol = 2 + WindowDockStyleColTabSelected WindowDockStyleCol = 3 + WindowDockStyleColTabSelectedOverline WindowDockStyleCol = 4 + WindowDockStyleColTabDimmed WindowDockStyleCol = 5 + WindowDockStyleColTabDimmedSelected WindowDockStyleCol = 6 + WindowDockStyleColTabDimmedSelectedOverline WindowDockStyleCol = 7 + WindowDockStyleColCOUNT WindowDockStyleCol = 8 ) // Flags for ImGui::Begin() @@ -2064,8 +2198,6 @@ const ( WindowFlagsNoNav WindowFlags = 196608 WindowFlagsNoDecoration WindowFlags = 43 WindowFlagsNoInputs WindowFlags = 197120 - // [BETA] On child window: share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. - WindowFlagsNavFlattened WindowFlags = 8388608 // Don't use! For internal use by BeginChild() WindowFlagsChildWindow WindowFlags = 16777216 // Don't use! For internal use by BeginTooltip() @@ -2079,3 +2211,16 @@ const ( // Don't use! For internal use by Begin()/NewFrame() WindowFlagsDockNodeHost WindowFlags = 536870912 ) + +// original name: ImGuiWindowRefreshFlags_ +type WindowRefreshFlags int32 + +const ( + WindowRefreshFlagsNone WindowRefreshFlags = 0 + // [EXPERIMENTAL] Try to keep existing contents, USER MUST NOT HONOR BEGIN() RETURNING FALSE AND NOT APPEND. + WindowRefreshFlagsTryToAvoidRefresh WindowRefreshFlags = 1 + // [EXPERIMENTAL] Always refresh on hover + WindowRefreshFlagsRefreshOnHover WindowRefreshFlags = 2 + // [EXPERIMENTAL] Always refresh on focus + WindowRefreshFlagsRefreshOnFocus WindowRefreshFlags = 4 +) diff --git a/cimgui_funcs.go b/cimgui_funcs.go index dc999e325..c16c24fac 100644 --- a/cimgui_funcs.go +++ b/cimgui_funcs.go @@ -261,6 +261,15 @@ func (self *DrawList) AddCircleFilledV(center Vec2, radius float32, col uint32, selfFin() } +func (self *DrawList) AddConcavePolyFilled(points *Vec2, num_points int32, col uint32) { + selfArg, selfFin := self.Handle() + pointsArg, pointsFin := wrap[C.ImVec2, *Vec2](points) + C.ImDrawList_AddConcavePolyFilled(selfArg, pointsArg, C.int(num_points), C.ImU32(col)) + + selfFin() + pointsFin() +} + func (self *DrawList) AddConvexPolyFilled(points *Vec2, num_points int32, col uint32) { selfArg, selfFin := self.Handle() pointsArg, pointsFin := wrap[C.ImVec2, *Vec2](points) @@ -282,9 +291,9 @@ func (self *DrawList) AddDrawCmd() { // rot: 0.0f // num_segments: 0 // thickness: 1.0f -func (self *DrawList) AddEllipseV(center Vec2, radius_x float32, radius_y float32, col uint32, rot float32, num_segments int32, thickness float32) { +func (self *DrawList) AddEllipseV(center Vec2, radius Vec2, col uint32, rot float32, num_segments int32, thickness float32) { selfArg, selfFin := self.Handle() - C.ImDrawList_AddEllipse(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.ImU32(col), C.float(rot), C.int(num_segments), C.float(thickness)) + C.ImDrawList_AddEllipse(selfArg, center.toC(), radius.toC(), C.ImU32(col), C.float(rot), C.int(num_segments), C.float(thickness)) selfFin() } @@ -292,9 +301,9 @@ func (self *DrawList) AddEllipseV(center Vec2, radius_x float32, radius_y float3 // AddEllipseFilledV parameter default value hint: // rot: 0.0f // num_segments: 0 -func (self *DrawList) AddEllipseFilledV(center Vec2, radius_x float32, radius_y float32, col uint32, rot float32, num_segments int32) { +func (self *DrawList) AddEllipseFilledV(center Vec2, radius Vec2, col uint32, rot float32, num_segments int32) { selfArg, selfFin := self.Handle() - C.ImDrawList_AddEllipseFilled(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.ImU32(col), C.float(rot), C.int(num_segments)) + C.ImDrawList_AddEllipseFilled(selfArg, center.toC(), radius.toC(), C.ImU32(col), C.float(rot), C.int(num_segments)) selfFin() } @@ -573,9 +582,16 @@ func (self *DrawList) PathClear() { // Ellipse // PathEllipticalArcToV parameter default value hint: // num_segments: 0 -func (self *DrawList) PathEllipticalArcToV(center Vec2, radius_x float32, radius_y float32, rot float32, a_min float32, a_max float32, num_segments int32) { +func (self *DrawList) PathEllipticalArcToV(center Vec2, radius Vec2, rot float32, a_min float32, a_max float32, num_segments int32) { selfArg, selfFin := self.Handle() - C.ImDrawList_PathEllipticalArcTo(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.float(rot), C.float(a_min), C.float(a_max), C.int(num_segments)) + C.ImDrawList_PathEllipticalArcTo(selfArg, center.toC(), radius.toC(), C.float(rot), C.float(a_min), C.float(a_max), C.int(num_segments)) + + selfFin() +} + +func (self *DrawList) PathFillConcave(col uint32) { + selfArg, selfFin := self.Handle() + C.ImDrawList_PathFillConcave(selfArg, C.ImU32(col)) selfFin() } @@ -777,6 +793,15 @@ func (self *DrawList) ResetForNewFrame() { selfFin() } +func (self *DrawList) SetTextureID(texture_id TextureID) { + selfArg, selfFin := self.Handle() + texture_idArg, texture_idFin := texture_id.C() + C.ImDrawList__SetTextureID(selfArg, texture_idArg) + + selfFin() + texture_idFin() +} + func (self *DrawList) TryMergeDrawCmds() { selfArg, selfFin := self.Handle() C.ImDrawList__TryMergeDrawCmds(selfArg) @@ -1380,6 +1405,17 @@ func (self *Font) Destroy() { selfFin() } +func InternalNewBoxSelectState() *BoxSelectState { + return NewBoxSelectStateFromC(C.ImGuiBoxSelectState_ImGuiBoxSelectState()) +} + +func (self *BoxSelectState) Destroy() { + selfArg, selfFin := self.Handle() + C.ImGuiBoxSelectState_destroy(selfArg) + + selfFin() +} + func InternalNewComboPreviewData() *ComboPreviewData { return NewComboPreviewDataFromC(C.ImGuiComboPreviewData_ImGuiComboPreviewData()) } @@ -1402,8 +1438,66 @@ func (self *ContextHook) Destroy() { selfFin() } -// // Different to ensure initial submission +// // All platforms use Ctrl+Tab but Ctrl<>Super are swapped on Mac... +// // FIXME: Because this value is stored, it annoyingly interfere with toggling io.ConfigMacOSXBehaviors updating this.. +// ConfigNavWindowingKeyNext = IO.ConfigMacOSXBehaviors ? (ImGuiMod_Super | ImGuiKey_Tab) : (ImGuiMod_Ctrl | ImGuiKey_Tab); +// ConfigNavWindowingKeyPrev = IO.ConfigMacOSXBehaviors ? (ImGuiMod_Super | ImGuiMod_Shift | ImGuiKey_Tab) : (ImGuiMod_Ctrl | ImGuiMod_Shift | ImGuiKey_Tab); +// NavWindowingTarget = NavWindowingTargetAnim = NavWindowingListWindow = ((void *)0) ; +// NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f; +// NavWindowingToggleLayer = false; +// NavWindowingToggleKey = ImGuiKey_None; // +// DimBgRatio = 0.0f; +// +// DragDropActive = DragDropWithinSource = DragDropWithinTarget = false; +// DragDropSourceFlags = ImGuiDragDropFlags_None; +// DragDropSourceFrameCount = -1; +// DragDropMouseButton = -1; +// DragDropTargetId = 0; +// DragDropAcceptFlags = ImGuiDragDropFlags_None; +// DragDropAcceptIdCurrRectSurface = 0.0f; +// DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0; +// DragDropAcceptFrameCount = -1; +// DragDropHoldJustPressedId = 0; +// memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal)); +// +// ClipperTempDataStacked = 0; +// +// CurrentTable = ((void *)0) ; +// TablesTempDataStacked = 0; +// CurrentTabBar = ((void *)0) ; +// CurrentMultiSelect = ((void *)0) ; +// MultiSelectTempDataStacked = 0; +// +// HoverItemDelayId = HoverItemDelayIdPreviousFrame = HoverItemUnlockedStationaryId = HoverWindowUnlockedStationaryId = 0; +// HoverItemDelayTimer = HoverItemDelayClearTimer = 0.0f; +// +// MouseCursor = ImGuiMouseCursor_Arrow; +// MouseStationaryTimer = 0.0f; +// +// TempInputId = 0; +// memset(&DataTypeZeroValue, 0, sizeof(DataTypeZeroValue)); +// BeginMenuDepth = BeginComboDepth = 0; +// ColorEditOptions = ImGuiColorEditFlags_DefaultOptions_; +// ColorEditCurrentID = ColorEditSavedID = 0; +// ColorEditSavedHue = ColorEditSavedSat = 0.0f; +// ColorEditSavedColor = 0; +// WindowResizeRelativeMode = false; +// ScrollbarSeekMode = 0; +// ScrollbarClickDeltaToGrabCenter = 0.0f; +// SliderGrabClickOffset = 0.0f; +// SliderCurrentAccum = 0.0f; +// SliderCurrentAccumDirty = false; +// DragCurrentAccumDirty = false; +// DragCurrentAccum = 0.0f; +// DragSpeedDefaultRatio = 1.0f / 100.0f; +// DisabledAlphaBackup = 0.0f; +// DisabledStackSize = 0; +// LockMarkEdited = 0; +// TooltipOverrideCount = 0; +// +// PlatformImeData.InputPos = ImVec2(0.0f, 0.0f); +// PlatformImeDataPrev.InputPos = ImVec2(-1.0f, -1.0f); // Different to ensure initial submission // PlatformImeViewport = 0; // // DockNodeWindowMenuHandler = ((void *)0) ; @@ -1733,7 +1827,7 @@ func (self *IO) ClearEventsQueue() { selfFin() } -// Clear current keyboard/mouse/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons. +// Clear current keyboard/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons. func (self *IO) ClearInputKeys() { selfArg, selfFin := self.Handle() C.ImGuiIO_ClearInputKeys(selfArg) @@ -1741,6 +1835,14 @@ func (self *IO) ClearInputKeys() { selfFin() } +// Clear current mouse state. +func (self *IO) ClearInputMouse() { + selfArg, selfFin := self.Handle() + C.ImGuiIO_ClearInputMouse(selfArg) + + selfFin() +} + func NewIO() *IO { return NewIOFromC(C.ImGuiIO_ImGuiIO()) } @@ -1871,7 +1973,6 @@ func (self *InputTextState) InternalClearText() { selfFin() } -// After a user-input the cursor stays on for a while without blinking func (self *InputTextState) InternalCursorAnimReset() { selfArg, selfFin := self.Handle() C.ImGuiInputTextState_CursorAnimReset(selfArg) @@ -1895,15 +1996,6 @@ func (self *InputTextState) InternalCursorPos() int32 { return int32(C.ImGuiInputTextState_GetCursorPos(selfArg)) } -func (self *InputTextState) InternalRedoAvailCount() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.ImGuiInputTextState_GetRedoAvailCount(selfArg)) -} - func (self *InputTextState) InternalSelectionEnd() int32 { selfArg, selfFin := self.Handle() @@ -1922,15 +2014,6 @@ func (self *InputTextState) InternalSelectionStart() int32 { return int32(C.ImGuiInputTextState_GetSelectionStart(selfArg)) } -func (self *InputTextState) InternalUndoAvailCount() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.ImGuiInputTextState_GetUndoAvailCount(selfArg)) -} - func (self *InputTextState) InternalHasSelection() bool { selfArg, selfFin := self.Handle() @@ -1944,6 +2027,13 @@ func InternalNewInputTextState() *InputTextState { return NewInputTextStateFromC(C.ImGuiInputTextState_ImGuiInputTextState()) } +func (self *InputTextState) InternalOnCharPressed(c uint32) { + selfArg, selfFin := self.Handle() + C.ImGuiInputTextState_OnCharPressed(selfArg, C.uint(c)) + + selfFin() +} + // Cannot be inline because we call in code in stb_textedit.h implementation func (self *InputTextState) InternalOnKeyPressed(key int32) { selfArg, selfFin := self.Handle() @@ -1980,7 +2070,7 @@ func (self *InputTextState) InternalSelectAll() { selfFin() } -func (self *InputTextState) Destroy() { +func (self *InputTextState) InternalDestroy() { selfArg, selfFin := self.Handle() C.ImGuiInputTextState_destroy(selfArg) @@ -2108,6 +2198,13 @@ func (self *ListClipper) IncludeItemsByIndex(item_begin int32, item_end int32) { selfFin() } +func (self *ListClipper) SeekCursorForItem(item_index int32) { + selfArg, selfFin := self.Handle() + C.ImGuiListClipper_SeekCursorForItem(selfArg, C.int(item_index)) + + selfFin() +} + // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. func (self *ListClipper) Step() bool { selfArg, selfFin := self.Handle() @@ -2159,6 +2256,43 @@ func (self *MenuColumns) Destroy() { selfFin() } +func InternalNewMultiSelectState() *MultiSelectState { + return NewMultiSelectStateFromC(C.ImGuiMultiSelectState_ImGuiMultiSelectState()) +} + +func (self *MultiSelectState) Destroy() { + selfArg, selfFin := self.Handle() + C.ImGuiMultiSelectState_destroy(selfArg) + + selfFin() +} + +// Zero-clear except IO as we preserve IO.Requests[] buffer allocation. +func (self *MultiSelectTempData) InternalClear() { + selfArg, selfFin := self.Handle() + C.ImGuiMultiSelectTempData_Clear(selfArg) + + selfFin() +} + +func (self *MultiSelectTempData) InternalClearIO() { + selfArg, selfFin := self.Handle() + C.ImGuiMultiSelectTempData_ClearIO(selfArg) + + selfFin() +} + +func InternalNewMultiSelectTempData() *MultiSelectTempData { + return NewMultiSelectTempDataFromC(C.ImGuiMultiSelectTempData_ImGuiMultiSelectTempData()) +} + +func (self *MultiSelectTempData) Destroy() { + selfArg, selfFin := self.Handle() + C.ImGuiMultiSelectTempData_destroy(selfArg) + + selfFin() +} + func (self *NavItemData) InternalClear() { selfArg, selfFin := self.Handle() C.ImGuiNavItemData_Clear(selfArg) @@ -2294,7 +2428,6 @@ func (self *Payload) Destroy() { selfFin() } -// Zero clear func NewPlatformIO() *PlatformIO { return NewPlatformIOFromC(C.ImGuiPlatformIO_ImGuiPlatformIO()) } @@ -2354,6 +2487,101 @@ func (self *PtrOrIndex) Destroy() { selfFin() } +// Apply selection requests coming from BeginMultiSelect() and EndMultiSelect() functions. It uses 'items_count' passed to BeginMultiSelect() +func (self *SelectionBasicStorage) ApplyRequests(ms_io *MultiSelectIO) { + selfArg, selfFin := self.Handle() + ms_ioArg, ms_ioFin := ms_io.Handle() + C.ImGuiSelectionBasicStorage_ApplyRequests(selfArg, ms_ioArg) + + selfFin() + ms_ioFin() +} + +// Clear selection +func (self *SelectionBasicStorage) Clear() { + selfArg, selfFin := self.Handle() + C.ImGuiSelectionBasicStorage_Clear(selfArg) + + selfFin() +} + +// Query if an item id is in selection. +func (self *SelectionBasicStorage) Contains(id ID) bool { + selfArg, selfFin := self.Handle() + idArg, idFin := id.C() + + defer func() { + selfFin() + idFin() + }() + return C.ImGuiSelectionBasicStorage_Contains(selfArg, idArg) == C.bool(true) +} + +// Convert index to item id based on provided adapter. +func (self *SelectionBasicStorage) StorageIdFromIndex(idx int32) ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { + result := C.ImGuiSelectionBasicStorage_GetStorageIdFromIndex(selfArg, C.int(idx)) + return &result + }()) +} + +func NewSelectionBasicStorage() *SelectionBasicStorage { + return NewSelectionBasicStorageFromC(C.ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage()) +} + +// Add/remove an item from selection (generally done by ApplyRequests() function) +func (self *SelectionBasicStorage) SetItemSelected(id ID, selected bool) { + selfArg, selfFin := self.Handle() + idArg, idFin := id.C() + C.ImGuiSelectionBasicStorage_SetItemSelected(selfArg, idArg, C.bool(selected)) + + selfFin() + idFin() +} + +// Swap two selections +func (self *SelectionBasicStorage) Swap(r *SelectionBasicStorage) { + selfArg, selfFin := self.Handle() + rArg, rFin := r.Handle() + C.ImGuiSelectionBasicStorage_Swap(selfArg, rArg) + + selfFin() + rFin() +} + +func (self *SelectionBasicStorage) Destroy() { + selfArg, selfFin := self.Handle() + C.ImGuiSelectionBasicStorage_destroy(selfArg) + + selfFin() +} + +// Apply selection requests by using AdapterSetItemSelected() calls +func (self *SelectionExternalStorage) ApplyRequests(ms_io *MultiSelectIO) { + selfArg, selfFin := self.Handle() + ms_ioArg, ms_ioFin := ms_io.Handle() + C.ImGuiSelectionExternalStorage_ApplyRequests(selfArg, ms_ioArg) + + selfFin() + ms_ioFin() +} + +func NewSelectionExternalStorage() *SelectionExternalStorage { + return NewSelectionExternalStorageFromC(C.ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage()) +} + +func (self *SelectionExternalStorage) Destroy() { + selfArg, selfFin := self.Handle() + C.ImGuiSelectionExternalStorage_destroy(selfArg) + + selfFin() +} + func InternalNewSettingsHandler() *SettingsHandler { return NewSettingsHandlerFromC(C.ImGuiSettingsHandler_ImGuiSettingsHandler()) } @@ -2987,12 +3215,12 @@ func (self *TypingSelectState) Destroy() { selfFin() } -func (self *ViewportP) InternalCalcWorkRectPos(off_min Vec2) Vec2 { +func (self *ViewportP) InternalCalcWorkRectPos(inset_min Vec2) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) selfArg, selfFin := self.Handle() - C.ImGuiViewportP_CalcWorkRectPos(pOutArg, selfArg, off_min.toC()) + C.ImGuiViewportP_CalcWorkRectPos(pOutArg, selfArg, inset_min.toC()) pOutFin() selfFin() @@ -3000,12 +3228,12 @@ func (self *ViewportP) InternalCalcWorkRectPos(off_min Vec2) Vec2 { return *pOut } -func (self *ViewportP) InternalCalcWorkRectSize(off_min Vec2, off_max Vec2) Vec2 { +func (self *ViewportP) InternalCalcWorkRectSize(inset_min Vec2, inset_max Vec2) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) selfArg, selfFin := self.Handle() - C.ImGuiViewportP_CalcWorkRectSize(pOutArg, selfArg, off_min.toC(), off_max.toC()) + C.ImGuiViewportP_CalcWorkRectSize(pOutArg, selfArg, inset_min.toC(), inset_max.toC()) pOutFin() selfFin() @@ -3155,6 +3383,15 @@ func (self *Window) InternalCalcFontSize() float32 { return float32(C.ImGuiWindow_CalcFontSize(selfArg)) } +func (self *Window) InternalIDFromPos(p_abs Vec2) ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.ImGuiWindow_GetIDFromPos(selfArg, p_abs.toC()); return &result }()) +} + func (self *Window) InternalIDFromRectangle(r_abs Rect) ID { selfArg, selfFin := self.Handle() @@ -3208,15 +3445,6 @@ func InternalNewWindow(context *Context, name string) *Window { return NewWindowFromC(C.ImGuiWindow_ImGuiWindow(contextArg, nameArg)) } -func (self *Window) InternalMenuBarHeight() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.ImGuiWindow_MenuBarHeight(selfArg)) -} - func (self *Window) InternalMenuBarRect() Rect { pOut := new(Rect) pOutArg, pOutFin := wrap[C.ImRect, *Rect](pOut) @@ -3243,15 +3471,6 @@ func (self *Window) InternalRect() Rect { return *pOut } -func (self *Window) InternalTitleBarHeight() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.ImGuiWindow_TitleBarHeight(selfArg)) -} - func (self *Window) InternalTitleBarRect() Rect { pOut := new(Rect) pOutArg, pOutFin := wrap[C.ImRect, *Rect](pOut) @@ -3625,6 +3844,17 @@ func BeginV(name string, p_open *bool, flags WindowFlags) bool { return C.igBegin(nameArg, p_openArg, C.ImGuiWindowFlags(flags)) == C.bool(true) } +func InternalBeginBoxSelect(scope_rect Rect, window *Window, box_select_id ID, ms_flags MultiSelectFlags) bool { + windowArg, windowFin := window.Handle() + box_select_idArg, box_select_idFin := box_select_id.C() + + defer func() { + windowFin() + box_select_idFin() + }() + return C.igBeginBoxSelect(scope_rect.toC(), windowArg, box_select_idArg, C.ImGuiMultiSelectFlags(ms_flags)) == C.bool(true) +} + func InternalBeginChildEx(name string, id ID, size_arg Vec2, child_flags ChildFlags, window_flags WindowFlags) bool { nameArg, nameFin := WrapString(name) idArg, idFin := id.C() @@ -3704,6 +3934,10 @@ func BeginDisabledV(disabled bool) { C.igBeginDisabled(C.bool(disabled)) } +func InternalBeginDisabledOverrideReenable() { + C.igBeginDisabledOverrideReenable() +} + func InternalBeginDockableDragDropSource(window *Window) { windowArg, windowFin := window.Handle() C.igBeginDockableDragDropSource(windowArg) @@ -3805,6 +4039,13 @@ func InternalBeginMenuExV(label string, icon string, enabled bool) bool { return C.igBeginMenuEx(labelArg, iconArg, C.bool(enabled)) == C.bool(true) } +// BeginMultiSelectV parameter default value hint: +// selection_size: -1 +// items_count: -1 +func BeginMultiSelectV(flags MultiSelectFlags, selection_size int32, items_count int32) *MultiSelectIO { + return NewMultiSelectIOFromC(C.igBeginMultiSelect(C.ImGuiMultiSelectFlags(flags), C.int(selection_size), C.int(items_count))) +} + // return true if the popup is open, and you can start outputting to it. // BeginPopupV parameter default value hint: // flags: 0 @@ -3856,13 +4097,13 @@ func BeginPopupContextWindowV(str_id string, popup_flags PopupFlags) bool { return C.igBeginPopupContextWindow(str_idArg, C.ImGuiPopupFlags(popup_flags)) == C.bool(true) } -func InternalBeginPopupEx(id ID, extra_flags WindowFlags) bool { +func InternalBeginPopupEx(id ID, extra_window_flags WindowFlags) bool { idArg, idFin := id.C() defer func() { idFin() }() - return C.igBeginPopupEx(idArg, C.ImGuiWindowFlags(extra_flags)) == C.bool(true) + return C.igBeginPopupEx(idArg, C.ImGuiWindowFlags(extra_window_flags)) == C.bool(true) } // return true if the modal is open, and you can start outputting to it. @@ -3920,13 +4161,13 @@ func BeginTabItemV(label string, p_open *bool, flags TabItemFlags) bool { // flags: 0 // outer_size: ImVec2(0.0f,0.0f) // inner_width: 0.0f -func BeginTableV(str_id string, column int32, flags TableFlags, outer_size Vec2, inner_width float32) bool { +func BeginTableV(str_id string, columns int32, flags TableFlags, outer_size Vec2, inner_width float32) bool { str_idArg, str_idFin := WrapString(str_id) defer func() { str_idFin() }() - return C.igBeginTable(str_idArg, C.int(column), C.ImGuiTableFlags(flags), outer_size.toC(), C.float(inner_width)) == C.bool(true) + return C.igBeginTable(str_idArg, C.int(columns), C.ImGuiTableFlags(flags), outer_size.toC(), C.float(inner_width)) == C.bool(true) } // InternalBeginTableExV parameter default value hint: @@ -4409,10 +4650,10 @@ func InternalColorTooltip(text string, col []float32, flags ColorEditFlags) { // ColumnsV parameter default value hint: // count: 1 // id: NULL -// border: true -func ColumnsV(count int32, id string, border bool) { +// borders: true +func ColumnsV(count int32, id string, borders bool) { idArg, idFin := WrapString(id) - C.igColumns(C.int(count), idArg, C.bool(border)) + C.igColumns(C.int(count), idArg, C.bool(borders)) idFin() } @@ -4448,13 +4689,8 @@ func ComboStrarrV(label string, current_item *int32, items []string, items_count return C.igCombo_Str_arr(labelArg, current_itemArg, itemsArg, C.int(items_count), C.int(popup_max_height_in_items)) == C.bool(true) } -func InternalConvertSingleModFlagToKey(ctx *Context, key Key) Key { - ctxArg, ctxFin := ctx.Handle() - - defer func() { - ctxFin() - }() - return Key(C.igConvertSingleModFlagToKey(ctxArg, C.ImGuiKey(key))) +func InternalConvertSingleModFlagToKey(key Key) Key { + return Key(C.igConvertSingleModFlagToKey(C.ImGuiKey(key))) } // CreateContextV parameter default value hint: @@ -4477,7 +4713,9 @@ func InternalCreateNewWindowSettings(name string) *WindowSettings { return NewWindowSettingsFromC(C.igCreateNewWindowSettings(nameArg)) } -func InternalDataTypeApplyFromText(buf string, data_type DataType, p_data uintptr, format string) bool { +// InternalDataTypeApplyFromTextV parameter default value hint: +// p_data_when_empty: NULL +func InternalDataTypeApplyFromTextV(buf string, data_type DataType, p_data uintptr, format string, p_data_when_empty uintptr) bool { bufArg, bufFin := WrapString(buf) formatArg, formatFin := WrapString(format) @@ -4485,7 +4723,7 @@ func InternalDataTypeApplyFromText(buf string, data_type DataType, p_data uintpt bufFin() formatFin() }() - return C.wrap_igDataTypeApplyFromText(bufArg, C.ImGuiDataType(data_type), C.uintptr_t(p_data), formatArg) == C.bool(true) + return C.wrap_igDataTypeApplyFromTextV(bufArg, C.ImGuiDataType(data_type), C.uintptr_t(p_data), formatArg, C.uintptr_t(p_data_when_empty)) == C.bool(true) } func InternalDataTypeApplyOp(data_type DataType, op int32, output uintptr, arg_1 uintptr, arg_2 uintptr) { @@ -4604,7 +4842,8 @@ func InternalDebugLocateItemResolveWithLastItem() { C.igDebugLocateItemResolveWithLastItem() } -func InternalDebugLog(fmt string) { +// Call via IMGUI_DEBUG_LOG() for maximum stripping in caller code! +func DebugLog(fmt string) { fmtArg, fmtFin := WrapString(fmt) C.wrap_igDebugLog(fmtArg) @@ -4674,6 +4913,22 @@ func InternalDebugNodeInputTextState(state *InputTextState) { stateFin() } +func InternalDebugNodeMultiSelectState(state *MultiSelectState) { + stateArg, stateFin := state.Handle() + C.igDebugNodeMultiSelectState(stateArg) + + stateFin() +} + +func InternalDebugNodePlatformMonitor(monitor *PlatformMonitor, label string, idx int32) { + monitorArg, monitorFin := monitor.Handle() + labelArg, labelFin := WrapString(label) + C.igDebugNodePlatformMonitor(monitorArg, labelArg, C.int(idx)) + + monitorFin() + labelFin() +} + func InternalDebugNodeStorage(storage *Storage, label string) { storageArg, storageFin := storage.Handle() labelArg, labelFin := WrapString(label) @@ -4763,6 +5018,15 @@ func DebugTextEncoding(text string) { textFin() } +func InternalDebugTextUnformattedWithLocateItem(line_begin string, line_end string) { + line_beginArg, line_beginFin := WrapString(line_begin) + line_endArg, line_endFin := WrapString(line_end) + C.igDebugTextUnformattedWithLocateItem(line_beginArg, line_endArg) + + line_beginFin() + line_endFin() +} + // NULL = destroy current context // DestroyContextV parameter default value hint: // ctx: NULL @@ -5105,34 +5369,37 @@ func InternalDockNodeWindowMenuHandlerDefault(ctx *Context, node *DockNode, tab_ // size: ImVec2(0,0) // flags: 0 // window_class: NULL -func DockSpaceV(id ID, size Vec2, flags DockNodeFlags, window_class *WindowClass) ID { - idArg, idFin := id.C() +func DockSpaceV(dockspace_id ID, size Vec2, flags DockNodeFlags, window_class *WindowClass) ID { + dockspace_idArg, dockspace_idFin := dockspace_id.C() window_classArg, window_classFin := window_class.Handle() defer func() { - idFin() + dockspace_idFin() window_classFin() }() return *NewIDFromC(func() *C.ImGuiID { - result := C.igDockSpace(idArg, size.toC(), C.ImGuiDockNodeFlags(flags), window_classArg) + result := C.igDockSpace(dockspace_idArg, size.toC(), C.ImGuiDockNodeFlags(flags), window_classArg) return &result }()) } // DockSpaceOverViewportV parameter default value hint: +// dockspace_id: 0 // viewport: NULL // flags: 0 // window_class: NULL -func DockSpaceOverViewportV(viewport *Viewport, flags DockNodeFlags, window_class *WindowClass) ID { +func DockSpaceOverViewportV(dockspace_id ID, viewport *Viewport, flags DockNodeFlags, window_class *WindowClass) ID { + dockspace_idArg, dockspace_idFin := dockspace_id.C() viewportArg, viewportFin := viewport.Handle() window_classArg, window_classFin := window_class.Handle() defer func() { + dockspace_idFin() viewportFin() window_classFin() }() return *NewIDFromC(func() *C.ImGuiID { - result := C.igDockSpaceOverViewport(viewportArg, C.ImGuiDockNodeFlags(flags), window_classArg) + result := C.igDockSpaceOverViewport(dockspace_idArg, viewportArg, C.ImGuiDockNodeFlags(flags), window_classArg) return &result }()) } @@ -5441,6 +5708,10 @@ func End() { C.igEnd() } +func InternalEndBoxSelect(scope_rect Rect, ms_flags MultiSelectFlags) { + C.igEndBoxSelect(scope_rect.toC(), C.ImGuiMultiSelectFlags(ms_flags)) +} + func EndChild() { C.igEndChild() } @@ -5463,6 +5734,10 @@ func EndDisabled() { C.igEndDisabled() } +func InternalEndDisabledOverrideReenable() { + C.igEndDisabledOverrideReenable() +} + // only call EndDragDropSource() if BeginDragDropSource() returns true! func EndDragDropSource() { C.igEndDragDropSource() @@ -5503,6 +5778,10 @@ func EndMenuBar() { C.igEndMenuBar() } +func EndMultiSelect() *MultiSelectIO { + return NewMultiSelectIOFromC(C.igEndMultiSelect()) +} + // only call EndPopup() if BeginPopupXXX() returns true! func EndPopup() { C.igEndPopup() @@ -5658,15 +5937,13 @@ func InternalFindWindowSettingsByWindow(window *Window) *WindowSettings { return NewWindowSettingsFromC(C.igFindWindowSettingsByWindow(windowArg)) } -func InternalFixupKeyChord(ctx *Context, key_chord KeyChord) KeyChord { - ctxArg, ctxFin := ctx.Handle() +func InternalFixupKeyChord(key_chord KeyChord) KeyChord { key_chordArg, key_chordFin := key_chord.C() defer func() { - ctxFin() key_chordFin() }() - return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.igFixupKeyChord(ctxArg, key_chordArg); return &result }()) + return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.igFixupKeyChord(key_chordArg); return &result }()) } // Focus last item (no selection/activation). @@ -5716,19 +5993,25 @@ func InternalActiveID() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.igGetActiveID(); return &result }()) } -// get background draw list for the viewport associated to the current window. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. -func BackgroundDrawList() *DrawList { - return NewDrawListFromC(C.igGetBackgroundDrawList_Nil()) -} - -// get background draw list for the given viewport. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. -func BackgroundDrawListViewportPtr(viewport *Viewport) *DrawList { +// get background draw list for the given viewport or viewport associated to the current window. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. +// BackgroundDrawListV parameter default value hint: +// viewport: NULL +func BackgroundDrawListV(viewport *Viewport) *DrawList { viewportArg, viewportFin := viewport.Handle() defer func() { viewportFin() }() - return NewDrawListFromC(C.igGetBackgroundDrawList_ViewportPtr(viewportArg)) + return NewDrawListFromC(C.igGetBackgroundDrawList(viewportArg)) +} + +func InternalBoxSelectState(id ID) *BoxSelectState { + idArg, idFin := id.C() + + defer func() { + idFin() + }() + return NewBoxSelectStateFromC(C.igGetBoxSelectState(idArg)) } func ClipboardText() string { @@ -5804,7 +6087,7 @@ func InternalColumnsID(str_id string, count int32) ID { return *NewIDFromC(func() *C.ImGuiID { result := C.igGetColumnsID(str_idArg, C.int(count)); return &result }()) } -// == GetContentRegionMax() - GetCursorPos() +// available space from current position. THIS IS YOUR BEST FRIEND. func ContentRegionAvail() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -5816,29 +6099,6 @@ func ContentRegionAvail() Vec2 { return *pOut } -// current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates -func ContentRegionMax() Vec2 { - pOut := new(Vec2) - pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) - - C.igGetContentRegionMax(pOutArg) - - pOutFin() - - return *pOut -} - -func InternalContentRegionMaxAbs() Vec2 { - pOut := new(Vec2) - pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) - - C.igGetContentRegionMaxAbs(pOutArg) - - pOutFin() - - return *pOut -} - func CurrentContext() *Context { return NewContextFromC(C.igGetCurrentContext()) } @@ -5864,7 +6124,7 @@ func InternalCurrentWindowRead() *Window { return NewWindowFromC(C.igGetCurrentWindowRead()) } -// [window-local] cursor position in window coordinates (relative to window position) +// [window-local] cursor position in window-local coordinates. This is not your best friend. func CursorPos() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -5886,7 +6146,7 @@ func CursorPosY() float32 { return float32(C.igGetCursorPosY()) } -// cursor position in absolute coordinates (prefer using this, also more useful to work with ImDrawList API). +// cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND (prefer using this rather than GetCursorPos(), also more useful to work with ImDrawList API). func CursorScreenPos() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -5898,7 +6158,7 @@ func CursorScreenPos() Vec2 { return *pOut } -// [window-local] initial cursor position, in window coordinates +// [window-local] initial cursor position, in window-local coordinates. Call GetCursorScreenPos() after Begin() to get the absolute coordinates version. func CursorStartPos() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -5943,7 +6203,7 @@ func FontSize() float32 { return float32(C.igGetFontSize()) } -// get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API +// get UV coordinate for a white pixel, useful to draw custom shapes via the ImDrawList API func FontTexUvWhitePixel() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -5955,13 +6215,10 @@ func FontTexUvWhitePixel() Vec2 { return *pOut } -// get foreground draw list for the viewport associated to the current window. this draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents. -func ForegroundDrawList() *DrawList { - return NewDrawListFromC(C.igGetForegroundDrawList_Nil()) -} - -// get foreground draw list for the given viewport. this draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents. -func ForegroundDrawListViewportPtr(viewport *Viewport) *DrawList { +// get foreground draw list for the given viewport or viewport associated to the current window. this draw list will be the top-most rendered one. Useful to quickly draw shapes/text over dear imgui contents. +// ForegroundDrawListViewportPtrV parameter default value hint: +// viewport: NULL +func ForegroundDrawListViewportPtrV(viewport *Viewport) *DrawList { viewportArg, viewportFin := viewport.Handle() defer func() { @@ -6023,6 +6280,10 @@ func InternalIDWithSeedStr(str_id_begin string, str_id_end string, seed ID) ID { }()) } +func IDInt(int_id int32) ID { + return *NewIDFromC(func() *C.ImGuiID { result := C.igGetID_Int(C.int(int_id)); return &result }()) +} + func IDPtr(ptr_id uintptr) ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_igGetID_Ptr(C.uintptr_t(ptr_id)); return &result }()) } @@ -6048,7 +6309,7 @@ func IDStrStr(str_id_begin string, str_id_end string) ID { return *NewIDFromC(func() *C.ImGuiID { result := C.igGetID_StrStr(str_id_beginArg, str_id_endArg); return &result }()) } -// access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags) +// access the ImGuiIO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags) func CurrentIO() *IO { return NewIOFromC(C.igGetIO()) } @@ -6134,10 +6395,6 @@ func InternalKeyDataKey(key Key) *KeyData { return NewKeyDataFromC(C.igGetKeyData_Key(C.ImGuiKey(key))) } -func KeyIndex(key Key) Key { - return Key(C.igGetKeyIndex(C.ImGuiKey(key))) -} - func InternalKeyMagnitude2d(key_left Key, key_right Key, key_up Key, key_down Key) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -6187,7 +6444,7 @@ func CurrentMouseCursor() MouseCursor { return MouseCursor(C.igGetMouseCursor()) } -// return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold) +// return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses io.MouseDraggingThreshold if lock_threshold < 0.0f) // MouseDragDeltaV parameter default value hint: // button: 0 // lock_threshold: -1.0f @@ -6226,11 +6483,20 @@ func MousePosOnOpeningCurrentPopup() Vec2 { return *pOut } +func InternalMultiSelectState(id ID) *MultiSelectState { + idArg, idFin := id.C() + + defer func() { + idFin() + }() + return NewMultiSelectStateFromC(C.igGetMultiSelectState(idArg)) +} + func InternalNavTweakPressedAmount(axis Axis) float32 { return float32(C.igGetNavTweakPressedAmount(C.ImGuiAxis(axis))) } -// platform/renderer functions, for backend to setup + viewports list. +// access the ImGuiPlatformIO structure (mostly hooks/functions to connect to platform/renderer and OS Clipboard, IME etc.) func CurrentPlatformIO() *PlatformIO { return NewPlatformIOFromC(C.igGetPlatformIO()) } @@ -6366,30 +6632,6 @@ func InternalWindowAlwaysWantOwnTabBar(window *Window) bool { return C.igGetWindowAlwaysWantOwnTabBar(windowArg) == C.bool(true) } -// content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be overridden with SetNextWindowContentSize(), in window coordinates -func WindowContentRegionMax() Vec2 { - pOut := new(Vec2) - pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) - - C.igGetWindowContentRegionMax(pOutArg) - - pOutFin() - - return *pOut -} - -// content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates -func WindowContentRegionMin() Vec2 { - pOut := new(Vec2) - pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) - - C.igGetWindowContentRegionMin(pOutArg) - - pOutFin() - - return *pOut -} - func WindowDockID() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.igGetWindowDockID(); return &result }()) } @@ -6408,12 +6650,12 @@ func WindowDrawList() *DrawList { return NewDrawListFromC(C.igGetWindowDrawList()) } -// get current window height (shortcut for GetWindowSize().y) +// get current window height (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().y. func WindowHeight() float32 { return float32(C.igGetWindowHeight()) } -// get current window position in screen space (note: it is unlikely you need to use this. Consider using current layout pos instead, GetCursorScreenPos()) +// get current window position in screen space (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead) func WindowPos() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -6466,7 +6708,7 @@ func InternalWindowScrollbarRect(window *Window, axis Axis) Rect { return *pOut } -// get current window size (note: it is unlikely you need to use this. Consider using GetCursorScreenPos() and e.g. GetContentRegionAvail() instead) +// get current window size (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead) func WindowSize() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -6483,7 +6725,7 @@ func WindowViewport() *Viewport { return NewViewportFromC(C.igGetWindowViewport()) } -// get current window width (shortcut for GetWindowSize().x) +// get current window width (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().x. func WindowWidth() float32 { return float32(C.igGetWindowWidth()) } @@ -6604,6 +6846,10 @@ func InternalImCharIsBlankW(c uint32) bool { return C.igImCharIsBlankW(C.uint(c)) == C.bool(true) } +func InternalImCharIsXdigitA(c rune) bool { + return C.igImCharIsXdigitA(C.char(c)) == C.bool(true) +} + func InternalImClamp(v Vec2, mn Vec2, mx Vec2) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -6844,6 +7090,10 @@ func InternalImLineClosestPoint(a Vec2, b Vec2, p Vec2) Vec2 { return *pOut } +func InternalImLinearRemapClamp(s0 float32, s1 float32, d0 float32, d1 float32, x float32) float32 { + return float32(C.igImLinearRemapClamp(C.float(s0), C.float(s1), C.float(d0), C.float(d1), C.float(x))) +} + func InternalImLinearSweep(current float32, target float32, speed float32) float32 { return float32(C.igImLinearSweep(C.float(current), C.float(target), C.float(speed))) } @@ -6857,6 +7107,19 @@ func InternalImLogDouble(x float64) float64 { return float64(C.igImLog_double(C.double(x))) } +func InternalImLowerBound(in_begin *StoragePair, in_end *StoragePair, key ID) *StoragePair { + in_beginArg, in_beginFin := in_begin.Handle() + in_endArg, in_endFin := in_end.Handle() + keyArg, keyFin := key.C() + + defer func() { + in_beginFin() + in_endFin() + keyFin() + }() + return NewStoragePairFromC(C.igImLowerBound(in_beginArg, in_endArg, keyArg)) +} + func InternalImMax(lhs Vec2, rhs Vec2) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -7011,9 +7274,16 @@ func InternalImStrTrimBlanks(str string) { strFin() } -// Find beginning-of-line (ImWchar string) -func InternalImStrbolW(buf_mid_line *Wchar, buf_begin *Wchar) *Wchar { - return (*Wchar)(C.igImStrbolW((*C.ImWchar)(buf_mid_line), (*C.ImWchar)(buf_begin))) +// Find beginning-of-line +func InternalImStrbol(buf_mid_line string, buf_begin string) string { + buf_mid_lineArg, buf_mid_lineFin := WrapString(buf_mid_line) + buf_beginArg, buf_beginFin := WrapString(buf_begin) + + defer func() { + buf_mid_lineFin() + buf_beginFin() + }() + return C.GoString(C.igImStrbol(buf_mid_lineArg, buf_beginArg)) } // Find first occurrence of 'c' in string range. @@ -7158,6 +7428,18 @@ func InternalImTextCountCharsFromUtf8(in_text string, in_text_end string) int32 return int32(C.igImTextCountCharsFromUtf8(in_textArg, in_text_endArg)) } +// return number of lines taken by text. trailing carriage return doesn't count as an extra line. +func InternalImTextCountLines(in_text string, in_text_end string) int32 { + in_textArg, in_textFin := WrapString(in_text) + in_text_endArg, in_text_endFin := WrapString(in_text_end) + + defer func() { + in_textFin() + in_text_endFin() + }() + return int32(C.igImTextCountLines(in_textArg, in_text_endArg)) +} + // return number of bytes to express one char in UTF-8 func InternalImTextCountUtf8BytesFromChar(in_text string, in_text_end string) int32 { in_textArg, in_textFin := WrapString(in_text) @@ -7247,6 +7529,10 @@ func InternalImTriangleContainsPoint(a Vec2, b Vec2, c Vec2, p Vec2) bool { return C.igImTriangleContainsPoint(a.toC(), b.toC(), c.toC(), p.toC()) == C.bool(true) } +func InternalImTriangleIsClockwise(a Vec2, b Vec2, c Vec2) bool { + return C.igImTriangleIsClockwise(a.toC(), b.toC(), c.toC()) == C.bool(true) +} + func InternalImTruncFloat(f float32) float32 { return float32(C.igImTrunc_Float(C.float(f))) } @@ -7650,8 +7936,8 @@ func IsItemToggledOpen() bool { return C.igIsItemToggledOpen() == C.bool(true) } -// Was the last item selection toggled? (after Selectable(), TreeNode() etc. We only returns toggle _event_ in order to handle clipping correctly) -func InternalIsItemToggledSelection() bool { +// Was the last item selection state toggled? Useful if you need the per-item information _before_ reaching EndMultiSelect(). We only returns toggle _event_ in order to handle clipping correctly. +func IsItemToggledSelection() bool { return C.igIsItemToggledSelection() == C.bool(true) } @@ -7660,9 +7946,9 @@ func IsItemVisible() bool { return C.igIsItemVisible() == C.bool(true) } -// InternalIsKeyChordPressedIDV parameter default value hint: -// flags: 0 -func InternalIsKeyChordPressedIDV(key_chord KeyChord, owner_id ID, flags InputFlags) bool { +// InternalIsKeyChordPressedInputFlagsV parameter default value hint: +// owner_id: 0 +func InternalIsKeyChordPressedInputFlagsV(key_chord KeyChord, flags InputFlags, owner_id ID) bool { key_chordArg, key_chordFin := key_chord.C() owner_idArg, owner_idFin := owner_id.C() @@ -7670,7 +7956,7 @@ func InternalIsKeyChordPressedIDV(key_chord KeyChord, owner_id ID, flags InputFl key_chordFin() owner_idFin() }() - return C.igIsKeyChordPressed_ID(key_chordArg, owner_idArg, C.ImGuiInputFlags(flags)) == C.bool(true) + return C.igIsKeyChordPressed_InputFlags(key_chordArg, C.ImGuiInputFlags(flags), owner_idArg) == C.bool(true) } // was key chord (mods + key) pressed, e.g. you can pass 'ImGuiMod_Ctrl | ImGuiKey_S' as a key-chord. This doesn't do any routing or focus check, please consider using Shortcut() function instead. @@ -7705,15 +7991,15 @@ func IsKeyPressedBoolV(key Key, repeat bool) bool { } // Important: when transitioning from old to new IsKeyPressed(): old API has "bool repeat = true", so would default to repeat. New API requiress explicit ImGuiInputFlags_Repeat. -// InternalIsKeyPressedIDV parameter default value hint: -// flags: 0 -func InternalIsKeyPressedIDV(key Key, owner_id ID, flags InputFlags) bool { +// InternalIsKeyPressedInputFlagsV parameter default value hint: +// owner_id: 0 +func InternalIsKeyPressedInputFlagsV(key Key, flags InputFlags, owner_id ID) bool { owner_idArg, owner_idFin := owner_id.C() defer func() { owner_idFin() }() - return C.igIsKeyPressed_ID(C.ImGuiKey(key), owner_idArg, C.ImGuiInputFlags(flags)) == C.bool(true) + return C.igIsKeyPressed_InputFlags(C.ImGuiKey(key), C.ImGuiInputFlags(flags), owner_idArg) == C.bool(true) } func InternalIsKeyReleasedID(key Key, owner_id ID) bool { @@ -7734,12 +8020,12 @@ func InternalIsKeyboardKey(key Key) bool { return C.igIsKeyboardKey(C.ImGuiKey(key)) == C.bool(true) } -func InternalIsLegacyKey(key Key) bool { - return C.igIsLegacyKey(C.ImGuiKey(key)) == C.bool(true) +func InternalIsLRModKey(key Key) bool { + return C.igIsLRModKey(C.ImGuiKey(key)) == C.bool(true) } -func InternalIsModKey(key Key) bool { - return C.igIsModKey(C.ImGuiKey(key)) == C.bool(true) +func InternalIsLegacyKey(key Key) bool { + return C.igIsLegacyKey(C.ImGuiKey(key)) == C.bool(true) } // did mouse button clicked? (went from !Down to Down). Same as GetMouseClickedCount() == 1. @@ -7749,15 +8035,15 @@ func IsMouseClickedBoolV(button MouseButton, repeat bool) bool { return C.igIsMouseClicked_Bool(C.ImGuiMouseButton(button), C.bool(repeat)) == C.bool(true) } -// InternalIsMouseClickedIDV parameter default value hint: -// flags: 0 -func InternalIsMouseClickedIDV(button MouseButton, owner_id ID, flags InputFlags) bool { +// InternalIsMouseClickedInputFlagsV parameter default value hint: +// owner_id: 0 +func InternalIsMouseClickedInputFlagsV(button MouseButton, flags InputFlags, owner_id ID) bool { owner_idArg, owner_idFin := owner_id.C() defer func() { owner_idFin() }() - return C.igIsMouseClicked_ID(C.ImGuiMouseButton(button), owner_idArg, C.ImGuiInputFlags(flags)) == C.bool(true) + return C.igIsMouseClicked_InputFlags(C.ImGuiMouseButton(button), C.ImGuiInputFlags(flags), owner_idArg) == C.bool(true) } func InternalIsMouseDoubleClickedID(button MouseButton, owner_id ID) bool { @@ -7794,7 +8080,7 @@ func InternalIsMouseDragPastThresholdV(button MouseButton, lock_threshold float3 return C.igIsMouseDragPastThreshold(C.ImGuiMouseButton(button), C.float(lock_threshold)) == C.bool(true) } -// is mouse dragging? (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold) +// is mouse dragging? (uses io.MouseDraggingThreshold if lock_threshold < 0.0f) // IsMouseDraggingV parameter default value hint: // lock_threshold: -1.0f func IsMouseDraggingV(button MouseButton, lock_threshold float32) bool { @@ -7842,8 +8128,8 @@ func InternalIsNamedKey(key Key) bool { return C.igIsNamedKey(C.ImGuiKey(key)) == C.bool(true) } -func InternalIsNamedKeyOrModKey(key Key) bool { - return C.igIsNamedKeyOrModKey(C.ImGuiKey(key)) == C.bool(true) +func InternalIsNamedKeyOrMod(key Key) bool { + return C.igIsNamedKeyOrMod(C.ImGuiKey(key)) == C.bool(true) } func InternalIsPopupOpenID(id ID, popup_flags PopupFlags) bool { @@ -8208,6 +8494,24 @@ func InternalMouseButtonToKey(button MouseButton) Key { return Key(C.igMouseButtonToKey(C.ImGuiMouseButton(button))) } +func InternalMultiSelectAddSetAll(ms *MultiSelectTempData, selected bool) { + msArg, msFin := ms.Handle() + C.igMultiSelectAddSetAll(msArg, C.bool(selected)) + + msFin() +} + +func InternalMultiSelectItemFooter(id ID, p_selected *bool, p_pressed *bool) { + idArg, idFin := id.C() + p_selectedArg, p_selectedFin := WrapBool(p_selected) + p_pressedArg, p_pressedFin := WrapBool(p_pressed) + C.igMultiSelectItemFooter(idArg, p_selectedArg, p_pressedArg) + + idFin() + p_selectedFin() + p_pressedFin() +} + func InternalNavClearPreferredPosForAxis(axis Axis) { C.igNavClearPreferredPosForAxis(C.ImGuiAxis(axis)) } @@ -8253,7 +8557,7 @@ func InternalNavMoveRequestResolveWithLastItem(result *NavItemData) { resultFin() } -func InternalNavMoveRequestResolveWithPastTreeNode(result *NavItemData, tree_node_data *NavTreeNodeData) { +func InternalNavMoveRequestResolveWithPastTreeNode(result *NavItemData, tree_node_data *TreeNodeStackData) { resultArg, resultFin := result.Handle() tree_node_dataArg, tree_node_dataFin := tree_node_data.Handle() C.igNavMoveRequestResolveWithPastTreeNode(resultArg, tree_node_dataArg) @@ -8368,10 +8672,6 @@ func PlotLinesFloatPtrV(label string, values []float32, values_count int32, valu overlay_textFin() } -func PopButtonRepeat() { - C.igPopButtonRepeat() -} - func PopClipRect() { C.igPopClipRect() } @@ -8393,7 +8693,7 @@ func PopID() { C.igPopID() } -func InternalPopItemFlag() { +func PopItemFlag() { C.igPopItemFlag() } @@ -8413,10 +8713,6 @@ func PopStyleVarV(count int32) { C.igPopStyleVar(C.int(count)) } -func PopTabStop() { - C.igPopTabStop() -} - func PopTextWrapPos() { C.igPopTextWrapPos() } @@ -8431,11 +8727,6 @@ func ProgressBarV(fraction float32, size_arg Vec2, overlay string) { overlayFin() } -// in 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame. -func PushButtonRepeat(repeat bool) { - C.igPushButtonRepeat(C.bool(repeat)) -} - func PushClipRect(clip_rect_min Vec2, clip_rect_max Vec2, intersect_with_current_clip_rect bool) { C.igPushClipRect(clip_rect_min.toC(), clip_rect_max.toC(), C.bool(intersect_with_current_clip_rect)) } @@ -8491,7 +8782,8 @@ func PushIDStrStr(str_id_begin string, str_id_end string) { str_id_endFin() } -func InternalPushItemFlag(option ItemFlags, enabled bool) { +// modify specified shared item flag, e.g. PushItemFlag(ImGuiItemFlags_NoTabStop, true) +func PushItemFlag(option ItemFlags, enabled bool) { C.igPushItemFlag(C.ImGuiItemFlags(option), C.bool(enabled)) } @@ -8521,21 +8813,26 @@ func PushStyleColorVec4(idx Col, col Vec4) { C.igPushStyleColor_Vec4(C.ImGuiCol(idx), col.toC()) } -// modify a style float variable. always use this if you modify the style after NewFrame(). +// modify X component of a style ImVec2 variable. " +func PushStyleVarX(idx StyleVar, val_x float32) { + C.igPushStyleVarX(C.ImGuiStyleVar(idx), C.float(val_x)) +} + +// modify Y component of a style ImVec2 variable. " +func PushStyleVarY(idx StyleVar, val_y float32) { + C.igPushStyleVarY(C.ImGuiStyleVar(idx), C.float(val_y)) +} + +// modify a style float variable. always use this if you modify the style after NewFrame()! func PushStyleVarFloat(idx StyleVar, val float32) { C.igPushStyleVar_Float(C.ImGuiStyleVar(idx), C.float(val)) } -// modify a style ImVec2 variable. always use this if you modify the style after NewFrame(). +// modify a style ImVec2 variable. " func PushStyleVarVec2(idx StyleVar, val Vec2) { C.igPushStyleVar_Vec2(C.ImGuiStyleVar(idx), val.toC()) } -// == tab stop enable. Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets -func PushTabStop(tab_stop bool) { - C.igPushTabStop(C.bool(tab_stop)) -} - // push word-wrapping position for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space // PushTextWrapPosV parameter default value hint: // wrap_local_pos_x: 0.0f @@ -8638,10 +8935,10 @@ func InternalRenderDragDropTargetRect(bb Rect, item_clip_rect Rect) { } // InternalRenderFrameV parameter default value hint: -// border: true +// borders: true // rounding: 0.0f -func InternalRenderFrameV(p_min Vec2, p_max Vec2, fill_col uint32, border bool, rounding float32) { - C.igRenderFrame(p_min.toC(), p_max.toC(), C.ImU32(fill_col), C.bool(border), C.float(rounding)) +func InternalRenderFrameV(p_min Vec2, p_max Vec2, fill_col uint32, borders bool, rounding float32) { + C.igRenderFrame(p_min.toC(), p_max.toC(), C.ImU32(fill_col), C.bool(borders), C.float(rounding)) } // InternalRenderFrameBorderV parameter default value hint: @@ -8963,7 +9260,7 @@ func SetCursorPosY(local_y float32) { C.igSetCursorPosY(C.float(local_y)) } -// cursor position in absolute coordinates +// cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND. func SetCursorScreenPos(pos Vec2) { C.igSetCursorScreenPos(pos.toC()) } @@ -9002,13 +9299,16 @@ func SetItemDefaultFocus() { } // Set key owner to last item if it is hovered or active. Equivalent to 'if (IsItemHovered() || IsItemActive()) SetKeyOwner(key, GetItemID());'. -// InternalSetItemKeyOwnerV parameter default value hint: -// flags: 0 -func InternalSetItemKeyOwnerV(key Key, flags InputFlags) { - C.igSetItemKeyOwner(C.ImGuiKey(key), C.ImGuiInputFlags(flags)) +func InternalSetItemKeyOwnerInputFlags(key Key, flags InputFlags) { + C.igSetItemKeyOwner_InputFlags(C.ImGuiKey(key), C.ImGuiInputFlags(flags)) +} + +// Set key owner to last item ID if it is hovered or active. Equivalent to 'if (IsItemHovered() || IsItemActive()) SetKeyOwner(key, GetItemID());'. +func SetItemKeyOwner(key Key) { + C.igSetItemKeyOwner_Nil(C.ImGuiKey(key)) } -// set a text-only tooltip if preceeding item was hovered. override any previous call to SetTooltip(). +// set a text-only tooltip if preceding item was hovered. override any previous call to SetTooltip(). func SetItemTooltip(fmt string) { fmtArg, fmtFin := WrapString(fmt) C.wrap_igSetItemTooltip(fmtArg) @@ -9100,13 +9400,27 @@ func SetNextItemOpenV(is_open bool, cond Cond) { C.igSetNextItemOpen(C.bool(is_open), C.ImGuiCond(cond)) } -func InternalSetNextItemShortcut(key_chord KeyChord) { +func InternalSetNextItemRefVal(data_type DataType, p_data uintptr) { + C.wrap_igSetNextItemRefVal(C.ImGuiDataType(data_type), C.uintptr_t(p_data)) +} + +// SetNextItemShortcutV parameter default value hint: +// flags: 0 +func SetNextItemShortcutV(key_chord KeyChord, flags InputFlags) { key_chordArg, key_chordFin := key_chord.C() - C.igSetNextItemShortcut(key_chordArg) + C.igSetNextItemShortcut(key_chordArg, C.ImGuiInputFlags(flags)) key_chordFin() } +// set id to use for open/close storage (default to same as item id). +func SetNextItemStorageID(storage_id ID) { + storage_idArg, storage_idFin := storage_id.C() + C.igSetNextItemStorageID(storage_idArg) + + storage_idFin() +} + // set width of the _next_ common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side) func SetNextItemWidth(item_width float32) { C.igSetNextItemWidth(C.float(item_width)) @@ -9160,6 +9474,10 @@ func SetNextWindowPosV(pos Vec2, cond Cond, pivot Vec2) { C.igSetNextWindowPos(pos.toC(), C.ImGuiCond(cond), pivot.toC()) } +func InternalSetNextWindowRefreshPolicy(flags WindowRefreshFlags) { + C.igSetNextWindowRefreshPolicy(C.ImGuiWindowRefreshFlags(flags)) +} + // set next window scrolling value (use < 0.0f to not affect a given axis). func SetNextWindowScroll(scroll Vec2) { C.igSetNextWindowScroll(scroll.toC()) @@ -9247,9 +9565,7 @@ func InternalSetScrollYWindowPtr(window *Window, scroll_y float32) { } // owner_id needs to be explicit and cannot be 0 -// InternalSetShortcutRoutingV parameter default value hint: -// flags: 0 -func InternalSetShortcutRoutingV(key_chord KeyChord, owner_id ID, flags InputFlags) bool { +func InternalSetShortcutRouting(key_chord KeyChord, flags InputFlags, owner_id ID) bool { key_chordArg, key_chordFin := key_chord.C() owner_idArg, owner_idFin := owner_id.C() @@ -9257,7 +9573,7 @@ func InternalSetShortcutRoutingV(key_chord KeyChord, owner_id ID, flags InputFla key_chordFin() owner_idFin() }() - return C.igSetShortcutRouting(key_chordArg, owner_idArg, C.ImGuiInputFlags(flags)) == C.bool(true) + return C.igSetShortcutRouting(key_chordArg, C.ImGuiInputFlags(flags), owner_idArg) == C.bool(true) } // replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it) @@ -9450,10 +9766,7 @@ func InternalShadeVertsTransformPos(draw_list *DrawList, vert_start_idx int32, v draw_listFin() } -// InternalShortcutV parameter default value hint: -// owner_id: 0 -// flags: 0 -func InternalShortcutV(key_chord KeyChord, owner_id ID, flags InputFlags) bool { +func InternalShortcutID(key_chord KeyChord, flags InputFlags, owner_id ID) bool { key_chordArg, key_chordFin := key_chord.C() owner_idArg, owner_idFin := owner_id.C() @@ -9461,7 +9774,18 @@ func InternalShortcutV(key_chord KeyChord, owner_id ID, flags InputFlags) bool { key_chordFin() owner_idFin() }() - return C.igShortcut(key_chordArg, owner_idArg, C.ImGuiInputFlags(flags)) == C.bool(true) + return C.igShortcut_ID(key_chordArg, C.ImGuiInputFlags(flags), owner_idArg) == C.bool(true) +} + +// ShortcutNilV parameter default value hint: +// flags: 0 +func ShortcutNilV(key_chord KeyChord, flags InputFlags) bool { + key_chordArg, key_chordFin := key_chord.C() + + defer func() { + key_chordFin() + }() + return C.igShortcut_Nil(key_chordArg, C.ImGuiInputFlags(flags)) == C.bool(true) } // create About window. display Dear ImGui version, credits and build/system information. @@ -10085,10 +10409,13 @@ func TableAngledHeadersRow() { C.igTableAngledHeadersRow() } -// InternalTableAngledHeadersRowExV parameter default value hint: -// max_label_width: 0.0f -func InternalTableAngledHeadersRowExV(angle float32, max_label_width float32) { - C.igTableAngledHeadersRowEx(C.float(angle), C.float(max_label_width)) +func InternalTableAngledHeadersRowEx(row_id ID, angle float32, max_label_width float32, data *TableHeaderData, data_count int32) { + row_idArg, row_idFin := row_id.C() + dataArg, dataFin := data.Handle() + C.igTableAngledHeadersRowEx(row_idArg, C.float(angle), C.float(max_label_width), dataArg, C.int(data_count)) + + row_idFin() + dataFin() } func InternalTableBeginApplyRequests(table *Table) { @@ -10128,6 +10455,15 @@ func InternalTableBeginRow(table *Table) { tableFin() } +func InternalTableCalcMaxColumnWidth(table *Table, column_n int32) float32 { + tableArg, tableFin := table.Handle() + + defer func() { + tableFin() + }() + return float32(C.igTableCalcMaxColumnWidth(tableArg, C.int(column_n))) +} + func InternalTableDrawBorders(table *Table) { tableArg, tableFin := table.Handle() C.igTableDrawBorders(tableArg) @@ -10289,8 +10625,8 @@ func InternalTableGetHeaderRowHeight() float32 { return float32(C.igTableGetHeaderRowHeight()) } -// May use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead. Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. -func InternalTableGetHoveredColumn() int32 { +// return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead. +func TableGetHoveredColumn() int32 { return int32(C.igTableGetHoveredColumn()) } @@ -10317,15 +10653,6 @@ func InternalTableGetInstanceID(table *Table, instance_no int32) ID { return *NewIDFromC(func() *C.ImGuiID { result := C.igTableGetInstanceID(tableArg, C.int(instance_no)); return &result }()) } -func InternalTableGetMaxColumnWidth(table *Table, column_n int32) float32 { - tableArg, tableFin := table.Handle() - - defer func() { - tableFin() - }() - return float32(C.igTableGetMaxColumnWidth(tableArg, C.int(column_n))) -} - // return current row index. func TableGetRowIndex() int32 { return int32(C.igTableGetRowIndex()) @@ -10628,6 +10955,28 @@ func InternalTextExV(text string, flags TextFlags) { textFin() } +// hyperlink text button, return true when clicked +func TextLink(label string) bool { + labelArg, labelFin := WrapString(label) + + defer func() { + labelFin() + }() + return C.igTextLink(labelArg) == C.bool(true) +} + +// hyperlink text button, automatically open file/url when clicked +// TextLinkOpenURLV parameter default value hint: +// url: NULL +func TextLinkOpenURLV(label string, url string) { + labelArg, labelFin := WrapString(label) + urlArg, urlFin := WrapString(url) + C.igTextLinkOpenURL(labelArg, urlArg) + + labelFin() + urlFin() +} + // raw text without formatting. Roughly equivalent to Text("%s", text) but: A) doesn't require null terminated string if 'text_end' is specified, B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text. // TextUnformattedV parameter default value hint: func TextUnformattedV(text string) { @@ -10645,9 +10994,9 @@ func TextWrapped(fmt string) { fmtFin() } -func InternalTranslateWindowsInViewport(viewport *ViewportP, old_pos Vec2, new_pos Vec2) { +func InternalTranslateWindowsInViewport(viewport *ViewportP, old_pos Vec2, new_pos Vec2, old_size Vec2, new_size Vec2) { viewportArg, viewportFin := viewport.Handle() - C.igTranslateWindowsInViewport(viewportArg, old_pos.toC(), new_pos.toC()) + C.igTranslateWindowsInViewport(viewportArg, old_pos.toC(), new_pos.toC(), old_size.toC(), new_size.toC()) viewportFin() } @@ -10698,21 +11047,30 @@ func TreeNodeExStrStr(str_id string, flags TreeNodeFlags, fmt string) bool { return C.wrap_igTreeNodeEx_StrStr(str_idArg, C.ImGuiTreeNodeFlags(flags), fmtArg) == C.bool(true) } -func InternalTreeNodeSetOpen(id ID, open bool) { - idArg, idFin := id.C() - C.igTreeNodeSetOpen(idArg, C.bool(open)) +func InternalTreeNodeGetOpen(storage_id ID) bool { + storage_idArg, storage_idFin := storage_id.C() - idFin() + defer func() { + storage_idFin() + }() + return C.igTreeNodeGetOpen(storage_idArg) == C.bool(true) +} + +func InternalTreeNodeSetOpen(storage_id ID, open bool) { + storage_idArg, storage_idFin := storage_id.C() + C.igTreeNodeSetOpen(storage_idArg, C.bool(open)) + + storage_idFin() } // Return open state. Consume previous SetNextItemOpen() data, if any. May return true when logging. -func InternalTreeNodeUpdateNextOpen(id ID, flags TreeNodeFlags) bool { - idArg, idFin := id.C() +func InternalTreeNodeUpdateNextOpen(storage_id ID, flags TreeNodeFlags) bool { + storage_idArg, storage_idFin := storage_id.C() defer func() { - idFin() + storage_idFin() }() - return C.igTreeNodeUpdateNextOpen(idArg, C.ImGuiTreeNodeFlags(flags)) == C.bool(true) + return C.igTreeNodeUpdateNextOpen(storage_idArg, C.ImGuiTreeNodeFlags(flags)) == C.bool(true) } // " @@ -10808,6 +11166,13 @@ func InternalUpdateWindowParentAndRootLinks(window *Window, flags WindowFlags, p parent_windowFin() } +func InternalUpdateWindowSkipRefresh(window *Window) { + windowArg, windowFin := window.Handle() + C.igUpdateWindowSkipRefresh(windowArg) + + windowFin() +} + // VSliderFloatV parameter default value hint: // format: "%.3f" // flags: 0 @@ -10886,6 +11251,19 @@ func ValueUint(prefix string, v uint32) { prefixFin() } +func InternalWindowPosAbsToRel(window *Window, p Vec2) Vec2 { + pOut := new(Vec2) + pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) + + windowArg, windowFin := window.Handle() + C.igWindowPosAbsToRel(pOutArg, windowArg, p.toC()) + + pOutFin() + windowFin() + + return *pOut +} + func InternalWindowPosRelToAbs(window *Window, p Vec2) Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -10971,16 +11349,16 @@ func (self *DrawList) AddCircleFilled(center Vec2, radius float32, col uint32) { selfFin() } -func (self *DrawList) AddEllipse(center Vec2, radius_x float32, radius_y float32, col uint32) { +func (self *DrawList) AddEllipse(center Vec2, radius Vec2, col uint32) { selfArg, selfFin := self.Handle() - C.wrap_ImDrawList_AddEllipse(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.ImU32(col)) + C.wrap_ImDrawList_AddEllipse(selfArg, center.toC(), radius.toC(), C.ImU32(col)) selfFin() } -func (self *DrawList) AddEllipseFilled(center Vec2, radius_x float32, radius_y float32, col uint32) { +func (self *DrawList) AddEllipseFilled(center Vec2, radius Vec2, col uint32) { selfArg, selfFin := self.Handle() - C.wrap_ImDrawList_AddEllipseFilled(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.ImU32(col)) + C.wrap_ImDrawList_AddEllipseFilled(selfArg, center.toC(), radius.toC(), C.ImU32(col)) selfFin() } @@ -11095,9 +11473,9 @@ func (self *DrawList) PathBezierQuadraticCurveTo(p2 Vec2, p3 Vec2) { selfFin() } -func (self *DrawList) PathEllipticalArcTo(center Vec2, radius_x float32, radius_y float32, rot float32, a_min float32, a_max float32) { +func (self *DrawList) PathEllipticalArcTo(center Vec2, radius Vec2, rot float32, a_min float32, a_max float32) { selfArg, selfFin := self.Handle() - C.wrap_ImDrawList_PathEllipticalArcTo(selfArg, center.toC(), C.float(radius_x), C.float(radius_y), C.float(rot), C.float(a_min), C.float(a_max)) + C.wrap_ImDrawList_PathEllipticalArcTo(selfArg, center.toC(), radius.toC(), C.float(rot), C.float(a_min), C.float(a_max)) selfFin() } @@ -11443,6 +11821,10 @@ func InternalBeginMenuEx(label string, icon string) bool { return C.wrap_igBeginMenuEx(labelArg, iconArg) == C.bool(true) } +func BeginMultiSelect(flags MultiSelectFlags) *MultiSelectIO { + return NewMultiSelectIOFromC(C.wrap_igBeginMultiSelect(C.ImGuiMultiSelectFlags(flags))) +} + func BeginPopup(str_id string) bool { str_idArg, str_idFin := WrapString(str_id) @@ -11491,13 +11873,13 @@ func BeginTabItem(label string) bool { return C.wrap_igBeginTabItem(labelArg) == C.bool(true) } -func BeginTable(str_id string, column int32) bool { +func BeginTable(str_id string, columns int32) bool { str_idArg, str_idFin := WrapString(str_id) defer func() { str_idFin() }() - return C.wrap_igBeginTable(str_idArg, C.int(column)) == C.bool(true) + return C.wrap_igBeginTable(str_idArg, C.int(columns)) == C.bool(true) } func InternalBeginTableEx(name string, id ID, columns_count int32) bool { @@ -11690,6 +12072,17 @@ func CreateContext() *Context { return NewContextFromC(C.wrap_igCreateContext()) } +func InternalDataTypeApplyFromText(buf string, data_type DataType, p_data uintptr, format string) bool { + bufArg, bufFin := WrapString(buf) + formatArg, formatFin := WrapString(format) + + defer func() { + bufFin() + formatFin() + }() + return C.wrap_igDataTypeApplyFromText(bufArg, C.ImGuiDataType(data_type), C.uintptr_t(p_data), formatArg) == C.bool(true) +} + func InternalDebugDrawCursorPos() { C.wrap_igDebugDrawCursorPos() } @@ -11726,13 +12119,13 @@ func InternalDockContextProcessUndockWindow(ctx *Context, window *Window) { windowFin() } -func DockSpace(id ID) ID { - idArg, idFin := id.C() +func DockSpace(dockspace_id ID) ID { + dockspace_idArg, dockspace_idFin := dockspace_id.C() defer func() { - idFin() + dockspace_idFin() }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_igDockSpace(idArg); return &result }()) + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_igDockSpace(dockspace_idArg); return &result }()) } func DockSpaceOverViewport() ID { @@ -11929,6 +12322,10 @@ func InternalFocusWindow(window *Window) { windowFin() } +func BackgroundDrawList() *DrawList { + return NewDrawListFromC(C.wrap_igGetBackgroundDrawList()) +} + func ColorU32Col(idx Col) uint32 { return uint32(C.wrap_igGetColorU32_Col(C.ImGuiCol(idx))) } @@ -11945,6 +12342,10 @@ func ColumnWidth() float32 { return float32(C.wrap_igGetColumnWidth()) } +func ForegroundDrawListViewportPtr() *DrawList { + return NewDrawListFromC(C.wrap_igGetForegroundDrawList_ViewportPtr()) +} + func MouseDragDelta() Vec2 { pOut := new(Vec2) pOutArg, pOutFin := wrap[C.ImVec2, *Vec2](pOut) @@ -12220,41 +12621,29 @@ func IsItemHovered() bool { return C.wrap_igIsItemHovered() == C.bool(true) } -func InternalIsKeyChordPressedID(key_chord KeyChord, owner_id ID) bool { +func InternalIsKeyChordPressedInputFlags(key_chord KeyChord, flags InputFlags) bool { key_chordArg, key_chordFin := key_chord.C() - owner_idArg, owner_idFin := owner_id.C() defer func() { key_chordFin() - owner_idFin() }() - return C.wrap_igIsKeyChordPressed_ID(key_chordArg, owner_idArg) == C.bool(true) + return C.wrap_igIsKeyChordPressed_InputFlags(key_chordArg, C.ImGuiInputFlags(flags)) == C.bool(true) } func IsKeyPressedBool(key Key) bool { return C.wrap_igIsKeyPressed_Bool(C.ImGuiKey(key)) == C.bool(true) } -func InternalIsKeyPressedID(key Key, owner_id ID) bool { - owner_idArg, owner_idFin := owner_id.C() - - defer func() { - owner_idFin() - }() - return C.wrap_igIsKeyPressed_ID(C.ImGuiKey(key), owner_idArg) == C.bool(true) +func InternalIsKeyPressedInputFlags(key Key, flags InputFlags) bool { + return C.wrap_igIsKeyPressed_InputFlags(C.ImGuiKey(key), C.ImGuiInputFlags(flags)) == C.bool(true) } func IsMouseClickedBool(button MouseButton) bool { return C.wrap_igIsMouseClicked_Bool(C.ImGuiMouseButton(button)) == C.bool(true) } -func InternalIsMouseClickedID(button MouseButton, owner_id ID) bool { - owner_idArg, owner_idFin := owner_id.C() - - defer func() { - owner_idFin() - }() - return C.wrap_igIsMouseClicked_ID(C.ImGuiMouseButton(button), owner_idArg) == C.bool(true) +func InternalIsMouseClickedInputFlags(button MouseButton, flags InputFlags) bool { + return C.wrap_igIsMouseClicked_InputFlags(C.ImGuiMouseButton(button), C.ImGuiInputFlags(flags)) == C.bool(true) } func InternalIsMouseDragPastThreshold(button MouseButton) bool { @@ -12578,10 +12967,6 @@ func SetDragDropPayload(typeArg string, data uintptr, sz uint64) bool { return C.wrap_igSetDragDropPayload(typeArgArg, C.uintptr_t(data), C.xulong(sz)) == C.bool(true) } -func InternalSetItemKeyOwner(key Key) { - C.wrap_igSetItemKeyOwner(C.ImGuiKey(key)) -} - func InternalSetKeyOwner(key Key, owner_id ID) { owner_idArg, owner_idFin := owner_id.C() C.wrap_igSetKeyOwner(C.ImGuiKey(key), owner_idArg) @@ -12606,6 +12991,13 @@ func SetNextItemOpen(is_open bool) { C.wrap_igSetNextItemOpen(C.bool(is_open)) } +func SetNextItemShortcut(key_chord KeyChord) { + key_chordArg, key_chordFin := key_chord.C() + C.wrap_igSetNextItemShortcut(key_chordArg) + + key_chordFin() +} + func SetNextWindowCollapsed(collapsed bool) { C.wrap_igSetNextWindowCollapsed(C.bool(collapsed)) } @@ -12645,17 +13037,6 @@ func SetScrollHereY() { C.wrap_igSetScrollHereY() } -func InternalSetShortcutRouting(key_chord KeyChord, owner_id ID) bool { - key_chordArg, key_chordFin := key_chord.C() - owner_idArg, owner_idFin := owner_id.C() - - defer func() { - key_chordFin() - owner_idFin() - }() - return C.wrap_igSetShortcutRouting(key_chordArg, owner_idArg) == C.bool(true) -} - func SetWindowCollapsedBool(collapsed bool) { C.wrap_igSetWindowCollapsed_Bool(C.bool(collapsed)) } @@ -12710,13 +13091,13 @@ func InternalSetWindowSizeWindowPtr(window *Window, size Vec2) { windowFin() } -func InternalShortcut(key_chord KeyChord) bool { +func Shortcut(key_chord KeyChord) bool { key_chordArg, key_chordFin := key_chord.C() defer func() { key_chordFin() }() - return C.wrap_igShortcut(key_chordArg) == C.bool(true) + return C.wrap_igShortcut_Nil(key_chordArg) == C.bool(true) } func ShowAboutWindow() { @@ -12936,10 +13317,6 @@ func TabItemButton(label string) bool { return C.wrap_igTabItemButton(labelArg) == C.bool(true) } -func InternalTableAngledHeadersRowEx(angle float32) { - C.wrap_igTableAngledHeadersRowEx(C.float(angle)) -} - func TableGetColumnFlags() TableColumnFlags { return TableColumnFlags(C.wrap_igTableGetColumnFlags()) } @@ -12999,6 +13376,13 @@ func InternalTextEx(text string) { textFin() } +func TextLinkOpenURL(label string) { + labelArg, labelFin := WrapString(label) + C.wrap_igTextLinkOpenURL(labelArg) + + labelFin() +} + func TextUnformatted(text string) { textArg, textFin := WrapString(text) C.wrap_igTextUnformatted(textArg, C.int(len(text))) @@ -13477,38 +13861,69 @@ func (self *DrawList) Data() *DrawListSharedData { return NewDrawListSharedDataFromC(C.wrap_ImDrawList_Get_Data(selfArg)) } -func (self DrawList) SetOwnerName(v string) { - vArg, _ := WrapString(v) +func (self DrawList) SetVtxWritePtr(v *DrawVert) { + vArg, _ := v.Handle() selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImDrawList_Set_OwnerName(selfArg, vArg) + C.wrap_ImDrawList_Set_VtxWritePtr(selfArg, vArg) } -func (self *DrawList) OwnerName() string { +func (self *DrawList) VtxWritePtr() *DrawVert { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return C.GoString(C.wrap_ImDrawList_Get_OwnerName(selfArg)) + return NewDrawVertFromC(C.wrap_ImDrawList_Get_VtxWritePtr(selfArg)) } -func (self DrawList) SetVtxWritePtr(v *DrawVert) { - vArg, _ := v.Handle() +func (self DrawList) SetPath(v Vector[*Vec2]) { + vData := v.Data + vDataArg, _ := wrap[C.ImVec2, *Vec2](vData) + vVecArg := new(C.ImVector_ImVec2) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImDrawList_Set_VtxWritePtr(selfArg, vArg) + C.wrap_ImDrawList_Set_Path(selfArg, *vVecArg) } -func (self *DrawList) VtxWritePtr() *DrawVert { +func (self DrawList) SetCmdHeader(v DrawCmdHeader) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImDrawList_Set_CmdHeader(selfArg, vArg) +} + +func (self *DrawList) CmdHeader() DrawCmdHeader { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return NewDrawVertFromC(C.wrap_ImDrawList_Get_VtxWritePtr(selfArg)) + return *NewDrawCmdHeaderFromC(func() *C.ImDrawCmdHeader { result := C.wrap_ImDrawList_Get_CmdHeader(selfArg); return &result }()) +} + +func (self DrawList) SetSplitter(v DrawListSplitter) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImDrawList_Set_Splitter(selfArg, vArg) +} + +func (self *DrawList) Splitter() DrawListSplitter { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewDrawListSplitterFromC(func() *C.ImDrawListSplitter { result := C.wrap_ImDrawList_Get_Splitter(selfArg); return &result }()) } func (self DrawList) SetClipRectStack(v Vector[*Vec4]) { @@ -13548,67 +13963,36 @@ func (self *DrawList) TextureIdStack() Vector[*TextureID] { return NewVectorFromC(C.wrap_ImDrawList_Get_TextureIdStack(selfArg).Size, C.wrap_ImDrawList_Get_TextureIdStack(selfArg).Capacity, NewTextureIDFromC(C.wrap_ImDrawList_Get_TextureIdStack(selfArg).Data)) } -func (self DrawList) SetPath(v Vector[*Vec2]) { - vData := v.Data - vDataArg, _ := wrap[C.ImVec2, *Vec2](vData) - vVecArg := new(C.ImVector_ImVec2) - vVecArg.Size = C.int(v.Size) - vVecArg.Capacity = C.int(v.Capacity) - vVecArg.Data = vDataArg - v.pinner.Pin(vVecArg.Data) - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImDrawList_Set_Path(selfArg, *vVecArg) -} - -func (self DrawList) SetCmdHeader(v DrawCmdHeader) { - vArg, _ := v.C() - +func (self DrawList) SetFringeScale(v float32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImDrawList_Set_CmdHeader(selfArg, vArg) + C.wrap_ImDrawList_Set_FringeScale(selfArg, C.float(v)) } -func (self *DrawList) CmdHeader() DrawCmdHeader { +func (self *DrawList) FringeScale() float32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewDrawCmdHeaderFromC(func() *C.ImDrawCmdHeader { result := C.wrap_ImDrawList_Get_CmdHeader(selfArg); return &result }()) -} - -func (self DrawList) SetSplitter(v DrawListSplitter) { - vArg, _ := v.C() - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImDrawList_Set_Splitter(selfArg, vArg) + return float32(C.wrap_ImDrawList_Get_FringeScale(selfArg)) } -func (self *DrawList) Splitter() DrawListSplitter { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return *NewDrawListSplitterFromC(func() *C.ImDrawListSplitter { result := C.wrap_ImDrawList_Get_Splitter(selfArg); return &result }()) -} +func (self DrawList) SetOwnerName(v string) { + vArg, _ := WrapString(v) -func (self DrawList) SetFringeScale(v float32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImDrawList_Set_FringeScale(selfArg, C.float(v)) + C.wrap_ImDrawList_Set_OwnerName(selfArg, vArg) } -func (self *DrawList) FringeScale() float32 { +func (self *DrawList) OwnerName() string { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImDrawList_Get_FringeScale(selfArg)) + return C.GoString(C.wrap_ImDrawList_Get_OwnerName(selfArg)) } func (self DrawListSharedData) SetTexUvWhitePixel(v Vec2) { @@ -13658,6 +14042,21 @@ func (self *DrawListSharedData) FontSize() float32 { return float32(C.wrap_ImDrawListSharedData_GetFontSize(selfArg)) } +func (self DrawListSharedData) SetFontScale(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImDrawListSharedData_SetFontScale(selfArg, C.float(v)) +} + +func (self *DrawListSharedData) FontScale() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImDrawListSharedData_GetFontScale(selfArg)) +} + func (self DrawListSharedData) SetCurveTessellationTol(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -15256,6 +15655,237 @@ func (self *FontGlyphRangesBuilder) UsedChars() Vector[*uint32] { return NewVectorFromC(C.wrap_ImFontGlyphRangesBuilder_GetUsedChars(selfArg).Size, C.wrap_ImFontGlyphRangesBuilder_GetUsedChars(selfArg).Capacity, (*uint32)(C.wrap_ImFontGlyphRangesBuilder_GetUsedChars(selfArg).Data)) } +func (self BoxSelectState) SetID(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetID(selfArg, vArg) +} + +func (self *BoxSelectState) ID() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiBoxSelectState_GetID(selfArg); return &result }()) +} + +func (self BoxSelectState) SetIsActive(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetIsActive(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) IsActive() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetIsActive(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetIsStarting(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetIsStarting(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) IsStarting() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetIsStarting(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetIsStartedFromVoid(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetIsStartedFromVoid(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) IsStartedFromVoid() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetIsStartedFromVoid(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetIsStartedSetNavIdOnce(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetIsStartedSetNavIdOnce(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) IsStartedSetNavIdOnce() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetIsStartedSetNavIdOnce(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetRequestClear(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetRequestClear(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) RequestClear() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetRequestClear(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetKeyMods(v KeyChord) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetKeyMods(selfArg, vArg) +} + +func (self *BoxSelectState) KeyMods() KeyChord { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.wrap_ImGuiBoxSelectState_GetKeyMods(selfArg); return &result }()) +} + +func (self BoxSelectState) SetStartPosRel(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetStartPosRel(selfArg, v.toC()) +} + +func (self *BoxSelectState) StartPosRel() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiBoxSelectState_GetStartPosRel(selfArg)) +} + +func (self BoxSelectState) SetEndPosRel(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetEndPosRel(selfArg, v.toC()) +} + +func (self *BoxSelectState) EndPosRel() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiBoxSelectState_GetEndPosRel(selfArg)) +} + +func (self BoxSelectState) SetScrollAccum(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetScrollAccum(selfArg, v.toC()) +} + +func (self *BoxSelectState) ScrollAccum() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiBoxSelectState_GetScrollAccum(selfArg)) +} + +func (self BoxSelectState) SetWindow(v *Window) { + vArg, _ := v.Handle() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetWindow(selfArg, vArg) +} + +func (self *BoxSelectState) Window() *Window { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewWindowFromC(C.wrap_ImGuiBoxSelectState_GetWindow(selfArg)) +} + +func (self BoxSelectState) SetUnclipMode(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetUnclipMode(selfArg, C.bool(v)) +} + +func (self *BoxSelectState) UnclipMode() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiBoxSelectState_GetUnclipMode(selfArg) == C.bool(true) +} + +func (self BoxSelectState) SetUnclipRect(v Rect) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetUnclipRect(selfArg, v.toC()) +} + +func (self *BoxSelectState) UnclipRect() Rect { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Rect{}).fromC(C.wrap_ImGuiBoxSelectState_GetUnclipRect(selfArg)) +} + +func (self BoxSelectState) SetBoxSelectRectPrev(v Rect) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetBoxSelectRectPrev(selfArg, v.toC()) +} + +func (self *BoxSelectState) BoxSelectRectPrev() Rect { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Rect{}).fromC(C.wrap_ImGuiBoxSelectState_GetBoxSelectRectPrev(selfArg)) +} + +func (self BoxSelectState) SetBoxSelectRectCurr(v Rect) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiBoxSelectState_SetBoxSelectRectCurr(selfArg, v.toC()) +} + +func (self *BoxSelectState) BoxSelectRectCurr() Rect { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Rect{}).fromC(C.wrap_ImGuiBoxSelectState_GetBoxSelectRectCurr(selfArg)) +} + func (self ColorMod) SetCol(v Col) { selfArg, selfFin := self.Handle() defer selfFin() @@ -15534,6 +16164,36 @@ func (self *Context) FontBaseSize() float32 { return float32(C.wrap_ImGuiContext_GetFontBaseSize(selfArg)) } +func (self Context) SetFontScale(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetFontScale(selfArg, C.float(v)) +} + +func (self *Context) FontScale() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiContext_GetFontScale(selfArg)) +} + +func (self Context) SetCurrentDpiScale(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetCurrentDpiScale(selfArg, C.float(v)) +} + +func (self *Context) CurrentDpiScale() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiContext_GetCurrentDpiScale(selfArg)) +} + func (self Context) SetDrawListSharedData(v DrawListSharedData) { vArg, _ := v.C() @@ -15719,6 +16379,38 @@ func (self *Context) TestEngine() uintptr { return uintptr(C.wrap_ImGuiContext_GetTestEngine(selfArg)) } +func (self Context) SetContextName(v *[16]rune) { + vArg := make([]C.char, len(v)) + for i, vV := range v { + vArg[i] = C.char(vV) + } + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetContextName(selfArg, (*C.char)(&vArg[0])) + + for i, vV := range vArg { + (*v)[i] = rune(vV) + } +} + +func (self *Context) ContextName() [16]rune { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return func() [16]rune { + result := [16]rune{} + resultMirr := C.wrap_ImGuiContext_GetContextName(selfArg) + for i := range result { + result[i] = rune(C.cimgui_char_GetAtIdx(resultMirr, C.int(i))) + } + + return result + }() +} + func (self Context) SetInputEventsQueue(v Vector[*InputEvent]) { vData := v.Data vDataArg, _ := vData.Handle() @@ -15933,6 +16625,23 @@ func (self *Context) HoveredWindowUnderMovingWindow() *Window { return NewWindowFromC(C.wrap_ImGuiContext_GetHoveredWindowUnderMovingWindow(selfArg)) } +func (self Context) SetHoveredWindowBeforeClear(v *Window) { + vArg, _ := v.Handle() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetHoveredWindowBeforeClear(selfArg, vArg) +} + +func (self *Context) HoveredWindowBeforeClear() *Window { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewWindowFromC(C.wrap_ImGuiContext_GetHoveredWindowBeforeClear(selfArg)) +} + func (self Context) SetMovingWindow(v *Window) { vArg, _ := v.Handle() @@ -16057,6 +16766,23 @@ func (self *Context) WheelingAxisAvg() Vec2 { return *(&Vec2{}).fromC(C.wrap_ImGuiContext_GetWheelingAxisAvg(selfArg)) } +func (self Context) SetDebugDrawIdConflicts(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetDebugDrawIdConflicts(selfArg, vArg) +} + +func (self *Context) DebugDrawIdConflicts() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetDebugDrawIdConflicts(selfArg); return &result }()) +} + func (self Context) SetDebugHookIdInfo(v ID) { vArg, _ := v.C() @@ -16108,64 +16834,94 @@ func (self *Context) HoveredIdPreviousFrame() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetHoveredIdPreviousFrame(selfArg); return &result }()) } -func (self Context) SetHoveredIdAllowOverlap(v bool) { +func (self Context) SetHoveredIdPreviousFrameItemCount(v int32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetHoveredIdAllowOverlap(selfArg, C.bool(v)) + C.wrap_ImGuiContext_SetHoveredIdPreviousFrameItemCount(selfArg, C.int(v)) } -func (self *Context) HoveredIdAllowOverlap() bool { +func (self *Context) HoveredIdPreviousFrameItemCount() int32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return C.wrap_ImGuiContext_GetHoveredIdAllowOverlap(selfArg) == C.bool(true) + return int32(C.wrap_ImGuiContext_GetHoveredIdPreviousFrameItemCount(selfArg)) } -func (self Context) SetHoveredIdDisabled(v bool) { +func (self Context) SetHoveredIdTimer(v float32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetHoveredIdDisabled(selfArg, C.bool(v)) + C.wrap_ImGuiContext_SetHoveredIdTimer(selfArg, C.float(v)) } -func (self *Context) HoveredIdDisabled() bool { +func (self *Context) HoveredIdTimer() float32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return C.wrap_ImGuiContext_GetHoveredIdDisabled(selfArg) == C.bool(true) + return float32(C.wrap_ImGuiContext_GetHoveredIdTimer(selfArg)) } -func (self Context) SetHoveredIdTimer(v float32) { +func (self Context) SetHoveredIdNotActiveTimer(v float32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetHoveredIdTimer(selfArg, C.float(v)) + C.wrap_ImGuiContext_SetHoveredIdNotActiveTimer(selfArg, C.float(v)) } -func (self *Context) HoveredIdTimer() float32 { +func (self *Context) HoveredIdNotActiveTimer() float32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiContext_GetHoveredIdTimer(selfArg)) + return float32(C.wrap_ImGuiContext_GetHoveredIdNotActiveTimer(selfArg)) } -func (self Context) SetHoveredIdNotActiveTimer(v float32) { +func (self Context) SetHoveredIdAllowOverlap(v bool) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetHoveredIdNotActiveTimer(selfArg, C.float(v)) + C.wrap_ImGuiContext_SetHoveredIdAllowOverlap(selfArg, C.bool(v)) } -func (self *Context) HoveredIdNotActiveTimer() float32 { +func (self *Context) HoveredIdAllowOverlap() bool { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiContext_GetHoveredIdNotActiveTimer(selfArg)) + return C.wrap_ImGuiContext_GetHoveredIdAllowOverlap(selfArg) == C.bool(true) +} + +func (self Context) SetHoveredIdIsDisabled(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetHoveredIdIsDisabled(selfArg, C.bool(v)) +} + +func (self *Context) HoveredIdIsDisabled() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiContext_GetHoveredIdIsDisabled(selfArg) == C.bool(true) +} + +func (self Context) SetItemUnclipByLog(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetItemUnclipByLog(selfArg, C.bool(v)) +} + +func (self *Context) ItemUnclipByLog() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiContext_GetItemUnclipByLog(selfArg) == C.bool(true) } func (self Context) SetActiveId(v ID) { @@ -16911,10 +17667,10 @@ func (self *Context) BeginPopupStack() Vector[*PopupData] { return NewVectorFromC(C.wrap_ImGuiContext_GetBeginPopupStack(selfArg).Size, C.wrap_ImGuiContext_GetBeginPopupStack(selfArg).Capacity, NewPopupDataFromC(C.wrap_ImGuiContext_GetBeginPopupStack(selfArg).Data)) } -func (self Context) SetNavTreeNodeStack(v Vector[*NavTreeNodeData]) { +func (self Context) SetTreeNodeStack(v Vector[*TreeNodeStackData]) { vData := v.Data vDataArg, _ := vData.Handle() - vVecArg := new(C.ImVector_ImGuiNavTreeNodeData) + vVecArg := new(C.ImVector_ImGuiTreeNodeStackData) vVecArg.Size = C.int(v.Size) vVecArg.Capacity = C.int(v.Capacity) vVecArg.Data = vDataArg @@ -16922,31 +17678,16 @@ func (self Context) SetNavTreeNodeStack(v Vector[*NavTreeNodeData]) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetNavTreeNodeStack(selfArg, *vVecArg) -} - -func (self *Context) NavTreeNodeStack() Vector[*NavTreeNodeData] { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return NewVectorFromC(C.wrap_ImGuiContext_GetNavTreeNodeStack(selfArg).Size, C.wrap_ImGuiContext_GetNavTreeNodeStack(selfArg).Capacity, NewNavTreeNodeDataFromC(C.wrap_ImGuiContext_GetNavTreeNodeStack(selfArg).Data)) -} - -func (self Context) SetCurrentDpiScale(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiContext_SetCurrentDpiScale(selfArg, C.float(v)) + C.wrap_ImGuiContext_SetTreeNodeStack(selfArg, *vVecArg) } -func (self *Context) CurrentDpiScale() float32 { +func (self *Context) TreeNodeStack() Vector[*TreeNodeStackData] { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiContext_GetCurrentDpiScale(selfArg)) + return NewVectorFromC(C.wrap_ImGuiContext_GetTreeNodeStack(selfArg).Size, C.wrap_ImGuiContext_GetTreeNodeStack(selfArg).Capacity, NewTreeNodeStackDataFromC(C.wrap_ImGuiContext_GetTreeNodeStack(selfArg).Data)) } func (self Context) SetCurrentViewport(v *ViewportP) { @@ -17151,27 +17892,19 @@ func (self *Context) NavFocusScopeId() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetNavFocusScopeId(selfArg); return &result }()) } -func (self Context) SetNavFocusRoute(v Vector[*FocusScopeData]) { - vData := v.Data - vDataArg, _ := vData.Handle() - vVecArg := new(C.ImVector_ImGuiFocusScopeData) - vVecArg.Size = C.int(v.Size) - vVecArg.Capacity = C.int(v.Capacity) - vVecArg.Data = vDataArg - v.pinner.Pin(vVecArg.Data) - +func (self Context) SetNavLayer(v NavLayer) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetNavFocusRoute(selfArg, *vVecArg) + C.wrap_ImGuiContext_SetNavLayer(selfArg, C.ImGuiNavLayer(v)) } -func (self *Context) NavFocusRoute() Vector[*FocusScopeData] { +func (self *Context) NavLayer() NavLayer { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return NewVectorFromC(C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Size, C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Capacity, NewFocusScopeDataFromC(C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Data)) + return NavLayer(C.wrap_ImGuiContext_GetNavLayer(selfArg)) } func (self Context) SetNavActivateId(v ID) { @@ -17240,93 +17973,59 @@ func (self *Context) NavActivateFlags() ActivateFlags { return ActivateFlags(C.wrap_ImGuiContext_GetNavActivateFlags(selfArg)) } -func (self Context) SetNavHighlightActivatedId(v ID) { - vArg, _ := v.C() - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiContext_SetNavHighlightActivatedId(selfArg, vArg) -} - -func (self *Context) NavHighlightActivatedId() ID { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetNavHighlightActivatedId(selfArg); return &result }()) -} - -func (self Context) SetNavHighlightActivatedTimer(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiContext_SetNavHighlightActivatedTimer(selfArg, C.float(v)) -} - -func (self *Context) NavHighlightActivatedTimer() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_ImGuiContext_GetNavHighlightActivatedTimer(selfArg)) -} - -func (self Context) SetNavJustMovedToId(v ID) { - vArg, _ := v.C() +func (self Context) SetNavFocusRoute(v Vector[*FocusScopeData]) { + vData := v.Data + vDataArg, _ := vData.Handle() + vVecArg := new(C.ImVector_ImGuiFocusScopeData) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetNavJustMovedToId(selfArg, vArg) + C.wrap_ImGuiContext_SetNavFocusRoute(selfArg, *vVecArg) } -func (self *Context) NavJustMovedToId() ID { +func (self *Context) NavFocusRoute() Vector[*FocusScopeData] { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetNavJustMovedToId(selfArg); return &result }()) + return NewVectorFromC(C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Size, C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Capacity, NewFocusScopeDataFromC(C.wrap_ImGuiContext_GetNavFocusRoute(selfArg).Data)) } -func (self Context) SetNavJustMovedToFocusScopeId(v ID) { +func (self Context) SetNavHighlightActivatedId(v ID) { vArg, _ := v.C() selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(selfArg, vArg) + C.wrap_ImGuiContext_SetNavHighlightActivatedId(selfArg, vArg) } -func (self *Context) NavJustMovedToFocusScopeId() ID { +func (self *Context) NavHighlightActivatedId() ID { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewIDFromC(func() *C.ImGuiID { - result := C.wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(selfArg) - return &result - }()) + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetNavHighlightActivatedId(selfArg); return &result }()) } -func (self Context) SetNavJustMovedToKeyMods(v KeyChord) { - vArg, _ := v.C() - +func (self Context) SetNavHighlightActivatedTimer(v float32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiContext_SetNavJustMovedToKeyMods(selfArg, vArg) + C.wrap_ImGuiContext_SetNavHighlightActivatedTimer(selfArg, C.float(v)) } -func (self *Context) NavJustMovedToKeyMods() KeyChord { +func (self *Context) NavHighlightActivatedTimer() float32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewKeyChordFromC(func() *C.ImGuiKeyChord { - result := C.wrap_ImGuiContext_GetNavJustMovedToKeyMods(selfArg) - return &result - }()) + return float32(C.wrap_ImGuiContext_GetNavHighlightActivatedTimer(selfArg)) } func (self Context) SetNavNextActivateId(v ID) { @@ -17376,21 +18075,6 @@ func (self *Context) NavInputSource() InputSource { return InputSource(C.wrap_ImGuiContext_GetNavInputSource(selfArg)) } -func (self Context) SetNavLayer(v NavLayer) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiContext_SetNavLayer(selfArg, C.ImGuiNavLayer(v)) -} - -func (self *Context) NavLayer() NavLayer { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return NavLayer(C.wrap_ImGuiContext_GetNavLayer(selfArg)) -} - func (self Context) SetNavIdIsAlive(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -17805,6 +18489,113 @@ func (self *Context) NavTabbingResultFirst() NavItemData { }()) } +func (self Context) SetNavJustMovedFromFocusScopeId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedFromFocusScopeId(selfArg, vArg) +} + +func (self *Context) NavJustMovedFromFocusScopeId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { + result := C.wrap_ImGuiContext_GetNavJustMovedFromFocusScopeId(selfArg) + return &result + }()) +} + +func (self Context) SetNavJustMovedToId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedToId(selfArg, vArg) +} + +func (self *Context) NavJustMovedToId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetNavJustMovedToId(selfArg); return &result }()) +} + +func (self Context) SetNavJustMovedToFocusScopeId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(selfArg, vArg) +} + +func (self *Context) NavJustMovedToFocusScopeId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { + result := C.wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(selfArg) + return &result + }()) +} + +func (self Context) SetNavJustMovedToKeyMods(v KeyChord) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedToKeyMods(selfArg, vArg) +} + +func (self *Context) NavJustMovedToKeyMods() KeyChord { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewKeyChordFromC(func() *C.ImGuiKeyChord { + result := C.wrap_ImGuiContext_GetNavJustMovedToKeyMods(selfArg) + return &result + }()) +} + +func (self Context) SetNavJustMovedToIsTabbing(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedToIsTabbing(selfArg, C.bool(v)) +} + +func (self *Context) NavJustMovedToIsTabbing() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiContext_GetNavJustMovedToIsTabbing(selfArg) == C.bool(true) +} + +func (self Context) SetNavJustMovedToHasSelectionData(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetNavJustMovedToHasSelectionData(selfArg, C.bool(v)) +} + +func (self *Context) NavJustMovedToHasSelectionData() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiContext_GetNavJustMovedToHasSelectionData(selfArg) == C.bool(true) +} + func (self Context) SetConfigNavWindowingKeyNext(v KeyChord) { vArg, _ := v.C() @@ -18502,6 +19293,81 @@ func (self *Context) ShrinkWidthBuffer() Vector[*ShrinkWidthItem] { return NewVectorFromC(C.wrap_ImGuiContext_GetShrinkWidthBuffer(selfArg).Size, C.wrap_ImGuiContext_GetShrinkWidthBuffer(selfArg).Capacity, NewShrinkWidthItemFromC(C.wrap_ImGuiContext_GetShrinkWidthBuffer(selfArg).Data)) } +func (self Context) SetBoxSelectState(v BoxSelectState) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetBoxSelectState(selfArg, vArg) +} + +func (self *Context) BoxSelectState() BoxSelectState { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewBoxSelectStateFromC(func() *C.ImGuiBoxSelectState { + result := C.wrap_ImGuiContext_GetBoxSelectState(selfArg) + return &result + }()) +} + +func (self Context) SetCurrentMultiSelect(v *MultiSelectTempData) { + vArg, _ := v.Handle() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetCurrentMultiSelect(selfArg, vArg) +} + +func (self *Context) CurrentMultiSelect() *MultiSelectTempData { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewMultiSelectTempDataFromC(C.wrap_ImGuiContext_GetCurrentMultiSelect(selfArg)) +} + +func (self Context) SetMultiSelectTempDataStacked(v int32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetMultiSelectTempDataStacked(selfArg, C.int(v)) +} + +func (self *Context) MultiSelectTempDataStacked() int32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int32(C.wrap_ImGuiContext_GetMultiSelectTempDataStacked(selfArg)) +} + +func (self Context) SetMultiSelectTempData(v Vector[*MultiSelectTempData]) { + vData := v.Data + vDataArg, _ := vData.Handle() + vVecArg := new(C.ImVector_ImGuiMultiSelectTempData) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetMultiSelectTempData(selfArg, *vVecArg) +} + +func (self *Context) MultiSelectTempData() Vector[*MultiSelectTempData] { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewVectorFromC(C.wrap_ImGuiContext_GetMultiSelectTempData(selfArg).Size, C.wrap_ImGuiContext_GetMultiSelectTempData(selfArg).Capacity, NewMultiSelectTempDataFromC(C.wrap_ImGuiContext_GetMultiSelectTempData(selfArg).Data)) +} + func (self Context) SetHoverItemDelayId(v ID) { vArg, _ := v.C() @@ -18728,6 +19594,26 @@ func (self *Context) TempInputId() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetTempInputId(selfArg); return &result }()) } +func (self Context) SetDataTypeZeroValue(v DataTypeStorage) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetDataTypeZeroValue(selfArg, vArg) +} + +func (self *Context) DataTypeZeroValue() DataTypeStorage { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewDataTypeStorageFromC(func() *C.ImGuiDataTypeStorage { + result := C.wrap_ImGuiContext_GetDataTypeZeroValue(selfArg) + return &result + }()) +} + func (self Context) SetBeginMenuDepth(v int32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -18917,6 +19803,36 @@ func (self *Context) WindowResizeRelativeMode() bool { return C.wrap_ImGuiContext_GetWindowResizeRelativeMode(selfArg) == C.bool(true) } +func (self Context) SetScrollbarSeekMode(v int16) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetScrollbarSeekMode(selfArg, C.short(v)) +} + +func (self *Context) ScrollbarSeekMode() int16 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int16(C.wrap_ImGuiContext_GetScrollbarSeekMode(selfArg)) +} + +func (self Context) SetScrollbarClickDeltaToGrabCenter(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(selfArg, C.float(v)) +} + +func (self *Context) ScrollbarClickDeltaToGrabCenter() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(selfArg)) +} + func (self Context) SetSliderGrabClickOffset(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -19007,21 +19923,6 @@ func (self *Context) DragSpeedDefaultRatio() float32 { return float32(C.wrap_ImGuiContext_GetDragSpeedDefaultRatio(selfArg)) } -func (self Context) SetScrollbarClickDeltaToGrabCenter(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(selfArg, C.float(v)) -} - -func (self *Context) ScrollbarClickDeltaToGrabCenter() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(selfArg)) -} - func (self Context) SetDisabledAlphaBackup(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -19332,7 +20233,7 @@ func (self *Context) HookIdNext() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiContext_GetHookIdNext(selfArg); return &result }()) } -func (self Context) SetLocalizationTable(v *[11]string) { +func (self Context) SetLocalizationTable(v *[13]string) { vArg := make([]*C.char, len(v)) for i, vV := range v { vVArg, _ := WrapString(vV) @@ -19348,14 +20249,14 @@ func (self Context) SetLocalizationTable(v *[11]string) { } } -func (self *Context) LocalizationTable() [11]string { +func (self *Context) LocalizationTable() [13]string { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return func() [11]string { - result := [11]string{} + return func() [13]string { + result := [13]string{} resultMirr := C.wrap_ImGuiContext_GetLocalizationTable(selfArg) for i := range result { result[i] = C.GoString(C.cimgui_const_charPtr_GetAtIdx(resultMirr, C.int(i))) @@ -20120,7 +21021,7 @@ func (self *DataTypeInfo) ScanFmt() string { return C.GoString(C.wrap_ImGuiDataTypeInfo_GetScanFmt(selfArg)) } -func (self DataTypeTempStorage) SetData(v *[8]byte) { +func (self DataTypeStorage) SetData(v *[8]byte) { vArg := make([]C.ImU8, len(v)) for i, vV := range v { vArg[i] = C.ImU8(vV) @@ -20128,14 +21029,14 @@ func (self DataTypeTempStorage) SetData(v *[8]byte) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiDataTypeTempStorage_SetData(selfArg, (*C.ImU8)(&vArg[0])) + C.wrap_ImGuiDataTypeStorage_SetData(selfArg, (*C.ImU8)(&vArg[0])) for i, vV := range vArg { (*v)[i] = byte(vV) } } -func (self *DataTypeTempStorage) Data() [8]byte { +func (self *DataTypeStorage) Data() [8]byte { selfArg, selfFin := self.Handle() defer func() { @@ -20143,7 +21044,7 @@ func (self *DataTypeTempStorage) Data() [8]byte { }() return func() [8]byte { result := [8]byte{} - resultMirr := C.wrap_ImGuiDataTypeTempStorage_GetData(selfArg) + resultMirr := C.wrap_ImGuiDataTypeStorage_GetData(selfArg) for i := range result { result[i] = byte(C.cimgui_ImU8_GetAtIdx(resultMirr, C.int(i))) } @@ -21733,6 +22634,21 @@ func (self *IO) ConfigMacOSXBehaviors() bool { return C.wrap_ImGuiIO_GetConfigMacOSXBehaviors(selfArg) == C.bool(true) } +func (self IO) SetConfigNavSwapGamepadButtons(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiIO_SetConfigNavSwapGamepadButtons(selfArg, C.bool(v)) +} + +func (self *IO) ConfigNavSwapGamepadButtons() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiIO_GetConfigNavSwapGamepadButtons(selfArg) == C.bool(true) +} + func (self IO) SetConfigInputTrickleEventQueue(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -21928,6 +22844,21 @@ func (self *IO) ConfigDebugIsDebuggerPresent() bool { return C.wrap_ImGuiIO_GetConfigDebugIsDebuggerPresent(selfArg) == C.bool(true) } +func (self IO) SetConfigDebugHighlightIdConflicts(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiIO_SetConfigDebugHighlightIdConflicts(selfArg, C.bool(v)) +} + +func (self *IO) ConfigDebugHighlightIdConflicts() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiIO_GetConfigDebugHighlightIdConflicts(selfArg) == C.bool(true) +} + func (self IO) SetConfigDebugBeginReturnValueOnce(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -22067,36 +22998,6 @@ func (self *IO) BackendLanguageUserData() uintptr { return uintptr(C.wrap_ImGuiIO_GetBackendLanguageUserData(selfArg)) } -func (self IO) SetClipboardUserData(v uintptr) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiIO_SetClipboardUserData(selfArg, C.uintptr_t(v)) -} - -func (self *IO) ClipboardUserData() uintptr { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uintptr(C.wrap_ImGuiIO_GetClipboardUserData(selfArg)) -} - -func (self IO) SetPlatformLocaleDecimalPoint(v Wchar) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiIO_SetPlatformLocaleDecimalPoint(selfArg, C.ImWchar(v)) -} - -func (self *IO) PlatformLocaleDecimalPoint() Wchar { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return Wchar(C.wrap_ImGuiIO_GetPlatformLocaleDecimalPoint(selfArg)) -} - func (self IO) SetWantCaptureMouse(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -22861,6 +23762,21 @@ func (self *IO) MouseWheelRequestAxisSwap() bool { return C.wrap_ImGuiIO_GetMouseWheelRequestAxisSwap(selfArg) == C.bool(true) } +func (self IO) SetMouseCtrlLeftAsRightClick(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiIO_SetMouseCtrlLeftAsRightClick(selfArg, C.bool(v)) +} + +func (self *IO) MouseCtrlLeftAsRightClick() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiIO_GetMouseCtrlLeftAsRightClick(selfArg) == C.bool(true) +} + func (self IO) SetMouseDownDuration(v *[5]float32) { vArg := make([]C.float, len(v)) for i, vV := range v { @@ -23650,21 +24566,6 @@ func (self *InputTextState) ID() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiInputTextState_GetID(selfArg); return &result }()) } -func (self InputTextState) SetCurLenW(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiInputTextState_SetCurLenW(selfArg, C.int(v)) -} - -func (self *InputTextState) CurLenW() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_ImGuiInputTextState_GetCurLenW(selfArg)) -} - func (self InputTextState) SetCurLenA(v int32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -23680,29 +24581,6 @@ func (self *InputTextState) CurLenA() int32 { return int32(C.wrap_ImGuiInputTextState_GetCurLenA(selfArg)) } -func (self InputTextState) SetTextW(v Vector[(*Wchar)]) { - vData := v.Data - - vVecArg := new(C.ImVector_ImWchar) - vVecArg.Size = C.int(v.Size) - vVecArg.Capacity = C.int(v.Capacity) - vVecArg.Data = (*C.ImWchar)(vData) - v.pinner.Pin(vVecArg.Data) - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiInputTextState_SetTextW(selfArg, *vVecArg) -} - -func (self *InputTextState) TextW() Vector[(*Wchar)] { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return NewVectorFromC(C.wrap_ImGuiInputTextState_GetTextW(selfArg).Size, C.wrap_ImGuiInputTextState_GetTextW(selfArg).Capacity, (*Wchar)(C.wrap_ImGuiInputTextState_GetTextW(selfArg).Data)) -} - func (self InputTextState) SetTextA(v Vector[string]) { vData := v.Data vDataArg, _ := WrapString(vData) @@ -23749,19 +24627,27 @@ func (self *InputTextState) InitialTextA() Vector[string] { return NewVectorFromC(C.wrap_ImGuiInputTextState_GetInitialTextA(selfArg).Size, C.wrap_ImGuiInputTextState_GetInitialTextA(selfArg).Capacity, C.GoString(C.wrap_ImGuiInputTextState_GetInitialTextA(selfArg).Data)) } -func (self InputTextState) SetTextAIsValid(v bool) { +func (self InputTextState) SetCallbackTextBackup(v Vector[string]) { + vData := v.Data + vDataArg, _ := WrapString(vData) + vVecArg := new(C.ImVector_char) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) + selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiInputTextState_SetTextAIsValid(selfArg, C.bool(v)) + C.wrap_ImGuiInputTextState_SetCallbackTextBackup(selfArg, *vVecArg) } -func (self *InputTextState) TextAIsValid() bool { +func (self *InputTextState) CallbackTextBackup() Vector[string] { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return C.wrap_ImGuiInputTextState_GetTextAIsValid(selfArg) == C.bool(true) + return NewVectorFromC(C.wrap_ImGuiInputTextState_GetCallbackTextBackup(selfArg).Size, C.wrap_ImGuiInputTextState_GetCallbackTextBackup(selfArg).Capacity, C.GoString(C.wrap_ImGuiInputTextState_GetCallbackTextBackup(selfArg).Data)) } func (self InputTextState) SetBufCapacityA(v int32) { @@ -23779,36 +24665,19 @@ func (self *InputTextState) BufCapacityA() int32 { return int32(C.wrap_ImGuiInputTextState_GetBufCapacityA(selfArg)) } -func (self InputTextState) SetScrollX(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiInputTextState_SetScrollX(selfArg, C.float(v)) -} - -func (self *InputTextState) ScrollX() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_ImGuiInputTextState_GetScrollX(selfArg)) -} - -func (self InputTextState) SetStb(v STBTexteditState) { - vArg, _ := v.C() - +func (self InputTextState) SetScroll(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiInputTextState_SetStb(selfArg, vArg) + C.wrap_ImGuiInputTextState_SetScroll(selfArg, v.toC()) } -func (self *InputTextState) Stb() STBTexteditState { +func (self *InputTextState) Scroll() Vec2 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewSTBTexteditStateFromC(func() *C.STB_TexteditState { result := C.wrap_ImGuiInputTextState_GetStb(selfArg); return &result }()) + return *(&Vec2{}).fromC(C.wrap_ImGuiInputTextState_GetScroll(selfArg)) } func (self InputTextState) SetCursorAnim(v float32) { @@ -24287,6 +25156,23 @@ func (self *LastItemData) ClipRect() Rect { return *(&Rect{}).fromC(C.wrap_ImGuiLastItemData_GetClipRect(selfArg)) } +func (self LastItemData) SetShortcut(v KeyChord) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiLastItemData_SetShortcut(selfArg, vArg) +} + +func (self *LastItemData) Shortcut() KeyChord { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.wrap_ImGuiLastItemData_GetShortcut(selfArg); return &result }()) +} + func (self ListClipper) SetCtx(v *Context) { vArg, _ := v.Handle() @@ -24379,6 +25265,21 @@ func (self *ListClipper) StartPosY() float32 { return float32(C.wrap_ImGuiListClipper_GetStartPosY(selfArg)) } +func (self ListClipper) SetStartSeekOffsetY(v float64) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiListClipper_SetStartSeekOffsetY(selfArg, C.double(v)) +} + +func (self *ListClipper) StartSeekOffsetY() float64 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float64(C.wrap_ImGuiListClipper_GetStartSeekOffsetY(selfArg)) +} + func (self ListClipper) SetTempData(v uintptr) { selfArg, selfFin := self.Handle() defer selfFin() @@ -24935,177 +25836,527 @@ func (self *MetricsConfig) HighlightViewportID() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiMetricsConfig_GetHighlightViewportID(selfArg); return &result }()) } -func (self NavItemData) SetWindow(v *Window) { - vArg, _ := v.Handle() +func (self MultiSelectIO) SetRequests(v Vector[*SelectionRequest]) { + vData := v.Data + vDataArg, _ := vData.Handle() + vVecArg := new(C.ImVector_ImGuiSelectionRequest) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetWindow(selfArg, vArg) + C.wrap_ImGuiMultiSelectIO_SetRequests(selfArg, *vVecArg) } -func (self *NavItemData) Window() *Window { +func (self *MultiSelectIO) Requests() Vector[*SelectionRequest] { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return NewWindowFromC(C.wrap_ImGuiNavItemData_GetWindow(selfArg)) + return NewVectorFromC(C.wrap_ImGuiMultiSelectIO_GetRequests(selfArg).Size, C.wrap_ImGuiMultiSelectIO_GetRequests(selfArg).Capacity, NewSelectionRequestFromC(C.wrap_ImGuiMultiSelectIO_GetRequests(selfArg).Data)) } -func (self NavItemData) SetID(v ID) { - vArg, _ := v.C() - +func (self MultiSelectIO) SetNavIdSelected(v bool) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetID(selfArg, vArg) + C.wrap_ImGuiMultiSelectIO_SetNavIdSelected(selfArg, C.bool(v)) } -func (self *NavItemData) ID() ID { +func (self *MultiSelectIO) NavIdSelected() bool { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNavItemData_GetID(selfArg); return &result }()) + return C.wrap_ImGuiMultiSelectIO_GetNavIdSelected(selfArg) == C.bool(true) } -func (self NavItemData) SetFocusScopeId(v ID) { - vArg, _ := v.C() - +func (self MultiSelectIO) SetRangeSrcReset(v bool) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetFocusScopeId(selfArg, vArg) + C.wrap_ImGuiMultiSelectIO_SetRangeSrcReset(selfArg, C.bool(v)) } -func (self *NavItemData) FocusScopeId() ID { +func (self *MultiSelectIO) RangeSrcReset() bool { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNavItemData_GetFocusScopeId(selfArg); return &result }()) + return C.wrap_ImGuiMultiSelectIO_GetRangeSrcReset(selfArg) == C.bool(true) } -func (self NavItemData) SetRectRel(v Rect) { +func (self MultiSelectIO) SetItemsCount(v int32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetRectRel(selfArg, v.toC()) + C.wrap_ImGuiMultiSelectIO_SetItemsCount(selfArg, C.int(v)) } -func (self *NavItemData) RectRel() Rect { +func (self *MultiSelectIO) ItemsCount() int32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Rect{}).fromC(C.wrap_ImGuiNavItemData_GetRectRel(selfArg)) + return int32(C.wrap_ImGuiMultiSelectIO_GetItemsCount(selfArg)) } -func (self NavItemData) SetInFlags(v ItemFlags) { +func (self MultiSelectState) SetWindow(v *Window) { + vArg, _ := v.Handle() + selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetInFlags(selfArg, C.ImGuiItemFlags(v)) + C.wrap_ImGuiMultiSelectState_SetWindow(selfArg, vArg) } -func (self *NavItemData) InFlags() ItemFlags { +func (self *MultiSelectState) Window() *Window { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return ItemFlags(C.wrap_ImGuiNavItemData_GetInFlags(selfArg)) + return NewWindowFromC(C.wrap_ImGuiMultiSelectState_GetWindow(selfArg)) } -func (self NavItemData) SetDistBox(v float32) { +func (self MultiSelectState) SetID(v ID) { + vArg, _ := v.C() + selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetDistBox(selfArg, C.float(v)) + C.wrap_ImGuiMultiSelectState_SetID(selfArg, vArg) } -func (self *NavItemData) DistBox() float32 { +func (self *MultiSelectState) ID() ID { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiNavItemData_GetDistBox(selfArg)) + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiMultiSelectState_GetID(selfArg); return &result }()) } -func (self NavItemData) SetDistCenter(v float32) { +func (self MultiSelectState) SetLastFrameActive(v int32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetDistCenter(selfArg, C.float(v)) + C.wrap_ImGuiMultiSelectState_SetLastFrameActive(selfArg, C.int(v)) } -func (self *NavItemData) DistCenter() float32 { +func (self *MultiSelectState) LastFrameActive() int32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiNavItemData_GetDistCenter(selfArg)) + return int32(C.wrap_ImGuiMultiSelectState_GetLastFrameActive(selfArg)) } -func (self NavItemData) SetDistAxial(v float32) { +func (self MultiSelectState) SetLastSelectionSize(v int32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavItemData_SetDistAxial(selfArg, C.float(v)) + C.wrap_ImGuiMultiSelectState_SetLastSelectionSize(selfArg, C.int(v)) } -func (self *NavItemData) DistAxial() float32 { +func (self *MultiSelectState) LastSelectionSize() int32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return float32(C.wrap_ImGuiNavItemData_GetDistAxial(selfArg)) + return int32(C.wrap_ImGuiMultiSelectState_GetLastSelectionSize(selfArg)) } -func (self NavTreeNodeData) SetID(v ID) { - vArg, _ := v.C() - +func (self MultiSelectState) SetRangeSelected(v int) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavTreeNodeData_SetID(selfArg, vArg) + C.wrap_ImGuiMultiSelectState_SetRangeSelected(selfArg, C.ImS8(v)) } -func (self *NavTreeNodeData) ID() ID { +func (self *MultiSelectState) RangeSelected() int { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNavTreeNodeData_GetID(selfArg); return &result }()) + return int(C.wrap_ImGuiMultiSelectState_GetRangeSelected(selfArg)) } -func (self NavTreeNodeData) SetInFlags(v ItemFlags) { +func (self MultiSelectState) SetNavIdSelected(v int) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavTreeNodeData_SetInFlags(selfArg, C.ImGuiItemFlags(v)) + C.wrap_ImGuiMultiSelectState_SetNavIdSelected(selfArg, C.ImS8(v)) } -func (self *NavTreeNodeData) InFlags() ItemFlags { +func (self *MultiSelectState) NavIdSelected() int { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return ItemFlags(C.wrap_ImGuiNavTreeNodeData_GetInFlags(selfArg)) + return int(C.wrap_ImGuiMultiSelectState_GetNavIdSelected(selfArg)) } -func (self NavTreeNodeData) SetNavRect(v Rect) { +func (self MultiSelectTempData) SetIO(v MultiSelectIO) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetIO(selfArg, vArg) +} + +func (self *MultiSelectTempData) IO() MultiSelectIO { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewMultiSelectIOFromC(func() *C.ImGuiMultiSelectIO { result := C.wrap_ImGuiMultiSelectTempData_GetIO(selfArg); return &result }()) +} + +func (self MultiSelectTempData) SetStorage(v *MultiSelectState) { + vArg, _ := v.Handle() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetStorage(selfArg, vArg) +} + +func (self *MultiSelectTempData) Storage() *MultiSelectState { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewMultiSelectStateFromC(C.wrap_ImGuiMultiSelectTempData_GetStorage(selfArg)) +} + +func (self MultiSelectTempData) SetFocusScopeId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetFocusScopeId(selfArg, vArg) +} + +func (self *MultiSelectTempData) FocusScopeId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiMultiSelectTempData_GetFocusScopeId(selfArg); return &result }()) +} + +func (self MultiSelectTempData) SetFlags(v MultiSelectFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetFlags(selfArg, C.ImGuiMultiSelectFlags(v)) +} + +func (self *MultiSelectTempData) Flags() MultiSelectFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return MultiSelectFlags(C.wrap_ImGuiMultiSelectTempData_GetFlags(selfArg)) +} + +func (self MultiSelectTempData) SetScopeRectMin(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetScopeRectMin(selfArg, v.toC()) +} + +func (self *MultiSelectTempData) ScopeRectMin() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiMultiSelectTempData_GetScopeRectMin(selfArg)) +} + +func (self MultiSelectTempData) SetBackupCursorMaxPos(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetBackupCursorMaxPos(selfArg, v.toC()) +} + +func (self *MultiSelectTempData) BackupCursorMaxPos() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiMultiSelectTempData_GetBackupCursorMaxPos(selfArg)) +} + +func (self MultiSelectTempData) SetBoxSelectId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetBoxSelectId(selfArg, vArg) +} + +func (self *MultiSelectTempData) BoxSelectId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiMultiSelectTempData_GetBoxSelectId(selfArg); return &result }()) +} + +func (self MultiSelectTempData) SetKeyMods(v KeyChord) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetKeyMods(selfArg, vArg) +} + +func (self *MultiSelectTempData) KeyMods() KeyChord { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.wrap_ImGuiMultiSelectTempData_GetKeyMods(selfArg); return &result }()) +} + +func (self MultiSelectTempData) SetLoopRequestSetAll(v int) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetLoopRequestSetAll(selfArg, C.ImS8(v)) +} + +func (self *MultiSelectTempData) LoopRequestSetAll() int { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int(C.wrap_ImGuiMultiSelectTempData_GetLoopRequestSetAll(selfArg)) +} + +func (self MultiSelectTempData) SetIsEndIO(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetIsEndIO(selfArg, C.bool(v)) +} + +func (self *MultiSelectTempData) IsEndIO() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiMultiSelectTempData_GetIsEndIO(selfArg) == C.bool(true) +} + +func (self MultiSelectTempData) SetIsFocused(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetIsFocused(selfArg, C.bool(v)) +} + +func (self *MultiSelectTempData) IsFocused() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiMultiSelectTempData_GetIsFocused(selfArg) == C.bool(true) +} + +func (self MultiSelectTempData) SetIsKeyboardSetRange(v bool) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNavTreeNodeData_SetNavRect(selfArg, v.toC()) + C.wrap_ImGuiMultiSelectTempData_SetIsKeyboardSetRange(selfArg, C.bool(v)) } -func (self *NavTreeNodeData) NavRect() Rect { +func (self *MultiSelectTempData) IsKeyboardSetRange() bool { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Rect{}).fromC(C.wrap_ImGuiNavTreeNodeData_GetNavRect(selfArg)) + return C.wrap_ImGuiMultiSelectTempData_GetIsKeyboardSetRange(selfArg) == C.bool(true) +} + +func (self MultiSelectTempData) SetNavIdPassedBy(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetNavIdPassedBy(selfArg, C.bool(v)) +} + +func (self *MultiSelectTempData) NavIdPassedBy() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiMultiSelectTempData_GetNavIdPassedBy(selfArg) == C.bool(true) +} + +func (self MultiSelectTempData) SetRangeSrcPassedBy(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetRangeSrcPassedBy(selfArg, C.bool(v)) +} + +func (self *MultiSelectTempData) RangeSrcPassedBy() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiMultiSelectTempData_GetRangeSrcPassedBy(selfArg) == C.bool(true) +} + +func (self MultiSelectTempData) SetRangeDstPassedBy(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiMultiSelectTempData_SetRangeDstPassedBy(selfArg, C.bool(v)) +} + +func (self *MultiSelectTempData) RangeDstPassedBy() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiMultiSelectTempData_GetRangeDstPassedBy(selfArg) == C.bool(true) +} + +func (self NavItemData) SetWindow(v *Window) { + vArg, _ := v.Handle() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetWindow(selfArg, vArg) +} + +func (self *NavItemData) Window() *Window { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewWindowFromC(C.wrap_ImGuiNavItemData_GetWindow(selfArg)) +} + +func (self NavItemData) SetID(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetID(selfArg, vArg) +} + +func (self *NavItemData) ID() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNavItemData_GetID(selfArg); return &result }()) +} + +func (self NavItemData) SetFocusScopeId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetFocusScopeId(selfArg, vArg) +} + +func (self *NavItemData) FocusScopeId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNavItemData_GetFocusScopeId(selfArg); return &result }()) +} + +func (self NavItemData) SetRectRel(v Rect) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetRectRel(selfArg, v.toC()) +} + +func (self *NavItemData) RectRel() Rect { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Rect{}).fromC(C.wrap_ImGuiNavItemData_GetRectRel(selfArg)) +} + +func (self NavItemData) SetInFlags(v ItemFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetInFlags(selfArg, C.ImGuiItemFlags(v)) +} + +func (self *NavItemData) InFlags() ItemFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return ItemFlags(C.wrap_ImGuiNavItemData_GetInFlags(selfArg)) +} + +func (self NavItemData) SetDistBox(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetDistBox(selfArg, C.float(v)) +} + +func (self *NavItemData) DistBox() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiNavItemData_GetDistBox(selfArg)) +} + +func (self NavItemData) SetDistCenter(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetDistCenter(selfArg, C.float(v)) +} + +func (self *NavItemData) DistCenter() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiNavItemData_GetDistCenter(selfArg)) +} + +func (self NavItemData) SetDistAxial(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNavItemData_SetDistAxial(selfArg, C.float(v)) +} + +func (self *NavItemData) DistAxial() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiNavItemData_GetDistAxial(selfArg)) } func (self NextItemData) SetFlags(v NextItemDataFlags) { @@ -25138,6 +26389,23 @@ func (self *NextItemData) ItemFlags() ItemFlags { return ItemFlags(C.wrap_ImGuiNextItemData_GetItemFlags(selfArg)) } +func (self NextItemData) SetFocusScopeId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNextItemData_SetFocusScopeId(selfArg, vArg) +} + +func (self *NextItemData) FocusScopeId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNextItemData_GetFocusScopeId(selfArg); return &result }()) +} + func (self NextItemData) SetWidth(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -25170,6 +26438,21 @@ func (self *NextItemData) Shortcut() KeyChord { return *NewKeyChordFromC(func() *C.ImGuiKeyChord { result := C.wrap_ImGuiNextItemData_GetShortcut(selfArg); return &result }()) } +func (self NextItemData) SetShortcutFlags(v InputFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNextItemData_SetShortcutFlags(selfArg, C.ImGuiInputFlags(v)) +} + +func (self *NextItemData) ShortcutFlags() InputFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return InputFlags(C.wrap_ImGuiNextItemData_GetShortcutFlags(selfArg)) +} + func (self NextItemData) SetOpenVal(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -25185,19 +26468,53 @@ func (self *NextItemData) OpenVal() bool { return C.wrap_ImGuiNextItemData_GetOpenVal(selfArg) == C.bool(true) } -func (self NextItemData) SetOpenCond(v Cond) { +func (self NextItemData) SetOpenCond(v byte) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiNextItemData_SetOpenCond(selfArg, C.ImGuiCond(v)) + C.wrap_ImGuiNextItemData_SetOpenCond(selfArg, C.ImU8(v)) } -func (self *NextItemData) OpenCond() Cond { +func (self *NextItemData) OpenCond() byte { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return Cond(C.wrap_ImGuiNextItemData_GetOpenCond(selfArg)) + return byte(C.wrap_ImGuiNextItemData_GetOpenCond(selfArg)) +} + +func (self NextItemData) SetRefVal(v DataTypeStorage) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNextItemData_SetRefVal(selfArg, vArg) +} + +func (self *NextItemData) RefVal() DataTypeStorage { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewDataTypeStorageFromC(func() *C.ImGuiDataTypeStorage { result := C.wrap_ImGuiNextItemData_GetRefVal(selfArg); return &result }()) +} + +func (self NextItemData) SetStorageId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNextItemData_SetStorageId(selfArg, vArg) +} + +func (self *NextItemData) StorageId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiNextItemData_GetStorageId(selfArg); return &result }()) } func (self NextWindowData) SetFlags(v NextWindowDataFlags) { @@ -25509,6 +26826,21 @@ func (self *NextWindowData) MenuBarOffsetMinVal() Vec2 { return *(&Vec2{}).fromC(C.wrap_ImGuiNextWindowData_GetMenuBarOffsetMinVal(selfArg)) } +func (self NextWindowData) SetRefreshFlagsVal(v WindowRefreshFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiNextWindowData_SetRefreshFlagsVal(selfArg, C.ImGuiWindowRefreshFlags(v)) +} + +func (self *NextWindowData) RefreshFlagsVal() WindowRefreshFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return WindowRefreshFlags(C.wrap_ImGuiNextWindowData_GetRefreshFlagsVal(selfArg)) +} + func (self OldColumnData) SetOffsetNorm(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -25992,6 +27324,66 @@ func (self *Payload) Delivery() bool { return C.wrap_ImGuiPayload_GetDelivery(selfArg) == C.bool(true) } +func (self PlatformIO) SetPlatformClipboardUserData(v uintptr) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiPlatformIO_SetPlatform_ClipboardUserData(selfArg, C.uintptr_t(v)) +} + +func (self *PlatformIO) PlatformClipboardUserData() uintptr { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uintptr(C.wrap_ImGuiPlatformIO_GetPlatform_ClipboardUserData(selfArg)) +} + +func (self PlatformIO) SetPlatformOpenInShellUserData(v uintptr) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiPlatformIO_SetPlatform_OpenInShellUserData(selfArg, C.uintptr_t(v)) +} + +func (self *PlatformIO) PlatformOpenInShellUserData() uintptr { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uintptr(C.wrap_ImGuiPlatformIO_GetPlatform_OpenInShellUserData(selfArg)) +} + +func (self PlatformIO) SetPlatformImeUserData(v uintptr) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiPlatformIO_SetPlatform_ImeUserData(selfArg, C.uintptr_t(v)) +} + +func (self *PlatformIO) PlatformImeUserData() uintptr { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uintptr(C.wrap_ImGuiPlatformIO_GetPlatform_ImeUserData(selfArg)) +} + +func (self PlatformIO) SetPlatformLocaleDecimalPoint(v Wchar) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiPlatformIO_SetPlatform_LocaleDecimalPoint(selfArg, C.ImWchar(v)) +} + +func (self *PlatformIO) PlatformLocaleDecimalPoint() Wchar { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return Wchar(C.wrap_ImGuiPlatformIO_GetPlatform_LocaleDecimalPoint(selfArg)) +} + func (self PlatformIO) SetMonitors(v Vector[*PlatformMonitor]) { vData := v.Data vDataArg, _ := vData.Handle() @@ -26184,21 +27576,21 @@ func (self *PopupData) Window() *Window { return NewWindowFromC(C.wrap_ImGuiPopupData_GetWindow(selfArg)) } -func (self PopupData) SetBackupNavWindow(v *Window) { +func (self PopupData) SetRestoreNavWindow(v *Window) { vArg, _ := v.Handle() selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiPopupData_SetBackupNavWindow(selfArg, vArg) + C.wrap_ImGuiPopupData_SetRestoreNavWindow(selfArg, vArg) } -func (self *PopupData) BackupNavWindow() *Window { +func (self *PopupData) RestoreNavWindow() *Window { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return NewWindowFromC(C.wrap_ImGuiPopupData_GetBackupNavWindow(selfArg)) + return NewWindowFromC(C.wrap_ImGuiPopupData_GetRestoreNavWindow(selfArg)) } func (self PopupData) SetParentNavLayer(v int32) { @@ -26308,6 +27700,146 @@ func (self *PtrOrIndex) Index() int32 { return int32(C.wrap_ImGuiPtrOrIndex_GetIndex(selfArg)) } +func (self SelectionBasicStorage) SetSize(v int32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionBasicStorage_SetSize(selfArg, C.int(v)) +} + +func (self *SelectionBasicStorage) Size() int32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int32(C.wrap_ImGuiSelectionBasicStorage_GetSize(selfArg)) +} + +func (self SelectionBasicStorage) SetPreserveOrder(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionBasicStorage_SetPreserveOrder(selfArg, C.bool(v)) +} + +func (self *SelectionBasicStorage) PreserveOrder() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiSelectionBasicStorage_GetPreserveOrder(selfArg) == C.bool(true) +} + +func (self SelectionBasicStorage) SetUserData(v uintptr) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionBasicStorage_SetUserData(selfArg, C.uintptr_t(v)) +} + +func (self *SelectionBasicStorage) UserData() uintptr { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uintptr(C.wrap_ImGuiSelectionBasicStorage_GetUserData(selfArg)) +} + +func (self SelectionBasicStorage) SetSelectionOrder(v int32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionBasicStorage_Set_SelectionOrder(selfArg, C.int(v)) +} + +func (self *SelectionBasicStorage) SelectionOrder() int32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int32(C.wrap_ImGuiSelectionBasicStorage_Get_SelectionOrder(selfArg)) +} + +func (self SelectionBasicStorage) SetStorage(v Storage) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionBasicStorage_Set_Storage(selfArg, vArg) +} + +func (self *SelectionBasicStorage) Storage() Storage { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewStorageFromC(func() *C.ImGuiStorage { + result := C.wrap_ImGuiSelectionBasicStorage_Get_Storage(selfArg) + return &result + }()) +} + +func (self SelectionExternalStorage) SetUserData(v uintptr) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionExternalStorage_SetUserData(selfArg, C.uintptr_t(v)) +} + +func (self *SelectionExternalStorage) UserData() uintptr { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uintptr(C.wrap_ImGuiSelectionExternalStorage_GetUserData(selfArg)) +} + +func (self SelectionRequest) SetType(v SelectionRequestType) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionRequest_SetType(selfArg, C.ImGuiSelectionRequestType(v)) +} + +func (self *SelectionRequest) Type() SelectionRequestType { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return SelectionRequestType(C.wrap_ImGuiSelectionRequest_GetType(selfArg)) +} + +func (self SelectionRequest) SetSelected(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionRequest_SetSelected(selfArg, C.bool(v)) +} + +func (self *SelectionRequest) Selected() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiSelectionRequest_GetSelected(selfArg) == C.bool(true) +} + +func (self SelectionRequest) SetRangeDirection(v int) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiSelectionRequest_SetRangeDirection(selfArg, C.ImS8(v)) +} + +func (self *SelectionRequest) RangeDirection() int { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return int(C.wrap_ImGuiSelectionRequest_GetRangeDirection(selfArg)) +} + func (self SettingsHandler) SetTypeName(v string) { vArg, _ := WrapString(v) @@ -27181,6 +28713,21 @@ func (self *Style) TabBarBorderSize() float32 { return float32(C.wrap_ImGuiStyle_GetTabBarBorderSize(selfArg)) } +func (self Style) SetTabBarOverlineSize(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiStyle_SetTabBarOverlineSize(selfArg, C.float(v)) +} + +func (self *Style) TabBarOverlineSize() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiStyle_GetTabBarOverlineSize(selfArg)) +} + func (self Style) SetTableAngledHeadersAngle(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -27196,6 +28743,21 @@ func (self *Style) TableAngledHeadersAngle() float32 { return float32(C.wrap_ImGuiStyle_GetTableAngledHeadersAngle(selfArg)) } +func (self Style) SetTableAngledHeadersTextAlign(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiStyle_SetTableAngledHeadersTextAlign(selfArg, v.toC()) +} + +func (self *Style) TableAngledHeadersTextAlign() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiStyle_GetTableAngledHeadersTextAlign(selfArg)) +} + func (self Style) SetColorButtonPosition(v Dir) { selfArg, selfFin := self.Handle() defer selfFin() @@ -27421,7 +28983,7 @@ func (self *Style) CircleTessellationMaxError() float32 { return float32(C.wrap_ImGuiStyle_GetCircleTessellationMaxError(selfArg)) } -func (self Style) SetColors(v *[55]Vec4) { +func (self Style) SetColors(v *[58]Vec4) { vArg := make([]C.ImVec4, len(v)) for i, vV := range v { vArg[i] = vV.toC() @@ -27436,14 +28998,14 @@ func (self Style) SetColors(v *[55]Vec4) { } } -func (self *Style) Colors() [55]Vec4 { +func (self *Style) Colors() [58]Vec4 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return func() [55]Vec4 { - result := [55]Vec4{} + return func() [58]Vec4 { + result := [58]Vec4{} resultMirr := C.wrap_ImGuiStyle_GetColors(selfArg) for i := range result { result[i] = *(&Vec4{}).fromC(C.cimgui_ImVec4_GetAtIdx(resultMirr, C.int(i))) @@ -29718,6 +31280,21 @@ func (self *TableColumn) WidthAuto() float32 { return float32(C.wrap_ImGuiTableColumn_GetWidthAuto(selfArg)) } +func (self TableColumn) SetWidthMax(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTableColumn_SetWidthMax(selfArg, C.float(v)) +} + +func (self *TableColumn) WidthMax() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiTableColumn_GetWidthMax(selfArg)) +} + func (self TableColumn) SetStretchWeight(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -30324,6 +31901,51 @@ func (self *TableColumnSortSpecs) SortDirection() SortDirection { return SortDirection(C.wrap_ImGuiTableColumnSortSpecs_GetSortDirection(selfArg)) } +func (self TableHeaderData) SetTextColor(v uint32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTableHeaderData_SetTextColor(selfArg, C.ImU32(v)) +} + +func (self *TableHeaderData) TextColor() uint32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uint32(C.wrap_ImGuiTableHeaderData_GetTextColor(selfArg)) +} + +func (self TableHeaderData) SetBgColor0(v uint32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTableHeaderData_SetBgColor0(selfArg, C.ImU32(v)) +} + +func (self *TableHeaderData) BgColor0() uint32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uint32(C.wrap_ImGuiTableHeaderData_GetBgColor0(selfArg)) +} + +func (self TableHeaderData) SetBgColor1(v uint32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTableHeaderData_SetBgColor1(selfArg, C.ImU32(v)) +} + +func (self *TableHeaderData) BgColor1() uint32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return uint32(C.wrap_ImGuiTableHeaderData_GetBgColor1(selfArg)) +} + func (self TableInstanceData) SetTableInstanceID(v ID) { vArg, _ := v.C() @@ -30570,6 +32192,29 @@ func (self *TableTempData) AngledHeadersExtraWidth() float32 { return float32(C.wrap_ImGuiTableTempData_GetAngledHeadersExtraWidth(selfArg)) } +func (self TableTempData) SetAngledHeadersRequests(v Vector[*TableHeaderData]) { + vData := v.Data + vDataArg, _ := vData.Handle() + vVecArg := new(C.ImVector_ImGuiTableHeaderData) + vVecArg.Size = C.int(v.Size) + vVecArg.Capacity = C.int(v.Capacity) + vVecArg.Data = vDataArg + v.pinner.Pin(vVecArg.Data) + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTableTempData_SetAngledHeadersRequests(selfArg, *vVecArg) +} + +func (self *TableTempData) AngledHeadersRequests() Vector[*TableHeaderData] { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return NewVectorFromC(C.wrap_ImGuiTableTempData_GetAngledHeadersRequests(selfArg).Size, C.wrap_ImGuiTableTempData_GetAngledHeadersRequests(selfArg).Capacity, NewTableHeaderDataFromC(C.wrap_ImGuiTableTempData_GetAngledHeadersRequests(selfArg).Data)) +} + func (self TableTempData) SetUserOuterSize(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() @@ -30895,6 +32540,68 @@ func (self *TextRange) E() string { return C.GoString(C.wrap_ImGuiTextRange_GetE(selfArg)) } +func (self TreeNodeStackData) SetID(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTreeNodeStackData_SetID(selfArg, vArg) +} + +func (self *TreeNodeStackData) ID() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiTreeNodeStackData_GetID(selfArg); return &result }()) +} + +func (self TreeNodeStackData) SetTreeFlags(v TreeNodeFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTreeNodeStackData_SetTreeFlags(selfArg, C.ImGuiTreeNodeFlags(v)) +} + +func (self *TreeNodeStackData) TreeFlags() TreeNodeFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return TreeNodeFlags(C.wrap_ImGuiTreeNodeStackData_GetTreeFlags(selfArg)) +} + +func (self TreeNodeStackData) SetInFlags(v ItemFlags) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTreeNodeStackData_SetInFlags(selfArg, C.ImGuiItemFlags(v)) +} + +func (self *TreeNodeStackData) InFlags() ItemFlags { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return ItemFlags(C.wrap_ImGuiTreeNodeStackData_GetInFlags(selfArg)) +} + +func (self TreeNodeStackData) SetNavRect(v Rect) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiTreeNodeStackData_SetNavRect(selfArg, v.toC()) +} + +func (self *TreeNodeStackData) NavRect() Rect { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Rect{}).fromC(C.wrap_ImGuiTreeNodeStackData_GetNavRect(selfArg)) +} + func (self TypingSelectRequest) SetFlags(v TypingSelectFlags) { selfArg, selfFin := self.Handle() defer selfFin() @@ -31473,6 +33180,21 @@ func (self *ViewportP) LastPos() Vec2 { return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetLastPos(selfArg)) } +func (self ViewportP) SetLastSize(v Vec2) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiViewportP_SetLastSize(selfArg, v.toC()) +} + +func (self *ViewportP) LastSize() Vec2 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetLastSize(selfArg)) +} + func (self ViewportP) SetAlpha(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -31680,64 +33402,64 @@ func (self *ViewportP) LastRendererSize() Vec2 { return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetLastRendererSize(selfArg)) } -func (self ViewportP) SetWorkOffsetMin(v Vec2) { +func (self ViewportP) SetWorkInsetMin(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiViewportP_SetWorkOffsetMin(selfArg, v.toC()) + C.wrap_ImGuiViewportP_SetWorkInsetMin(selfArg, v.toC()) } -func (self *ViewportP) WorkOffsetMin() Vec2 { +func (self *ViewportP) WorkInsetMin() Vec2 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetWorkOffsetMin(selfArg)) + return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetWorkInsetMin(selfArg)) } -func (self ViewportP) SetWorkOffsetMax(v Vec2) { +func (self ViewportP) SetWorkInsetMax(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiViewportP_SetWorkOffsetMax(selfArg, v.toC()) + C.wrap_ImGuiViewportP_SetWorkInsetMax(selfArg, v.toC()) } -func (self *ViewportP) WorkOffsetMax() Vec2 { +func (self *ViewportP) WorkInsetMax() Vec2 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetWorkOffsetMax(selfArg)) + return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetWorkInsetMax(selfArg)) } -func (self ViewportP) SetBuildWorkOffsetMin(v Vec2) { +func (self ViewportP) SetBuildWorkInsetMin(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiViewportP_SetBuildWorkOffsetMin(selfArg, v.toC()) + C.wrap_ImGuiViewportP_SetBuildWorkInsetMin(selfArg, v.toC()) } -func (self *ViewportP) BuildWorkOffsetMin() Vec2 { +func (self *ViewportP) BuildWorkInsetMin() Vec2 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetBuildWorkOffsetMin(selfArg)) + return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetBuildWorkInsetMin(selfArg)) } -func (self ViewportP) SetBuildWorkOffsetMax(v Vec2) { +func (self ViewportP) SetBuildWorkInsetMax(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiViewportP_SetBuildWorkOffsetMax(selfArg, v.toC()) + C.wrap_ImGuiViewportP_SetBuildWorkInsetMax(selfArg, v.toC()) } -func (self *ViewportP) BuildWorkOffsetMax() Vec2 { +func (self *ViewportP) BuildWorkInsetMax() Vec2 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetBuildWorkOffsetMax(selfArg)) + return *(&Vec2{}).fromC(C.wrap_ImGuiViewportP_GetBuildWorkInsetMax(selfArg)) } func (self Window) SetCtx(v *Context) { @@ -32052,6 +33774,36 @@ func (self *Window) WindowBorderSize() float32 { return float32(C.wrap_ImGuiWindow_GetWindowBorderSize(selfArg)) } +func (self Window) SetTitleBarHeight(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiWindow_SetTitleBarHeight(selfArg, C.float(v)) +} + +func (self *Window) TitleBarHeight() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiWindow_GetTitleBarHeight(selfArg)) +} + +func (self Window) SetMenuBarHeight(v float32) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiWindow_SetMenuBarHeight(selfArg, C.float(v)) +} + +func (self *Window) MenuBarHeight() float32 { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return float32(C.wrap_ImGuiWindow_GetMenuBarHeight(selfArg)) +} + func (self Window) SetDecoOuterSizeX1(v float32) { selfArg, selfFin := self.Handle() defer selfFin() @@ -32208,6 +33960,23 @@ func (self *Window) ChildId() ID { return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiWindow_GetChildId(selfArg); return &result }()) } +func (self Window) SetPopupId(v ID) { + vArg, _ := v.C() + + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiWindow_SetPopupId(selfArg, vArg) +} + +func (self *Window) PopupId() ID { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiWindow_GetPopupId(selfArg); return &result }()) +} + func (self Window) SetScroll(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() @@ -32433,6 +34202,21 @@ func (self *Window) SkipItems() bool { return C.wrap_ImGuiWindow_GetSkipItems(selfArg) == C.bool(true) } +func (self Window) SetSkipRefresh(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiWindow_SetSkipRefresh(selfArg, C.bool(v)) +} + +func (self *Window) SkipRefresh() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiWindow_GetSkipRefresh(selfArg) == C.bool(true) +} + func (self Window) SetAppearing(v bool) { selfArg, selfFin := self.Handle() defer selfFin() @@ -32583,23 +34367,6 @@ func (self *Window) FocusOrder() int16 { return int16(C.wrap_ImGuiWindow_GetFocusOrder(selfArg)) } -func (self Window) SetPopupId(v ID) { - vArg, _ := v.C() - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_ImGuiWindow_SetPopupId(selfArg, vArg) -} - -func (self *Window) PopupId() ID { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return *NewIDFromC(func() *C.ImGuiID { result := C.wrap_ImGuiWindow_GetPopupId(selfArg); return &result }()) -} - func (self Window) SetAutoFitFramesX(v int) { selfArg, selfFin := self.Handle() defer selfFin() @@ -33762,7 +35529,7 @@ func (self *WindowClass) DockingAllowUnclassed() bool { return C.wrap_ImGuiWindowClass_GetDockingAllowUnclassed(selfArg) == C.bool(true) } -func (self WindowDockStyle) SetColors(v *[6]uint32) { +func (self WindowDockStyle) SetColors(v *[8]uint32) { vArg := make([]C.ImU32, len(v)) for i, vV := range v { vArg[i] = C.ImU32(vV) @@ -33777,14 +35544,14 @@ func (self WindowDockStyle) SetColors(v *[6]uint32) { } } -func (self *WindowDockStyle) Colors() [6]uint32 { +func (self *WindowDockStyle) Colors() [8]uint32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return func() [6]uint32 { - result := [6]uint32{} + return func() [8]uint32 { + result := [8]uint32{} resultMirr := C.wrap_ImGuiWindowDockStyle_GetColors(selfArg) for i := range result { result[i] = uint32(C.cimgui_ImU32_GetAtIdx(resultMirr, C.int(i))) @@ -33994,6 +35761,21 @@ func (self *WindowStackData) StackSizesOnBegin() StackSizes { }()) } +func (self WindowStackData) SetDisabledOverrideReenable(v bool) { + selfArg, selfFin := self.Handle() + defer selfFin() + C.wrap_ImGuiWindowStackData_SetDisabledOverrideReenable(selfArg, C.bool(v)) +} + +func (self *WindowStackData) DisabledOverrideReenable() bool { + selfArg, selfFin := self.Handle() + + defer func() { + selfFin() + }() + return C.wrap_ImGuiWindowStackData_GetDisabledOverrideReenable(selfArg) == C.bool(true) +} + func (self WindowTempData) SetCursorPos(v Vec2) { selfArg, selfFin := self.Handle() defer selfFin() @@ -34380,19 +36162,19 @@ func (self *WindowTempData) TreeDepth() int32 { return int32(C.wrap_ImGuiWindowTempData_GetTreeDepth(selfArg)) } -func (self WindowTempData) SetTreeJumpToParentOnPopMask(v uint32) { +func (self WindowTempData) SetTreeHasStackDataDepthMask(v uint32) { selfArg, selfFin := self.Handle() defer selfFin() - C.wrap_ImGuiWindowTempData_SetTreeJumpToParentOnPopMask(selfArg, C.ImU32(v)) + C.wrap_ImGuiWindowTempData_SetTreeHasStackDataDepthMask(selfArg, C.ImU32(v)) } -func (self *WindowTempData) TreeJumpToParentOnPopMask() uint32 { +func (self *WindowTempData) TreeHasStackDataDepthMask() uint32 { selfArg, selfFin := self.Handle() defer func() { selfFin() }() - return uint32(C.wrap_ImGuiWindowTempData_GetTreeJumpToParentOnPopMask(selfArg)) + return uint32(C.wrap_ImGuiWindowTempData_GetTreeHasStackDataDepthMask(selfArg)) } func (self WindowTempData) SetStateStorage(v *Storage) { @@ -34564,407 +36346,3 @@ func (self *WindowTempData) TextWrapPosStack() Vector[*float32] { }() return NewVectorFromC(C.wrap_ImGuiWindowTempData_GetTextWrapPosStack(selfArg).Size, C.wrap_ImGuiWindowTempData_GetTextWrapPosStack(selfArg).Capacity, (*float32)(C.wrap_ImGuiWindowTempData_GetTextWrapPosStack(selfArg).Data)) } - -func (self *STBTexteditState) TexteditStateGetCursor() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_STB_TexteditState_GetCursor(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetSelectstart() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_STB_TexteditState_GetSelect_start(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetSelectend() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_STB_TexteditState_GetSelect_end(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetInsertmode() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetInsert_mode(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetRowcountperpage() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_STB_TexteditState_GetRow_count_per_page(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetCursoratendofline() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetCursor_at_end_of_line(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetInitialized() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetInitialized(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetHaspreferredx() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetHas_preferred_x(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetSingleline() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetSingle_line(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetPadding1() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetPadding1(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetPadding2() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetPadding2(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetPadding3() uint { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return uint(C.wrap_STB_TexteditState_GetPadding3(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetPreferredx() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_STB_TexteditState_GetPreferred_x(selfArg)) -} - -func (self *STBTexteditState) TexteditStateGetUndostate() StbUndoState { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return *NewStbUndoStateFromC(func() *C.StbUndoState { result := C.wrap_STB_TexteditState_GetUndostate(selfArg); return &result }()) -} - -func (self StbTexteditRow) SetX0(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetX0(selfArg, C.float(v)) -} - -func (self *StbTexteditRow) X0() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_StbTexteditRow_GetX0(selfArg)) -} - -func (self StbTexteditRow) SetX1(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetX1(selfArg, C.float(v)) -} - -func (self *StbTexteditRow) X1() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_StbTexteditRow_GetX1(selfArg)) -} - -func (self StbTexteditRow) SetBaselineydelta(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetBaseline_y_delta(selfArg, C.float(v)) -} - -func (self *StbTexteditRow) Baselineydelta() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_StbTexteditRow_GetBaseline_y_delta(selfArg)) -} - -func (self StbTexteditRow) SetYmin(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetYmin(selfArg, C.float(v)) -} - -func (self *StbTexteditRow) Ymin() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_StbTexteditRow_GetYmin(selfArg)) -} - -func (self StbTexteditRow) SetYmax(v float32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetYmax(selfArg, C.float(v)) -} - -func (self *StbTexteditRow) Ymax() float32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return float32(C.wrap_StbTexteditRow_GetYmax(selfArg)) -} - -func (self StbTexteditRow) SetNumchars(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbTexteditRow_SetNum_chars(selfArg, C.int(v)) -} - -func (self *StbTexteditRow) Numchars() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbTexteditRow_GetNum_chars(selfArg)) -} - -func (self StbUndoRecord) SetWhere(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoRecord_SetWhere(selfArg, C.int(v)) -} - -func (self *StbUndoRecord) Where() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoRecord_GetWhere(selfArg)) -} - -func (self StbUndoRecord) SetInsertlength(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoRecord_SetInsert_length(selfArg, C.int(v)) -} - -func (self *StbUndoRecord) Insertlength() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoRecord_GetInsert_length(selfArg)) -} - -func (self StbUndoRecord) SetDeletelength(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoRecord_SetDelete_length(selfArg, C.int(v)) -} - -func (self *StbUndoRecord) Deletelength() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoRecord_GetDelete_length(selfArg)) -} - -func (self StbUndoRecord) SetCharstorage(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoRecord_SetChar_storage(selfArg, C.int(v)) -} - -func (self *StbUndoRecord) Charstorage() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoRecord_GetChar_storage(selfArg)) -} - -func (self StbUndoState) SetUndorec(v *[99]StbUndoRecord) { - vArg := make([]C.StbUndoRecord, len(v)) - for i, vV := range v { - vVArg, _ := vV.C() - vArg[i] = vVArg - } - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetUndo_rec(selfArg, (*C.StbUndoRecord)(&vArg[0])) - - for i, vV := range vArg { - (*v)[i] = *NewStbUndoRecordFromC(func() *C.StbUndoRecord { result := vV; return &result }()) - } -} - -func (self *StbUndoState) Undorec() [99]StbUndoRecord { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return func() [99]StbUndoRecord { - result := [99]StbUndoRecord{} - resultMirr := C.wrap_StbUndoState_GetUndo_rec(selfArg) - for i := range result { - result[i] = *NewStbUndoRecordFromC(func() *C.StbUndoRecord { - result := C.cimgui_StbUndoRecord_GetAtIdx(resultMirr, C.int(i)) - return &result - }()) - } - - return result - }() -} - -func (self StbUndoState) SetUndochar(v *[999]Wchar) { - vArg := make([]C.ImWchar, len(v)) - for i, vV := range v { - vArg[i] = C.ImWchar(vV) - } - - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetUndo_char(selfArg, (*C.ImWchar)(&vArg[0])) - - for i, vV := range vArg { - (*v)[i] = Wchar(vV) - } -} - -func (self *StbUndoState) Undochar() [999]Wchar { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return func() [999]Wchar { - result := [999]Wchar{} - resultMirr := C.wrap_StbUndoState_GetUndo_char(selfArg) - for i := range result { - result[i] = Wchar(C.cimgui_ImWchar_GetAtIdx(resultMirr, C.int(i))) - } - - return result - }() -} - -func (self StbUndoState) SetUndopoint(v int16) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetUndo_point(selfArg, C.short(v)) -} - -func (self *StbUndoState) Undopoint() int16 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int16(C.wrap_StbUndoState_GetUndo_point(selfArg)) -} - -func (self StbUndoState) SetRedopoint(v int16) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetRedo_point(selfArg, C.short(v)) -} - -func (self *StbUndoState) Redopoint() int16 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int16(C.wrap_StbUndoState_GetRedo_point(selfArg)) -} - -func (self StbUndoState) SetUndocharpoint(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetUndo_char_point(selfArg, C.int(v)) -} - -func (self *StbUndoState) Undocharpoint() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoState_GetUndo_char_point(selfArg)) -} - -func (self StbUndoState) SetRedocharpoint(v int32) { - selfArg, selfFin := self.Handle() - defer selfFin() - C.wrap_StbUndoState_SetRedo_char_point(selfArg, C.int(v)) -} - -func (self *StbUndoState) Redocharpoint() int32 { - selfArg, selfFin := self.Handle() - - defer func() { - selfFin() - }() - return int32(C.wrap_StbUndoState_GetRedo_char_point(selfArg)) -} diff --git a/cimgui_structs_accessor.cpp b/cimgui_structs_accessor.cpp index 652087a32..4e9f4a433 100644 --- a/cimgui_structs_accessor.cpp +++ b/cimgui_structs_accessor.cpp @@ -69,30 +69,32 @@ void wrap_ImDrawList_Set_VtxCurrentIdx(ImDrawList *ImDrawListPtr, unsigned int v unsigned int wrap_ImDrawList_Get_VtxCurrentIdx(ImDrawList *self) { return self->_VtxCurrentIdx; } void wrap_ImDrawList_Set_Data(ImDrawList *ImDrawListPtr, ImDrawListSharedData* v) { ImDrawListPtr->_Data = v; } ImDrawListSharedData* wrap_ImDrawList_Get_Data(ImDrawList *self) { return self->_Data; } -void wrap_ImDrawList_Set_OwnerName(ImDrawList *ImDrawListPtr, const char* v) { ImDrawListPtr->_OwnerName = v; } -const char* wrap_ImDrawList_Get_OwnerName(ImDrawList *self) { return self->_OwnerName; } void wrap_ImDrawList_Set_VtxWritePtr(ImDrawList *ImDrawListPtr, ImDrawVert* v) { ImDrawListPtr->_VtxWritePtr = v; } ImDrawVert* wrap_ImDrawList_Get_VtxWritePtr(ImDrawList *self) { return self->_VtxWritePtr; } void wrap_ImDrawList_Set_IdxWritePtr(ImDrawList *ImDrawListPtr, ImDrawIdx* v) { ImDrawListPtr->_IdxWritePtr = v; } ImDrawIdx* wrap_ImDrawList_Get_IdxWritePtr(ImDrawList *self) { return self->_IdxWritePtr; } -void wrap_ImDrawList_Set_ClipRectStack(ImDrawList *ImDrawListPtr, ImVector_ImVec4 v) { ImDrawListPtr->_ClipRectStack = v; } -ImVector_ImVec4 wrap_ImDrawList_Get_ClipRectStack(ImDrawList *self) { return self->_ClipRectStack; } -void wrap_ImDrawList_Set_TextureIdStack(ImDrawList *ImDrawListPtr, ImVector_ImTextureID v) { ImDrawListPtr->_TextureIdStack = v; } -ImVector_ImTextureID wrap_ImDrawList_Get_TextureIdStack(ImDrawList *self) { return self->_TextureIdStack; } void wrap_ImDrawList_Set_Path(ImDrawList *ImDrawListPtr, ImVector_ImVec2 v) { ImDrawListPtr->_Path = v; } ImVector_ImVec2 wrap_ImDrawList_Get_Path(ImDrawList *self) { return self->_Path; } void wrap_ImDrawList_Set_CmdHeader(ImDrawList *ImDrawListPtr, ImDrawCmdHeader v) { ImDrawListPtr->_CmdHeader = v; } ImDrawCmdHeader wrap_ImDrawList_Get_CmdHeader(ImDrawList *self) { return self->_CmdHeader; } void wrap_ImDrawList_Set_Splitter(ImDrawList *ImDrawListPtr, ImDrawListSplitter v) { ImDrawListPtr->_Splitter = v; } ImDrawListSplitter wrap_ImDrawList_Get_Splitter(ImDrawList *self) { return self->_Splitter; } +void wrap_ImDrawList_Set_ClipRectStack(ImDrawList *ImDrawListPtr, ImVector_ImVec4 v) { ImDrawListPtr->_ClipRectStack = v; } +ImVector_ImVec4 wrap_ImDrawList_Get_ClipRectStack(ImDrawList *self) { return self->_ClipRectStack; } +void wrap_ImDrawList_Set_TextureIdStack(ImDrawList *ImDrawListPtr, ImVector_ImTextureID v) { ImDrawListPtr->_TextureIdStack = v; } +ImVector_ImTextureID wrap_ImDrawList_Get_TextureIdStack(ImDrawList *self) { return self->_TextureIdStack; } void wrap_ImDrawList_Set_FringeScale(ImDrawList *ImDrawListPtr, float v) { ImDrawListPtr->_FringeScale = v; } float wrap_ImDrawList_Get_FringeScale(ImDrawList *self) { return self->_FringeScale; } +void wrap_ImDrawList_Set_OwnerName(ImDrawList *ImDrawListPtr, const char* v) { ImDrawListPtr->_OwnerName = v; } +const char* wrap_ImDrawList_Get_OwnerName(ImDrawList *self) { return self->_OwnerName; } void wrap_ImDrawListSharedData_SetTexUvWhitePixel(ImDrawListSharedData *ImDrawListSharedDataPtr, ImVec2 v) { ImDrawListSharedDataPtr->TexUvWhitePixel = v; } ImVec2 wrap_ImDrawListSharedData_GetTexUvWhitePixel(ImDrawListSharedData *self) { return self->TexUvWhitePixel; } void wrap_ImDrawListSharedData_SetFont(ImDrawListSharedData *ImDrawListSharedDataPtr, ImFont* v) { ImDrawListSharedDataPtr->Font = v; } ImFont* wrap_ImDrawListSharedData_GetFont(ImDrawListSharedData *self) { return self->Font; } void wrap_ImDrawListSharedData_SetFontSize(ImDrawListSharedData *ImDrawListSharedDataPtr, float v) { ImDrawListSharedDataPtr->FontSize = v; } float wrap_ImDrawListSharedData_GetFontSize(ImDrawListSharedData *self) { return self->FontSize; } +void wrap_ImDrawListSharedData_SetFontScale(ImDrawListSharedData *ImDrawListSharedDataPtr, float v) { ImDrawListSharedDataPtr->FontScale = v; } +float wrap_ImDrawListSharedData_GetFontScale(ImDrawListSharedData *self) { return self->FontScale; } void wrap_ImDrawListSharedData_SetCurveTessellationTol(ImDrawListSharedData *ImDrawListSharedDataPtr, float v) { ImDrawListSharedDataPtr->CurveTessellationTol = v; } float wrap_ImDrawListSharedData_GetCurveTessellationTol(ImDrawListSharedData *self) { return self->CurveTessellationTol; } void wrap_ImDrawListSharedData_SetCircleSegmentMaxError(ImDrawListSharedData *ImDrawListSharedDataPtr, float v) { ImDrawListSharedDataPtr->CircleSegmentMaxError = v; } @@ -291,6 +293,36 @@ void wrap_ImFontGlyph_SetV1(ImFontGlyph *ImFontGlyphPtr, float v) { ImFontGlyphP float wrap_ImFontGlyph_GetV1(ImFontGlyph *self) { return self->V1; } void wrap_ImFontGlyphRangesBuilder_SetUsedChars(ImFontGlyphRangesBuilder *ImFontGlyphRangesBuilderPtr, ImVector_ImU32 v) { ImFontGlyphRangesBuilderPtr->UsedChars = v; } ImVector_ImU32 wrap_ImFontGlyphRangesBuilder_GetUsedChars(ImFontGlyphRangesBuilder *self) { return self->UsedChars; } +void wrap_ImGuiBoxSelectState_SetID(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiID v) { ImGuiBoxSelectStatePtr->ID = v; } +ImGuiID wrap_ImGuiBoxSelectState_GetID(ImGuiBoxSelectState *self) { return self->ID; } +void wrap_ImGuiBoxSelectState_SetIsActive(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->IsActive = v; } +bool wrap_ImGuiBoxSelectState_GetIsActive(ImGuiBoxSelectState *self) { return self->IsActive; } +void wrap_ImGuiBoxSelectState_SetIsStarting(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->IsStarting = v; } +bool wrap_ImGuiBoxSelectState_GetIsStarting(ImGuiBoxSelectState *self) { return self->IsStarting; } +void wrap_ImGuiBoxSelectState_SetIsStartedFromVoid(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->IsStartedFromVoid = v; } +bool wrap_ImGuiBoxSelectState_GetIsStartedFromVoid(ImGuiBoxSelectState *self) { return self->IsStartedFromVoid; } +void wrap_ImGuiBoxSelectState_SetIsStartedSetNavIdOnce(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->IsStartedSetNavIdOnce = v; } +bool wrap_ImGuiBoxSelectState_GetIsStartedSetNavIdOnce(ImGuiBoxSelectState *self) { return self->IsStartedSetNavIdOnce; } +void wrap_ImGuiBoxSelectState_SetRequestClear(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->RequestClear = v; } +bool wrap_ImGuiBoxSelectState_GetRequestClear(ImGuiBoxSelectState *self) { return self->RequestClear; } +void wrap_ImGuiBoxSelectState_SetKeyMods(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiKeyChord v) { ImGuiBoxSelectStatePtr->KeyMods = v; } +ImGuiKeyChord wrap_ImGuiBoxSelectState_GetKeyMods(ImGuiBoxSelectState *self) { return self->KeyMods; } +void wrap_ImGuiBoxSelectState_SetStartPosRel(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v) { ImGuiBoxSelectStatePtr->StartPosRel = v; } +ImVec2 wrap_ImGuiBoxSelectState_GetStartPosRel(ImGuiBoxSelectState *self) { return self->StartPosRel; } +void wrap_ImGuiBoxSelectState_SetEndPosRel(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v) { ImGuiBoxSelectStatePtr->EndPosRel = v; } +ImVec2 wrap_ImGuiBoxSelectState_GetEndPosRel(ImGuiBoxSelectState *self) { return self->EndPosRel; } +void wrap_ImGuiBoxSelectState_SetScrollAccum(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v) { ImGuiBoxSelectStatePtr->ScrollAccum = v; } +ImVec2 wrap_ImGuiBoxSelectState_GetScrollAccum(ImGuiBoxSelectState *self) { return self->ScrollAccum; } +void wrap_ImGuiBoxSelectState_SetWindow(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiWindow* v) { ImGuiBoxSelectStatePtr->Window = v; } +ImGuiWindow* wrap_ImGuiBoxSelectState_GetWindow(ImGuiBoxSelectState *self) { return self->Window; } +void wrap_ImGuiBoxSelectState_SetUnclipMode(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v) { ImGuiBoxSelectStatePtr->UnclipMode = v; } +bool wrap_ImGuiBoxSelectState_GetUnclipMode(ImGuiBoxSelectState *self) { return self->UnclipMode; } +void wrap_ImGuiBoxSelectState_SetUnclipRect(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v) { ImGuiBoxSelectStatePtr->UnclipRect = v; } +ImRect wrap_ImGuiBoxSelectState_GetUnclipRect(ImGuiBoxSelectState *self) { return self->UnclipRect; } +void wrap_ImGuiBoxSelectState_SetBoxSelectRectPrev(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v) { ImGuiBoxSelectStatePtr->BoxSelectRectPrev = v; } +ImRect wrap_ImGuiBoxSelectState_GetBoxSelectRectPrev(ImGuiBoxSelectState *self) { return self->BoxSelectRectPrev; } +void wrap_ImGuiBoxSelectState_SetBoxSelectRectCurr(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v) { ImGuiBoxSelectStatePtr->BoxSelectRectCurr = v; } +ImRect wrap_ImGuiBoxSelectState_GetBoxSelectRectCurr(ImGuiBoxSelectState *self) { return self->BoxSelectRectCurr; } void wrap_ImGuiColorMod_SetCol(ImGuiColorMod *ImGuiColorModPtr, ImGuiCol v) { ImGuiColorModPtr->Col = v; } ImGuiCol wrap_ImGuiColorMod_GetCol(ImGuiColorMod *self) { return self->Col; } void wrap_ImGuiColorMod_SetBackupValue(ImGuiColorMod *ImGuiColorModPtr, ImVec4 v) { ImGuiColorModPtr->BackupValue = v; } @@ -327,6 +359,10 @@ void wrap_ImGuiContext_SetFontSize(ImGuiContext *ImGuiContextPtr, float v) { ImG float wrap_ImGuiContext_GetFontSize(ImGuiContext *self) { return self->FontSize; } void wrap_ImGuiContext_SetFontBaseSize(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->FontBaseSize = v; } float wrap_ImGuiContext_GetFontBaseSize(ImGuiContext *self) { return self->FontBaseSize; } +void wrap_ImGuiContext_SetFontScale(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->FontScale = v; } +float wrap_ImGuiContext_GetFontScale(ImGuiContext *self) { return self->FontScale; } +void wrap_ImGuiContext_SetCurrentDpiScale(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->CurrentDpiScale = v; } +float wrap_ImGuiContext_GetCurrentDpiScale(ImGuiContext *self) { return self->CurrentDpiScale; } void wrap_ImGuiContext_SetDrawListSharedData(ImGuiContext *ImGuiContextPtr, ImDrawListSharedData v) { ImGuiContextPtr->DrawListSharedData = v; } ImDrawListSharedData wrap_ImGuiContext_GetDrawListSharedData(ImGuiContext *self) { return self->DrawListSharedData; } void wrap_ImGuiContext_SetTime(ImGuiContext *ImGuiContextPtr, double v) { ImGuiContextPtr->Time = v; } @@ -351,6 +387,8 @@ void wrap_ImGuiContext_SetTestEngineHookItems(ImGuiContext *ImGuiContextPtr, boo bool wrap_ImGuiContext_GetTestEngineHookItems(ImGuiContext *self) { return self->TestEngineHookItems; } void wrap_ImGuiContext_SetTestEngine(ImGuiContext *ImGuiContextPtr, uintptr_t v) { ImGuiContextPtr->TestEngine = (void*)v; } uintptr_t wrap_ImGuiContext_GetTestEngine(ImGuiContext *self) { return (uintptr_t)self->TestEngine; } +void wrap_ImGuiContext_SetContextName(ImGuiContext *ImGuiContextPtr, char* v) { memcpy(ImGuiContextPtr->ContextName, v, sizeof(char)*16); } +char* wrap_ImGuiContext_GetContextName(ImGuiContext *self) { return self->ContextName; } void wrap_ImGuiContext_SetInputEventsQueue(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiInputEvent v) { ImGuiContextPtr->InputEventsQueue = v; } ImVector_ImGuiInputEvent wrap_ImGuiContext_GetInputEventsQueue(ImGuiContext *self) { return self->InputEventsQueue; } void wrap_ImGuiContext_SetInputEventsTrail(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiInputEvent v) { ImGuiContextPtr->InputEventsTrail = v; } @@ -381,6 +419,8 @@ void wrap_ImGuiContext_SetHoveredWindow(ImGuiContext *ImGuiContextPtr, ImGuiWind ImGuiWindow* wrap_ImGuiContext_GetHoveredWindow(ImGuiContext *self) { return self->HoveredWindow; } void wrap_ImGuiContext_SetHoveredWindowUnderMovingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v) { ImGuiContextPtr->HoveredWindowUnderMovingWindow = v; } ImGuiWindow* wrap_ImGuiContext_GetHoveredWindowUnderMovingWindow(ImGuiContext *self) { return self->HoveredWindowUnderMovingWindow; } +void wrap_ImGuiContext_SetHoveredWindowBeforeClear(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v) { ImGuiContextPtr->HoveredWindowBeforeClear = v; } +ImGuiWindow* wrap_ImGuiContext_GetHoveredWindowBeforeClear(ImGuiContext *self) { return self->HoveredWindowBeforeClear; } void wrap_ImGuiContext_SetMovingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v) { ImGuiContextPtr->MovingWindow = v; } ImGuiWindow* wrap_ImGuiContext_GetMovingWindow(ImGuiContext *self) { return self->MovingWindow; } void wrap_ImGuiContext_SetWheelingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v) { ImGuiContextPtr->WheelingWindow = v; } @@ -397,20 +437,26 @@ void wrap_ImGuiContext_SetWheelingWindowWheelRemainder(ImGuiContext *ImGuiContex ImVec2 wrap_ImGuiContext_GetWheelingWindowWheelRemainder(ImGuiContext *self) { return self->WheelingWindowWheelRemainder; } void wrap_ImGuiContext_SetWheelingAxisAvg(ImGuiContext *ImGuiContextPtr, ImVec2 v) { ImGuiContextPtr->WheelingAxisAvg = v; } ImVec2 wrap_ImGuiContext_GetWheelingAxisAvg(ImGuiContext *self) { return self->WheelingAxisAvg; } +void wrap_ImGuiContext_SetDebugDrawIdConflicts(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->DebugDrawIdConflicts = v; } +ImGuiID wrap_ImGuiContext_GetDebugDrawIdConflicts(ImGuiContext *self) { return self->DebugDrawIdConflicts; } void wrap_ImGuiContext_SetDebugHookIdInfo(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->DebugHookIdInfo = v; } ImGuiID wrap_ImGuiContext_GetDebugHookIdInfo(ImGuiContext *self) { return self->DebugHookIdInfo; } void wrap_ImGuiContext_SetHoveredId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->HoveredId = v; } ImGuiID wrap_ImGuiContext_GetHoveredId(ImGuiContext *self) { return self->HoveredId; } void wrap_ImGuiContext_SetHoveredIdPreviousFrame(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->HoveredIdPreviousFrame = v; } ImGuiID wrap_ImGuiContext_GetHoveredIdPreviousFrame(ImGuiContext *self) { return self->HoveredIdPreviousFrame; } -void wrap_ImGuiContext_SetHoveredIdAllowOverlap(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->HoveredIdAllowOverlap = v; } -bool wrap_ImGuiContext_GetHoveredIdAllowOverlap(ImGuiContext *self) { return self->HoveredIdAllowOverlap; } -void wrap_ImGuiContext_SetHoveredIdDisabled(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->HoveredIdDisabled = v; } -bool wrap_ImGuiContext_GetHoveredIdDisabled(ImGuiContext *self) { return self->HoveredIdDisabled; } +void wrap_ImGuiContext_SetHoveredIdPreviousFrameItemCount(ImGuiContext *ImGuiContextPtr, int v) { ImGuiContextPtr->HoveredIdPreviousFrameItemCount = v; } +int wrap_ImGuiContext_GetHoveredIdPreviousFrameItemCount(ImGuiContext *self) { return self->HoveredIdPreviousFrameItemCount; } void wrap_ImGuiContext_SetHoveredIdTimer(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->HoveredIdTimer = v; } float wrap_ImGuiContext_GetHoveredIdTimer(ImGuiContext *self) { return self->HoveredIdTimer; } void wrap_ImGuiContext_SetHoveredIdNotActiveTimer(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->HoveredIdNotActiveTimer = v; } float wrap_ImGuiContext_GetHoveredIdNotActiveTimer(ImGuiContext *self) { return self->HoveredIdNotActiveTimer; } +void wrap_ImGuiContext_SetHoveredIdAllowOverlap(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->HoveredIdAllowOverlap = v; } +bool wrap_ImGuiContext_GetHoveredIdAllowOverlap(ImGuiContext *self) { return self->HoveredIdAllowOverlap; } +void wrap_ImGuiContext_SetHoveredIdIsDisabled(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->HoveredIdIsDisabled = v; } +bool wrap_ImGuiContext_GetHoveredIdIsDisabled(ImGuiContext *self) { return self->HoveredIdIsDisabled; } +void wrap_ImGuiContext_SetItemUnclipByLog(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->ItemUnclipByLog = v; } +bool wrap_ImGuiContext_GetItemUnclipByLog(ImGuiContext *self) { return self->ItemUnclipByLog; } void wrap_ImGuiContext_SetActiveId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->ActiveId = v; } ImGuiID wrap_ImGuiContext_GetActiveId(ImGuiContext *self) { return self->ActiveId; } void wrap_ImGuiContext_SetActiveIdIsAlive(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->ActiveIdIsAlive = v; } @@ -502,12 +548,10 @@ void wrap_ImGuiContext_SetOpenPopupStack(ImGuiContext *ImGuiContextPtr, ImVector ImVector_ImGuiPopupData wrap_ImGuiContext_GetOpenPopupStack(ImGuiContext *self) { return self->OpenPopupStack; } void wrap_ImGuiContext_SetBeginPopupStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiPopupData v) { ImGuiContextPtr->BeginPopupStack = v; } ImVector_ImGuiPopupData wrap_ImGuiContext_GetBeginPopupStack(ImGuiContext *self) { return self->BeginPopupStack; } -void wrap_ImGuiContext_SetNavTreeNodeStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiNavTreeNodeData v) { ImGuiContextPtr->NavTreeNodeStack = v; } -ImVector_ImGuiNavTreeNodeData wrap_ImGuiContext_GetNavTreeNodeStack(ImGuiContext *self) { return self->NavTreeNodeStack; } +void wrap_ImGuiContext_SetTreeNodeStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiTreeNodeStackData v) { ImGuiContextPtr->TreeNodeStack = v; } +ImVector_ImGuiTreeNodeStackData wrap_ImGuiContext_GetTreeNodeStack(ImGuiContext *self) { return self->TreeNodeStack; } void wrap_ImGuiContext_SetViewports(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiViewportPPtr v) { ImGuiContextPtr->Viewports = v; } ImVector_ImGuiViewportPPtr wrap_ImGuiContext_GetViewports(ImGuiContext *self) { return self->Viewports; } -void wrap_ImGuiContext_SetCurrentDpiScale(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->CurrentDpiScale = v; } -float wrap_ImGuiContext_GetCurrentDpiScale(ImGuiContext *self) { return self->CurrentDpiScale; } void wrap_ImGuiContext_SetCurrentViewport(ImGuiContext *ImGuiContextPtr, ImGuiViewportP* v) { ImGuiContextPtr->CurrentViewport = v; } ImGuiViewportP* wrap_ImGuiContext_GetCurrentViewport(ImGuiContext *self) { return self->CurrentViewport; } void wrap_ImGuiContext_SetMouseViewport(ImGuiContext *ImGuiContextPtr, ImGuiViewportP* v) { ImGuiContextPtr->MouseViewport = v; } @@ -532,8 +576,8 @@ void wrap_ImGuiContext_SetNavId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGu ImGuiID wrap_ImGuiContext_GetNavId(ImGuiContext *self) { return self->NavId; } void wrap_ImGuiContext_SetNavFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavFocusScopeId = v; } ImGuiID wrap_ImGuiContext_GetNavFocusScopeId(ImGuiContext *self) { return self->NavFocusScopeId; } -void wrap_ImGuiContext_SetNavFocusRoute(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiFocusScopeData v) { ImGuiContextPtr->NavFocusRoute = v; } -ImVector_ImGuiFocusScopeData wrap_ImGuiContext_GetNavFocusRoute(ImGuiContext *self) { return self->NavFocusRoute; } +void wrap_ImGuiContext_SetNavLayer(ImGuiContext *ImGuiContextPtr, ImGuiNavLayer v) { ImGuiContextPtr->NavLayer = v; } +ImGuiNavLayer wrap_ImGuiContext_GetNavLayer(ImGuiContext *self) { return self->NavLayer; } void wrap_ImGuiContext_SetNavActivateId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavActivateId = v; } ImGuiID wrap_ImGuiContext_GetNavActivateId(ImGuiContext *self) { return self->NavActivateId; } void wrap_ImGuiContext_SetNavActivateDownId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavActivateDownId = v; } @@ -542,24 +586,18 @@ void wrap_ImGuiContext_SetNavActivatePressedId(ImGuiContext *ImGuiContextPtr, Im ImGuiID wrap_ImGuiContext_GetNavActivatePressedId(ImGuiContext *self) { return self->NavActivatePressedId; } void wrap_ImGuiContext_SetNavActivateFlags(ImGuiContext *ImGuiContextPtr, ImGuiActivateFlags v) { ImGuiContextPtr->NavActivateFlags = v; } ImGuiActivateFlags wrap_ImGuiContext_GetNavActivateFlags(ImGuiContext *self) { return self->NavActivateFlags; } +void wrap_ImGuiContext_SetNavFocusRoute(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiFocusScopeData v) { ImGuiContextPtr->NavFocusRoute = v; } +ImVector_ImGuiFocusScopeData wrap_ImGuiContext_GetNavFocusRoute(ImGuiContext *self) { return self->NavFocusRoute; } void wrap_ImGuiContext_SetNavHighlightActivatedId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavHighlightActivatedId = v; } ImGuiID wrap_ImGuiContext_GetNavHighlightActivatedId(ImGuiContext *self) { return self->NavHighlightActivatedId; } void wrap_ImGuiContext_SetNavHighlightActivatedTimer(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->NavHighlightActivatedTimer = v; } float wrap_ImGuiContext_GetNavHighlightActivatedTimer(ImGuiContext *self) { return self->NavHighlightActivatedTimer; } -void wrap_ImGuiContext_SetNavJustMovedToId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavJustMovedToId = v; } -ImGuiID wrap_ImGuiContext_GetNavJustMovedToId(ImGuiContext *self) { return self->NavJustMovedToId; } -void wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavJustMovedToFocusScopeId = v; } -ImGuiID wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(ImGuiContext *self) { return self->NavJustMovedToFocusScopeId; } -void wrap_ImGuiContext_SetNavJustMovedToKeyMods(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v) { ImGuiContextPtr->NavJustMovedToKeyMods = v; } -ImGuiKeyChord wrap_ImGuiContext_GetNavJustMovedToKeyMods(ImGuiContext *self) { return self->NavJustMovedToKeyMods; } void wrap_ImGuiContext_SetNavNextActivateId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavNextActivateId = v; } ImGuiID wrap_ImGuiContext_GetNavNextActivateId(ImGuiContext *self) { return self->NavNextActivateId; } void wrap_ImGuiContext_SetNavNextActivateFlags(ImGuiContext *ImGuiContextPtr, ImGuiActivateFlags v) { ImGuiContextPtr->NavNextActivateFlags = v; } ImGuiActivateFlags wrap_ImGuiContext_GetNavNextActivateFlags(ImGuiContext *self) { return self->NavNextActivateFlags; } void wrap_ImGuiContext_SetNavInputSource(ImGuiContext *ImGuiContextPtr, ImGuiInputSource v) { ImGuiContextPtr->NavInputSource = v; } ImGuiInputSource wrap_ImGuiContext_GetNavInputSource(ImGuiContext *self) { return self->NavInputSource; } -void wrap_ImGuiContext_SetNavLayer(ImGuiContext *ImGuiContextPtr, ImGuiNavLayer v) { ImGuiContextPtr->NavLayer = v; } -ImGuiNavLayer wrap_ImGuiContext_GetNavLayer(ImGuiContext *self) { return self->NavLayer; } void wrap_ImGuiContext_SetNavLastValidSelectionUserData(ImGuiContext *ImGuiContextPtr, ImGuiSelectionUserData v) { ImGuiContextPtr->NavLastValidSelectionUserData = v; } ImGuiSelectionUserData wrap_ImGuiContext_GetNavLastValidSelectionUserData(ImGuiContext *self) { return self->NavLastValidSelectionUserData; } void wrap_ImGuiContext_SetNavIdIsAlive(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->NavIdIsAlive = v; } @@ -614,6 +652,18 @@ void wrap_ImGuiContext_SetNavMoveResultOther(ImGuiContext *ImGuiContextPtr, ImGu ImGuiNavItemData wrap_ImGuiContext_GetNavMoveResultOther(ImGuiContext *self) { return self->NavMoveResultOther; } void wrap_ImGuiContext_SetNavTabbingResultFirst(ImGuiContext *ImGuiContextPtr, ImGuiNavItemData v) { ImGuiContextPtr->NavTabbingResultFirst = v; } ImGuiNavItemData wrap_ImGuiContext_GetNavTabbingResultFirst(ImGuiContext *self) { return self->NavTabbingResultFirst; } +void wrap_ImGuiContext_SetNavJustMovedFromFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavJustMovedFromFocusScopeId = v; } +ImGuiID wrap_ImGuiContext_GetNavJustMovedFromFocusScopeId(ImGuiContext *self) { return self->NavJustMovedFromFocusScopeId; } +void wrap_ImGuiContext_SetNavJustMovedToId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavJustMovedToId = v; } +ImGuiID wrap_ImGuiContext_GetNavJustMovedToId(ImGuiContext *self) { return self->NavJustMovedToId; } +void wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->NavJustMovedToFocusScopeId = v; } +ImGuiID wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(ImGuiContext *self) { return self->NavJustMovedToFocusScopeId; } +void wrap_ImGuiContext_SetNavJustMovedToKeyMods(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v) { ImGuiContextPtr->NavJustMovedToKeyMods = v; } +ImGuiKeyChord wrap_ImGuiContext_GetNavJustMovedToKeyMods(ImGuiContext *self) { return self->NavJustMovedToKeyMods; } +void wrap_ImGuiContext_SetNavJustMovedToIsTabbing(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->NavJustMovedToIsTabbing = v; } +bool wrap_ImGuiContext_GetNavJustMovedToIsTabbing(ImGuiContext *self) { return self->NavJustMovedToIsTabbing; } +void wrap_ImGuiContext_SetNavJustMovedToHasSelectionData(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->NavJustMovedToHasSelectionData = v; } +bool wrap_ImGuiContext_GetNavJustMovedToHasSelectionData(ImGuiContext *self) { return self->NavJustMovedToHasSelectionData; } void wrap_ImGuiContext_SetConfigNavWindowingKeyNext(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v) { ImGuiContextPtr->ConfigNavWindowingKeyNext = v; } ImGuiKeyChord wrap_ImGuiContext_GetConfigNavWindowingKeyNext(ImGuiContext *self) { return self->ConfigNavWindowingKeyNext; } void wrap_ImGuiContext_SetConfigNavWindowingKeyPrev(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v) { ImGuiContextPtr->ConfigNavWindowingKeyPrev = v; } @@ -701,6 +751,16 @@ void wrap_ImGuiContext_SetCurrentTabBarStack(ImGuiContext *ImGuiContextPtr, ImVe ImVector_ImGuiPtrOrIndex wrap_ImGuiContext_GetCurrentTabBarStack(ImGuiContext *self) { return self->CurrentTabBarStack; } void wrap_ImGuiContext_SetShrinkWidthBuffer(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiShrinkWidthItem v) { ImGuiContextPtr->ShrinkWidthBuffer = v; } ImVector_ImGuiShrinkWidthItem wrap_ImGuiContext_GetShrinkWidthBuffer(ImGuiContext *self) { return self->ShrinkWidthBuffer; } +void wrap_ImGuiContext_SetBoxSelectState(ImGuiContext *ImGuiContextPtr, ImGuiBoxSelectState v) { ImGuiContextPtr->BoxSelectState = v; } +ImGuiBoxSelectState wrap_ImGuiContext_GetBoxSelectState(ImGuiContext *self) { return self->BoxSelectState; } +void wrap_ImGuiContext_SetCurrentMultiSelect(ImGuiContext *ImGuiContextPtr, ImGuiMultiSelectTempData* v) { ImGuiContextPtr->CurrentMultiSelect = v; } +ImGuiMultiSelectTempData* wrap_ImGuiContext_GetCurrentMultiSelect(ImGuiContext *self) { return self->CurrentMultiSelect; } +void wrap_ImGuiContext_SetMultiSelectTempDataStacked(ImGuiContext *ImGuiContextPtr, int v) { ImGuiContextPtr->MultiSelectTempDataStacked = v; } +int wrap_ImGuiContext_GetMultiSelectTempDataStacked(ImGuiContext *self) { return self->MultiSelectTempDataStacked; } +void wrap_ImGuiContext_SetMultiSelectTempData(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiMultiSelectTempData v) { ImGuiContextPtr->MultiSelectTempData = v; } +ImVector_ImGuiMultiSelectTempData wrap_ImGuiContext_GetMultiSelectTempData(ImGuiContext *self) { return self->MultiSelectTempData; } +void wrap_ImGuiContext_SetMultiSelectStorage(ImGuiContext *ImGuiContextPtr, ImPool_ImGuiMultiSelectState v) { ImGuiContextPtr->MultiSelectStorage = v; } +ImPool_ImGuiMultiSelectState wrap_ImGuiContext_GetMultiSelectStorage(ImGuiContext *self) { return self->MultiSelectStorage; } void wrap_ImGuiContext_SetHoverItemDelayId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->HoverItemDelayId = v; } ImGuiID wrap_ImGuiContext_GetHoverItemDelayId(ImGuiContext *self) { return self->HoverItemDelayId; } void wrap_ImGuiContext_SetHoverItemDelayIdPreviousFrame(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->HoverItemDelayIdPreviousFrame = v; } @@ -727,6 +787,8 @@ void wrap_ImGuiContext_SetInputTextPasswordFont(ImGuiContext *ImGuiContextPtr, I ImFont wrap_ImGuiContext_GetInputTextPasswordFont(ImGuiContext *self) { return self->InputTextPasswordFont; } void wrap_ImGuiContext_SetTempInputId(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->TempInputId = v; } ImGuiID wrap_ImGuiContext_GetTempInputId(ImGuiContext *self) { return self->TempInputId; } +void wrap_ImGuiContext_SetDataTypeZeroValue(ImGuiContext *ImGuiContextPtr, ImGuiDataTypeStorage v) { ImGuiContextPtr->DataTypeZeroValue = v; } +ImGuiDataTypeStorage wrap_ImGuiContext_GetDataTypeZeroValue(ImGuiContext *self) { return self->DataTypeZeroValue; } void wrap_ImGuiContext_SetBeginMenuDepth(ImGuiContext *ImGuiContextPtr, int v) { ImGuiContextPtr->BeginMenuDepth = v; } int wrap_ImGuiContext_GetBeginMenuDepth(ImGuiContext *self) { return self->BeginMenuDepth; } void wrap_ImGuiContext_SetBeginComboDepth(ImGuiContext *ImGuiContextPtr, int v) { ImGuiContextPtr->BeginComboDepth = v; } @@ -751,6 +813,10 @@ void wrap_ImGuiContext_SetWindowResizeBorderExpectedRect(ImGuiContext *ImGuiCont ImRect wrap_ImGuiContext_GetWindowResizeBorderExpectedRect(ImGuiContext *self) { return self->WindowResizeBorderExpectedRect; } void wrap_ImGuiContext_SetWindowResizeRelativeMode(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->WindowResizeRelativeMode = v; } bool wrap_ImGuiContext_GetWindowResizeRelativeMode(ImGuiContext *self) { return self->WindowResizeRelativeMode; } +void wrap_ImGuiContext_SetScrollbarSeekMode(ImGuiContext *ImGuiContextPtr, short v) { ImGuiContextPtr->ScrollbarSeekMode = v; } +short wrap_ImGuiContext_GetScrollbarSeekMode(ImGuiContext *self) { return self->ScrollbarSeekMode; } +void wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->ScrollbarClickDeltaToGrabCenter = v; } +float wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(ImGuiContext *self) { return self->ScrollbarClickDeltaToGrabCenter; } void wrap_ImGuiContext_SetSliderGrabClickOffset(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->SliderGrabClickOffset = v; } float wrap_ImGuiContext_GetSliderGrabClickOffset(ImGuiContext *self) { return self->SliderGrabClickOffset; } void wrap_ImGuiContext_SetSliderCurrentAccum(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->SliderCurrentAccum = v; } @@ -763,8 +829,6 @@ void wrap_ImGuiContext_SetDragCurrentAccum(ImGuiContext *ImGuiContextPtr, float float wrap_ImGuiContext_GetDragCurrentAccum(ImGuiContext *self) { return self->DragCurrentAccum; } void wrap_ImGuiContext_SetDragSpeedDefaultRatio(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->DragSpeedDefaultRatio = v; } float wrap_ImGuiContext_GetDragSpeedDefaultRatio(ImGuiContext *self) { return self->DragSpeedDefaultRatio; } -void wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->ScrollbarClickDeltaToGrabCenter = v; } -float wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(ImGuiContext *self) { return self->ScrollbarClickDeltaToGrabCenter; } void wrap_ImGuiContext_SetDisabledAlphaBackup(ImGuiContext *ImGuiContextPtr, float v) { ImGuiContextPtr->DisabledAlphaBackup = v; } float wrap_ImGuiContext_GetDisabledAlphaBackup(ImGuiContext *self) { return self->DisabledAlphaBackup; } void wrap_ImGuiContext_SetDisabledStackSize(ImGuiContext *ImGuiContextPtr, short v) { ImGuiContextPtr->DisabledStackSize = v; } @@ -803,7 +867,7 @@ void wrap_ImGuiContext_SetHooks(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiCon ImVector_ImGuiContextHook wrap_ImGuiContext_GetHooks(ImGuiContext *self) { return self->Hooks; } void wrap_ImGuiContext_SetHookIdNext(ImGuiContext *ImGuiContextPtr, ImGuiID v) { ImGuiContextPtr->HookIdNext = v; } ImGuiID wrap_ImGuiContext_GetHookIdNext(ImGuiContext *self) { return self->HookIdNext; } -void wrap_ImGuiContext_SetLocalizationTable(ImGuiContext *ImGuiContextPtr, const char** v) { memcpy(ImGuiContextPtr->LocalizationTable, v, sizeof(const char*)*11); } +void wrap_ImGuiContext_SetLocalizationTable(ImGuiContext *ImGuiContextPtr, const char** v) { memcpy(ImGuiContextPtr->LocalizationTable, v, sizeof(const char*)*13); } const char** wrap_ImGuiContext_GetLocalizationTable(ImGuiContext *self) { return self->LocalizationTable; } const char* cimgui_const_charPtr_GetAtIdx(const char* *self, int index) { return self[index]; } void wrap_ImGuiContext_SetLogEnabled(ImGuiContext *ImGuiContextPtr, bool v) { ImGuiContextPtr->LogEnabled = v; } @@ -901,8 +965,8 @@ void wrap_ImGuiDataTypeInfo_SetPrintFmt(ImGuiDataTypeInfo *ImGuiDataTypeInfoPtr, const char* wrap_ImGuiDataTypeInfo_GetPrintFmt(ImGuiDataTypeInfo *self) { return self->PrintFmt; } void wrap_ImGuiDataTypeInfo_SetScanFmt(ImGuiDataTypeInfo *ImGuiDataTypeInfoPtr, const char* v) { ImGuiDataTypeInfoPtr->ScanFmt = v; } const char* wrap_ImGuiDataTypeInfo_GetScanFmt(ImGuiDataTypeInfo *self) { return self->ScanFmt; } -void wrap_ImGuiDataTypeTempStorage_SetData(ImGuiDataTypeTempStorage *ImGuiDataTypeTempStoragePtr, ImU8* v) { memcpy(ImGuiDataTypeTempStoragePtr->Data, v, sizeof(ImU8)*8); } -ImU8* wrap_ImGuiDataTypeTempStorage_GetData(ImGuiDataTypeTempStorage *self) { return self->Data; } +void wrap_ImGuiDataTypeStorage_SetData(ImGuiDataTypeStorage *ImGuiDataTypeStoragePtr, ImU8* v) { memcpy(ImGuiDataTypeStoragePtr->Data, v, sizeof(ImU8)*8); } +ImU8* wrap_ImGuiDataTypeStorage_GetData(ImGuiDataTypeStorage *self) { return self->Data; } void wrap_ImGuiDataVarInfo_SetType(ImGuiDataVarInfo *ImGuiDataVarInfoPtr, ImGuiDataType v) { ImGuiDataVarInfoPtr->Type = v; } ImGuiDataType wrap_ImGuiDataVarInfo_GetType(ImGuiDataVarInfo *self) { return self->Type; } void wrap_ImGuiDataVarInfo_SetCount(ImGuiDataVarInfo *ImGuiDataVarInfoPtr, ImU32 v) { ImGuiDataVarInfoPtr->Count = v; } @@ -1103,6 +1167,8 @@ void wrap_ImGuiIO_SetMouseDrawCursor(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr-> bool wrap_ImGuiIO_GetMouseDrawCursor(ImGuiIO *self) { return self->MouseDrawCursor; } void wrap_ImGuiIO_SetConfigMacOSXBehaviors(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigMacOSXBehaviors = v; } bool wrap_ImGuiIO_GetConfigMacOSXBehaviors(ImGuiIO *self) { return self->ConfigMacOSXBehaviors; } +void wrap_ImGuiIO_SetConfigNavSwapGamepadButtons(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigNavSwapGamepadButtons = v; } +bool wrap_ImGuiIO_GetConfigNavSwapGamepadButtons(ImGuiIO *self) { return self->ConfigNavSwapGamepadButtons; } void wrap_ImGuiIO_SetConfigInputTrickleEventQueue(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigInputTrickleEventQueue = v; } bool wrap_ImGuiIO_GetConfigInputTrickleEventQueue(ImGuiIO *self) { return self->ConfigInputTrickleEventQueue; } void wrap_ImGuiIO_SetConfigInputTextCursorBlink(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigInputTextCursorBlink = v; } @@ -1129,6 +1195,8 @@ void wrap_ImGuiIO_SetKeyRepeatRate(ImGuiIO *ImGuiIOPtr, float v) { ImGuiIOPtr->K float wrap_ImGuiIO_GetKeyRepeatRate(ImGuiIO *self) { return self->KeyRepeatRate; } void wrap_ImGuiIO_SetConfigDebugIsDebuggerPresent(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigDebugIsDebuggerPresent = v; } bool wrap_ImGuiIO_GetConfigDebugIsDebuggerPresent(ImGuiIO *self) { return self->ConfigDebugIsDebuggerPresent; } +void wrap_ImGuiIO_SetConfigDebugHighlightIdConflicts(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigDebugHighlightIdConflicts = v; } +bool wrap_ImGuiIO_GetConfigDebugHighlightIdConflicts(ImGuiIO *self) { return self->ConfigDebugHighlightIdConflicts; } void wrap_ImGuiIO_SetConfigDebugBeginReturnValueOnce(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigDebugBeginReturnValueOnce = v; } bool wrap_ImGuiIO_GetConfigDebugBeginReturnValueOnce(ImGuiIO *self) { return self->ConfigDebugBeginReturnValueOnce; } void wrap_ImGuiIO_SetConfigDebugBeginReturnValueLoop(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->ConfigDebugBeginReturnValueLoop = v; } @@ -1147,10 +1215,6 @@ void wrap_ImGuiIO_SetBackendRendererUserData(ImGuiIO *ImGuiIOPtr, uintptr_t v) { uintptr_t wrap_ImGuiIO_GetBackendRendererUserData(ImGuiIO *self) { return (uintptr_t)self->BackendRendererUserData; } void wrap_ImGuiIO_SetBackendLanguageUserData(ImGuiIO *ImGuiIOPtr, uintptr_t v) { ImGuiIOPtr->BackendLanguageUserData = (void*)v; } uintptr_t wrap_ImGuiIO_GetBackendLanguageUserData(ImGuiIO *self) { return (uintptr_t)self->BackendLanguageUserData; } -void wrap_ImGuiIO_SetClipboardUserData(ImGuiIO *ImGuiIOPtr, uintptr_t v) { ImGuiIOPtr->ClipboardUserData = (void*)v; } -uintptr_t wrap_ImGuiIO_GetClipboardUserData(ImGuiIO *self) { return (uintptr_t)self->ClipboardUserData; } -void wrap_ImGuiIO_SetPlatformLocaleDecimalPoint(ImGuiIO *ImGuiIOPtr, ImWchar v) { ImGuiIOPtr->PlatformLocaleDecimalPoint = v; } -ImWchar wrap_ImGuiIO_GetPlatformLocaleDecimalPoint(ImGuiIO *self) { return self->PlatformLocaleDecimalPoint; } void wrap_ImGuiIO_SetWantCaptureMouse(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->WantCaptureMouse = v; } bool wrap_ImGuiIO_GetWantCaptureMouse(ImGuiIO *self) { return self->WantCaptureMouse; } void wrap_ImGuiIO_SetWantCaptureKeyboard(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->WantCaptureKeyboard = v; } @@ -1231,6 +1295,8 @@ void wrap_ImGuiIO_SetMouseDownOwnedUnlessPopupClose(ImGuiIO *ImGuiIOPtr, bool* v bool* wrap_ImGuiIO_GetMouseDownOwnedUnlessPopupClose(ImGuiIO *self) { return self->MouseDownOwnedUnlessPopupClose; } void wrap_ImGuiIO_SetMouseWheelRequestAxisSwap(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->MouseWheelRequestAxisSwap = v; } bool wrap_ImGuiIO_GetMouseWheelRequestAxisSwap(ImGuiIO *self) { return self->MouseWheelRequestAxisSwap; } +void wrap_ImGuiIO_SetMouseCtrlLeftAsRightClick(ImGuiIO *ImGuiIOPtr, bool v) { ImGuiIOPtr->MouseCtrlLeftAsRightClick = v; } +bool wrap_ImGuiIO_GetMouseCtrlLeftAsRightClick(ImGuiIO *self) { return self->MouseCtrlLeftAsRightClick; } void wrap_ImGuiIO_SetMouseDownDuration(ImGuiIO *ImGuiIOPtr, float* v) { memcpy(ImGuiIOPtr->MouseDownDuration, v, sizeof(float)*5); } float* wrap_ImGuiIO_GetMouseDownDuration(ImGuiIO *self) { return self->MouseDownDuration; } void wrap_ImGuiIO_SetMouseDownDurationPrev(ImGuiIO *ImGuiIOPtr, float* v) { memcpy(ImGuiIOPtr->MouseDownDurationPrev, v, sizeof(float)*5); } @@ -1321,26 +1387,22 @@ void wrap_ImGuiInputTextDeactivatedState_SetTextA(ImGuiInputTextDeactivatedState ImVector_char wrap_ImGuiInputTextDeactivatedState_GetTextA(ImGuiInputTextDeactivatedState *self) { return self->TextA; } void wrap_ImGuiInputTextState_SetCtx(ImGuiInputTextState *ImGuiInputTextStatePtr, ImGuiContext* v) { ImGuiInputTextStatePtr->Ctx = v; } ImGuiContext* wrap_ImGuiInputTextState_GetCtx(ImGuiInputTextState *self) { return self->Ctx; } +void wrap_ImGuiInputTextState_SetStb(ImGuiInputTextState *ImGuiInputTextStatePtr, ImStbTexteditState* v) { ImGuiInputTextStatePtr->Stb = v; } +ImStbTexteditState* wrap_ImGuiInputTextState_GetStb(ImGuiInputTextState *self) { return self->Stb; } void wrap_ImGuiInputTextState_SetID(ImGuiInputTextState *ImGuiInputTextStatePtr, ImGuiID v) { ImGuiInputTextStatePtr->ID = v; } ImGuiID wrap_ImGuiInputTextState_GetID(ImGuiInputTextState *self) { return self->ID; } -void wrap_ImGuiInputTextState_SetCurLenW(ImGuiInputTextState *ImGuiInputTextStatePtr, int v) { ImGuiInputTextStatePtr->CurLenW = v; } -int wrap_ImGuiInputTextState_GetCurLenW(ImGuiInputTextState *self) { return self->CurLenW; } void wrap_ImGuiInputTextState_SetCurLenA(ImGuiInputTextState *ImGuiInputTextStatePtr, int v) { ImGuiInputTextStatePtr->CurLenA = v; } int wrap_ImGuiInputTextState_GetCurLenA(ImGuiInputTextState *self) { return self->CurLenA; } -void wrap_ImGuiInputTextState_SetTextW(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_ImWchar v) { ImGuiInputTextStatePtr->TextW = v; } -ImVector_ImWchar wrap_ImGuiInputTextState_GetTextW(ImGuiInputTextState *self) { return self->TextW; } void wrap_ImGuiInputTextState_SetTextA(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v) { ImGuiInputTextStatePtr->TextA = v; } ImVector_char wrap_ImGuiInputTextState_GetTextA(ImGuiInputTextState *self) { return self->TextA; } void wrap_ImGuiInputTextState_SetInitialTextA(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v) { ImGuiInputTextStatePtr->InitialTextA = v; } ImVector_char wrap_ImGuiInputTextState_GetInitialTextA(ImGuiInputTextState *self) { return self->InitialTextA; } -void wrap_ImGuiInputTextState_SetTextAIsValid(ImGuiInputTextState *ImGuiInputTextStatePtr, bool v) { ImGuiInputTextStatePtr->TextAIsValid = v; } -bool wrap_ImGuiInputTextState_GetTextAIsValid(ImGuiInputTextState *self) { return self->TextAIsValid; } +void wrap_ImGuiInputTextState_SetCallbackTextBackup(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v) { ImGuiInputTextStatePtr->CallbackTextBackup = v; } +ImVector_char wrap_ImGuiInputTextState_GetCallbackTextBackup(ImGuiInputTextState *self) { return self->CallbackTextBackup; } void wrap_ImGuiInputTextState_SetBufCapacityA(ImGuiInputTextState *ImGuiInputTextStatePtr, int v) { ImGuiInputTextStatePtr->BufCapacityA = v; } int wrap_ImGuiInputTextState_GetBufCapacityA(ImGuiInputTextState *self) { return self->BufCapacityA; } -void wrap_ImGuiInputTextState_SetScrollX(ImGuiInputTextState *ImGuiInputTextStatePtr, float v) { ImGuiInputTextStatePtr->ScrollX = v; } -float wrap_ImGuiInputTextState_GetScrollX(ImGuiInputTextState *self) { return self->ScrollX; } -void wrap_ImGuiInputTextState_SetStb(ImGuiInputTextState *ImGuiInputTextStatePtr, STB_TexteditState v) { ImGuiInputTextStatePtr->Stb = v; } -STB_TexteditState wrap_ImGuiInputTextState_GetStb(ImGuiInputTextState *self) { return self->Stb; } +void wrap_ImGuiInputTextState_SetScroll(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVec2 v) { ImGuiInputTextStatePtr->Scroll = v; } +ImVec2 wrap_ImGuiInputTextState_GetScroll(ImGuiInputTextState *self) { return self->Scroll; } void wrap_ImGuiInputTextState_SetCursorAnim(ImGuiInputTextState *ImGuiInputTextStatePtr, float v) { ImGuiInputTextStatePtr->CursorAnim = v; } float wrap_ImGuiInputTextState_GetCursorAnim(ImGuiInputTextState *self) { return self->CursorAnim; } void wrap_ImGuiInputTextState_SetCursorFollow(ImGuiInputTextState *ImGuiInputTextStatePtr, bool v) { ImGuiInputTextStatePtr->CursorFollow = v; } @@ -1406,6 +1468,8 @@ void wrap_ImGuiLastItemData_SetDisplayRect(ImGuiLastItemData *ImGuiLastItemDataP ImRect wrap_ImGuiLastItemData_GetDisplayRect(ImGuiLastItemData *self) { return self->DisplayRect; } void wrap_ImGuiLastItemData_SetClipRect(ImGuiLastItemData *ImGuiLastItemDataPtr, ImRect v) { ImGuiLastItemDataPtr->ClipRect = v; } ImRect wrap_ImGuiLastItemData_GetClipRect(ImGuiLastItemData *self) { return self->ClipRect; } +void wrap_ImGuiLastItemData_SetShortcut(ImGuiLastItemData *ImGuiLastItemDataPtr, ImGuiKeyChord v) { ImGuiLastItemDataPtr->Shortcut = v; } +ImGuiKeyChord wrap_ImGuiLastItemData_GetShortcut(ImGuiLastItemData *self) { return self->Shortcut; } void wrap_ImGuiListClipper_SetCtx(ImGuiListClipper *ImGuiListClipperPtr, ImGuiContext* v) { ImGuiListClipperPtr->Ctx = v; } ImGuiContext* wrap_ImGuiListClipper_GetCtx(ImGuiListClipper *self) { return self->Ctx; } void wrap_ImGuiListClipper_SetDisplayStart(ImGuiListClipper *ImGuiListClipperPtr, int v) { ImGuiListClipperPtr->DisplayStart = v; } @@ -1418,6 +1482,8 @@ void wrap_ImGuiListClipper_SetItemsHeight(ImGuiListClipper *ImGuiListClipperPtr, float wrap_ImGuiListClipper_GetItemsHeight(ImGuiListClipper *self) { return self->ItemsHeight; } void wrap_ImGuiListClipper_SetStartPosY(ImGuiListClipper *ImGuiListClipperPtr, float v) { ImGuiListClipperPtr->StartPosY = v; } float wrap_ImGuiListClipper_GetStartPosY(ImGuiListClipper *self) { return self->StartPosY; } +void wrap_ImGuiListClipper_SetStartSeekOffsetY(ImGuiListClipper *ImGuiListClipperPtr, double v) { ImGuiListClipperPtr->StartSeekOffsetY = v; } +double wrap_ImGuiListClipper_GetStartSeekOffsetY(ImGuiListClipper *self) { return self->StartSeekOffsetY; } void wrap_ImGuiListClipper_SetTempData(ImGuiListClipper *ImGuiListClipperPtr, uintptr_t v) { ImGuiListClipperPtr->TempData = (void*)v; } uintptr_t wrap_ImGuiListClipper_GetTempData(ImGuiListClipper *self) { return (uintptr_t)self->TempData; } void wrap_ImGuiListClipperData_SetListClipper(ImGuiListClipperData *ImGuiListClipperDataPtr, ImGuiListClipper* v) { ImGuiListClipperDataPtr->ListClipper = v; } @@ -1488,6 +1554,66 @@ void wrap_ImGuiMetricsConfig_SetHighlightMonitorIdx(ImGuiMetricsConfig *ImGuiMet int wrap_ImGuiMetricsConfig_GetHighlightMonitorIdx(ImGuiMetricsConfig *self) { return self->HighlightMonitorIdx; } void wrap_ImGuiMetricsConfig_SetHighlightViewportID(ImGuiMetricsConfig *ImGuiMetricsConfigPtr, ImGuiID v) { ImGuiMetricsConfigPtr->HighlightViewportID = v; } ImGuiID wrap_ImGuiMetricsConfig_GetHighlightViewportID(ImGuiMetricsConfig *self) { return self->HighlightViewportID; } +void wrap_ImGuiMultiSelectIO_SetRequests(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImVector_ImGuiSelectionRequest v) { ImGuiMultiSelectIOPtr->Requests = v; } +ImVector_ImGuiSelectionRequest wrap_ImGuiMultiSelectIO_GetRequests(ImGuiMultiSelectIO *self) { return self->Requests; } +void wrap_ImGuiMultiSelectIO_SetRangeSrcItem(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImGuiSelectionUserData v) { ImGuiMultiSelectIOPtr->RangeSrcItem = v; } +ImGuiSelectionUserData wrap_ImGuiMultiSelectIO_GetRangeSrcItem(ImGuiMultiSelectIO *self) { return self->RangeSrcItem; } +void wrap_ImGuiMultiSelectIO_SetNavIdItem(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImGuiSelectionUserData v) { ImGuiMultiSelectIOPtr->NavIdItem = v; } +ImGuiSelectionUserData wrap_ImGuiMultiSelectIO_GetNavIdItem(ImGuiMultiSelectIO *self) { return self->NavIdItem; } +void wrap_ImGuiMultiSelectIO_SetNavIdSelected(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, bool v) { ImGuiMultiSelectIOPtr->NavIdSelected = v; } +bool wrap_ImGuiMultiSelectIO_GetNavIdSelected(ImGuiMultiSelectIO *self) { return self->NavIdSelected; } +void wrap_ImGuiMultiSelectIO_SetRangeSrcReset(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, bool v) { ImGuiMultiSelectIOPtr->RangeSrcReset = v; } +bool wrap_ImGuiMultiSelectIO_GetRangeSrcReset(ImGuiMultiSelectIO *self) { return self->RangeSrcReset; } +void wrap_ImGuiMultiSelectIO_SetItemsCount(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, int v) { ImGuiMultiSelectIOPtr->ItemsCount = v; } +int wrap_ImGuiMultiSelectIO_GetItemsCount(ImGuiMultiSelectIO *self) { return self->ItemsCount; } +void wrap_ImGuiMultiSelectState_SetWindow(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiWindow* v) { ImGuiMultiSelectStatePtr->Window = v; } +ImGuiWindow* wrap_ImGuiMultiSelectState_GetWindow(ImGuiMultiSelectState *self) { return self->Window; } +void wrap_ImGuiMultiSelectState_SetID(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiID v) { ImGuiMultiSelectStatePtr->ID = v; } +ImGuiID wrap_ImGuiMultiSelectState_GetID(ImGuiMultiSelectState *self) { return self->ID; } +void wrap_ImGuiMultiSelectState_SetLastFrameActive(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, int v) { ImGuiMultiSelectStatePtr->LastFrameActive = v; } +int wrap_ImGuiMultiSelectState_GetLastFrameActive(ImGuiMultiSelectState *self) { return self->LastFrameActive; } +void wrap_ImGuiMultiSelectState_SetLastSelectionSize(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, int v) { ImGuiMultiSelectStatePtr->LastSelectionSize = v; } +int wrap_ImGuiMultiSelectState_GetLastSelectionSize(ImGuiMultiSelectState *self) { return self->LastSelectionSize; } +void wrap_ImGuiMultiSelectState_SetRangeSelected(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImS8 v) { ImGuiMultiSelectStatePtr->RangeSelected = v; } +ImS8 wrap_ImGuiMultiSelectState_GetRangeSelected(ImGuiMultiSelectState *self) { return self->RangeSelected; } +void wrap_ImGuiMultiSelectState_SetNavIdSelected(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImS8 v) { ImGuiMultiSelectStatePtr->NavIdSelected = v; } +ImS8 wrap_ImGuiMultiSelectState_GetNavIdSelected(ImGuiMultiSelectState *self) { return self->NavIdSelected; } +void wrap_ImGuiMultiSelectState_SetRangeSrcItem(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiSelectionUserData v) { ImGuiMultiSelectStatePtr->RangeSrcItem = v; } +ImGuiSelectionUserData wrap_ImGuiMultiSelectState_GetRangeSrcItem(ImGuiMultiSelectState *self) { return self->RangeSrcItem; } +void wrap_ImGuiMultiSelectState_SetNavIdItem(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiSelectionUserData v) { ImGuiMultiSelectStatePtr->NavIdItem = v; } +ImGuiSelectionUserData wrap_ImGuiMultiSelectState_GetNavIdItem(ImGuiMultiSelectState *self) { return self->NavIdItem; } +void wrap_ImGuiMultiSelectTempData_SetIO(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectIO v) { ImGuiMultiSelectTempDataPtr->IO = v; } +ImGuiMultiSelectIO wrap_ImGuiMultiSelectTempData_GetIO(ImGuiMultiSelectTempData *self) { return self->IO; } +void wrap_ImGuiMultiSelectTempData_SetStorage(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectState* v) { ImGuiMultiSelectTempDataPtr->Storage = v; } +ImGuiMultiSelectState* wrap_ImGuiMultiSelectTempData_GetStorage(ImGuiMultiSelectTempData *self) { return self->Storage; } +void wrap_ImGuiMultiSelectTempData_SetFocusScopeId(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiID v) { ImGuiMultiSelectTempDataPtr->FocusScopeId = v; } +ImGuiID wrap_ImGuiMultiSelectTempData_GetFocusScopeId(ImGuiMultiSelectTempData *self) { return self->FocusScopeId; } +void wrap_ImGuiMultiSelectTempData_SetFlags(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectFlags v) { ImGuiMultiSelectTempDataPtr->Flags = v; } +ImGuiMultiSelectFlags wrap_ImGuiMultiSelectTempData_GetFlags(ImGuiMultiSelectTempData *self) { return self->Flags; } +void wrap_ImGuiMultiSelectTempData_SetScopeRectMin(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImVec2 v) { ImGuiMultiSelectTempDataPtr->ScopeRectMin = v; } +ImVec2 wrap_ImGuiMultiSelectTempData_GetScopeRectMin(ImGuiMultiSelectTempData *self) { return self->ScopeRectMin; } +void wrap_ImGuiMultiSelectTempData_SetBackupCursorMaxPos(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImVec2 v) { ImGuiMultiSelectTempDataPtr->BackupCursorMaxPos = v; } +ImVec2 wrap_ImGuiMultiSelectTempData_GetBackupCursorMaxPos(ImGuiMultiSelectTempData *self) { return self->BackupCursorMaxPos; } +void wrap_ImGuiMultiSelectTempData_SetLastSubmittedItem(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiSelectionUserData v) { ImGuiMultiSelectTempDataPtr->LastSubmittedItem = v; } +ImGuiSelectionUserData wrap_ImGuiMultiSelectTempData_GetLastSubmittedItem(ImGuiMultiSelectTempData *self) { return self->LastSubmittedItem; } +void wrap_ImGuiMultiSelectTempData_SetBoxSelectId(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiID v) { ImGuiMultiSelectTempDataPtr->BoxSelectId = v; } +ImGuiID wrap_ImGuiMultiSelectTempData_GetBoxSelectId(ImGuiMultiSelectTempData *self) { return self->BoxSelectId; } +void wrap_ImGuiMultiSelectTempData_SetKeyMods(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiKeyChord v) { ImGuiMultiSelectTempDataPtr->KeyMods = v; } +ImGuiKeyChord wrap_ImGuiMultiSelectTempData_GetKeyMods(ImGuiMultiSelectTempData *self) { return self->KeyMods; } +void wrap_ImGuiMultiSelectTempData_SetLoopRequestSetAll(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImS8 v) { ImGuiMultiSelectTempDataPtr->LoopRequestSetAll = v; } +ImS8 wrap_ImGuiMultiSelectTempData_GetLoopRequestSetAll(ImGuiMultiSelectTempData *self) { return self->LoopRequestSetAll; } +void wrap_ImGuiMultiSelectTempData_SetIsEndIO(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->IsEndIO = v; } +bool wrap_ImGuiMultiSelectTempData_GetIsEndIO(ImGuiMultiSelectTempData *self) { return self->IsEndIO; } +void wrap_ImGuiMultiSelectTempData_SetIsFocused(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->IsFocused = v; } +bool wrap_ImGuiMultiSelectTempData_GetIsFocused(ImGuiMultiSelectTempData *self) { return self->IsFocused; } +void wrap_ImGuiMultiSelectTempData_SetIsKeyboardSetRange(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->IsKeyboardSetRange = v; } +bool wrap_ImGuiMultiSelectTempData_GetIsKeyboardSetRange(ImGuiMultiSelectTempData *self) { return self->IsKeyboardSetRange; } +void wrap_ImGuiMultiSelectTempData_SetNavIdPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->NavIdPassedBy = v; } +bool wrap_ImGuiMultiSelectTempData_GetNavIdPassedBy(ImGuiMultiSelectTempData *self) { return self->NavIdPassedBy; } +void wrap_ImGuiMultiSelectTempData_SetRangeSrcPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->RangeSrcPassedBy = v; } +bool wrap_ImGuiMultiSelectTempData_GetRangeSrcPassedBy(ImGuiMultiSelectTempData *self) { return self->RangeSrcPassedBy; } +void wrap_ImGuiMultiSelectTempData_SetRangeDstPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v) { ImGuiMultiSelectTempDataPtr->RangeDstPassedBy = v; } +bool wrap_ImGuiMultiSelectTempData_GetRangeDstPassedBy(ImGuiMultiSelectTempData *self) { return self->RangeDstPassedBy; } void wrap_ImGuiNavItemData_SetWindow(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiWindow* v) { ImGuiNavItemDataPtr->Window = v; } ImGuiWindow* wrap_ImGuiNavItemData_GetWindow(ImGuiNavItemData *self) { return self->Window; } void wrap_ImGuiNavItemData_SetID(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiID v) { ImGuiNavItemDataPtr->ID = v; } @@ -1498,34 +1624,36 @@ void wrap_ImGuiNavItemData_SetRectRel(ImGuiNavItemData *ImGuiNavItemDataPtr, ImR ImRect wrap_ImGuiNavItemData_GetRectRel(ImGuiNavItemData *self) { return self->RectRel; } void wrap_ImGuiNavItemData_SetInFlags(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiItemFlags v) { ImGuiNavItemDataPtr->InFlags = v; } ImGuiItemFlags wrap_ImGuiNavItemData_GetInFlags(ImGuiNavItemData *self) { return self->InFlags; } -void wrap_ImGuiNavItemData_SetSelectionUserData(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiSelectionUserData v) { ImGuiNavItemDataPtr->SelectionUserData = v; } -ImGuiSelectionUserData wrap_ImGuiNavItemData_GetSelectionUserData(ImGuiNavItemData *self) { return self->SelectionUserData; } void wrap_ImGuiNavItemData_SetDistBox(ImGuiNavItemData *ImGuiNavItemDataPtr, float v) { ImGuiNavItemDataPtr->DistBox = v; } float wrap_ImGuiNavItemData_GetDistBox(ImGuiNavItemData *self) { return self->DistBox; } void wrap_ImGuiNavItemData_SetDistCenter(ImGuiNavItemData *ImGuiNavItemDataPtr, float v) { ImGuiNavItemDataPtr->DistCenter = v; } float wrap_ImGuiNavItemData_GetDistCenter(ImGuiNavItemData *self) { return self->DistCenter; } void wrap_ImGuiNavItemData_SetDistAxial(ImGuiNavItemData *ImGuiNavItemDataPtr, float v) { ImGuiNavItemDataPtr->DistAxial = v; } float wrap_ImGuiNavItemData_GetDistAxial(ImGuiNavItemData *self) { return self->DistAxial; } -void wrap_ImGuiNavTreeNodeData_SetID(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImGuiID v) { ImGuiNavTreeNodeDataPtr->ID = v; } -ImGuiID wrap_ImGuiNavTreeNodeData_GetID(ImGuiNavTreeNodeData *self) { return self->ID; } -void wrap_ImGuiNavTreeNodeData_SetInFlags(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImGuiItemFlags v) { ImGuiNavTreeNodeDataPtr->InFlags = v; } -ImGuiItemFlags wrap_ImGuiNavTreeNodeData_GetInFlags(ImGuiNavTreeNodeData *self) { return self->InFlags; } -void wrap_ImGuiNavTreeNodeData_SetNavRect(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImRect v) { ImGuiNavTreeNodeDataPtr->NavRect = v; } -ImRect wrap_ImGuiNavTreeNodeData_GetNavRect(ImGuiNavTreeNodeData *self) { return self->NavRect; } +void wrap_ImGuiNavItemData_SetSelectionUserData(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiSelectionUserData v) { ImGuiNavItemDataPtr->SelectionUserData = v; } +ImGuiSelectionUserData wrap_ImGuiNavItemData_GetSelectionUserData(ImGuiNavItemData *self) { return self->SelectionUserData; } void wrap_ImGuiNextItemData_SetFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiNextItemDataFlags v) { ImGuiNextItemDataPtr->Flags = v; } ImGuiNextItemDataFlags wrap_ImGuiNextItemData_GetFlags(ImGuiNextItemData *self) { return self->Flags; } void wrap_ImGuiNextItemData_SetItemFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiItemFlags v) { ImGuiNextItemDataPtr->ItemFlags = v; } ImGuiItemFlags wrap_ImGuiNextItemData_GetItemFlags(ImGuiNextItemData *self) { return self->ItemFlags; } +void wrap_ImGuiNextItemData_SetFocusScopeId(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiID v) { ImGuiNextItemDataPtr->FocusScopeId = v; } +ImGuiID wrap_ImGuiNextItemData_GetFocusScopeId(ImGuiNextItemData *self) { return self->FocusScopeId; } void wrap_ImGuiNextItemData_SetSelectionUserData(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiSelectionUserData v) { ImGuiNextItemDataPtr->SelectionUserData = v; } ImGuiSelectionUserData wrap_ImGuiNextItemData_GetSelectionUserData(ImGuiNextItemData *self) { return self->SelectionUserData; } void wrap_ImGuiNextItemData_SetWidth(ImGuiNextItemData *ImGuiNextItemDataPtr, float v) { ImGuiNextItemDataPtr->Width = v; } float wrap_ImGuiNextItemData_GetWidth(ImGuiNextItemData *self) { return self->Width; } void wrap_ImGuiNextItemData_SetShortcut(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiKeyChord v) { ImGuiNextItemDataPtr->Shortcut = v; } ImGuiKeyChord wrap_ImGuiNextItemData_GetShortcut(ImGuiNextItemData *self) { return self->Shortcut; } +void wrap_ImGuiNextItemData_SetShortcutFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiInputFlags v) { ImGuiNextItemDataPtr->ShortcutFlags = v; } +ImGuiInputFlags wrap_ImGuiNextItemData_GetShortcutFlags(ImGuiNextItemData *self) { return self->ShortcutFlags; } void wrap_ImGuiNextItemData_SetOpenVal(ImGuiNextItemData *ImGuiNextItemDataPtr, bool v) { ImGuiNextItemDataPtr->OpenVal = v; } bool wrap_ImGuiNextItemData_GetOpenVal(ImGuiNextItemData *self) { return self->OpenVal; } -void wrap_ImGuiNextItemData_SetOpenCond(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiCond v) { ImGuiNextItemDataPtr->OpenCond = v; } -ImGuiCond wrap_ImGuiNextItemData_GetOpenCond(ImGuiNextItemData *self) { return self->OpenCond; } +void wrap_ImGuiNextItemData_SetOpenCond(ImGuiNextItemData *ImGuiNextItemDataPtr, ImU8 v) { ImGuiNextItemDataPtr->OpenCond = v; } +ImU8 wrap_ImGuiNextItemData_GetOpenCond(ImGuiNextItemData *self) { return self->OpenCond; } +void wrap_ImGuiNextItemData_SetRefVal(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiDataTypeStorage v) { ImGuiNextItemDataPtr->RefVal = v; } +ImGuiDataTypeStorage wrap_ImGuiNextItemData_GetRefVal(ImGuiNextItemData *self) { return self->RefVal; } +void wrap_ImGuiNextItemData_SetStorageId(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiID v) { ImGuiNextItemDataPtr->StorageId = v; } +ImGuiID wrap_ImGuiNextItemData_GetStorageId(ImGuiNextItemData *self) { return self->StorageId; } void wrap_ImGuiNextWindowData_SetFlags(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiNextWindowDataFlags v) { ImGuiNextWindowDataPtr->Flags = v; } ImGuiNextWindowDataFlags wrap_ImGuiNextWindowData_GetFlags(ImGuiNextWindowData *self) { return self->Flags; } void wrap_ImGuiNextWindowData_SetPosCond(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiCond v) { ImGuiNextWindowDataPtr->PosCond = v; } @@ -1568,6 +1696,8 @@ void wrap_ImGuiNextWindowData_SetWindowClass(ImGuiNextWindowData *ImGuiNextWindo ImGuiWindowClass wrap_ImGuiNextWindowData_GetWindowClass(ImGuiNextWindowData *self) { return self->WindowClass; } void wrap_ImGuiNextWindowData_SetMenuBarOffsetMinVal(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImVec2 v) { ImGuiNextWindowDataPtr->MenuBarOffsetMinVal = v; } ImVec2 wrap_ImGuiNextWindowData_GetMenuBarOffsetMinVal(ImGuiNextWindowData *self) { return self->MenuBarOffsetMinVal; } +void wrap_ImGuiNextWindowData_SetRefreshFlagsVal(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiWindowRefreshFlags v) { ImGuiNextWindowDataPtr->RefreshFlagsVal = v; } +ImGuiWindowRefreshFlags wrap_ImGuiNextWindowData_GetRefreshFlagsVal(ImGuiNextWindowData *self) { return self->RefreshFlagsVal; } void wrap_ImGuiOldColumnData_SetOffsetNorm(ImGuiOldColumnData *ImGuiOldColumnDataPtr, float v) { ImGuiOldColumnDataPtr->OffsetNorm = v; } float wrap_ImGuiOldColumnData_GetOffsetNorm(ImGuiOldColumnData *self) { return self->OffsetNorm; } void wrap_ImGuiOldColumnData_SetOffsetNormBeforeResize(ImGuiOldColumnData *ImGuiOldColumnDataPtr, float v) { ImGuiOldColumnDataPtr->OffsetNormBeforeResize = v; } @@ -1628,6 +1758,14 @@ void wrap_ImGuiPayload_SetPreview(ImGuiPayload *ImGuiPayloadPtr, bool v) { ImGui bool wrap_ImGuiPayload_GetPreview(ImGuiPayload *self) { return self->Preview; } void wrap_ImGuiPayload_SetDelivery(ImGuiPayload *ImGuiPayloadPtr, bool v) { ImGuiPayloadPtr->Delivery = v; } bool wrap_ImGuiPayload_GetDelivery(ImGuiPayload *self) { return self->Delivery; } +void wrap_ImGuiPlatformIO_SetPlatform_ClipboardUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v) { ImGuiPlatformIOPtr->Platform_ClipboardUserData = (void*)v; } +uintptr_t wrap_ImGuiPlatformIO_GetPlatform_ClipboardUserData(ImGuiPlatformIO *self) { return (uintptr_t)self->Platform_ClipboardUserData; } +void wrap_ImGuiPlatformIO_SetPlatform_OpenInShellUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v) { ImGuiPlatformIOPtr->Platform_OpenInShellUserData = (void*)v; } +uintptr_t wrap_ImGuiPlatformIO_GetPlatform_OpenInShellUserData(ImGuiPlatformIO *self) { return (uintptr_t)self->Platform_OpenInShellUserData; } +void wrap_ImGuiPlatformIO_SetPlatform_ImeUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v) { ImGuiPlatformIOPtr->Platform_ImeUserData = (void*)v; } +uintptr_t wrap_ImGuiPlatformIO_GetPlatform_ImeUserData(ImGuiPlatformIO *self) { return (uintptr_t)self->Platform_ImeUserData; } +void wrap_ImGuiPlatformIO_SetPlatform_LocaleDecimalPoint(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImWchar v) { ImGuiPlatformIOPtr->Platform_LocaleDecimalPoint = v; } +ImWchar wrap_ImGuiPlatformIO_GetPlatform_LocaleDecimalPoint(ImGuiPlatformIO *self) { return self->Platform_LocaleDecimalPoint; } void wrap_ImGuiPlatformIO_SetMonitors(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImVector_ImGuiPlatformMonitor v) { ImGuiPlatformIOPtr->Monitors = v; } ImVector_ImGuiPlatformMonitor wrap_ImGuiPlatformIO_GetMonitors(ImGuiPlatformIO *self) { return self->Monitors; } void wrap_ImGuiPlatformIO_SetViewports(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImVector_ImGuiViewportPtr v) { ImGuiPlatformIOPtr->Viewports = v; } @@ -1654,8 +1792,8 @@ void wrap_ImGuiPopupData_SetPopupId(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiID v ImGuiID wrap_ImGuiPopupData_GetPopupId(ImGuiPopupData *self) { return self->PopupId; } void wrap_ImGuiPopupData_SetWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v) { ImGuiPopupDataPtr->Window = v; } ImGuiWindow* wrap_ImGuiPopupData_GetWindow(ImGuiPopupData *self) { return self->Window; } -void wrap_ImGuiPopupData_SetBackupNavWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v) { ImGuiPopupDataPtr->BackupNavWindow = v; } -ImGuiWindow* wrap_ImGuiPopupData_GetBackupNavWindow(ImGuiPopupData *self) { return self->BackupNavWindow; } +void wrap_ImGuiPopupData_SetRestoreNavWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v) { ImGuiPopupDataPtr->RestoreNavWindow = v; } +ImGuiWindow* wrap_ImGuiPopupData_GetRestoreNavWindow(ImGuiPopupData *self) { return self->RestoreNavWindow; } void wrap_ImGuiPopupData_SetParentNavLayer(ImGuiPopupData *ImGuiPopupDataPtr, int v) { ImGuiPopupDataPtr->ParentNavLayer = v; } int wrap_ImGuiPopupData_GetParentNavLayer(ImGuiPopupData *self) { return self->ParentNavLayer; } void wrap_ImGuiPopupData_SetOpenFrameCount(ImGuiPopupData *ImGuiPopupDataPtr, int v) { ImGuiPopupDataPtr->OpenFrameCount = v; } @@ -1670,6 +1808,28 @@ void wrap_ImGuiPtrOrIndex_SetPtr(ImGuiPtrOrIndex *ImGuiPtrOrIndexPtr, uintptr_t uintptr_t wrap_ImGuiPtrOrIndex_GetPtr(ImGuiPtrOrIndex *self) { return (uintptr_t)self->Ptr; } void wrap_ImGuiPtrOrIndex_SetIndex(ImGuiPtrOrIndex *ImGuiPtrOrIndexPtr, int v) { ImGuiPtrOrIndexPtr->Index = v; } int wrap_ImGuiPtrOrIndex_GetIndex(ImGuiPtrOrIndex *self) { return self->Index; } +void wrap_ImGuiSelectionBasicStorage_SetSize(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, int v) { ImGuiSelectionBasicStoragePtr->Size = v; } +int wrap_ImGuiSelectionBasicStorage_GetSize(ImGuiSelectionBasicStorage *self) { return self->Size; } +void wrap_ImGuiSelectionBasicStorage_SetPreserveOrder(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, bool v) { ImGuiSelectionBasicStoragePtr->PreserveOrder = v; } +bool wrap_ImGuiSelectionBasicStorage_GetPreserveOrder(ImGuiSelectionBasicStorage *self) { return self->PreserveOrder; } +void wrap_ImGuiSelectionBasicStorage_SetUserData(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, uintptr_t v) { ImGuiSelectionBasicStoragePtr->UserData = (void*)v; } +uintptr_t wrap_ImGuiSelectionBasicStorage_GetUserData(ImGuiSelectionBasicStorage *self) { return (uintptr_t)self->UserData; } +void wrap_ImGuiSelectionBasicStorage_Set_SelectionOrder(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, int v) { ImGuiSelectionBasicStoragePtr->_SelectionOrder = v; } +int wrap_ImGuiSelectionBasicStorage_Get_SelectionOrder(ImGuiSelectionBasicStorage *self) { return self->_SelectionOrder; } +void wrap_ImGuiSelectionBasicStorage_Set_Storage(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, ImGuiStorage v) { ImGuiSelectionBasicStoragePtr->_Storage = v; } +ImGuiStorage wrap_ImGuiSelectionBasicStorage_Get_Storage(ImGuiSelectionBasicStorage *self) { return self->_Storage; } +void wrap_ImGuiSelectionExternalStorage_SetUserData(ImGuiSelectionExternalStorage *ImGuiSelectionExternalStoragePtr, uintptr_t v) { ImGuiSelectionExternalStoragePtr->UserData = (void*)v; } +uintptr_t wrap_ImGuiSelectionExternalStorage_GetUserData(ImGuiSelectionExternalStorage *self) { return (uintptr_t)self->UserData; } +void wrap_ImGuiSelectionRequest_SetType(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionRequestType v) { ImGuiSelectionRequestPtr->Type = v; } +ImGuiSelectionRequestType wrap_ImGuiSelectionRequest_GetType(ImGuiSelectionRequest *self) { return self->Type; } +void wrap_ImGuiSelectionRequest_SetSelected(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, bool v) { ImGuiSelectionRequestPtr->Selected = v; } +bool wrap_ImGuiSelectionRequest_GetSelected(ImGuiSelectionRequest *self) { return self->Selected; } +void wrap_ImGuiSelectionRequest_SetRangeDirection(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImS8 v) { ImGuiSelectionRequestPtr->RangeDirection = v; } +ImS8 wrap_ImGuiSelectionRequest_GetRangeDirection(ImGuiSelectionRequest *self) { return self->RangeDirection; } +void wrap_ImGuiSelectionRequest_SetRangeFirstItem(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionUserData v) { ImGuiSelectionRequestPtr->RangeFirstItem = v; } +ImGuiSelectionUserData wrap_ImGuiSelectionRequest_GetRangeFirstItem(ImGuiSelectionRequest *self) { return self->RangeFirstItem; } +void wrap_ImGuiSelectionRequest_SetRangeLastItem(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionUserData v) { ImGuiSelectionRequestPtr->RangeLastItem = v; } +ImGuiSelectionUserData wrap_ImGuiSelectionRequest_GetRangeLastItem(ImGuiSelectionRequest *self) { return self->RangeLastItem; } void wrap_ImGuiSettingsHandler_SetTypeName(ImGuiSettingsHandler *ImGuiSettingsHandlerPtr, const char* v) { ImGuiSettingsHandlerPtr->TypeName = v; } const char* wrap_ImGuiSettingsHandler_GetTypeName(ImGuiSettingsHandler *self) { return self->TypeName; } void wrap_ImGuiSettingsHandler_SetTypeHash(ImGuiSettingsHandler *ImGuiSettingsHandlerPtr, ImGuiID v) { ImGuiSettingsHandlerPtr->TypeHash = v; } @@ -1782,8 +1942,12 @@ void wrap_ImGuiStyle_SetTabMinWidthForCloseButton(ImGuiStyle *ImGuiStylePtr, flo float wrap_ImGuiStyle_GetTabMinWidthForCloseButton(ImGuiStyle *self) { return self->TabMinWidthForCloseButton; } void wrap_ImGuiStyle_SetTabBarBorderSize(ImGuiStyle *ImGuiStylePtr, float v) { ImGuiStylePtr->TabBarBorderSize = v; } float wrap_ImGuiStyle_GetTabBarBorderSize(ImGuiStyle *self) { return self->TabBarBorderSize; } +void wrap_ImGuiStyle_SetTabBarOverlineSize(ImGuiStyle *ImGuiStylePtr, float v) { ImGuiStylePtr->TabBarOverlineSize = v; } +float wrap_ImGuiStyle_GetTabBarOverlineSize(ImGuiStyle *self) { return self->TabBarOverlineSize; } void wrap_ImGuiStyle_SetTableAngledHeadersAngle(ImGuiStyle *ImGuiStylePtr, float v) { ImGuiStylePtr->TableAngledHeadersAngle = v; } float wrap_ImGuiStyle_GetTableAngledHeadersAngle(ImGuiStyle *self) { return self->TableAngledHeadersAngle; } +void wrap_ImGuiStyle_SetTableAngledHeadersTextAlign(ImGuiStyle *ImGuiStylePtr, ImVec2 v) { ImGuiStylePtr->TableAngledHeadersTextAlign = v; } +ImVec2 wrap_ImGuiStyle_GetTableAngledHeadersTextAlign(ImGuiStyle *self) { return self->TableAngledHeadersTextAlign; } void wrap_ImGuiStyle_SetColorButtonPosition(ImGuiStyle *ImGuiStylePtr, ImGuiDir v) { ImGuiStylePtr->ColorButtonPosition = v; } ImGuiDir wrap_ImGuiStyle_GetColorButtonPosition(ImGuiStyle *self) { return self->ColorButtonPosition; } void wrap_ImGuiStyle_SetButtonTextAlign(ImGuiStyle *ImGuiStylePtr, ImVec2 v) { ImGuiStylePtr->ButtonTextAlign = v; } @@ -1814,7 +1978,7 @@ void wrap_ImGuiStyle_SetCurveTessellationTol(ImGuiStyle *ImGuiStylePtr, float v) float wrap_ImGuiStyle_GetCurveTessellationTol(ImGuiStyle *self) { return self->CurveTessellationTol; } void wrap_ImGuiStyle_SetCircleTessellationMaxError(ImGuiStyle *ImGuiStylePtr, float v) { ImGuiStylePtr->CircleTessellationMaxError = v; } float wrap_ImGuiStyle_GetCircleTessellationMaxError(ImGuiStyle *self) { return self->CircleTessellationMaxError; } -void wrap_ImGuiStyle_SetColors(ImGuiStyle *ImGuiStylePtr, ImVec4* v) { memcpy(ImGuiStylePtr->Colors, v, sizeof(ImVec4)*55); } +void wrap_ImGuiStyle_SetColors(ImGuiStyle *ImGuiStylePtr, ImVec4* v) { memcpy(ImGuiStylePtr->Colors, v, sizeof(ImVec4)*58); } ImVec4* wrap_ImGuiStyle_GetColors(ImGuiStyle *self) { return self->Colors; } void wrap_ImGuiStyle_SetHoverStationaryDelay(ImGuiStyle *ImGuiStylePtr, float v) { ImGuiStylePtr->HoverStationaryDelay = v; } float wrap_ImGuiStyle_GetHoverStationaryDelay(ImGuiStyle *self) { return self->HoverStationaryDelay; } @@ -2161,6 +2325,8 @@ void wrap_ImGuiTableColumn_SetWidthRequest(ImGuiTableColumn *ImGuiTableColumnPtr float wrap_ImGuiTableColumn_GetWidthRequest(ImGuiTableColumn *self) { return self->WidthRequest; } void wrap_ImGuiTableColumn_SetWidthAuto(ImGuiTableColumn *ImGuiTableColumnPtr, float v) { ImGuiTableColumnPtr->WidthAuto = v; } float wrap_ImGuiTableColumn_GetWidthAuto(ImGuiTableColumn *self) { return self->WidthAuto; } +void wrap_ImGuiTableColumn_SetWidthMax(ImGuiTableColumn *ImGuiTableColumnPtr, float v) { ImGuiTableColumnPtr->WidthMax = v; } +float wrap_ImGuiTableColumn_GetWidthMax(ImGuiTableColumn *self) { return self->WidthMax; } void wrap_ImGuiTableColumn_SetStretchWeight(ImGuiTableColumn *ImGuiTableColumnPtr, float v) { ImGuiTableColumnPtr->StretchWeight = v; } float wrap_ImGuiTableColumn_GetStretchWeight(ImGuiTableColumn *self) { return self->StretchWeight; } void wrap_ImGuiTableColumn_SetInitStretchWeightOrWidth(ImGuiTableColumn *ImGuiTableColumnPtr, float v) { ImGuiTableColumnPtr->InitStretchWeightOrWidth = v; } @@ -2255,6 +2421,14 @@ void wrap_ImGuiTableColumnSortSpecs_SetSortOrder(ImGuiTableColumnSortSpecs *ImGu ImS16 wrap_ImGuiTableColumnSortSpecs_GetSortOrder(ImGuiTableColumnSortSpecs *self) { return self->SortOrder; } void wrap_ImGuiTableColumnSortSpecs_SetSortDirection(ImGuiTableColumnSortSpecs *ImGuiTableColumnSortSpecsPtr, ImGuiSortDirection v) { ImGuiTableColumnSortSpecsPtr->SortDirection = v; } ImGuiSortDirection wrap_ImGuiTableColumnSortSpecs_GetSortDirection(ImGuiTableColumnSortSpecs *self) { return self->SortDirection; } +void wrap_ImGuiTableHeaderData_SetIndex(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImGuiTableColumnIdx v) { ImGuiTableHeaderDataPtr->Index = v; } +ImGuiTableColumnIdx wrap_ImGuiTableHeaderData_GetIndex(ImGuiTableHeaderData *self) { return self->Index; } +void wrap_ImGuiTableHeaderData_SetTextColor(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v) { ImGuiTableHeaderDataPtr->TextColor = v; } +ImU32 wrap_ImGuiTableHeaderData_GetTextColor(ImGuiTableHeaderData *self) { return self->TextColor; } +void wrap_ImGuiTableHeaderData_SetBgColor0(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v) { ImGuiTableHeaderDataPtr->BgColor0 = v; } +ImU32 wrap_ImGuiTableHeaderData_GetBgColor0(ImGuiTableHeaderData *self) { return self->BgColor0; } +void wrap_ImGuiTableHeaderData_SetBgColor1(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v) { ImGuiTableHeaderDataPtr->BgColor1 = v; } +ImU32 wrap_ImGuiTableHeaderData_GetBgColor1(ImGuiTableHeaderData *self) { return self->BgColor1; } void wrap_ImGuiTableInstanceData_SetTableInstanceID(ImGuiTableInstanceData *ImGuiTableInstanceDataPtr, ImGuiID v) { ImGuiTableInstanceDataPtr->TableInstanceID = v; } ImGuiID wrap_ImGuiTableInstanceData_GetTableInstanceID(ImGuiTableInstanceData *self) { return self->TableInstanceID; } void wrap_ImGuiTableInstanceData_SetLastOuterHeight(ImGuiTableInstanceData *ImGuiTableInstanceDataPtr, float v) { ImGuiTableInstanceDataPtr->LastOuterHeight = v; } @@ -2291,6 +2465,8 @@ void wrap_ImGuiTableTempData_SetLastTimeActive(ImGuiTableTempData *ImGuiTableTem float wrap_ImGuiTableTempData_GetLastTimeActive(ImGuiTableTempData *self) { return self->LastTimeActive; } void wrap_ImGuiTableTempData_SetAngledHeadersExtraWidth(ImGuiTableTempData *ImGuiTableTempDataPtr, float v) { ImGuiTableTempDataPtr->AngledHeadersExtraWidth = v; } float wrap_ImGuiTableTempData_GetAngledHeadersExtraWidth(ImGuiTableTempData *self) { return self->AngledHeadersExtraWidth; } +void wrap_ImGuiTableTempData_SetAngledHeadersRequests(ImGuiTableTempData *ImGuiTableTempDataPtr, ImVector_ImGuiTableHeaderData v) { ImGuiTableTempDataPtr->AngledHeadersRequests = v; } +ImVector_ImGuiTableHeaderData wrap_ImGuiTableTempData_GetAngledHeadersRequests(ImGuiTableTempData *self) { return self->AngledHeadersRequests; } void wrap_ImGuiTableTempData_SetUserOuterSize(ImGuiTableTempData *ImGuiTableTempDataPtr, ImVec2 v) { ImGuiTableTempDataPtr->UserOuterSize = v; } ImVec2 wrap_ImGuiTableTempData_GetUserOuterSize(ImGuiTableTempData *self) { return self->UserOuterSize; } void wrap_ImGuiTableTempData_SetDrawSplitter(ImGuiTableTempData *ImGuiTableTempDataPtr, ImDrawListSplitter v) { ImGuiTableTempDataPtr->DrawSplitter = v; } @@ -2327,6 +2503,14 @@ void wrap_ImGuiTextRange_SetB(ImGuiTextRange *ImGuiTextRangePtr, const char* v) const char* wrap_ImGuiTextRange_GetB(ImGuiTextRange *self) { return self->b; } void wrap_ImGuiTextRange_SetE(ImGuiTextRange *ImGuiTextRangePtr, const char* v) { ImGuiTextRangePtr->e = v; } const char* wrap_ImGuiTextRange_GetE(ImGuiTextRange *self) { return self->e; } +void wrap_ImGuiTreeNodeStackData_SetID(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiID v) { ImGuiTreeNodeStackDataPtr->ID = v; } +ImGuiID wrap_ImGuiTreeNodeStackData_GetID(ImGuiTreeNodeStackData *self) { return self->ID; } +void wrap_ImGuiTreeNodeStackData_SetTreeFlags(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiTreeNodeFlags v) { ImGuiTreeNodeStackDataPtr->TreeFlags = v; } +ImGuiTreeNodeFlags wrap_ImGuiTreeNodeStackData_GetTreeFlags(ImGuiTreeNodeStackData *self) { return self->TreeFlags; } +void wrap_ImGuiTreeNodeStackData_SetInFlags(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiItemFlags v) { ImGuiTreeNodeStackDataPtr->InFlags = v; } +ImGuiItemFlags wrap_ImGuiTreeNodeStackData_GetInFlags(ImGuiTreeNodeStackData *self) { return self->InFlags; } +void wrap_ImGuiTreeNodeStackData_SetNavRect(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImRect v) { ImGuiTreeNodeStackDataPtr->NavRect = v; } +ImRect wrap_ImGuiTreeNodeStackData_GetNavRect(ImGuiTreeNodeStackData *self) { return self->NavRect; } void wrap_ImGuiTypingSelectRequest_SetFlags(ImGuiTypingSelectRequest *ImGuiTypingSelectRequestPtr, ImGuiTypingSelectFlags v) { ImGuiTypingSelectRequestPtr->Flags = v; } ImGuiTypingSelectFlags wrap_ImGuiTypingSelectRequest_GetFlags(ImGuiTypingSelectRequest *self) { return self->Flags; } void wrap_ImGuiTypingSelectRequest_SetSearchBufferLen(ImGuiTypingSelectRequest *ImGuiTypingSelectRequestPtr, int v) { ImGuiTypingSelectRequestPtr->SearchBufferLen = v; } @@ -2399,6 +2583,8 @@ void wrap_ImGuiViewportP_SetLastNameHash(ImGuiViewportP *ImGuiViewportPPtr, ImGu ImGuiID wrap_ImGuiViewportP_GetLastNameHash(ImGuiViewportP *self) { return self->LastNameHash; } void wrap_ImGuiViewportP_SetLastPos(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->LastPos = v; } ImVec2 wrap_ImGuiViewportP_GetLastPos(ImGuiViewportP *self) { return self->LastPos; } +void wrap_ImGuiViewportP_SetLastSize(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->LastSize = v; } +ImVec2 wrap_ImGuiViewportP_GetLastSize(ImGuiViewportP *self) { return self->LastSize; } void wrap_ImGuiViewportP_SetAlpha(ImGuiViewportP *ImGuiViewportPPtr, float v) { ImGuiViewportPPtr->Alpha = v; } float wrap_ImGuiViewportP_GetAlpha(ImGuiViewportP *self) { return self->Alpha; } void wrap_ImGuiViewportP_SetLastAlpha(ImGuiViewportP *ImGuiViewportPPtr, float v) { ImGuiViewportPPtr->LastAlpha = v; } @@ -2423,14 +2609,14 @@ void wrap_ImGuiViewportP_SetLastPlatformSize(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 wrap_ImGuiViewportP_GetLastPlatformSize(ImGuiViewportP *self) { return self->LastPlatformSize; } void wrap_ImGuiViewportP_SetLastRendererSize(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->LastRendererSize = v; } ImVec2 wrap_ImGuiViewportP_GetLastRendererSize(ImGuiViewportP *self) { return self->LastRendererSize; } -void wrap_ImGuiViewportP_SetWorkOffsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->WorkOffsetMin = v; } -ImVec2 wrap_ImGuiViewportP_GetWorkOffsetMin(ImGuiViewportP *self) { return self->WorkOffsetMin; } -void wrap_ImGuiViewportP_SetWorkOffsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->WorkOffsetMax = v; } -ImVec2 wrap_ImGuiViewportP_GetWorkOffsetMax(ImGuiViewportP *self) { return self->WorkOffsetMax; } -void wrap_ImGuiViewportP_SetBuildWorkOffsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->BuildWorkOffsetMin = v; } -ImVec2 wrap_ImGuiViewportP_GetBuildWorkOffsetMin(ImGuiViewportP *self) { return self->BuildWorkOffsetMin; } -void wrap_ImGuiViewportP_SetBuildWorkOffsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->BuildWorkOffsetMax = v; } -ImVec2 wrap_ImGuiViewportP_GetBuildWorkOffsetMax(ImGuiViewportP *self) { return self->BuildWorkOffsetMax; } +void wrap_ImGuiViewportP_SetWorkInsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->WorkInsetMin = v; } +ImVec2 wrap_ImGuiViewportP_GetWorkInsetMin(ImGuiViewportP *self) { return self->WorkInsetMin; } +void wrap_ImGuiViewportP_SetWorkInsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->WorkInsetMax = v; } +ImVec2 wrap_ImGuiViewportP_GetWorkInsetMax(ImGuiViewportP *self) { return self->WorkInsetMax; } +void wrap_ImGuiViewportP_SetBuildWorkInsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->BuildWorkInsetMin = v; } +ImVec2 wrap_ImGuiViewportP_GetBuildWorkInsetMin(ImGuiViewportP *self) { return self->BuildWorkInsetMin; } +void wrap_ImGuiViewportP_SetBuildWorkInsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v) { ImGuiViewportPPtr->BuildWorkInsetMax = v; } +ImVec2 wrap_ImGuiViewportP_GetBuildWorkInsetMax(ImGuiViewportP *self) { return self->BuildWorkInsetMax; } void wrap_ImGuiWindow_SetCtx(ImGuiWindow *ImGuiWindowPtr, ImGuiContext* v) { ImGuiWindowPtr->Ctx = v; } ImGuiContext* wrap_ImGuiWindow_GetCtx(ImGuiWindow *self) { return self->Ctx; } void wrap_ImGuiWindow_SetName(ImGuiWindow *ImGuiWindowPtr, char* v) { ImGuiWindowPtr->Name = v; } @@ -2471,6 +2657,10 @@ void wrap_ImGuiWindow_SetWindowRounding(ImGuiWindow *ImGuiWindowPtr, float v) { float wrap_ImGuiWindow_GetWindowRounding(ImGuiWindow *self) { return self->WindowRounding; } void wrap_ImGuiWindow_SetWindowBorderSize(ImGuiWindow *ImGuiWindowPtr, float v) { ImGuiWindowPtr->WindowBorderSize = v; } float wrap_ImGuiWindow_GetWindowBorderSize(ImGuiWindow *self) { return self->WindowBorderSize; } +void wrap_ImGuiWindow_SetTitleBarHeight(ImGuiWindow *ImGuiWindowPtr, float v) { ImGuiWindowPtr->TitleBarHeight = v; } +float wrap_ImGuiWindow_GetTitleBarHeight(ImGuiWindow *self) { return self->TitleBarHeight; } +void wrap_ImGuiWindow_SetMenuBarHeight(ImGuiWindow *ImGuiWindowPtr, float v) { ImGuiWindowPtr->MenuBarHeight = v; } +float wrap_ImGuiWindow_GetMenuBarHeight(ImGuiWindow *self) { return self->MenuBarHeight; } void wrap_ImGuiWindow_SetDecoOuterSizeX1(ImGuiWindow *ImGuiWindowPtr, float v) { ImGuiWindowPtr->DecoOuterSizeX1 = v; } float wrap_ImGuiWindow_GetDecoOuterSizeX1(ImGuiWindow *self) { return self->DecoOuterSizeX1; } void wrap_ImGuiWindow_SetDecoOuterSizeY1(ImGuiWindow *ImGuiWindowPtr, float v) { ImGuiWindowPtr->DecoOuterSizeY1 = v; } @@ -2491,6 +2681,8 @@ void wrap_ImGuiWindow_SetTabId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v) { ImGuiWi ImGuiID wrap_ImGuiWindow_GetTabId(ImGuiWindow *self) { return self->TabId; } void wrap_ImGuiWindow_SetChildId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v) { ImGuiWindowPtr->ChildId = v; } ImGuiID wrap_ImGuiWindow_GetChildId(ImGuiWindow *self) { return self->ChildId; } +void wrap_ImGuiWindow_SetPopupId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v) { ImGuiWindowPtr->PopupId = v; } +ImGuiID wrap_ImGuiWindow_GetPopupId(ImGuiWindow *self) { return self->PopupId; } void wrap_ImGuiWindow_SetScroll(ImGuiWindow *ImGuiWindowPtr, ImVec2 v) { ImGuiWindowPtr->Scroll = v; } ImVec2 wrap_ImGuiWindow_GetScroll(ImGuiWindow *self) { return self->Scroll; } void wrap_ImGuiWindow_SetScrollMax(ImGuiWindow *ImGuiWindowPtr, ImVec2 v) { ImGuiWindowPtr->ScrollMax = v; } @@ -2521,6 +2713,8 @@ void wrap_ImGuiWindow_SetWantCollapseToggle(ImGuiWindow *ImGuiWindowPtr, bool v) bool wrap_ImGuiWindow_GetWantCollapseToggle(ImGuiWindow *self) { return self->WantCollapseToggle; } void wrap_ImGuiWindow_SetSkipItems(ImGuiWindow *ImGuiWindowPtr, bool v) { ImGuiWindowPtr->SkipItems = v; } bool wrap_ImGuiWindow_GetSkipItems(ImGuiWindow *self) { return self->SkipItems; } +void wrap_ImGuiWindow_SetSkipRefresh(ImGuiWindow *ImGuiWindowPtr, bool v) { ImGuiWindowPtr->SkipRefresh = v; } +bool wrap_ImGuiWindow_GetSkipRefresh(ImGuiWindow *self) { return self->SkipRefresh; } void wrap_ImGuiWindow_SetAppearing(ImGuiWindow *ImGuiWindowPtr, bool v) { ImGuiWindowPtr->Appearing = v; } bool wrap_ImGuiWindow_GetAppearing(ImGuiWindow *self) { return self->Appearing; } void wrap_ImGuiWindow_SetHidden(ImGuiWindow *ImGuiWindowPtr, bool v) { ImGuiWindowPtr->Hidden = v; } @@ -2545,8 +2739,6 @@ void wrap_ImGuiWindow_SetBeginOrderWithinContext(ImGuiWindow *ImGuiWindowPtr, sh short wrap_ImGuiWindow_GetBeginOrderWithinContext(ImGuiWindow *self) { return self->BeginOrderWithinContext; } void wrap_ImGuiWindow_SetFocusOrder(ImGuiWindow *ImGuiWindowPtr, short v) { ImGuiWindowPtr->FocusOrder = v; } short wrap_ImGuiWindow_GetFocusOrder(ImGuiWindow *self) { return self->FocusOrder; } -void wrap_ImGuiWindow_SetPopupId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v) { ImGuiWindowPtr->PopupId = v; } -ImGuiID wrap_ImGuiWindow_GetPopupId(ImGuiWindow *self) { return self->PopupId; } void wrap_ImGuiWindow_SetAutoFitFramesX(ImGuiWindow *ImGuiWindowPtr, ImS8 v) { ImGuiWindowPtr->AutoFitFramesX = v; } ImS8 wrap_ImGuiWindow_GetAutoFitFramesX(ImGuiWindow *self) { return self->AutoFitFramesX; } void wrap_ImGuiWindow_SetAutoFitFramesY(ImGuiWindow *ImGuiWindowPtr, ImS8 v) { ImGuiWindowPtr->AutoFitFramesY = v; } @@ -2693,7 +2885,7 @@ void wrap_ImGuiWindowClass_SetDockingAlwaysTabBar(ImGuiWindowClass *ImGuiWindowC bool wrap_ImGuiWindowClass_GetDockingAlwaysTabBar(ImGuiWindowClass *self) { return self->DockingAlwaysTabBar; } void wrap_ImGuiWindowClass_SetDockingAllowUnclassed(ImGuiWindowClass *ImGuiWindowClassPtr, bool v) { ImGuiWindowClassPtr->DockingAllowUnclassed = v; } bool wrap_ImGuiWindowClass_GetDockingAllowUnclassed(ImGuiWindowClass *self) { return self->DockingAllowUnclassed; } -void wrap_ImGuiWindowDockStyle_SetColors(ImGuiWindowDockStyle *ImGuiWindowDockStylePtr, ImU32* v) { memcpy(ImGuiWindowDockStylePtr->Colors, v, sizeof(ImU32)*6); } +void wrap_ImGuiWindowDockStyle_SetColors(ImGuiWindowDockStyle *ImGuiWindowDockStylePtr, ImU32* v) { memcpy(ImGuiWindowDockStylePtr->Colors, v, sizeof(ImU32)*8); } ImU32* wrap_ImGuiWindowDockStyle_GetColors(ImGuiWindowDockStyle *self) { return self->Colors; } void wrap_ImGuiWindowSettings_SetID(ImGuiWindowSettings *ImGuiWindowSettingsPtr, ImGuiID v) { ImGuiWindowSettingsPtr->ID = v; } ImGuiID wrap_ImGuiWindowSettings_GetID(ImGuiWindowSettings *self) { return self->ID; } @@ -2725,6 +2917,8 @@ void wrap_ImGuiWindowStackData_SetParentLastItemDataBackup(ImGuiWindowStackData ImGuiLastItemData wrap_ImGuiWindowStackData_GetParentLastItemDataBackup(ImGuiWindowStackData *self) { return self->ParentLastItemDataBackup; } void wrap_ImGuiWindowStackData_SetStackSizesOnBegin(ImGuiWindowStackData *ImGuiWindowStackDataPtr, ImGuiStackSizes v) { ImGuiWindowStackDataPtr->StackSizesOnBegin = v; } ImGuiStackSizes wrap_ImGuiWindowStackData_GetStackSizesOnBegin(ImGuiWindowStackData *self) { return self->StackSizesOnBegin; } +void wrap_ImGuiWindowStackData_SetDisabledOverrideReenable(ImGuiWindowStackData *ImGuiWindowStackDataPtr, bool v) { ImGuiWindowStackDataPtr->DisabledOverrideReenable = v; } +bool wrap_ImGuiWindowStackData_GetDisabledOverrideReenable(ImGuiWindowStackData *self) { return self->DisabledOverrideReenable; } void wrap_ImGuiWindowTempData_SetCursorPos(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVec2 v) { ImGuiWindowTempDataPtr->CursorPos = v; } ImVec2 wrap_ImGuiWindowTempData_GetCursorPos(ImGuiWindowTempData *self) { return self->CursorPos; } void wrap_ImGuiWindowTempData_SetCursorPosPrevLine(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVec2 v) { ImGuiWindowTempDataPtr->CursorPosPrevLine = v; } @@ -2775,8 +2969,8 @@ void wrap_ImGuiWindowTempData_SetMenuColumns(ImGuiWindowTempData *ImGuiWindowTem ImGuiMenuColumns wrap_ImGuiWindowTempData_GetMenuColumns(ImGuiWindowTempData *self) { return self->MenuColumns; } void wrap_ImGuiWindowTempData_SetTreeDepth(ImGuiWindowTempData *ImGuiWindowTempDataPtr, int v) { ImGuiWindowTempDataPtr->TreeDepth = v; } int wrap_ImGuiWindowTempData_GetTreeDepth(ImGuiWindowTempData *self) { return self->TreeDepth; } -void wrap_ImGuiWindowTempData_SetTreeJumpToParentOnPopMask(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImU32 v) { ImGuiWindowTempDataPtr->TreeJumpToParentOnPopMask = v; } -ImU32 wrap_ImGuiWindowTempData_GetTreeJumpToParentOnPopMask(ImGuiWindowTempData *self) { return self->TreeJumpToParentOnPopMask; } +void wrap_ImGuiWindowTempData_SetTreeHasStackDataDepthMask(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImU32 v) { ImGuiWindowTempDataPtr->TreeHasStackDataDepthMask = v; } +ImU32 wrap_ImGuiWindowTempData_GetTreeHasStackDataDepthMask(ImGuiWindowTempData *self) { return self->TreeHasStackDataDepthMask; } void wrap_ImGuiWindowTempData_SetChildWindows(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVector_ImGuiWindowPtr v) { ImGuiWindowTempDataPtr->ChildWindows = v; } ImVector_ImGuiWindowPtr wrap_ImGuiWindowTempData_GetChildWindows(ImGuiWindowTempData *self) { return self->ChildWindows; } void wrap_ImGuiWindowTempData_SetStateStorage(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImGuiStorage* v) { ImGuiWindowTempDataPtr->StateStorage = v; } @@ -2812,65 +3006,3 @@ void wrap_ImVec4_SetX(ImVec4 *ImVec4Ptr, float v) { ImVec4Ptr->x = v; } void wrap_ImVec4_SetY(ImVec4 *ImVec4Ptr, float v) { ImVec4Ptr->y = v; } void wrap_ImVec4_SetZ(ImVec4 *ImVec4Ptr, float v) { ImVec4Ptr->z = v; } void wrap_ImVec4_SetW(ImVec4 *ImVec4Ptr, float v) { ImVec4Ptr->w = v; } -void wrap_STB_TexteditState_SetCursor(STB_TexteditState *STB_TexteditStatePtr, int v) { STB_TexteditStatePtr->cursor = v; } -int wrap_STB_TexteditState_GetCursor(STB_TexteditState *self) { return self->cursor; } -void wrap_STB_TexteditState_SetSelect_start(STB_TexteditState *STB_TexteditStatePtr, int v) { STB_TexteditStatePtr->select_start = v; } -int wrap_STB_TexteditState_GetSelect_start(STB_TexteditState *self) { return self->select_start; } -void wrap_STB_TexteditState_SetSelect_end(STB_TexteditState *STB_TexteditStatePtr, int v) { STB_TexteditStatePtr->select_end = v; } -int wrap_STB_TexteditState_GetSelect_end(STB_TexteditState *self) { return self->select_end; } -void wrap_STB_TexteditState_SetInsert_mode(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->insert_mode = v; } -unsigned char wrap_STB_TexteditState_GetInsert_mode(STB_TexteditState *self) { return self->insert_mode; } -void wrap_STB_TexteditState_SetRow_count_per_page(STB_TexteditState *STB_TexteditStatePtr, int v) { STB_TexteditStatePtr->row_count_per_page = v; } -int wrap_STB_TexteditState_GetRow_count_per_page(STB_TexteditState *self) { return self->row_count_per_page; } -void wrap_STB_TexteditState_SetCursor_at_end_of_line(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->cursor_at_end_of_line = v; } -unsigned char wrap_STB_TexteditState_GetCursor_at_end_of_line(STB_TexteditState *self) { return self->cursor_at_end_of_line; } -void wrap_STB_TexteditState_SetInitialized(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->initialized = v; } -unsigned char wrap_STB_TexteditState_GetInitialized(STB_TexteditState *self) { return self->initialized; } -void wrap_STB_TexteditState_SetHas_preferred_x(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->has_preferred_x = v; } -unsigned char wrap_STB_TexteditState_GetHas_preferred_x(STB_TexteditState *self) { return self->has_preferred_x; } -void wrap_STB_TexteditState_SetSingle_line(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->single_line = v; } -unsigned char wrap_STB_TexteditState_GetSingle_line(STB_TexteditState *self) { return self->single_line; } -void wrap_STB_TexteditState_SetPadding1(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->padding1 = v; } -unsigned char wrap_STB_TexteditState_GetPadding1(STB_TexteditState *self) { return self->padding1; } -void wrap_STB_TexteditState_SetPadding2(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->padding2 = v; } -unsigned char wrap_STB_TexteditState_GetPadding2(STB_TexteditState *self) { return self->padding2; } -void wrap_STB_TexteditState_SetPadding3(STB_TexteditState *STB_TexteditStatePtr, unsigned char v) { STB_TexteditStatePtr->padding3 = v; } -unsigned char wrap_STB_TexteditState_GetPadding3(STB_TexteditState *self) { return self->padding3; } -void wrap_STB_TexteditState_SetPreferred_x(STB_TexteditState *STB_TexteditStatePtr, float v) { STB_TexteditStatePtr->preferred_x = v; } -float wrap_STB_TexteditState_GetPreferred_x(STB_TexteditState *self) { return self->preferred_x; } -void wrap_STB_TexteditState_SetUndostate(STB_TexteditState *STB_TexteditStatePtr, StbUndoState v) { STB_TexteditStatePtr->undostate = v; } -StbUndoState wrap_STB_TexteditState_GetUndostate(STB_TexteditState *self) { return self->undostate; } -void wrap_StbTexteditRow_SetX0(StbTexteditRow *StbTexteditRowPtr, float v) { StbTexteditRowPtr->x0 = v; } -float wrap_StbTexteditRow_GetX0(StbTexteditRow *self) { return self->x0; } -void wrap_StbTexteditRow_SetX1(StbTexteditRow *StbTexteditRowPtr, float v) { StbTexteditRowPtr->x1 = v; } -float wrap_StbTexteditRow_GetX1(StbTexteditRow *self) { return self->x1; } -void wrap_StbTexteditRow_SetBaseline_y_delta(StbTexteditRow *StbTexteditRowPtr, float v) { StbTexteditRowPtr->baseline_y_delta = v; } -float wrap_StbTexteditRow_GetBaseline_y_delta(StbTexteditRow *self) { return self->baseline_y_delta; } -void wrap_StbTexteditRow_SetYmin(StbTexteditRow *StbTexteditRowPtr, float v) { StbTexteditRowPtr->ymin = v; } -float wrap_StbTexteditRow_GetYmin(StbTexteditRow *self) { return self->ymin; } -void wrap_StbTexteditRow_SetYmax(StbTexteditRow *StbTexteditRowPtr, float v) { StbTexteditRowPtr->ymax = v; } -float wrap_StbTexteditRow_GetYmax(StbTexteditRow *self) { return self->ymax; } -void wrap_StbTexteditRow_SetNum_chars(StbTexteditRow *StbTexteditRowPtr, int v) { StbTexteditRowPtr->num_chars = v; } -int wrap_StbTexteditRow_GetNum_chars(StbTexteditRow *self) { return self->num_chars; } -void wrap_StbUndoRecord_SetWhere(StbUndoRecord *StbUndoRecordPtr, int v) { StbUndoRecordPtr->where = v; } -int wrap_StbUndoRecord_GetWhere(StbUndoRecord *self) { return self->where; } -void wrap_StbUndoRecord_SetInsert_length(StbUndoRecord *StbUndoRecordPtr, int v) { StbUndoRecordPtr->insert_length = v; } -int wrap_StbUndoRecord_GetInsert_length(StbUndoRecord *self) { return self->insert_length; } -void wrap_StbUndoRecord_SetDelete_length(StbUndoRecord *StbUndoRecordPtr, int v) { StbUndoRecordPtr->delete_length = v; } -int wrap_StbUndoRecord_GetDelete_length(StbUndoRecord *self) { return self->delete_length; } -void wrap_StbUndoRecord_SetChar_storage(StbUndoRecord *StbUndoRecordPtr, int v) { StbUndoRecordPtr->char_storage = v; } -int wrap_StbUndoRecord_GetChar_storage(StbUndoRecord *self) { return self->char_storage; } -void wrap_StbUndoState_SetUndo_rec(StbUndoState *StbUndoStatePtr, StbUndoRecord* v) { memcpy(StbUndoStatePtr->undo_rec, v, sizeof(StbUndoRecord)*99); } -StbUndoRecord* wrap_StbUndoState_GetUndo_rec(StbUndoState *self) { return self->undo_rec; } -StbUndoRecord cimgui_StbUndoRecord_GetAtIdx(StbUndoRecord *self, int index) { return self[index]; } -void wrap_StbUndoState_SetUndo_char(StbUndoState *StbUndoStatePtr, ImWchar* v) { memcpy(StbUndoStatePtr->undo_char, v, sizeof(ImWchar)*999); } -ImWchar* wrap_StbUndoState_GetUndo_char(StbUndoState *self) { return self->undo_char; } -ImWchar cimgui_ImWchar_GetAtIdx(ImWchar *self, int index) { return self[index]; } -void wrap_StbUndoState_SetUndo_point(StbUndoState *StbUndoStatePtr, short v) { StbUndoStatePtr->undo_point = v; } -short wrap_StbUndoState_GetUndo_point(StbUndoState *self) { return self->undo_point; } -void wrap_StbUndoState_SetRedo_point(StbUndoState *StbUndoStatePtr, short v) { StbUndoStatePtr->redo_point = v; } -short wrap_StbUndoState_GetRedo_point(StbUndoState *self) { return self->redo_point; } -void wrap_StbUndoState_SetUndo_char_point(StbUndoState *StbUndoStatePtr, int v) { StbUndoStatePtr->undo_char_point = v; } -int wrap_StbUndoState_GetUndo_char_point(StbUndoState *self) { return self->undo_char_point; } -void wrap_StbUndoState_SetRedo_char_point(StbUndoState *StbUndoStatePtr, int v) { StbUndoStatePtr->redo_char_point = v; } -int wrap_StbUndoState_GetRedo_char_point(StbUndoState *self) { return self->redo_char_point; } diff --git a/cimgui_structs_accessor.h b/cimgui_structs_accessor.h index fb95f1515..72aafe20a 100644 --- a/cimgui_structs_accessor.h +++ b/cimgui_structs_accessor.h @@ -72,30 +72,32 @@ extern void wrap_ImDrawList_Set_VtxCurrentIdx(ImDrawList *ImDrawListPtr, unsigne extern unsigned int wrap_ImDrawList_Get_VtxCurrentIdx(ImDrawList *self); extern void wrap_ImDrawList_Set_Data(ImDrawList *ImDrawListPtr, ImDrawListSharedData* v); extern ImDrawListSharedData* wrap_ImDrawList_Get_Data(ImDrawList *self); -extern void wrap_ImDrawList_Set_OwnerName(ImDrawList *ImDrawListPtr, const char* v); -extern const char* wrap_ImDrawList_Get_OwnerName(ImDrawList *self); extern void wrap_ImDrawList_Set_VtxWritePtr(ImDrawList *ImDrawListPtr, ImDrawVert* v); extern ImDrawVert* wrap_ImDrawList_Get_VtxWritePtr(ImDrawList *self); extern void wrap_ImDrawList_Set_IdxWritePtr(ImDrawList *ImDrawListPtr, ImDrawIdx* v); extern ImDrawIdx* wrap_ImDrawList_Get_IdxWritePtr(ImDrawList *self); -extern void wrap_ImDrawList_Set_ClipRectStack(ImDrawList *ImDrawListPtr, ImVector_ImVec4 v); -extern ImVector_ImVec4 wrap_ImDrawList_Get_ClipRectStack(ImDrawList *self); -extern void wrap_ImDrawList_Set_TextureIdStack(ImDrawList *ImDrawListPtr, ImVector_ImTextureID v); -extern ImVector_ImTextureID wrap_ImDrawList_Get_TextureIdStack(ImDrawList *self); extern void wrap_ImDrawList_Set_Path(ImDrawList *ImDrawListPtr, ImVector_ImVec2 v); extern ImVector_ImVec2 wrap_ImDrawList_Get_Path(ImDrawList *self); extern void wrap_ImDrawList_Set_CmdHeader(ImDrawList *ImDrawListPtr, ImDrawCmdHeader v); extern ImDrawCmdHeader wrap_ImDrawList_Get_CmdHeader(ImDrawList *self); extern void wrap_ImDrawList_Set_Splitter(ImDrawList *ImDrawListPtr, ImDrawListSplitter v); extern ImDrawListSplitter wrap_ImDrawList_Get_Splitter(ImDrawList *self); +extern void wrap_ImDrawList_Set_ClipRectStack(ImDrawList *ImDrawListPtr, ImVector_ImVec4 v); +extern ImVector_ImVec4 wrap_ImDrawList_Get_ClipRectStack(ImDrawList *self); +extern void wrap_ImDrawList_Set_TextureIdStack(ImDrawList *ImDrawListPtr, ImVector_ImTextureID v); +extern ImVector_ImTextureID wrap_ImDrawList_Get_TextureIdStack(ImDrawList *self); extern void wrap_ImDrawList_Set_FringeScale(ImDrawList *ImDrawListPtr, float v); extern float wrap_ImDrawList_Get_FringeScale(ImDrawList *self); +extern void wrap_ImDrawList_Set_OwnerName(ImDrawList *ImDrawListPtr, const char* v); +extern const char* wrap_ImDrawList_Get_OwnerName(ImDrawList *self); extern void wrap_ImDrawListSharedData_SetTexUvWhitePixel(ImDrawListSharedData *ImDrawListSharedDataPtr, ImVec2 v); extern ImVec2 wrap_ImDrawListSharedData_GetTexUvWhitePixel(ImDrawListSharedData *self); extern void wrap_ImDrawListSharedData_SetFont(ImDrawListSharedData *ImDrawListSharedDataPtr, ImFont* v); extern ImFont* wrap_ImDrawListSharedData_GetFont(ImDrawListSharedData *self); extern void wrap_ImDrawListSharedData_SetFontSize(ImDrawListSharedData *ImDrawListSharedDataPtr, float v); extern float wrap_ImDrawListSharedData_GetFontSize(ImDrawListSharedData *self); +extern void wrap_ImDrawListSharedData_SetFontScale(ImDrawListSharedData *ImDrawListSharedDataPtr, float v); +extern float wrap_ImDrawListSharedData_GetFontScale(ImDrawListSharedData *self); extern void wrap_ImDrawListSharedData_SetCurveTessellationTol(ImDrawListSharedData *ImDrawListSharedDataPtr, float v); extern float wrap_ImDrawListSharedData_GetCurveTessellationTol(ImDrawListSharedData *self); extern void wrap_ImDrawListSharedData_SetCircleSegmentMaxError(ImDrawListSharedData *ImDrawListSharedDataPtr, float v); @@ -294,6 +296,36 @@ extern void wrap_ImFontGlyph_SetV1(ImFontGlyph *ImFontGlyphPtr, float v); extern float wrap_ImFontGlyph_GetV1(ImFontGlyph *self); extern void wrap_ImFontGlyphRangesBuilder_SetUsedChars(ImFontGlyphRangesBuilder *ImFontGlyphRangesBuilderPtr, ImVector_ImU32 v); extern ImVector_ImU32 wrap_ImFontGlyphRangesBuilder_GetUsedChars(ImFontGlyphRangesBuilder *self); +extern void wrap_ImGuiBoxSelectState_SetID(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiID v); +extern ImGuiID wrap_ImGuiBoxSelectState_GetID(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetIsActive(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetIsActive(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetIsStarting(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetIsStarting(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetIsStartedFromVoid(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetIsStartedFromVoid(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetIsStartedSetNavIdOnce(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetIsStartedSetNavIdOnce(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetRequestClear(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetRequestClear(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetKeyMods(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiKeyChord v); +extern ImGuiKeyChord wrap_ImGuiBoxSelectState_GetKeyMods(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetStartPosRel(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v); +extern ImVec2 wrap_ImGuiBoxSelectState_GetStartPosRel(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetEndPosRel(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v); +extern ImVec2 wrap_ImGuiBoxSelectState_GetEndPosRel(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetScrollAccum(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImVec2 v); +extern ImVec2 wrap_ImGuiBoxSelectState_GetScrollAccum(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetWindow(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImGuiWindow* v); +extern ImGuiWindow* wrap_ImGuiBoxSelectState_GetWindow(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetUnclipMode(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, bool v); +extern bool wrap_ImGuiBoxSelectState_GetUnclipMode(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetUnclipRect(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v); +extern ImRect wrap_ImGuiBoxSelectState_GetUnclipRect(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetBoxSelectRectPrev(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v); +extern ImRect wrap_ImGuiBoxSelectState_GetBoxSelectRectPrev(ImGuiBoxSelectState *self); +extern void wrap_ImGuiBoxSelectState_SetBoxSelectRectCurr(ImGuiBoxSelectState *ImGuiBoxSelectStatePtr, ImRect v); +extern ImRect wrap_ImGuiBoxSelectState_GetBoxSelectRectCurr(ImGuiBoxSelectState *self); extern void wrap_ImGuiColorMod_SetCol(ImGuiColorMod *ImGuiColorModPtr, ImGuiCol v); extern ImGuiCol wrap_ImGuiColorMod_GetCol(ImGuiColorMod *self); extern void wrap_ImGuiColorMod_SetBackupValue(ImGuiColorMod *ImGuiColorModPtr, ImVec4 v); @@ -330,6 +362,10 @@ extern void wrap_ImGuiContext_SetFontSize(ImGuiContext *ImGuiContextPtr, float v extern float wrap_ImGuiContext_GetFontSize(ImGuiContext *self); extern void wrap_ImGuiContext_SetFontBaseSize(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetFontBaseSize(ImGuiContext *self); +extern void wrap_ImGuiContext_SetFontScale(ImGuiContext *ImGuiContextPtr, float v); +extern float wrap_ImGuiContext_GetFontScale(ImGuiContext *self); +extern void wrap_ImGuiContext_SetCurrentDpiScale(ImGuiContext *ImGuiContextPtr, float v); +extern float wrap_ImGuiContext_GetCurrentDpiScale(ImGuiContext *self); extern void wrap_ImGuiContext_SetDrawListSharedData(ImGuiContext *ImGuiContextPtr, ImDrawListSharedData v); extern ImDrawListSharedData wrap_ImGuiContext_GetDrawListSharedData(ImGuiContext *self); extern void wrap_ImGuiContext_SetTime(ImGuiContext *ImGuiContextPtr, double v); @@ -354,6 +390,8 @@ extern void wrap_ImGuiContext_SetTestEngineHookItems(ImGuiContext *ImGuiContextP extern bool wrap_ImGuiContext_GetTestEngineHookItems(ImGuiContext *self); extern void wrap_ImGuiContext_SetTestEngine(ImGuiContext *ImGuiContextPtr, uintptr_t v); extern uintptr_t wrap_ImGuiContext_GetTestEngine(ImGuiContext *self); +extern void wrap_ImGuiContext_SetContextName(ImGuiContext *ImGuiContextPtr, char* v); +extern char* wrap_ImGuiContext_GetContextName(ImGuiContext *self); extern void wrap_ImGuiContext_SetInputEventsQueue(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiInputEvent v); extern ImVector_ImGuiInputEvent wrap_ImGuiContext_GetInputEventsQueue(ImGuiContext *self); extern void wrap_ImGuiContext_SetInputEventsTrail(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiInputEvent v); @@ -384,6 +422,8 @@ extern void wrap_ImGuiContext_SetHoveredWindow(ImGuiContext *ImGuiContextPtr, Im extern ImGuiWindow* wrap_ImGuiContext_GetHoveredWindow(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoveredWindowUnderMovingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v); extern ImGuiWindow* wrap_ImGuiContext_GetHoveredWindowUnderMovingWindow(ImGuiContext *self); +extern void wrap_ImGuiContext_SetHoveredWindowBeforeClear(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v); +extern ImGuiWindow* wrap_ImGuiContext_GetHoveredWindowBeforeClear(ImGuiContext *self); extern void wrap_ImGuiContext_SetMovingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v); extern ImGuiWindow* wrap_ImGuiContext_GetMovingWindow(ImGuiContext *self); extern void wrap_ImGuiContext_SetWheelingWindow(ImGuiContext *ImGuiContextPtr, ImGuiWindow* v); @@ -400,20 +440,26 @@ extern void wrap_ImGuiContext_SetWheelingWindowWheelRemainder(ImGuiContext *ImGu extern ImVec2 wrap_ImGuiContext_GetWheelingWindowWheelRemainder(ImGuiContext *self); extern void wrap_ImGuiContext_SetWheelingAxisAvg(ImGuiContext *ImGuiContextPtr, ImVec2 v); extern ImVec2 wrap_ImGuiContext_GetWheelingAxisAvg(ImGuiContext *self); +extern void wrap_ImGuiContext_SetDebugDrawIdConflicts(ImGuiContext *ImGuiContextPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiContext_GetDebugDrawIdConflicts(ImGuiContext *self); extern void wrap_ImGuiContext_SetDebugHookIdInfo(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetDebugHookIdInfo(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoveredId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetHoveredId(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoveredIdPreviousFrame(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetHoveredIdPreviousFrame(ImGuiContext *self); -extern void wrap_ImGuiContext_SetHoveredIdAllowOverlap(ImGuiContext *ImGuiContextPtr, bool v); -extern bool wrap_ImGuiContext_GetHoveredIdAllowOverlap(ImGuiContext *self); -extern void wrap_ImGuiContext_SetHoveredIdDisabled(ImGuiContext *ImGuiContextPtr, bool v); -extern bool wrap_ImGuiContext_GetHoveredIdDisabled(ImGuiContext *self); +extern void wrap_ImGuiContext_SetHoveredIdPreviousFrameItemCount(ImGuiContext *ImGuiContextPtr, int v); +extern int wrap_ImGuiContext_GetHoveredIdPreviousFrameItemCount(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoveredIdTimer(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetHoveredIdTimer(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoveredIdNotActiveTimer(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetHoveredIdNotActiveTimer(ImGuiContext *self); +extern void wrap_ImGuiContext_SetHoveredIdAllowOverlap(ImGuiContext *ImGuiContextPtr, bool v); +extern bool wrap_ImGuiContext_GetHoveredIdAllowOverlap(ImGuiContext *self); +extern void wrap_ImGuiContext_SetHoveredIdIsDisabled(ImGuiContext *ImGuiContextPtr, bool v); +extern bool wrap_ImGuiContext_GetHoveredIdIsDisabled(ImGuiContext *self); +extern void wrap_ImGuiContext_SetItemUnclipByLog(ImGuiContext *ImGuiContextPtr, bool v); +extern bool wrap_ImGuiContext_GetItemUnclipByLog(ImGuiContext *self); extern void wrap_ImGuiContext_SetActiveId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetActiveId(ImGuiContext *self); extern void wrap_ImGuiContext_SetActiveIdIsAlive(ImGuiContext *ImGuiContextPtr, ImGuiID v); @@ -505,12 +551,10 @@ extern void wrap_ImGuiContext_SetOpenPopupStack(ImGuiContext *ImGuiContextPtr, I extern ImVector_ImGuiPopupData wrap_ImGuiContext_GetOpenPopupStack(ImGuiContext *self); extern void wrap_ImGuiContext_SetBeginPopupStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiPopupData v); extern ImVector_ImGuiPopupData wrap_ImGuiContext_GetBeginPopupStack(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavTreeNodeStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiNavTreeNodeData v); -extern ImVector_ImGuiNavTreeNodeData wrap_ImGuiContext_GetNavTreeNodeStack(ImGuiContext *self); +extern void wrap_ImGuiContext_SetTreeNodeStack(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiTreeNodeStackData v); +extern ImVector_ImGuiTreeNodeStackData wrap_ImGuiContext_GetTreeNodeStack(ImGuiContext *self); extern void wrap_ImGuiContext_SetViewports(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiViewportPPtr v); extern ImVector_ImGuiViewportPPtr wrap_ImGuiContext_GetViewports(ImGuiContext *self); -extern void wrap_ImGuiContext_SetCurrentDpiScale(ImGuiContext *ImGuiContextPtr, float v); -extern float wrap_ImGuiContext_GetCurrentDpiScale(ImGuiContext *self); extern void wrap_ImGuiContext_SetCurrentViewport(ImGuiContext *ImGuiContextPtr, ImGuiViewportP* v); extern ImGuiViewportP* wrap_ImGuiContext_GetCurrentViewport(ImGuiContext *self); extern void wrap_ImGuiContext_SetMouseViewport(ImGuiContext *ImGuiContextPtr, ImGuiViewportP* v); @@ -535,8 +579,8 @@ extern void wrap_ImGuiContext_SetNavId(ImGuiContext *ImGuiContextPtr, ImGuiID v) extern ImGuiID wrap_ImGuiContext_GetNavId(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetNavFocusScopeId(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavFocusRoute(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiFocusScopeData v); -extern ImVector_ImGuiFocusScopeData wrap_ImGuiContext_GetNavFocusRoute(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavLayer(ImGuiContext *ImGuiContextPtr, ImGuiNavLayer v); +extern ImGuiNavLayer wrap_ImGuiContext_GetNavLayer(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavActivateId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetNavActivateId(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavActivateDownId(ImGuiContext *ImGuiContextPtr, ImGuiID v); @@ -545,24 +589,18 @@ extern void wrap_ImGuiContext_SetNavActivatePressedId(ImGuiContext *ImGuiContext extern ImGuiID wrap_ImGuiContext_GetNavActivatePressedId(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavActivateFlags(ImGuiContext *ImGuiContextPtr, ImGuiActivateFlags v); extern ImGuiActivateFlags wrap_ImGuiContext_GetNavActivateFlags(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavFocusRoute(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiFocusScopeData v); +extern ImVector_ImGuiFocusScopeData wrap_ImGuiContext_GetNavFocusRoute(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavHighlightActivatedId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetNavHighlightActivatedId(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavHighlightActivatedTimer(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetNavHighlightActivatedTimer(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavJustMovedToId(ImGuiContext *ImGuiContextPtr, ImGuiID v); -extern ImGuiID wrap_ImGuiContext_GetNavJustMovedToId(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v); -extern ImGuiID wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavJustMovedToKeyMods(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v); -extern ImGuiKeyChord wrap_ImGuiContext_GetNavJustMovedToKeyMods(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavNextActivateId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetNavNextActivateId(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavNextActivateFlags(ImGuiContext *ImGuiContextPtr, ImGuiActivateFlags v); extern ImGuiActivateFlags wrap_ImGuiContext_GetNavNextActivateFlags(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavInputSource(ImGuiContext *ImGuiContextPtr, ImGuiInputSource v); extern ImGuiInputSource wrap_ImGuiContext_GetNavInputSource(ImGuiContext *self); -extern void wrap_ImGuiContext_SetNavLayer(ImGuiContext *ImGuiContextPtr, ImGuiNavLayer v); -extern ImGuiNavLayer wrap_ImGuiContext_GetNavLayer(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavLastValidSelectionUserData(ImGuiContext *ImGuiContextPtr, ImGuiSelectionUserData v); extern ImGuiSelectionUserData wrap_ImGuiContext_GetNavLastValidSelectionUserData(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavIdIsAlive(ImGuiContext *ImGuiContextPtr, bool v); @@ -617,6 +655,18 @@ extern void wrap_ImGuiContext_SetNavMoveResultOther(ImGuiContext *ImGuiContextPt extern ImGuiNavItemData wrap_ImGuiContext_GetNavMoveResultOther(ImGuiContext *self); extern void wrap_ImGuiContext_SetNavTabbingResultFirst(ImGuiContext *ImGuiContextPtr, ImGuiNavItemData v); extern ImGuiNavItemData wrap_ImGuiContext_GetNavTabbingResultFirst(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedFromFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiContext_GetNavJustMovedFromFocusScopeId(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedToId(ImGuiContext *ImGuiContextPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiContext_GetNavJustMovedToId(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedToFocusScopeId(ImGuiContext *ImGuiContextPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiContext_GetNavJustMovedToFocusScopeId(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedToKeyMods(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v); +extern ImGuiKeyChord wrap_ImGuiContext_GetNavJustMovedToKeyMods(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedToIsTabbing(ImGuiContext *ImGuiContextPtr, bool v); +extern bool wrap_ImGuiContext_GetNavJustMovedToIsTabbing(ImGuiContext *self); +extern void wrap_ImGuiContext_SetNavJustMovedToHasSelectionData(ImGuiContext *ImGuiContextPtr, bool v); +extern bool wrap_ImGuiContext_GetNavJustMovedToHasSelectionData(ImGuiContext *self); extern void wrap_ImGuiContext_SetConfigNavWindowingKeyNext(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v); extern ImGuiKeyChord wrap_ImGuiContext_GetConfigNavWindowingKeyNext(ImGuiContext *self); extern void wrap_ImGuiContext_SetConfigNavWindowingKeyPrev(ImGuiContext *ImGuiContextPtr, ImGuiKeyChord v); @@ -704,6 +754,16 @@ extern void wrap_ImGuiContext_SetCurrentTabBarStack(ImGuiContext *ImGuiContextPt extern ImVector_ImGuiPtrOrIndex wrap_ImGuiContext_GetCurrentTabBarStack(ImGuiContext *self); extern void wrap_ImGuiContext_SetShrinkWidthBuffer(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiShrinkWidthItem v); extern ImVector_ImGuiShrinkWidthItem wrap_ImGuiContext_GetShrinkWidthBuffer(ImGuiContext *self); +extern void wrap_ImGuiContext_SetBoxSelectState(ImGuiContext *ImGuiContextPtr, ImGuiBoxSelectState v); +extern ImGuiBoxSelectState wrap_ImGuiContext_GetBoxSelectState(ImGuiContext *self); +extern void wrap_ImGuiContext_SetCurrentMultiSelect(ImGuiContext *ImGuiContextPtr, ImGuiMultiSelectTempData* v); +extern ImGuiMultiSelectTempData* wrap_ImGuiContext_GetCurrentMultiSelect(ImGuiContext *self); +extern void wrap_ImGuiContext_SetMultiSelectTempDataStacked(ImGuiContext *ImGuiContextPtr, int v); +extern int wrap_ImGuiContext_GetMultiSelectTempDataStacked(ImGuiContext *self); +extern void wrap_ImGuiContext_SetMultiSelectTempData(ImGuiContext *ImGuiContextPtr, ImVector_ImGuiMultiSelectTempData v); +extern ImVector_ImGuiMultiSelectTempData wrap_ImGuiContext_GetMultiSelectTempData(ImGuiContext *self); +extern void wrap_ImGuiContext_SetMultiSelectStorage(ImGuiContext *ImGuiContextPtr, ImPool_ImGuiMultiSelectState v); +extern ImPool_ImGuiMultiSelectState wrap_ImGuiContext_GetMultiSelectStorage(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoverItemDelayId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetHoverItemDelayId(ImGuiContext *self); extern void wrap_ImGuiContext_SetHoverItemDelayIdPreviousFrame(ImGuiContext *ImGuiContextPtr, ImGuiID v); @@ -730,6 +790,8 @@ extern void wrap_ImGuiContext_SetInputTextPasswordFont(ImGuiContext *ImGuiContex extern ImFont wrap_ImGuiContext_GetInputTextPasswordFont(ImGuiContext *self); extern void wrap_ImGuiContext_SetTempInputId(ImGuiContext *ImGuiContextPtr, ImGuiID v); extern ImGuiID wrap_ImGuiContext_GetTempInputId(ImGuiContext *self); +extern void wrap_ImGuiContext_SetDataTypeZeroValue(ImGuiContext *ImGuiContextPtr, ImGuiDataTypeStorage v); +extern ImGuiDataTypeStorage wrap_ImGuiContext_GetDataTypeZeroValue(ImGuiContext *self); extern void wrap_ImGuiContext_SetBeginMenuDepth(ImGuiContext *ImGuiContextPtr, int v); extern int wrap_ImGuiContext_GetBeginMenuDepth(ImGuiContext *self); extern void wrap_ImGuiContext_SetBeginComboDepth(ImGuiContext *ImGuiContextPtr, int v); @@ -754,6 +816,10 @@ extern void wrap_ImGuiContext_SetWindowResizeBorderExpectedRect(ImGuiContext *Im extern ImRect wrap_ImGuiContext_GetWindowResizeBorderExpectedRect(ImGuiContext *self); extern void wrap_ImGuiContext_SetWindowResizeRelativeMode(ImGuiContext *ImGuiContextPtr, bool v); extern bool wrap_ImGuiContext_GetWindowResizeRelativeMode(ImGuiContext *self); +extern void wrap_ImGuiContext_SetScrollbarSeekMode(ImGuiContext *ImGuiContextPtr, short v); +extern short wrap_ImGuiContext_GetScrollbarSeekMode(ImGuiContext *self); +extern void wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(ImGuiContext *ImGuiContextPtr, float v); +extern float wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(ImGuiContext *self); extern void wrap_ImGuiContext_SetSliderGrabClickOffset(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetSliderGrabClickOffset(ImGuiContext *self); extern void wrap_ImGuiContext_SetSliderCurrentAccum(ImGuiContext *ImGuiContextPtr, float v); @@ -766,8 +832,6 @@ extern void wrap_ImGuiContext_SetDragCurrentAccum(ImGuiContext *ImGuiContextPtr, extern float wrap_ImGuiContext_GetDragCurrentAccum(ImGuiContext *self); extern void wrap_ImGuiContext_SetDragSpeedDefaultRatio(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetDragSpeedDefaultRatio(ImGuiContext *self); -extern void wrap_ImGuiContext_SetScrollbarClickDeltaToGrabCenter(ImGuiContext *ImGuiContextPtr, float v); -extern float wrap_ImGuiContext_GetScrollbarClickDeltaToGrabCenter(ImGuiContext *self); extern void wrap_ImGuiContext_SetDisabledAlphaBackup(ImGuiContext *ImGuiContextPtr, float v); extern float wrap_ImGuiContext_GetDisabledAlphaBackup(ImGuiContext *self); extern void wrap_ImGuiContext_SetDisabledStackSize(ImGuiContext *ImGuiContextPtr, short v); @@ -904,8 +968,8 @@ extern void wrap_ImGuiDataTypeInfo_SetPrintFmt(ImGuiDataTypeInfo *ImGuiDataTypeI extern const char* wrap_ImGuiDataTypeInfo_GetPrintFmt(ImGuiDataTypeInfo *self); extern void wrap_ImGuiDataTypeInfo_SetScanFmt(ImGuiDataTypeInfo *ImGuiDataTypeInfoPtr, const char* v); extern const char* wrap_ImGuiDataTypeInfo_GetScanFmt(ImGuiDataTypeInfo *self); -extern void wrap_ImGuiDataTypeTempStorage_SetData(ImGuiDataTypeTempStorage *ImGuiDataTypeTempStoragePtr, ImU8* v); -extern ImU8* wrap_ImGuiDataTypeTempStorage_GetData(ImGuiDataTypeTempStorage *self); +extern void wrap_ImGuiDataTypeStorage_SetData(ImGuiDataTypeStorage *ImGuiDataTypeStoragePtr, ImU8* v); +extern ImU8* wrap_ImGuiDataTypeStorage_GetData(ImGuiDataTypeStorage *self); extern void wrap_ImGuiDataVarInfo_SetType(ImGuiDataVarInfo *ImGuiDataVarInfoPtr, ImGuiDataType v); extern ImGuiDataType wrap_ImGuiDataVarInfo_GetType(ImGuiDataVarInfo *self); extern void wrap_ImGuiDataVarInfo_SetCount(ImGuiDataVarInfo *ImGuiDataVarInfoPtr, ImU32 v); @@ -1106,6 +1170,8 @@ extern void wrap_ImGuiIO_SetMouseDrawCursor(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetMouseDrawCursor(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigMacOSXBehaviors(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetConfigMacOSXBehaviors(ImGuiIO *self); +extern void wrap_ImGuiIO_SetConfigNavSwapGamepadButtons(ImGuiIO *ImGuiIOPtr, bool v); +extern bool wrap_ImGuiIO_GetConfigNavSwapGamepadButtons(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigInputTrickleEventQueue(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetConfigInputTrickleEventQueue(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigInputTextCursorBlink(ImGuiIO *ImGuiIOPtr, bool v); @@ -1132,6 +1198,8 @@ extern void wrap_ImGuiIO_SetKeyRepeatRate(ImGuiIO *ImGuiIOPtr, float v); extern float wrap_ImGuiIO_GetKeyRepeatRate(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigDebugIsDebuggerPresent(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetConfigDebugIsDebuggerPresent(ImGuiIO *self); +extern void wrap_ImGuiIO_SetConfigDebugHighlightIdConflicts(ImGuiIO *ImGuiIOPtr, bool v); +extern bool wrap_ImGuiIO_GetConfigDebugHighlightIdConflicts(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigDebugBeginReturnValueOnce(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetConfigDebugBeginReturnValueOnce(ImGuiIO *self); extern void wrap_ImGuiIO_SetConfigDebugBeginReturnValueLoop(ImGuiIO *ImGuiIOPtr, bool v); @@ -1150,10 +1218,6 @@ extern void wrap_ImGuiIO_SetBackendRendererUserData(ImGuiIO *ImGuiIOPtr, uintptr extern uintptr_t wrap_ImGuiIO_GetBackendRendererUserData(ImGuiIO *self); extern void wrap_ImGuiIO_SetBackendLanguageUserData(ImGuiIO *ImGuiIOPtr, uintptr_t v); extern uintptr_t wrap_ImGuiIO_GetBackendLanguageUserData(ImGuiIO *self); -extern void wrap_ImGuiIO_SetClipboardUserData(ImGuiIO *ImGuiIOPtr, uintptr_t v); -extern uintptr_t wrap_ImGuiIO_GetClipboardUserData(ImGuiIO *self); -extern void wrap_ImGuiIO_SetPlatformLocaleDecimalPoint(ImGuiIO *ImGuiIOPtr, ImWchar v); -extern ImWchar wrap_ImGuiIO_GetPlatformLocaleDecimalPoint(ImGuiIO *self); extern void wrap_ImGuiIO_SetWantCaptureMouse(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetWantCaptureMouse(ImGuiIO *self); extern void wrap_ImGuiIO_SetWantCaptureKeyboard(ImGuiIO *ImGuiIOPtr, bool v); @@ -1234,6 +1298,8 @@ extern void wrap_ImGuiIO_SetMouseDownOwnedUnlessPopupClose(ImGuiIO *ImGuiIOPtr, extern bool* wrap_ImGuiIO_GetMouseDownOwnedUnlessPopupClose(ImGuiIO *self); extern void wrap_ImGuiIO_SetMouseWheelRequestAxisSwap(ImGuiIO *ImGuiIOPtr, bool v); extern bool wrap_ImGuiIO_GetMouseWheelRequestAxisSwap(ImGuiIO *self); +extern void wrap_ImGuiIO_SetMouseCtrlLeftAsRightClick(ImGuiIO *ImGuiIOPtr, bool v); +extern bool wrap_ImGuiIO_GetMouseCtrlLeftAsRightClick(ImGuiIO *self); extern void wrap_ImGuiIO_SetMouseDownDuration(ImGuiIO *ImGuiIOPtr, float* v); extern float* wrap_ImGuiIO_GetMouseDownDuration(ImGuiIO *self); extern void wrap_ImGuiIO_SetMouseDownDurationPrev(ImGuiIO *ImGuiIOPtr, float* v); @@ -1324,26 +1390,22 @@ extern void wrap_ImGuiInputTextDeactivatedState_SetTextA(ImGuiInputTextDeactivat extern ImVector_char wrap_ImGuiInputTextDeactivatedState_GetTextA(ImGuiInputTextDeactivatedState *self); extern void wrap_ImGuiInputTextState_SetCtx(ImGuiInputTextState *ImGuiInputTextStatePtr, ImGuiContext* v); extern ImGuiContext* wrap_ImGuiInputTextState_GetCtx(ImGuiInputTextState *self); +extern void wrap_ImGuiInputTextState_SetStb(ImGuiInputTextState *ImGuiInputTextStatePtr, ImStbTexteditState* v); +extern ImStbTexteditState* wrap_ImGuiInputTextState_GetStb(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetID(ImGuiInputTextState *ImGuiInputTextStatePtr, ImGuiID v); extern ImGuiID wrap_ImGuiInputTextState_GetID(ImGuiInputTextState *self); -extern void wrap_ImGuiInputTextState_SetCurLenW(ImGuiInputTextState *ImGuiInputTextStatePtr, int v); -extern int wrap_ImGuiInputTextState_GetCurLenW(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetCurLenA(ImGuiInputTextState *ImGuiInputTextStatePtr, int v); extern int wrap_ImGuiInputTextState_GetCurLenA(ImGuiInputTextState *self); -extern void wrap_ImGuiInputTextState_SetTextW(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_ImWchar v); -extern ImVector_ImWchar wrap_ImGuiInputTextState_GetTextW(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetTextA(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v); extern ImVector_char wrap_ImGuiInputTextState_GetTextA(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetInitialTextA(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v); extern ImVector_char wrap_ImGuiInputTextState_GetInitialTextA(ImGuiInputTextState *self); -extern void wrap_ImGuiInputTextState_SetTextAIsValid(ImGuiInputTextState *ImGuiInputTextStatePtr, bool v); -extern bool wrap_ImGuiInputTextState_GetTextAIsValid(ImGuiInputTextState *self); +extern void wrap_ImGuiInputTextState_SetCallbackTextBackup(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVector_char v); +extern ImVector_char wrap_ImGuiInputTextState_GetCallbackTextBackup(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetBufCapacityA(ImGuiInputTextState *ImGuiInputTextStatePtr, int v); extern int wrap_ImGuiInputTextState_GetBufCapacityA(ImGuiInputTextState *self); -extern void wrap_ImGuiInputTextState_SetScrollX(ImGuiInputTextState *ImGuiInputTextStatePtr, float v); -extern float wrap_ImGuiInputTextState_GetScrollX(ImGuiInputTextState *self); -extern void wrap_ImGuiInputTextState_SetStb(ImGuiInputTextState *ImGuiInputTextStatePtr, STB_TexteditState v); -extern STB_TexteditState wrap_ImGuiInputTextState_GetStb(ImGuiInputTextState *self); +extern void wrap_ImGuiInputTextState_SetScroll(ImGuiInputTextState *ImGuiInputTextStatePtr, ImVec2 v); +extern ImVec2 wrap_ImGuiInputTextState_GetScroll(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetCursorAnim(ImGuiInputTextState *ImGuiInputTextStatePtr, float v); extern float wrap_ImGuiInputTextState_GetCursorAnim(ImGuiInputTextState *self); extern void wrap_ImGuiInputTextState_SetCursorFollow(ImGuiInputTextState *ImGuiInputTextStatePtr, bool v); @@ -1409,6 +1471,8 @@ extern void wrap_ImGuiLastItemData_SetDisplayRect(ImGuiLastItemData *ImGuiLastIt extern ImRect wrap_ImGuiLastItemData_GetDisplayRect(ImGuiLastItemData *self); extern void wrap_ImGuiLastItemData_SetClipRect(ImGuiLastItemData *ImGuiLastItemDataPtr, ImRect v); extern ImRect wrap_ImGuiLastItemData_GetClipRect(ImGuiLastItemData *self); +extern void wrap_ImGuiLastItemData_SetShortcut(ImGuiLastItemData *ImGuiLastItemDataPtr, ImGuiKeyChord v); +extern ImGuiKeyChord wrap_ImGuiLastItemData_GetShortcut(ImGuiLastItemData *self); extern void wrap_ImGuiListClipper_SetCtx(ImGuiListClipper *ImGuiListClipperPtr, ImGuiContext* v); extern ImGuiContext* wrap_ImGuiListClipper_GetCtx(ImGuiListClipper *self); extern void wrap_ImGuiListClipper_SetDisplayStart(ImGuiListClipper *ImGuiListClipperPtr, int v); @@ -1421,6 +1485,8 @@ extern void wrap_ImGuiListClipper_SetItemsHeight(ImGuiListClipper *ImGuiListClip extern float wrap_ImGuiListClipper_GetItemsHeight(ImGuiListClipper *self); extern void wrap_ImGuiListClipper_SetStartPosY(ImGuiListClipper *ImGuiListClipperPtr, float v); extern float wrap_ImGuiListClipper_GetStartPosY(ImGuiListClipper *self); +extern void wrap_ImGuiListClipper_SetStartSeekOffsetY(ImGuiListClipper *ImGuiListClipperPtr, double v); +extern double wrap_ImGuiListClipper_GetStartSeekOffsetY(ImGuiListClipper *self); extern void wrap_ImGuiListClipper_SetTempData(ImGuiListClipper *ImGuiListClipperPtr, uintptr_t v); extern uintptr_t wrap_ImGuiListClipper_GetTempData(ImGuiListClipper *self); extern void wrap_ImGuiListClipperData_SetListClipper(ImGuiListClipperData *ImGuiListClipperDataPtr, ImGuiListClipper* v); @@ -1491,6 +1557,66 @@ extern void wrap_ImGuiMetricsConfig_SetHighlightMonitorIdx(ImGuiMetricsConfig *I extern int wrap_ImGuiMetricsConfig_GetHighlightMonitorIdx(ImGuiMetricsConfig *self); extern void wrap_ImGuiMetricsConfig_SetHighlightViewportID(ImGuiMetricsConfig *ImGuiMetricsConfigPtr, ImGuiID v); extern ImGuiID wrap_ImGuiMetricsConfig_GetHighlightViewportID(ImGuiMetricsConfig *self); +extern void wrap_ImGuiMultiSelectIO_SetRequests(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImVector_ImGuiSelectionRequest v); +extern ImVector_ImGuiSelectionRequest wrap_ImGuiMultiSelectIO_GetRequests(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectIO_SetRangeSrcItem(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiMultiSelectIO_GetRangeSrcItem(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectIO_SetNavIdItem(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiMultiSelectIO_GetNavIdItem(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectIO_SetNavIdSelected(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, bool v); +extern bool wrap_ImGuiMultiSelectIO_GetNavIdSelected(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectIO_SetRangeSrcReset(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, bool v); +extern bool wrap_ImGuiMultiSelectIO_GetRangeSrcReset(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectIO_SetItemsCount(ImGuiMultiSelectIO *ImGuiMultiSelectIOPtr, int v); +extern int wrap_ImGuiMultiSelectIO_GetItemsCount(ImGuiMultiSelectIO *self); +extern void wrap_ImGuiMultiSelectState_SetWindow(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiWindow* v); +extern ImGuiWindow* wrap_ImGuiMultiSelectState_GetWindow(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetID(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiID v); +extern ImGuiID wrap_ImGuiMultiSelectState_GetID(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetLastFrameActive(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, int v); +extern int wrap_ImGuiMultiSelectState_GetLastFrameActive(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetLastSelectionSize(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, int v); +extern int wrap_ImGuiMultiSelectState_GetLastSelectionSize(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetRangeSelected(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImS8 v); +extern ImS8 wrap_ImGuiMultiSelectState_GetRangeSelected(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetNavIdSelected(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImS8 v); +extern ImS8 wrap_ImGuiMultiSelectState_GetNavIdSelected(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetRangeSrcItem(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiMultiSelectState_GetRangeSrcItem(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectState_SetNavIdItem(ImGuiMultiSelectState *ImGuiMultiSelectStatePtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiMultiSelectState_GetNavIdItem(ImGuiMultiSelectState *self); +extern void wrap_ImGuiMultiSelectTempData_SetIO(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectIO v); +extern ImGuiMultiSelectIO wrap_ImGuiMultiSelectTempData_GetIO(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetStorage(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectState* v); +extern ImGuiMultiSelectState* wrap_ImGuiMultiSelectTempData_GetStorage(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetFocusScopeId(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiMultiSelectTempData_GetFocusScopeId(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetFlags(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiMultiSelectFlags v); +extern ImGuiMultiSelectFlags wrap_ImGuiMultiSelectTempData_GetFlags(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetScopeRectMin(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiMultiSelectTempData_GetScopeRectMin(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetBackupCursorMaxPos(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiMultiSelectTempData_GetBackupCursorMaxPos(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetLastSubmittedItem(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiMultiSelectTempData_GetLastSubmittedItem(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetBoxSelectId(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiMultiSelectTempData_GetBoxSelectId(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetKeyMods(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImGuiKeyChord v); +extern ImGuiKeyChord wrap_ImGuiMultiSelectTempData_GetKeyMods(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetLoopRequestSetAll(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, ImS8 v); +extern ImS8 wrap_ImGuiMultiSelectTempData_GetLoopRequestSetAll(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetIsEndIO(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetIsEndIO(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetIsFocused(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetIsFocused(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetIsKeyboardSetRange(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetIsKeyboardSetRange(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetNavIdPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetNavIdPassedBy(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetRangeSrcPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetRangeSrcPassedBy(ImGuiMultiSelectTempData *self); +extern void wrap_ImGuiMultiSelectTempData_SetRangeDstPassedBy(ImGuiMultiSelectTempData *ImGuiMultiSelectTempDataPtr, bool v); +extern bool wrap_ImGuiMultiSelectTempData_GetRangeDstPassedBy(ImGuiMultiSelectTempData *self); extern void wrap_ImGuiNavItemData_SetWindow(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiWindow* v); extern ImGuiWindow* wrap_ImGuiNavItemData_GetWindow(ImGuiNavItemData *self); extern void wrap_ImGuiNavItemData_SetID(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiID v); @@ -1501,34 +1627,36 @@ extern void wrap_ImGuiNavItemData_SetRectRel(ImGuiNavItemData *ImGuiNavItemDataP extern ImRect wrap_ImGuiNavItemData_GetRectRel(ImGuiNavItemData *self); extern void wrap_ImGuiNavItemData_SetInFlags(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiItemFlags v); extern ImGuiItemFlags wrap_ImGuiNavItemData_GetInFlags(ImGuiNavItemData *self); -extern void wrap_ImGuiNavItemData_SetSelectionUserData(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiSelectionUserData v); -extern ImGuiSelectionUserData wrap_ImGuiNavItemData_GetSelectionUserData(ImGuiNavItemData *self); extern void wrap_ImGuiNavItemData_SetDistBox(ImGuiNavItemData *ImGuiNavItemDataPtr, float v); extern float wrap_ImGuiNavItemData_GetDistBox(ImGuiNavItemData *self); extern void wrap_ImGuiNavItemData_SetDistCenter(ImGuiNavItemData *ImGuiNavItemDataPtr, float v); extern float wrap_ImGuiNavItemData_GetDistCenter(ImGuiNavItemData *self); extern void wrap_ImGuiNavItemData_SetDistAxial(ImGuiNavItemData *ImGuiNavItemDataPtr, float v); extern float wrap_ImGuiNavItemData_GetDistAxial(ImGuiNavItemData *self); -extern void wrap_ImGuiNavTreeNodeData_SetID(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImGuiID v); -extern ImGuiID wrap_ImGuiNavTreeNodeData_GetID(ImGuiNavTreeNodeData *self); -extern void wrap_ImGuiNavTreeNodeData_SetInFlags(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImGuiItemFlags v); -extern ImGuiItemFlags wrap_ImGuiNavTreeNodeData_GetInFlags(ImGuiNavTreeNodeData *self); -extern void wrap_ImGuiNavTreeNodeData_SetNavRect(ImGuiNavTreeNodeData *ImGuiNavTreeNodeDataPtr, ImRect v); -extern ImRect wrap_ImGuiNavTreeNodeData_GetNavRect(ImGuiNavTreeNodeData *self); +extern void wrap_ImGuiNavItemData_SetSelectionUserData(ImGuiNavItemData *ImGuiNavItemDataPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiNavItemData_GetSelectionUserData(ImGuiNavItemData *self); extern void wrap_ImGuiNextItemData_SetFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiNextItemDataFlags v); extern ImGuiNextItemDataFlags wrap_ImGuiNextItemData_GetFlags(ImGuiNextItemData *self); extern void wrap_ImGuiNextItemData_SetItemFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiItemFlags v); extern ImGuiItemFlags wrap_ImGuiNextItemData_GetItemFlags(ImGuiNextItemData *self); +extern void wrap_ImGuiNextItemData_SetFocusScopeId(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiNextItemData_GetFocusScopeId(ImGuiNextItemData *self); extern void wrap_ImGuiNextItemData_SetSelectionUserData(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiSelectionUserData v); extern ImGuiSelectionUserData wrap_ImGuiNextItemData_GetSelectionUserData(ImGuiNextItemData *self); extern void wrap_ImGuiNextItemData_SetWidth(ImGuiNextItemData *ImGuiNextItemDataPtr, float v); extern float wrap_ImGuiNextItemData_GetWidth(ImGuiNextItemData *self); extern void wrap_ImGuiNextItemData_SetShortcut(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiKeyChord v); extern ImGuiKeyChord wrap_ImGuiNextItemData_GetShortcut(ImGuiNextItemData *self); +extern void wrap_ImGuiNextItemData_SetShortcutFlags(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiInputFlags v); +extern ImGuiInputFlags wrap_ImGuiNextItemData_GetShortcutFlags(ImGuiNextItemData *self); extern void wrap_ImGuiNextItemData_SetOpenVal(ImGuiNextItemData *ImGuiNextItemDataPtr, bool v); extern bool wrap_ImGuiNextItemData_GetOpenVal(ImGuiNextItemData *self); -extern void wrap_ImGuiNextItemData_SetOpenCond(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiCond v); -extern ImGuiCond wrap_ImGuiNextItemData_GetOpenCond(ImGuiNextItemData *self); +extern void wrap_ImGuiNextItemData_SetOpenCond(ImGuiNextItemData *ImGuiNextItemDataPtr, ImU8 v); +extern ImU8 wrap_ImGuiNextItemData_GetOpenCond(ImGuiNextItemData *self); +extern void wrap_ImGuiNextItemData_SetRefVal(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiDataTypeStorage v); +extern ImGuiDataTypeStorage wrap_ImGuiNextItemData_GetRefVal(ImGuiNextItemData *self); +extern void wrap_ImGuiNextItemData_SetStorageId(ImGuiNextItemData *ImGuiNextItemDataPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiNextItemData_GetStorageId(ImGuiNextItemData *self); extern void wrap_ImGuiNextWindowData_SetFlags(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiNextWindowDataFlags v); extern ImGuiNextWindowDataFlags wrap_ImGuiNextWindowData_GetFlags(ImGuiNextWindowData *self); extern void wrap_ImGuiNextWindowData_SetPosCond(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiCond v); @@ -1571,6 +1699,8 @@ extern void wrap_ImGuiNextWindowData_SetWindowClass(ImGuiNextWindowData *ImGuiNe extern ImGuiWindowClass wrap_ImGuiNextWindowData_GetWindowClass(ImGuiNextWindowData *self); extern void wrap_ImGuiNextWindowData_SetMenuBarOffsetMinVal(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImVec2 v); extern ImVec2 wrap_ImGuiNextWindowData_GetMenuBarOffsetMinVal(ImGuiNextWindowData *self); +extern void wrap_ImGuiNextWindowData_SetRefreshFlagsVal(ImGuiNextWindowData *ImGuiNextWindowDataPtr, ImGuiWindowRefreshFlags v); +extern ImGuiWindowRefreshFlags wrap_ImGuiNextWindowData_GetRefreshFlagsVal(ImGuiNextWindowData *self); extern void wrap_ImGuiOldColumnData_SetOffsetNorm(ImGuiOldColumnData *ImGuiOldColumnDataPtr, float v); extern float wrap_ImGuiOldColumnData_GetOffsetNorm(ImGuiOldColumnData *self); extern void wrap_ImGuiOldColumnData_SetOffsetNormBeforeResize(ImGuiOldColumnData *ImGuiOldColumnDataPtr, float v); @@ -1631,6 +1761,14 @@ extern void wrap_ImGuiPayload_SetPreview(ImGuiPayload *ImGuiPayloadPtr, bool v); extern bool wrap_ImGuiPayload_GetPreview(ImGuiPayload *self); extern void wrap_ImGuiPayload_SetDelivery(ImGuiPayload *ImGuiPayloadPtr, bool v); extern bool wrap_ImGuiPayload_GetDelivery(ImGuiPayload *self); +extern void wrap_ImGuiPlatformIO_SetPlatform_ClipboardUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v); +extern uintptr_t wrap_ImGuiPlatformIO_GetPlatform_ClipboardUserData(ImGuiPlatformIO *self); +extern void wrap_ImGuiPlatformIO_SetPlatform_OpenInShellUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v); +extern uintptr_t wrap_ImGuiPlatformIO_GetPlatform_OpenInShellUserData(ImGuiPlatformIO *self); +extern void wrap_ImGuiPlatformIO_SetPlatform_ImeUserData(ImGuiPlatformIO *ImGuiPlatformIOPtr, uintptr_t v); +extern uintptr_t wrap_ImGuiPlatformIO_GetPlatform_ImeUserData(ImGuiPlatformIO *self); +extern void wrap_ImGuiPlatformIO_SetPlatform_LocaleDecimalPoint(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImWchar v); +extern ImWchar wrap_ImGuiPlatformIO_GetPlatform_LocaleDecimalPoint(ImGuiPlatformIO *self); extern void wrap_ImGuiPlatformIO_SetMonitors(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImVector_ImGuiPlatformMonitor v); extern ImVector_ImGuiPlatformMonitor wrap_ImGuiPlatformIO_GetMonitors(ImGuiPlatformIO *self); extern void wrap_ImGuiPlatformIO_SetViewports(ImGuiPlatformIO *ImGuiPlatformIOPtr, ImVector_ImGuiViewportPtr v); @@ -1657,8 +1795,8 @@ extern void wrap_ImGuiPopupData_SetPopupId(ImGuiPopupData *ImGuiPopupDataPtr, Im extern ImGuiID wrap_ImGuiPopupData_GetPopupId(ImGuiPopupData *self); extern void wrap_ImGuiPopupData_SetWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v); extern ImGuiWindow* wrap_ImGuiPopupData_GetWindow(ImGuiPopupData *self); -extern void wrap_ImGuiPopupData_SetBackupNavWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v); -extern ImGuiWindow* wrap_ImGuiPopupData_GetBackupNavWindow(ImGuiPopupData *self); +extern void wrap_ImGuiPopupData_SetRestoreNavWindow(ImGuiPopupData *ImGuiPopupDataPtr, ImGuiWindow* v); +extern ImGuiWindow* wrap_ImGuiPopupData_GetRestoreNavWindow(ImGuiPopupData *self); extern void wrap_ImGuiPopupData_SetParentNavLayer(ImGuiPopupData *ImGuiPopupDataPtr, int v); extern int wrap_ImGuiPopupData_GetParentNavLayer(ImGuiPopupData *self); extern void wrap_ImGuiPopupData_SetOpenFrameCount(ImGuiPopupData *ImGuiPopupDataPtr, int v); @@ -1673,6 +1811,28 @@ extern void wrap_ImGuiPtrOrIndex_SetPtr(ImGuiPtrOrIndex *ImGuiPtrOrIndexPtr, uin extern uintptr_t wrap_ImGuiPtrOrIndex_GetPtr(ImGuiPtrOrIndex *self); extern void wrap_ImGuiPtrOrIndex_SetIndex(ImGuiPtrOrIndex *ImGuiPtrOrIndexPtr, int v); extern int wrap_ImGuiPtrOrIndex_GetIndex(ImGuiPtrOrIndex *self); +extern void wrap_ImGuiSelectionBasicStorage_SetSize(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, int v); +extern int wrap_ImGuiSelectionBasicStorage_GetSize(ImGuiSelectionBasicStorage *self); +extern void wrap_ImGuiSelectionBasicStorage_SetPreserveOrder(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, bool v); +extern bool wrap_ImGuiSelectionBasicStorage_GetPreserveOrder(ImGuiSelectionBasicStorage *self); +extern void wrap_ImGuiSelectionBasicStorage_SetUserData(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, uintptr_t v); +extern uintptr_t wrap_ImGuiSelectionBasicStorage_GetUserData(ImGuiSelectionBasicStorage *self); +extern void wrap_ImGuiSelectionBasicStorage_Set_SelectionOrder(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, int v); +extern int wrap_ImGuiSelectionBasicStorage_Get_SelectionOrder(ImGuiSelectionBasicStorage *self); +extern void wrap_ImGuiSelectionBasicStorage_Set_Storage(ImGuiSelectionBasicStorage *ImGuiSelectionBasicStoragePtr, ImGuiStorage v); +extern ImGuiStorage wrap_ImGuiSelectionBasicStorage_Get_Storage(ImGuiSelectionBasicStorage *self); +extern void wrap_ImGuiSelectionExternalStorage_SetUserData(ImGuiSelectionExternalStorage *ImGuiSelectionExternalStoragePtr, uintptr_t v); +extern uintptr_t wrap_ImGuiSelectionExternalStorage_GetUserData(ImGuiSelectionExternalStorage *self); +extern void wrap_ImGuiSelectionRequest_SetType(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionRequestType v); +extern ImGuiSelectionRequestType wrap_ImGuiSelectionRequest_GetType(ImGuiSelectionRequest *self); +extern void wrap_ImGuiSelectionRequest_SetSelected(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, bool v); +extern bool wrap_ImGuiSelectionRequest_GetSelected(ImGuiSelectionRequest *self); +extern void wrap_ImGuiSelectionRequest_SetRangeDirection(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImS8 v); +extern ImS8 wrap_ImGuiSelectionRequest_GetRangeDirection(ImGuiSelectionRequest *self); +extern void wrap_ImGuiSelectionRequest_SetRangeFirstItem(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiSelectionRequest_GetRangeFirstItem(ImGuiSelectionRequest *self); +extern void wrap_ImGuiSelectionRequest_SetRangeLastItem(ImGuiSelectionRequest *ImGuiSelectionRequestPtr, ImGuiSelectionUserData v); +extern ImGuiSelectionUserData wrap_ImGuiSelectionRequest_GetRangeLastItem(ImGuiSelectionRequest *self); extern void wrap_ImGuiSettingsHandler_SetTypeName(ImGuiSettingsHandler *ImGuiSettingsHandlerPtr, const char* v); extern const char* wrap_ImGuiSettingsHandler_GetTypeName(ImGuiSettingsHandler *self); extern void wrap_ImGuiSettingsHandler_SetTypeHash(ImGuiSettingsHandler *ImGuiSettingsHandlerPtr, ImGuiID v); @@ -1785,8 +1945,12 @@ extern void wrap_ImGuiStyle_SetTabMinWidthForCloseButton(ImGuiStyle *ImGuiStyleP extern float wrap_ImGuiStyle_GetTabMinWidthForCloseButton(ImGuiStyle *self); extern void wrap_ImGuiStyle_SetTabBarBorderSize(ImGuiStyle *ImGuiStylePtr, float v); extern float wrap_ImGuiStyle_GetTabBarBorderSize(ImGuiStyle *self); +extern void wrap_ImGuiStyle_SetTabBarOverlineSize(ImGuiStyle *ImGuiStylePtr, float v); +extern float wrap_ImGuiStyle_GetTabBarOverlineSize(ImGuiStyle *self); extern void wrap_ImGuiStyle_SetTableAngledHeadersAngle(ImGuiStyle *ImGuiStylePtr, float v); extern float wrap_ImGuiStyle_GetTableAngledHeadersAngle(ImGuiStyle *self); +extern void wrap_ImGuiStyle_SetTableAngledHeadersTextAlign(ImGuiStyle *ImGuiStylePtr, ImVec2 v); +extern ImVec2 wrap_ImGuiStyle_GetTableAngledHeadersTextAlign(ImGuiStyle *self); extern void wrap_ImGuiStyle_SetColorButtonPosition(ImGuiStyle *ImGuiStylePtr, ImGuiDir v); extern ImGuiDir wrap_ImGuiStyle_GetColorButtonPosition(ImGuiStyle *self); extern void wrap_ImGuiStyle_SetButtonTextAlign(ImGuiStyle *ImGuiStylePtr, ImVec2 v); @@ -2164,6 +2328,8 @@ extern void wrap_ImGuiTableColumn_SetWidthRequest(ImGuiTableColumn *ImGuiTableCo extern float wrap_ImGuiTableColumn_GetWidthRequest(ImGuiTableColumn *self); extern void wrap_ImGuiTableColumn_SetWidthAuto(ImGuiTableColumn *ImGuiTableColumnPtr, float v); extern float wrap_ImGuiTableColumn_GetWidthAuto(ImGuiTableColumn *self); +extern void wrap_ImGuiTableColumn_SetWidthMax(ImGuiTableColumn *ImGuiTableColumnPtr, float v); +extern float wrap_ImGuiTableColumn_GetWidthMax(ImGuiTableColumn *self); extern void wrap_ImGuiTableColumn_SetStretchWeight(ImGuiTableColumn *ImGuiTableColumnPtr, float v); extern float wrap_ImGuiTableColumn_GetStretchWeight(ImGuiTableColumn *self); extern void wrap_ImGuiTableColumn_SetInitStretchWeightOrWidth(ImGuiTableColumn *ImGuiTableColumnPtr, float v); @@ -2258,6 +2424,14 @@ extern void wrap_ImGuiTableColumnSortSpecs_SetSortOrder(ImGuiTableColumnSortSpec extern ImS16 wrap_ImGuiTableColumnSortSpecs_GetSortOrder(ImGuiTableColumnSortSpecs *self); extern void wrap_ImGuiTableColumnSortSpecs_SetSortDirection(ImGuiTableColumnSortSpecs *ImGuiTableColumnSortSpecsPtr, ImGuiSortDirection v); extern ImGuiSortDirection wrap_ImGuiTableColumnSortSpecs_GetSortDirection(ImGuiTableColumnSortSpecs *self); +extern void wrap_ImGuiTableHeaderData_SetIndex(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImGuiTableColumnIdx v); +extern ImGuiTableColumnIdx wrap_ImGuiTableHeaderData_GetIndex(ImGuiTableHeaderData *self); +extern void wrap_ImGuiTableHeaderData_SetTextColor(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v); +extern ImU32 wrap_ImGuiTableHeaderData_GetTextColor(ImGuiTableHeaderData *self); +extern void wrap_ImGuiTableHeaderData_SetBgColor0(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v); +extern ImU32 wrap_ImGuiTableHeaderData_GetBgColor0(ImGuiTableHeaderData *self); +extern void wrap_ImGuiTableHeaderData_SetBgColor1(ImGuiTableHeaderData *ImGuiTableHeaderDataPtr, ImU32 v); +extern ImU32 wrap_ImGuiTableHeaderData_GetBgColor1(ImGuiTableHeaderData *self); extern void wrap_ImGuiTableInstanceData_SetTableInstanceID(ImGuiTableInstanceData *ImGuiTableInstanceDataPtr, ImGuiID v); extern ImGuiID wrap_ImGuiTableInstanceData_GetTableInstanceID(ImGuiTableInstanceData *self); extern void wrap_ImGuiTableInstanceData_SetLastOuterHeight(ImGuiTableInstanceData *ImGuiTableInstanceDataPtr, float v); @@ -2294,6 +2468,8 @@ extern void wrap_ImGuiTableTempData_SetLastTimeActive(ImGuiTableTempData *ImGuiT extern float wrap_ImGuiTableTempData_GetLastTimeActive(ImGuiTableTempData *self); extern void wrap_ImGuiTableTempData_SetAngledHeadersExtraWidth(ImGuiTableTempData *ImGuiTableTempDataPtr, float v); extern float wrap_ImGuiTableTempData_GetAngledHeadersExtraWidth(ImGuiTableTempData *self); +extern void wrap_ImGuiTableTempData_SetAngledHeadersRequests(ImGuiTableTempData *ImGuiTableTempDataPtr, ImVector_ImGuiTableHeaderData v); +extern ImVector_ImGuiTableHeaderData wrap_ImGuiTableTempData_GetAngledHeadersRequests(ImGuiTableTempData *self); extern void wrap_ImGuiTableTempData_SetUserOuterSize(ImGuiTableTempData *ImGuiTableTempDataPtr, ImVec2 v); extern ImVec2 wrap_ImGuiTableTempData_GetUserOuterSize(ImGuiTableTempData *self); extern void wrap_ImGuiTableTempData_SetDrawSplitter(ImGuiTableTempData *ImGuiTableTempDataPtr, ImDrawListSplitter v); @@ -2330,6 +2506,14 @@ extern void wrap_ImGuiTextRange_SetB(ImGuiTextRange *ImGuiTextRangePtr, const ch extern const char* wrap_ImGuiTextRange_GetB(ImGuiTextRange *self); extern void wrap_ImGuiTextRange_SetE(ImGuiTextRange *ImGuiTextRangePtr, const char* v); extern const char* wrap_ImGuiTextRange_GetE(ImGuiTextRange *self); +extern void wrap_ImGuiTreeNodeStackData_SetID(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiTreeNodeStackData_GetID(ImGuiTreeNodeStackData *self); +extern void wrap_ImGuiTreeNodeStackData_SetTreeFlags(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiTreeNodeFlags v); +extern ImGuiTreeNodeFlags wrap_ImGuiTreeNodeStackData_GetTreeFlags(ImGuiTreeNodeStackData *self); +extern void wrap_ImGuiTreeNodeStackData_SetInFlags(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImGuiItemFlags v); +extern ImGuiItemFlags wrap_ImGuiTreeNodeStackData_GetInFlags(ImGuiTreeNodeStackData *self); +extern void wrap_ImGuiTreeNodeStackData_SetNavRect(ImGuiTreeNodeStackData *ImGuiTreeNodeStackDataPtr, ImRect v); +extern ImRect wrap_ImGuiTreeNodeStackData_GetNavRect(ImGuiTreeNodeStackData *self); extern void wrap_ImGuiTypingSelectRequest_SetFlags(ImGuiTypingSelectRequest *ImGuiTypingSelectRequestPtr, ImGuiTypingSelectFlags v); extern ImGuiTypingSelectFlags wrap_ImGuiTypingSelectRequest_GetFlags(ImGuiTypingSelectRequest *self); extern void wrap_ImGuiTypingSelectRequest_SetSearchBufferLen(ImGuiTypingSelectRequest *ImGuiTypingSelectRequestPtr, int v); @@ -2402,6 +2586,8 @@ extern void wrap_ImGuiViewportP_SetLastNameHash(ImGuiViewportP *ImGuiViewportPPt extern ImGuiID wrap_ImGuiViewportP_GetLastNameHash(ImGuiViewportP *self); extern void wrap_ImGuiViewportP_SetLastPos(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); extern ImVec2 wrap_ImGuiViewportP_GetLastPos(ImGuiViewportP *self); +extern void wrap_ImGuiViewportP_SetLastSize(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiViewportP_GetLastSize(ImGuiViewportP *self); extern void wrap_ImGuiViewportP_SetAlpha(ImGuiViewportP *ImGuiViewportPPtr, float v); extern float wrap_ImGuiViewportP_GetAlpha(ImGuiViewportP *self); extern void wrap_ImGuiViewportP_SetLastAlpha(ImGuiViewportP *ImGuiViewportPPtr, float v); @@ -2426,14 +2612,14 @@ extern void wrap_ImGuiViewportP_SetLastPlatformSize(ImGuiViewportP *ImGuiViewpor extern ImVec2 wrap_ImGuiViewportP_GetLastPlatformSize(ImGuiViewportP *self); extern void wrap_ImGuiViewportP_SetLastRendererSize(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); extern ImVec2 wrap_ImGuiViewportP_GetLastRendererSize(ImGuiViewportP *self); -extern void wrap_ImGuiViewportP_SetWorkOffsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); -extern ImVec2 wrap_ImGuiViewportP_GetWorkOffsetMin(ImGuiViewportP *self); -extern void wrap_ImGuiViewportP_SetWorkOffsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); -extern ImVec2 wrap_ImGuiViewportP_GetWorkOffsetMax(ImGuiViewportP *self); -extern void wrap_ImGuiViewportP_SetBuildWorkOffsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); -extern ImVec2 wrap_ImGuiViewportP_GetBuildWorkOffsetMin(ImGuiViewportP *self); -extern void wrap_ImGuiViewportP_SetBuildWorkOffsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); -extern ImVec2 wrap_ImGuiViewportP_GetBuildWorkOffsetMax(ImGuiViewportP *self); +extern void wrap_ImGuiViewportP_SetWorkInsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiViewportP_GetWorkInsetMin(ImGuiViewportP *self); +extern void wrap_ImGuiViewportP_SetWorkInsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiViewportP_GetWorkInsetMax(ImGuiViewportP *self); +extern void wrap_ImGuiViewportP_SetBuildWorkInsetMin(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiViewportP_GetBuildWorkInsetMin(ImGuiViewportP *self); +extern void wrap_ImGuiViewportP_SetBuildWorkInsetMax(ImGuiViewportP *ImGuiViewportPPtr, ImVec2 v); +extern ImVec2 wrap_ImGuiViewportP_GetBuildWorkInsetMax(ImGuiViewportP *self); extern void wrap_ImGuiWindow_SetCtx(ImGuiWindow *ImGuiWindowPtr, ImGuiContext* v); extern ImGuiContext* wrap_ImGuiWindow_GetCtx(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetName(ImGuiWindow *ImGuiWindowPtr, char* v); @@ -2474,6 +2660,10 @@ extern void wrap_ImGuiWindow_SetWindowRounding(ImGuiWindow *ImGuiWindowPtr, floa extern float wrap_ImGuiWindow_GetWindowRounding(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetWindowBorderSize(ImGuiWindow *ImGuiWindowPtr, float v); extern float wrap_ImGuiWindow_GetWindowBorderSize(ImGuiWindow *self); +extern void wrap_ImGuiWindow_SetTitleBarHeight(ImGuiWindow *ImGuiWindowPtr, float v); +extern float wrap_ImGuiWindow_GetTitleBarHeight(ImGuiWindow *self); +extern void wrap_ImGuiWindow_SetMenuBarHeight(ImGuiWindow *ImGuiWindowPtr, float v); +extern float wrap_ImGuiWindow_GetMenuBarHeight(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetDecoOuterSizeX1(ImGuiWindow *ImGuiWindowPtr, float v); extern float wrap_ImGuiWindow_GetDecoOuterSizeX1(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetDecoOuterSizeY1(ImGuiWindow *ImGuiWindowPtr, float v); @@ -2494,6 +2684,8 @@ extern void wrap_ImGuiWindow_SetTabId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v); extern ImGuiID wrap_ImGuiWindow_GetTabId(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetChildId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v); extern ImGuiID wrap_ImGuiWindow_GetChildId(ImGuiWindow *self); +extern void wrap_ImGuiWindow_SetPopupId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v); +extern ImGuiID wrap_ImGuiWindow_GetPopupId(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetScroll(ImGuiWindow *ImGuiWindowPtr, ImVec2 v); extern ImVec2 wrap_ImGuiWindow_GetScroll(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetScrollMax(ImGuiWindow *ImGuiWindowPtr, ImVec2 v); @@ -2524,6 +2716,8 @@ extern void wrap_ImGuiWindow_SetWantCollapseToggle(ImGuiWindow *ImGuiWindowPtr, extern bool wrap_ImGuiWindow_GetWantCollapseToggle(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetSkipItems(ImGuiWindow *ImGuiWindowPtr, bool v); extern bool wrap_ImGuiWindow_GetSkipItems(ImGuiWindow *self); +extern void wrap_ImGuiWindow_SetSkipRefresh(ImGuiWindow *ImGuiWindowPtr, bool v); +extern bool wrap_ImGuiWindow_GetSkipRefresh(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetAppearing(ImGuiWindow *ImGuiWindowPtr, bool v); extern bool wrap_ImGuiWindow_GetAppearing(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetHidden(ImGuiWindow *ImGuiWindowPtr, bool v); @@ -2548,8 +2742,6 @@ extern void wrap_ImGuiWindow_SetBeginOrderWithinContext(ImGuiWindow *ImGuiWindow extern short wrap_ImGuiWindow_GetBeginOrderWithinContext(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetFocusOrder(ImGuiWindow *ImGuiWindowPtr, short v); extern short wrap_ImGuiWindow_GetFocusOrder(ImGuiWindow *self); -extern void wrap_ImGuiWindow_SetPopupId(ImGuiWindow *ImGuiWindowPtr, ImGuiID v); -extern ImGuiID wrap_ImGuiWindow_GetPopupId(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetAutoFitFramesX(ImGuiWindow *ImGuiWindowPtr, ImS8 v); extern ImS8 wrap_ImGuiWindow_GetAutoFitFramesX(ImGuiWindow *self); extern void wrap_ImGuiWindow_SetAutoFitFramesY(ImGuiWindow *ImGuiWindowPtr, ImS8 v); @@ -2728,6 +2920,8 @@ extern void wrap_ImGuiWindowStackData_SetParentLastItemDataBackup(ImGuiWindowSta extern ImGuiLastItemData wrap_ImGuiWindowStackData_GetParentLastItemDataBackup(ImGuiWindowStackData *self); extern void wrap_ImGuiWindowStackData_SetStackSizesOnBegin(ImGuiWindowStackData *ImGuiWindowStackDataPtr, ImGuiStackSizes v); extern ImGuiStackSizes wrap_ImGuiWindowStackData_GetStackSizesOnBegin(ImGuiWindowStackData *self); +extern void wrap_ImGuiWindowStackData_SetDisabledOverrideReenable(ImGuiWindowStackData *ImGuiWindowStackDataPtr, bool v); +extern bool wrap_ImGuiWindowStackData_GetDisabledOverrideReenable(ImGuiWindowStackData *self); extern void wrap_ImGuiWindowTempData_SetCursorPos(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVec2 v); extern ImVec2 wrap_ImGuiWindowTempData_GetCursorPos(ImGuiWindowTempData *self); extern void wrap_ImGuiWindowTempData_SetCursorPosPrevLine(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVec2 v); @@ -2778,8 +2972,8 @@ extern void wrap_ImGuiWindowTempData_SetMenuColumns(ImGuiWindowTempData *ImGuiWi extern ImGuiMenuColumns wrap_ImGuiWindowTempData_GetMenuColumns(ImGuiWindowTempData *self); extern void wrap_ImGuiWindowTempData_SetTreeDepth(ImGuiWindowTempData *ImGuiWindowTempDataPtr, int v); extern int wrap_ImGuiWindowTempData_GetTreeDepth(ImGuiWindowTempData *self); -extern void wrap_ImGuiWindowTempData_SetTreeJumpToParentOnPopMask(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImU32 v); -extern ImU32 wrap_ImGuiWindowTempData_GetTreeJumpToParentOnPopMask(ImGuiWindowTempData *self); +extern void wrap_ImGuiWindowTempData_SetTreeHasStackDataDepthMask(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImU32 v); +extern ImU32 wrap_ImGuiWindowTempData_GetTreeHasStackDataDepthMask(ImGuiWindowTempData *self); extern void wrap_ImGuiWindowTempData_SetChildWindows(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImVector_ImGuiWindowPtr v); extern ImVector_ImGuiWindowPtr wrap_ImGuiWindowTempData_GetChildWindows(ImGuiWindowTempData *self); extern void wrap_ImGuiWindowTempData_SetStateStorage(ImGuiWindowTempData *ImGuiWindowTempDataPtr, ImGuiStorage* v); @@ -2815,68 +3009,6 @@ extern void wrap_ImVec4_SetX(ImVec4 *ImVec4Ptr, float v); extern void wrap_ImVec4_SetY(ImVec4 *ImVec4Ptr, float v); extern void wrap_ImVec4_SetZ(ImVec4 *ImVec4Ptr, float v); extern void wrap_ImVec4_SetW(ImVec4 *ImVec4Ptr, float v); -extern void wrap_STB_TexteditState_SetCursor(STB_TexteditState *STB_TexteditStatePtr, int v); -extern int wrap_STB_TexteditState_GetCursor(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetSelect_start(STB_TexteditState *STB_TexteditStatePtr, int v); -extern int wrap_STB_TexteditState_GetSelect_start(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetSelect_end(STB_TexteditState *STB_TexteditStatePtr, int v); -extern int wrap_STB_TexteditState_GetSelect_end(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetInsert_mode(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetInsert_mode(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetRow_count_per_page(STB_TexteditState *STB_TexteditStatePtr, int v); -extern int wrap_STB_TexteditState_GetRow_count_per_page(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetCursor_at_end_of_line(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetCursor_at_end_of_line(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetInitialized(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetInitialized(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetHas_preferred_x(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetHas_preferred_x(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetSingle_line(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetSingle_line(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetPadding1(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetPadding1(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetPadding2(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetPadding2(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetPadding3(STB_TexteditState *STB_TexteditStatePtr, unsigned char v); -extern unsigned char wrap_STB_TexteditState_GetPadding3(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetPreferred_x(STB_TexteditState *STB_TexteditStatePtr, float v); -extern float wrap_STB_TexteditState_GetPreferred_x(STB_TexteditState *self); -extern void wrap_STB_TexteditState_SetUndostate(STB_TexteditState *STB_TexteditStatePtr, StbUndoState v); -extern StbUndoState wrap_STB_TexteditState_GetUndostate(STB_TexteditState *self); -extern void wrap_StbTexteditRow_SetX0(StbTexteditRow *StbTexteditRowPtr, float v); -extern float wrap_StbTexteditRow_GetX0(StbTexteditRow *self); -extern void wrap_StbTexteditRow_SetX1(StbTexteditRow *StbTexteditRowPtr, float v); -extern float wrap_StbTexteditRow_GetX1(StbTexteditRow *self); -extern void wrap_StbTexteditRow_SetBaseline_y_delta(StbTexteditRow *StbTexteditRowPtr, float v); -extern float wrap_StbTexteditRow_GetBaseline_y_delta(StbTexteditRow *self); -extern void wrap_StbTexteditRow_SetYmin(StbTexteditRow *StbTexteditRowPtr, float v); -extern float wrap_StbTexteditRow_GetYmin(StbTexteditRow *self); -extern void wrap_StbTexteditRow_SetYmax(StbTexteditRow *StbTexteditRowPtr, float v); -extern float wrap_StbTexteditRow_GetYmax(StbTexteditRow *self); -extern void wrap_StbTexteditRow_SetNum_chars(StbTexteditRow *StbTexteditRowPtr, int v); -extern int wrap_StbTexteditRow_GetNum_chars(StbTexteditRow *self); -extern void wrap_StbUndoRecord_SetWhere(StbUndoRecord *StbUndoRecordPtr, int v); -extern int wrap_StbUndoRecord_GetWhere(StbUndoRecord *self); -extern void wrap_StbUndoRecord_SetInsert_length(StbUndoRecord *StbUndoRecordPtr, int v); -extern int wrap_StbUndoRecord_GetInsert_length(StbUndoRecord *self); -extern void wrap_StbUndoRecord_SetDelete_length(StbUndoRecord *StbUndoRecordPtr, int v); -extern int wrap_StbUndoRecord_GetDelete_length(StbUndoRecord *self); -extern void wrap_StbUndoRecord_SetChar_storage(StbUndoRecord *StbUndoRecordPtr, int v); -extern int wrap_StbUndoRecord_GetChar_storage(StbUndoRecord *self); -extern void wrap_StbUndoState_SetUndo_rec(StbUndoState *StbUndoStatePtr, StbUndoRecord* v); -extern StbUndoRecord* wrap_StbUndoState_GetUndo_rec(StbUndoState *self); -extern StbUndoRecord cimgui_StbUndoRecord_GetAtIdx(StbUndoRecord *self, int index); -extern void wrap_StbUndoState_SetUndo_char(StbUndoState *StbUndoStatePtr, ImWchar* v); -extern ImWchar* wrap_StbUndoState_GetUndo_char(StbUndoState *self); -extern ImWchar cimgui_ImWchar_GetAtIdx(ImWchar *self, int index); -extern void wrap_StbUndoState_SetUndo_point(StbUndoState *StbUndoStatePtr, short v); -extern short wrap_StbUndoState_GetUndo_point(StbUndoState *self); -extern void wrap_StbUndoState_SetRedo_point(StbUndoState *StbUndoStatePtr, short v); -extern short wrap_StbUndoState_GetRedo_point(StbUndoState *self); -extern void wrap_StbUndoState_SetUndo_char_point(StbUndoState *StbUndoStatePtr, int v); -extern int wrap_StbUndoState_GetUndo_char_point(StbUndoState *self); -extern void wrap_StbUndoState_SetRedo_char_point(StbUndoState *StbUndoStatePtr, int v); -extern int wrap_StbUndoState_GetRedo_char_point(StbUndoState *self); #ifdef __cplusplus } diff --git a/cimgui_typedefs.cpp b/cimgui_typedefs.cpp index c8aeb3ad5..be6483251 100644 --- a/cimgui_typedefs.cpp +++ b/cimgui_typedefs.cpp @@ -3,7 +3,7 @@ #include "cimgui_typedefs.h" -#include "cimgui/cimgui.h" +#include "cwrappers/cimgui.h" uintptr_t ImTextureID_toUintptr(ImTextureID ptr) { return (uintptr_t)ptr; diff --git a/cimgui_typedefs.go b/cimgui_typedefs.go index ac7f7af64..53e7d7a9e 100644 --- a/cimgui_typedefs.go +++ b/cimgui_typedefs.go @@ -391,6 +391,27 @@ func NewFontGlyphRangesBuilderFromC[SRC any](cvalue SRC) *FontGlyphRangesBuilder return &FontGlyphRangesBuilder{CData: ConvertCTypes[*C.ImFontGlyphRangesBuilder](cvalue)} } +type BoxSelectState struct { + CData *C.ImGuiBoxSelectState +} + +// Handle returns C version of BoxSelectState and its finalizer func. +func (self *BoxSelectState) Handle() (result *C.ImGuiBoxSelectState, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self BoxSelectState) C() (C.ImGuiBoxSelectState, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewBoxSelectStateFromC creates BoxSelectState from its C pointer. +// SRC ~= *C.ImGuiBoxSelectState +func NewBoxSelectStateFromC[SRC any](cvalue SRC) *BoxSelectState { + return &BoxSelectState{CData: ConvertCTypes[*C.ImGuiBoxSelectState](cvalue)} +} + type ColorMod struct { CData *C.ImGuiColorMod } @@ -496,25 +517,25 @@ func NewDataTypeInfoFromC[SRC any](cvalue SRC) *DataTypeInfo { return &DataTypeInfo{CData: ConvertCTypes[*C.ImGuiDataTypeInfo](cvalue)} } -type DataTypeTempStorage struct { - CData *C.ImGuiDataTypeTempStorage +type DataTypeStorage struct { + CData *C.ImGuiDataTypeStorage } -// Handle returns C version of DataTypeTempStorage and its finalizer func. -func (self *DataTypeTempStorage) Handle() (result *C.ImGuiDataTypeTempStorage, fin func()) { +// Handle returns C version of DataTypeStorage and its finalizer func. +func (self *DataTypeStorage) Handle() (result *C.ImGuiDataTypeStorage, fin func()) { return self.CData, func() {} } // C is like Handle but returns plain type instead of pointer. -func (self DataTypeTempStorage) C() (C.ImGuiDataTypeTempStorage, func()) { +func (self DataTypeStorage) C() (C.ImGuiDataTypeStorage, func()) { result, fn := self.Handle() return *result, fn } -// NewDataTypeTempStorageFromC creates DataTypeTempStorage from its C pointer. -// SRC ~= *C.ImGuiDataTypeTempStorage -func NewDataTypeTempStorageFromC[SRC any](cvalue SRC) *DataTypeTempStorage { - return &DataTypeTempStorage{CData: ConvertCTypes[*C.ImGuiDataTypeTempStorage](cvalue)} +// NewDataTypeStorageFromC creates DataTypeStorage from its C pointer. +// SRC ~= *C.ImGuiDataTypeStorage +func NewDataTypeStorageFromC[SRC any](cvalue SRC) *DataTypeStorage { + return &DataTypeStorage{CData: ConvertCTypes[*C.ImGuiDataTypeStorage](cvalue)} } type DataVarInfo struct { @@ -1253,46 +1274,88 @@ func NewMetricsConfigFromC[SRC any](cvalue SRC) *MetricsConfig { return &MetricsConfig{CData: ConvertCTypes[*C.ImGuiMetricsConfig](cvalue)} } -type NavItemData struct { - CData *C.ImGuiNavItemData +type MultiSelectIO struct { + CData *C.ImGuiMultiSelectIO } -// Handle returns C version of NavItemData and its finalizer func. -func (self *NavItemData) Handle() (result *C.ImGuiNavItemData, fin func()) { +// Handle returns C version of MultiSelectIO and its finalizer func. +func (self *MultiSelectIO) Handle() (result *C.ImGuiMultiSelectIO, fin func()) { return self.CData, func() {} } // C is like Handle but returns plain type instead of pointer. -func (self NavItemData) C() (C.ImGuiNavItemData, func()) { +func (self MultiSelectIO) C() (C.ImGuiMultiSelectIO, func()) { result, fn := self.Handle() return *result, fn } -// NewNavItemDataFromC creates NavItemData from its C pointer. -// SRC ~= *C.ImGuiNavItemData -func NewNavItemDataFromC[SRC any](cvalue SRC) *NavItemData { - return &NavItemData{CData: ConvertCTypes[*C.ImGuiNavItemData](cvalue)} +// NewMultiSelectIOFromC creates MultiSelectIO from its C pointer. +// SRC ~= *C.ImGuiMultiSelectIO +func NewMultiSelectIOFromC[SRC any](cvalue SRC) *MultiSelectIO { + return &MultiSelectIO{CData: ConvertCTypes[*C.ImGuiMultiSelectIO](cvalue)} +} + +type MultiSelectState struct { + CData *C.ImGuiMultiSelectState +} + +// Handle returns C version of MultiSelectState and its finalizer func. +func (self *MultiSelectState) Handle() (result *C.ImGuiMultiSelectState, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self MultiSelectState) C() (C.ImGuiMultiSelectState, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewMultiSelectStateFromC creates MultiSelectState from its C pointer. +// SRC ~= *C.ImGuiMultiSelectState +func NewMultiSelectStateFromC[SRC any](cvalue SRC) *MultiSelectState { + return &MultiSelectState{CData: ConvertCTypes[*C.ImGuiMultiSelectState](cvalue)} +} + +type MultiSelectTempData struct { + CData *C.ImGuiMultiSelectTempData +} + +// Handle returns C version of MultiSelectTempData and its finalizer func. +func (self *MultiSelectTempData) Handle() (result *C.ImGuiMultiSelectTempData, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self MultiSelectTempData) C() (C.ImGuiMultiSelectTempData, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewMultiSelectTempDataFromC creates MultiSelectTempData from its C pointer. +// SRC ~= *C.ImGuiMultiSelectTempData +func NewMultiSelectTempDataFromC[SRC any](cvalue SRC) *MultiSelectTempData { + return &MultiSelectTempData{CData: ConvertCTypes[*C.ImGuiMultiSelectTempData](cvalue)} } -type NavTreeNodeData struct { - CData *C.ImGuiNavTreeNodeData +type NavItemData struct { + CData *C.ImGuiNavItemData } -// Handle returns C version of NavTreeNodeData and its finalizer func. -func (self *NavTreeNodeData) Handle() (result *C.ImGuiNavTreeNodeData, fin func()) { +// Handle returns C version of NavItemData and its finalizer func. +func (self *NavItemData) Handle() (result *C.ImGuiNavItemData, fin func()) { return self.CData, func() {} } // C is like Handle but returns plain type instead of pointer. -func (self NavTreeNodeData) C() (C.ImGuiNavTreeNodeData, func()) { +func (self NavItemData) C() (C.ImGuiNavItemData, func()) { result, fn := self.Handle() return *result, fn } -// NewNavTreeNodeDataFromC creates NavTreeNodeData from its C pointer. -// SRC ~= *C.ImGuiNavTreeNodeData -func NewNavTreeNodeDataFromC[SRC any](cvalue SRC) *NavTreeNodeData { - return &NavTreeNodeData{CData: ConvertCTypes[*C.ImGuiNavTreeNodeData](cvalue)} +// NewNavItemDataFromC creates NavItemData from its C pointer. +// SRC ~= *C.ImGuiNavItemData +func NewNavItemDataFromC[SRC any](cvalue SRC) *NavItemData { + return &NavItemData{CData: ConvertCTypes[*C.ImGuiNavItemData](cvalue)} } type NextItemData struct { @@ -1526,6 +1589,69 @@ func NewPtrOrIndexFromC[SRC any](cvalue SRC) *PtrOrIndex { return &PtrOrIndex{CData: ConvertCTypes[*C.ImGuiPtrOrIndex](cvalue)} } +type SelectionBasicStorage struct { + CData *C.ImGuiSelectionBasicStorage +} + +// Handle returns C version of SelectionBasicStorage and its finalizer func. +func (self *SelectionBasicStorage) Handle() (result *C.ImGuiSelectionBasicStorage, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self SelectionBasicStorage) C() (C.ImGuiSelectionBasicStorage, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewSelectionBasicStorageFromC creates SelectionBasicStorage from its C pointer. +// SRC ~= *C.ImGuiSelectionBasicStorage +func NewSelectionBasicStorageFromC[SRC any](cvalue SRC) *SelectionBasicStorage { + return &SelectionBasicStorage{CData: ConvertCTypes[*C.ImGuiSelectionBasicStorage](cvalue)} +} + +type SelectionExternalStorage struct { + CData *C.ImGuiSelectionExternalStorage +} + +// Handle returns C version of SelectionExternalStorage and its finalizer func. +func (self *SelectionExternalStorage) Handle() (result *C.ImGuiSelectionExternalStorage, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self SelectionExternalStorage) C() (C.ImGuiSelectionExternalStorage, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewSelectionExternalStorageFromC creates SelectionExternalStorage from its C pointer. +// SRC ~= *C.ImGuiSelectionExternalStorage +func NewSelectionExternalStorageFromC[SRC any](cvalue SRC) *SelectionExternalStorage { + return &SelectionExternalStorage{CData: ConvertCTypes[*C.ImGuiSelectionExternalStorage](cvalue)} +} + +type SelectionRequest struct { + CData *C.ImGuiSelectionRequest +} + +// Handle returns C version of SelectionRequest and its finalizer func. +func (self *SelectionRequest) Handle() (result *C.ImGuiSelectionRequest, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self SelectionRequest) C() (C.ImGuiSelectionRequest, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewSelectionRequestFromC creates SelectionRequest from its C pointer. +// SRC ~= *C.ImGuiSelectionRequest +func NewSelectionRequestFromC[SRC any](cvalue SRC) *SelectionRequest { + return &SelectionRequest{CData: ConvertCTypes[*C.ImGuiSelectionRequest](cvalue)} +} + type SettingsHandler struct { CData *C.ImGuiSettingsHandler } @@ -1897,6 +2023,27 @@ func NewTableDrawChannelIdxFromC[SRC any](cvalue SRC) *TableDrawChannelIdx { return (*TableDrawChannelIdx)((*uint16)(ConvertCTypes[*C.ImGuiTableDrawChannelIdx](cvalue))) } +type TableHeaderData struct { + CData *C.ImGuiTableHeaderData +} + +// Handle returns C version of TableHeaderData and its finalizer func. +func (self *TableHeaderData) Handle() (result *C.ImGuiTableHeaderData, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self TableHeaderData) C() (C.ImGuiTableHeaderData, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewTableHeaderDataFromC creates TableHeaderData from its C pointer. +// SRC ~= *C.ImGuiTableHeaderData +func NewTableHeaderDataFromC[SRC any](cvalue SRC) *TableHeaderData { + return &TableHeaderData{CData: ConvertCTypes[*C.ImGuiTableHeaderData](cvalue)} +} + type TableInstanceData struct { CData *C.ImGuiTableInstanceData } @@ -2065,6 +2212,27 @@ func NewTextRangeFromC[SRC any](cvalue SRC) *TextRange { return &TextRange{CData: ConvertCTypes[*C.ImGuiTextRange](cvalue)} } +type TreeNodeStackData struct { + CData *C.ImGuiTreeNodeStackData +} + +// Handle returns C version of TreeNodeStackData and its finalizer func. +func (self *TreeNodeStackData) Handle() (result *C.ImGuiTreeNodeStackData, fin func()) { + return self.CData, func() {} +} + +// C is like Handle but returns plain type instead of pointer. +func (self TreeNodeStackData) C() (C.ImGuiTreeNodeStackData, func()) { + result, fn := self.Handle() + return *result, fn +} + +// NewTreeNodeStackDataFromC creates TreeNodeStackData from its C pointer. +// SRC ~= *C.ImGuiTreeNodeStackData +func NewTreeNodeStackDataFromC[SRC any](cvalue SRC) *TreeNodeStackData { + return &TreeNodeStackData{CData: ConvertCTypes[*C.ImGuiTreeNodeStackData](cvalue)} +} + type TypingSelectRequest struct { CData *C.ImGuiTypingSelectRequest } @@ -2366,77 +2534,8 @@ func (self *STBTexteditState) Handle() (result *C.STB_TexteditState, fin func()) return self.CData, func() {} } -// C is like Handle but returns plain type instead of pointer. -func (self STBTexteditState) C() (C.STB_TexteditState, func()) { - result, fn := self.Handle() - return *result, fn -} - // NewSTBTexteditStateFromC creates STBTexteditState from its C pointer. // SRC ~= *C.STB_TexteditState func NewSTBTexteditStateFromC[SRC any](cvalue SRC) *STBTexteditState { return &STBTexteditState{CData: ConvertCTypes[*C.STB_TexteditState](cvalue)} } - -type StbTexteditRow struct { - CData *C.StbTexteditRow -} - -// Handle returns C version of StbTexteditRow and its finalizer func. -func (self *StbTexteditRow) Handle() (result *C.StbTexteditRow, fin func()) { - return self.CData, func() {} -} - -// C is like Handle but returns plain type instead of pointer. -func (self StbTexteditRow) C() (C.StbTexteditRow, func()) { - result, fn := self.Handle() - return *result, fn -} - -// NewStbTexteditRowFromC creates StbTexteditRow from its C pointer. -// SRC ~= *C.StbTexteditRow -func NewStbTexteditRowFromC[SRC any](cvalue SRC) *StbTexteditRow { - return &StbTexteditRow{CData: ConvertCTypes[*C.StbTexteditRow](cvalue)} -} - -type StbUndoRecord struct { - CData *C.StbUndoRecord -} - -// Handle returns C version of StbUndoRecord and its finalizer func. -func (self *StbUndoRecord) Handle() (result *C.StbUndoRecord, fin func()) { - return self.CData, func() {} -} - -// C is like Handle but returns plain type instead of pointer. -func (self StbUndoRecord) C() (C.StbUndoRecord, func()) { - result, fn := self.Handle() - return *result, fn -} - -// NewStbUndoRecordFromC creates StbUndoRecord from its C pointer. -// SRC ~= *C.StbUndoRecord -func NewStbUndoRecordFromC[SRC any](cvalue SRC) *StbUndoRecord { - return &StbUndoRecord{CData: ConvertCTypes[*C.StbUndoRecord](cvalue)} -} - -type StbUndoState struct { - CData *C.StbUndoState -} - -// Handle returns C version of StbUndoState and its finalizer func. -func (self *StbUndoState) Handle() (result *C.StbUndoState, fin func()) { - return self.CData, func() {} -} - -// C is like Handle but returns plain type instead of pointer. -func (self StbUndoState) C() (C.StbUndoState, func()) { - result, fn := self.Handle() - return *result, fn -} - -// NewStbUndoStateFromC creates StbUndoState from its C pointer. -// SRC ~= *C.StbUndoState -func NewStbUndoStateFromC[SRC any](cvalue SRC) *StbUndoState { - return &StbUndoState{CData: ConvertCTypes[*C.StbUndoState](cvalue)} -} diff --git a/cimgui_typedefs.h b/cimgui_typedefs.h index 93694afe0..bc00dc76f 100644 --- a/cimgui_typedefs.h +++ b/cimgui_typedefs.h @@ -4,7 +4,7 @@ #pragma once -#include "cimgui/cimgui.h" +#include "cwrappers/cimgui.h" #ifdef __cplusplus extern "C" { diff --git a/cimgui_wrapper.cpp b/cimgui_wrapper.cpp index f94e4a710..14c560e47 100644 --- a/cimgui_wrapper.cpp +++ b/cimgui_wrapper.cpp @@ -2,7 +2,7 @@ // DO NOT EDIT. #include "cimgui_wrapper.h" -#include "cimgui/cimgui.h" +#include "cwrappers/cimgui.h" void wrap_ImDrawList_AddCallback(ImDrawList* self,ImDrawCallback callback,uintptr_t callback_data) { ImDrawList_AddCallback(self,callback,(void*)(uintptr_t)callback_data); } void wrap_ImDrawList_AddText_FontPtrV(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,float wrap_width,const ImVec4* cpu_fine_clip_rect) { ImDrawList_AddText_FontPtr(self,font,font_size,pos,col,text_begin,0,wrap_width,cpu_fine_clip_rect); } @@ -26,7 +26,7 @@ ImGuiID wrap_ImGuiWindow_GetID_Ptr(ImGuiWindow* self,const uintptr_t ptr) { retu void wrap_igBulletText(const char* fmt) { igBulletText(fmt); } void wrap_igCalcTextSizeV(ImVec2 *pOut,const char* text,const int text_len,bool hide_text_after_double_hash,float wrap_width) { igCalcTextSize(pOut,text,(text_len > 0) ? text + text_len*sizeof(char) : 0,hide_text_after_double_hash,wrap_width); } bool wrap_igCombo_FnStrPtr(const char* label,int* current_item,const char*(*getter)(void* user_data,int idx),uintptr_t user_data,int items_count,int popup_max_height_in_items) { return igCombo_FnStrPtr(label,current_item,getter,(void*)(uintptr_t)user_data,items_count,popup_max_height_in_items); } -bool wrap_igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format) { return igDataTypeApplyFromText(buf,data_type,(void*)(uintptr_t)p_data,format); } +bool wrap_igDataTypeApplyFromTextV(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format,uintptr_t p_data_when_empty) { return igDataTypeApplyFromText(buf,data_type,(void*)(uintptr_t)p_data,format,(void*)(uintptr_t)p_data_when_empty); } void wrap_igDataTypeApplyOp(ImGuiDataType data_type,int op,uintptr_t output,const uintptr_t arg_1,const uintptr_t arg_2) { igDataTypeApplyOp(data_type,op,(void*)(uintptr_t)output,(const void*)(uintptr_t)arg_1,(const void*)(uintptr_t)arg_2); } bool wrap_igDataTypeClamp(ImGuiDataType data_type,uintptr_t p_data,const uintptr_t p_min,const uintptr_t p_max) { return igDataTypeClamp(data_type,(void*)(uintptr_t)p_data,(const void*)(uintptr_t)p_min,(const void*)(uintptr_t)p_max); } int wrap_igDataTypeCompare(ImGuiDataType data_type,const uintptr_t arg_1,const uintptr_t arg_2) { return igDataTypeCompare(data_type,(const void*)(uintptr_t)arg_1,(const void*)(uintptr_t)arg_2); } @@ -75,6 +75,7 @@ void wrap_igRenderTextWrapped(ImVec2 pos,const char* text,const int text_len,flo void wrap_igSetAllocatorFunctionsV(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func,uintptr_t user_data) { igSetAllocatorFunctions(alloc_func,free_func,(void*)(uintptr_t)user_data); } bool wrap_igSetDragDropPayloadV(const char* type,const uintptr_t data,size_t sz,ImGuiCond cond) { return igSetDragDropPayload(type,(const void*)(uintptr_t)data,sz,cond); } void wrap_igSetItemTooltip(const char* fmt) { igSetItemTooltip(fmt); } +void wrap_igSetNextItemRefVal(ImGuiDataType data_type,uintptr_t p_data) { igSetNextItemRefVal(data_type,(void*)(uintptr_t)p_data); } void wrap_igSetNextWindowSizeConstraintsV(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,uintptr_t custom_callback_data) { igSetNextWindowSizeConstraints(size_min,size_max,custom_callback,(void*)(uintptr_t)custom_callback_data); } void wrap_igSetTooltip(const char* fmt) { igSetTooltip(fmt); } bool wrap_igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_type,uintptr_t p_v,const uintptr_t p_min,const uintptr_t p_max,const char* format,ImGuiSliderFlags flags,ImRect* out_grab_bb) { return igSliderBehavior(bb,id,data_type,(void*)(uintptr_t)p_v,(const void*)(uintptr_t)p_min,(const void*)(uintptr_t)p_max,format,flags,out_grab_bb); } @@ -102,8 +103,8 @@ void wrap_ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec void wrap_ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness) { ImDrawList_AddBezierQuadratic(self,p1,p2,p3,col,thickness,0); } void wrap_ImDrawList_AddCircle(ImDrawList* self,const ImVec2 center,float radius,ImU32 col) { ImDrawList_AddCircle(self,center,radius,col,0,1.0f); } void wrap_ImDrawList_AddCircleFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col) { ImDrawList_AddCircleFilled(self,center,radius,col,0); } -void wrap_ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col) { ImDrawList_AddEllipse(self,center,radius_x,radius_y,col,0.0f,0,1.0f); } -void wrap_ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col) { ImDrawList_AddEllipseFilled(self,center,radius_x,radius_y,col,0.0f,0); } +void wrap_ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col) { ImDrawList_AddEllipse(self,center,radius,col,0.0f,0,1.0f); } +void wrap_ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col) { ImDrawList_AddEllipseFilled(self,center,radius,col,0.0f,0); } void wrap_ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max) { ImDrawList_AddImage(self,user_texture_id,p_min,p_max,(ImVec2){.x=0, .y=0},(ImVec2){.x=1, .y=1},4294967295); } void wrap_ImDrawList_AddImageQuad(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4) { ImDrawList_AddImageQuad(self,user_texture_id,p1,p2,p3,p4,(ImVec2){.x=0, .y=0},(ImVec2){.x=1, .y=0},(ImVec2){.x=1, .y=1},(ImVec2){.x=0, .y=1},4294967295); } void wrap_ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col,float rounding) { ImDrawList_AddImageRounded(self,user_texture_id,p_min,p_max,uv_min,uv_max,col,rounding,0); } @@ -118,7 +119,7 @@ void wrap_ImDrawList_AddTriangle(ImDrawList* self,const ImVec2 p1,const ImVec2 p void wrap_ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max) { ImDrawList_PathArcTo(self,center,radius,a_min,a_max,0); } void wrap_ImDrawList_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4) { ImDrawList_PathBezierCubicCurveTo(self,p2,p3,p4,0); } void wrap_ImDrawList_PathBezierQuadraticCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3) { ImDrawList_PathBezierQuadraticCurveTo(self,p2,p3,0); } -void wrap_ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,float rot,float a_min,float a_max) { ImDrawList_PathEllipticalArcTo(self,center,radius_x,radius_y,rot,a_min,a_max,0); } +void wrap_ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,const ImVec2 radius,float rot,float a_min,float a_max) { ImDrawList_PathEllipticalArcTo(self,center,radius,rot,a_min,a_max,0); } void wrap_ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max) { ImDrawList_PathRect(self,rect_min,rect_max,0.0f,0); } void wrap_ImDrawList_PathStroke(ImDrawList* self,ImU32 col) { ImDrawList_PathStroke(self,col,0,1.0f); } void wrap_ImDrawList_PushClipRect(ImDrawList* self,const ImVec2 clip_rect_min,const ImVec2 clip_rect_max) { ImDrawList_PushClipRect(self,clip_rect_min,clip_rect_max,false); } @@ -160,6 +161,7 @@ bool wrap_igBeginDragDropSource() { return igBeginDragDropSource(0); } bool wrap_igBeginListBox(const char* label) { return igBeginListBox(label,(ImVec2){.x=0, .y=0}); } bool wrap_igBeginMenu(const char* label) { return igBeginMenu(label,true); } bool wrap_igBeginMenuEx(const char* label,const char* icon) { return igBeginMenuEx(label,icon,true); } +ImGuiMultiSelectIO* wrap_igBeginMultiSelect(ImGuiMultiSelectFlags flags) { return igBeginMultiSelect(flags,-1,-1); } bool wrap_igBeginPopup(const char* str_id) { return igBeginPopup(str_id,0); } bool wrap_igBeginPopupContextItem() { return igBeginPopupContextItem(0,1); } bool wrap_igBeginPopupContextVoid() { return igBeginPopupContextVoid(0,1); } @@ -167,7 +169,7 @@ bool wrap_igBeginPopupContextWindow() { return igBeginPopupContextWindow(0,1); } bool wrap_igBeginPopupModal(const char* name) { return igBeginPopupModal(name,0,0); } bool wrap_igBeginTabBar(const char* str_id) { return igBeginTabBar(str_id,0); } bool wrap_igBeginTabItem(const char* label) { return igBeginTabItem(label,0,0); } -bool wrap_igBeginTable(const char* str_id,int column) { return igBeginTable(str_id,column,0,(ImVec2){.x=0, .y=0},0.0f); } +bool wrap_igBeginTable(const char* str_id,int columns) { return igBeginTable(str_id,columns,0,(ImVec2){.x=0, .y=0},0.0f); } bool wrap_igBeginTableEx(const char* name,ImGuiID id,int columns_count) { return igBeginTableEx(name,id,columns_count,0,(ImVec2){.x=0, .y=0},0.0f); } bool wrap_igButton(const char* label) { return igButton(label,(ImVec2){.x=0, .y=0}); } bool wrap_igButtonBehavior(const ImRect bb,ImGuiID id,bool* out_hovered,bool* out_held) { return igButtonBehavior(bb,id,out_hovered,out_held,0); } @@ -184,6 +186,7 @@ void wrap_igColumns() { igColumns(1,0,true); } bool wrap_igCombo_Str(const char* label,int* current_item,const char* items_separated_by_zeros) { return igCombo_Str(label,current_item,items_separated_by_zeros,-1); } bool wrap_igCombo_Str_arr(const char* label,int* current_item,const char* const items[],int items_count) { return igCombo_Str_arr(label,current_item,items,items_count,-1); } ImGuiContext* wrap_igCreateContext() { return igCreateContext(0); } +bool wrap_igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format) { return wrap_igDataTypeApplyFromTextV(buf,data_type,p_data,format,0); } void wrap_igDebugDrawCursorPos() { igDebugDrawCursorPos(4278190335); } void wrap_igDebugDrawItemRect() { igDebugDrawItemRect(4278190335); } void wrap_igDebugDrawLineExtents() { igDebugDrawLineExtents(4278190335); } @@ -191,8 +194,8 @@ void wrap_igDestroyContext() { igDestroyContext(0); } ImGuiID wrap_igDockBuilderAddNode() { return igDockBuilderAddNode(0,0); } void wrap_igDockBuilderRemoveNodeDockedWindows(ImGuiID node_id) { igDockBuilderRemoveNodeDockedWindows(node_id,true); } void wrap_igDockContextProcessUndockWindow(ImGuiContext* ctx,ImGuiWindow* window) { igDockContextProcessUndockWindow(ctx,window,true); } -ImGuiID wrap_igDockSpace(ImGuiID id) { return igDockSpace(id,(ImVec2){.x=0, .y=0},0,0); } -ImGuiID wrap_igDockSpaceOverViewport() { return igDockSpaceOverViewport(0,0,0); } +ImGuiID wrap_igDockSpace(ImGuiID dockspace_id) { return igDockSpace(dockspace_id,(ImVec2){.x=0, .y=0},0,0); } +ImGuiID wrap_igDockSpaceOverViewport() { return igDockSpaceOverViewport(0,0,0,0); } bool wrap_igDragFloat(const char* label,float* v) { return igDragFloat(label,v,1.0f,0.0f,0.0f,"%.3f",0); } bool wrap_igDragFloat2(const char* label,float v[2]) { return igDragFloat2(label,v,1.0f,0.0f,0.0f,"%.3f",0); } bool wrap_igDragFloat3(const char* label,float v[3]) { return igDragFloat3(label,v,1.0f,0.0f,0.0f,"%.3f",0); } @@ -209,10 +212,12 @@ void wrap_igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback) { wrap void wrap_igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback) { wrap_igErrorCheckEndWindowRecoverV(log_callback,0); } const char* wrap_igFindRenderedTextEnd(const char* text,const int text_len) { return wrap_igFindRenderedTextEndV(text,text_len); } void wrap_igFocusWindow(ImGuiWindow* window) { igFocusWindow(window,0); } +ImDrawList* wrap_igGetBackgroundDrawList() { return igGetBackgroundDrawList(0); } ImU32 wrap_igGetColorU32_Col(ImGuiCol idx) { return igGetColorU32_Col(idx,1.0f); } ImU32 wrap_igGetColorU32_U32(ImU32 col) { return igGetColorU32_U32(col,1.0f); } float wrap_igGetColumnOffset() { return igGetColumnOffset(-1); } float wrap_igGetColumnWidth() { return igGetColumnWidth(-1); } +ImDrawList* wrap_igGetForegroundDrawList_ViewportPtr() { return igGetForegroundDrawList_ViewportPtr(0); } void wrap_igGetMouseDragDelta(ImVec2* pOut) { igGetMouseDragDelta(pOut,0,-1.0f); } ImGuiTypingSelectRequest* wrap_igGetTypingSelectRequest() { return igGetTypingSelectRequest(ImGuiTypingSelectFlags_None); } uintptr_t wrap_igImFileLoadToMemory(const char* filename,const char* mode) { return wrap_igImFileLoadToMemoryV(filename,mode,0,0); } @@ -241,11 +246,11 @@ bool wrap_igInputTextWithHint(const char* label,const char* hint,char* buf,size_ bool wrap_igInvisibleButton(const char* str_id,const ImVec2 size) { return igInvisibleButton(str_id,size,0); } bool wrap_igIsItemClicked() { return igIsItemClicked(0); } bool wrap_igIsItemHovered() { return igIsItemHovered(0); } -bool wrap_igIsKeyChordPressed_ID(ImGuiKeyChord key_chord,ImGuiID owner_id) { return igIsKeyChordPressed_ID(key_chord,owner_id,0); } +bool wrap_igIsKeyChordPressed_InputFlags(ImGuiKeyChord key_chord,ImGuiInputFlags flags) { return igIsKeyChordPressed_InputFlags(key_chord,flags,0); } bool wrap_igIsKeyPressed_Bool(ImGuiKey key) { return igIsKeyPressed_Bool(key,true); } -bool wrap_igIsKeyPressed_ID(ImGuiKey key,ImGuiID owner_id) { return igIsKeyPressed_ID(key,owner_id,0); } +bool wrap_igIsKeyPressed_InputFlags(ImGuiKey key,ImGuiInputFlags flags) { return igIsKeyPressed_InputFlags(key,flags,0); } bool wrap_igIsMouseClicked_Bool(ImGuiMouseButton button) { return igIsMouseClicked_Bool(button,false); } -bool wrap_igIsMouseClicked_ID(ImGuiMouseButton button,ImGuiID owner_id) { return igIsMouseClicked_ID(button,owner_id,0); } +bool wrap_igIsMouseClicked_InputFlags(ImGuiMouseButton button,ImGuiInputFlags flags) { return igIsMouseClicked_InputFlags(button,flags,0); } bool wrap_igIsMouseDragPastThreshold(ImGuiMouseButton button) { return igIsMouseDragPastThreshold(button,-1.0f); } bool wrap_igIsMouseDragging(ImGuiMouseButton button) { return igIsMouseDragging(button,-1.0f); } bool wrap_igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max) { return igIsMouseHoveringRect(r_min,r_max,true); } @@ -297,11 +302,11 @@ bool wrap_igSelectable_BoolPtr(const char* label,bool* p_selected) { return igSe void wrap_igSeparatorEx(ImGuiSeparatorFlags flags) { igSeparatorEx(flags,1.0f); } void wrap_igSetAllocatorFunctions(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func) { wrap_igSetAllocatorFunctionsV(alloc_func,free_func,0); } bool wrap_igSetDragDropPayload(const char* type,uintptr_t data,size_t sz) { return wrap_igSetDragDropPayloadV(type,data,sz,0); } -void wrap_igSetItemKeyOwner(ImGuiKey key) { igSetItemKeyOwner(key,0); } void wrap_igSetKeyOwner(ImGuiKey key,ImGuiID owner_id) { igSetKeyOwner(key,owner_id,0); } void wrap_igSetKeyOwnersForKeyChord(ImGuiKeyChord key,ImGuiID owner_id) { igSetKeyOwnersForKeyChord(key,owner_id,0); } void wrap_igSetKeyboardFocusHere() { igSetKeyboardFocusHere(0); } void wrap_igSetNextItemOpen(bool is_open) { igSetNextItemOpen(is_open,0); } +void wrap_igSetNextItemShortcut(ImGuiKeyChord key_chord) { igSetNextItemShortcut(key_chord,0); } void wrap_igSetNextWindowCollapsed(bool collapsed) { igSetNextWindowCollapsed(collapsed,0); } void wrap_igSetNextWindowDockID(ImGuiID dock_id) { igSetNextWindowDockID(dock_id,0); } void wrap_igSetNextWindowPos(const ImVec2 pos) { igSetNextWindowPos(pos,0,(ImVec2){.x=0, .y=0}); } @@ -311,7 +316,6 @@ void wrap_igSetScrollFromPosX_Float(float local_x) { igSetScrollFromPosX_Float(l void wrap_igSetScrollFromPosY_Float(float local_y) { igSetScrollFromPosY_Float(local_y,0.5f); } void wrap_igSetScrollHereX() { igSetScrollHereX(0.5f); } void wrap_igSetScrollHereY() { igSetScrollHereY(0.5f); } -bool wrap_igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id) { return igSetShortcutRouting(key_chord,owner_id,0); } void wrap_igSetWindowCollapsed_Bool(bool collapsed) { igSetWindowCollapsed_Bool(collapsed,0); } void wrap_igSetWindowCollapsed_Str(const char* name,bool collapsed) { igSetWindowCollapsed_Str(name,collapsed,0); } void wrap_igSetWindowCollapsed_WindowPtr(ImGuiWindow* window,bool collapsed) { igSetWindowCollapsed_WindowPtr(window,collapsed,0); } @@ -321,7 +325,7 @@ void wrap_igSetWindowPos_WindowPtr(ImGuiWindow* window,const ImVec2 pos) { igSet void wrap_igSetWindowSize_Str(const char* name,const ImVec2 size) { igSetWindowSize_Str(name,size,0); } void wrap_igSetWindowSize_Vec2(const ImVec2 size) { igSetWindowSize_Vec2(size,0); } void wrap_igSetWindowSize_WindowPtr(ImGuiWindow* window,const ImVec2 size) { igSetWindowSize_WindowPtr(window,size,0); } -bool wrap_igShortcut(ImGuiKeyChord key_chord) { return igShortcut(key_chord,0,0); } +bool wrap_igShortcut_Nil(ImGuiKeyChord key_chord) { return igShortcut_Nil(key_chord,0); } void wrap_igShowAboutWindow() { igShowAboutWindow(0); } void wrap_igShowDebugLogWindow() { igShowDebugLogWindow(0); } void wrap_igShowDemoWindow() { igShowDemoWindow(0); } @@ -344,7 +348,6 @@ void wrap_igStyleColorsClassic() { igStyleColorsClassic(0); } void wrap_igStyleColorsDark() { igStyleColorsDark(0); } void wrap_igStyleColorsLight() { igStyleColorsLight(0); } bool wrap_igTabItemButton(const char* label) { return igTabItemButton(label,0); } -void wrap_igTableAngledHeadersRowEx(float angle) { igTableAngledHeadersRowEx(angle,0.0f); } ImGuiTableColumnFlags wrap_igTableGetColumnFlags() { return igTableGetColumnFlags(-1); } const char* wrap_igTableGetColumnName_Int() { return igTableGetColumnName_Int(-1); } ImGuiID wrap_igTableGetColumnResizeID(ImGuiTable* table,int column_n) { return igTableGetColumnResizeID(table,column_n,0); } @@ -354,6 +357,7 @@ void wrap_igTableSetBgColor(ImGuiTableBgTarget target,ImU32 color) { igTableSetB void wrap_igTableSetupColumn(const char* label) { igTableSetupColumn(label,0,0.0f,0); } bool wrap_igTempInputScalar(const ImRect bb,ImGuiID id,const char* label,ImGuiDataType data_type,uintptr_t p_data,const char* format) { return wrap_igTempInputScalarV(bb,id,label,data_type,p_data,format,0,0); } void wrap_igTextEx(const char* text,const int text_len) { wrap_igTextExV(text,text_len,0); } +void wrap_igTextLinkOpenURL(const char* label) { igTextLinkOpenURL(label,0); } void wrap_igTextUnformatted(const char* text,const int text_len) { wrap_igTextUnformattedV(text,text_len); } bool wrap_igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label) { return igTreeNodeBehavior(id,flags,label,0); } bool wrap_igTreeNodeEx_Str(const char* label) { return igTreeNodeEx_Str(label,0); } diff --git a/cimgui_wrapper.h b/cimgui_wrapper.h index 359770198..06383fa33 100644 --- a/cimgui_wrapper.h +++ b/cimgui_wrapper.h @@ -3,7 +3,7 @@ #pragma once -#include "cimgui/cimgui.h" +#include "cwrappers/cimgui.h" #ifdef __cplusplus extern "C" { @@ -31,7 +31,7 @@ extern ImGuiID wrap_ImGuiWindow_GetID_Ptr(ImGuiWindow* self,const uintptr_t ptr) extern void wrap_igBulletText(const char* fmt); extern void wrap_igCalcTextSizeV(ImVec2 *pOut,const char* text,const int text_len,bool hide_text_after_double_hash,float wrap_width); extern bool wrap_igCombo_FnStrPtr(const char* label,int* current_item,const char*(*getter)(void* user_data,int idx),uintptr_t user_data,int items_count,int popup_max_height_in_items); -extern bool wrap_igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format); +extern bool wrap_igDataTypeApplyFromTextV(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format,uintptr_t p_data_when_empty); extern void wrap_igDataTypeApplyOp(ImGuiDataType data_type,int op,uintptr_t output,const uintptr_t arg_1,const uintptr_t arg_2); extern bool wrap_igDataTypeClamp(ImGuiDataType data_type,uintptr_t p_data,const uintptr_t p_min,const uintptr_t p_max); extern int wrap_igDataTypeCompare(ImGuiDataType data_type,const uintptr_t arg_1,const uintptr_t arg_2); @@ -80,6 +80,7 @@ extern void wrap_igRenderTextWrapped(ImVec2 pos,const char* text,const int text_ extern void wrap_igSetAllocatorFunctionsV(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func,uintptr_t user_data); extern bool wrap_igSetDragDropPayloadV(const char* type,const uintptr_t data,size_t sz,ImGuiCond cond); extern void wrap_igSetItemTooltip(const char* fmt); +extern void wrap_igSetNextItemRefVal(ImGuiDataType data_type,uintptr_t p_data); extern void wrap_igSetNextWindowSizeConstraintsV(const ImVec2 size_min,const ImVec2 size_max,ImGuiSizeCallback custom_callback,uintptr_t custom_callback_data); extern void wrap_igSetTooltip(const char* fmt); extern bool wrap_igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_type,uintptr_t p_v,const uintptr_t p_min,const uintptr_t p_max,const char* format,ImGuiSliderFlags flags,ImRect* out_grab_bb); @@ -107,8 +108,8 @@ extern void wrap_ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,cons extern void wrap_ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness); extern void wrap_ImDrawList_AddCircle(ImDrawList* self,const ImVec2 center,float radius,ImU32 col); extern void wrap_ImDrawList_AddCircleFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col); -extern void wrap_ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col); -extern void wrap_ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col); +extern void wrap_ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col); +extern void wrap_ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col); extern void wrap_ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max); extern void wrap_ImDrawList_AddImageQuad(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4); extern void wrap_ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col,float rounding); @@ -123,7 +124,7 @@ extern void wrap_ImDrawList_AddTriangle(ImDrawList* self,const ImVec2 p1,const I extern void wrap_ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max); extern void wrap_ImDrawList_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4); extern void wrap_ImDrawList_PathBezierQuadraticCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3); -extern void wrap_ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,float rot,float a_min,float a_max); +extern void wrap_ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,const ImVec2 radius,float rot,float a_min,float a_max); extern void wrap_ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max); extern void wrap_ImDrawList_PathStroke(ImDrawList* self,ImU32 col); extern void wrap_ImDrawList_PushClipRect(ImDrawList* self,const ImVec2 clip_rect_min,const ImVec2 clip_rect_max); @@ -165,6 +166,7 @@ extern bool wrap_igBeginDragDropSource(); extern bool wrap_igBeginListBox(const char* label); extern bool wrap_igBeginMenu(const char* label); extern bool wrap_igBeginMenuEx(const char* label,const char* icon); +extern ImGuiMultiSelectIO* wrap_igBeginMultiSelect(ImGuiMultiSelectFlags flags); extern bool wrap_igBeginPopup(const char* str_id); extern bool wrap_igBeginPopupContextItem(); extern bool wrap_igBeginPopupContextVoid(); @@ -172,7 +174,7 @@ extern bool wrap_igBeginPopupContextWindow(); extern bool wrap_igBeginPopupModal(const char* name); extern bool wrap_igBeginTabBar(const char* str_id); extern bool wrap_igBeginTabItem(const char* label); -extern bool wrap_igBeginTable(const char* str_id,int column); +extern bool wrap_igBeginTable(const char* str_id,int columns); extern bool wrap_igBeginTableEx(const char* name,ImGuiID id,int columns_count); extern bool wrap_igButton(const char* label); extern bool wrap_igButtonBehavior(const ImRect bb,ImGuiID id,bool* out_hovered,bool* out_held); @@ -189,6 +191,7 @@ extern void wrap_igColumns(); extern bool wrap_igCombo_Str(const char* label,int* current_item,const char* items_separated_by_zeros); extern bool wrap_igCombo_Str_arr(const char* label,int* current_item,const char* const items[],int items_count); extern ImGuiContext* wrap_igCreateContext(); +extern bool wrap_igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,uintptr_t p_data,const char* format); extern void wrap_igDebugDrawCursorPos(); extern void wrap_igDebugDrawItemRect(); extern void wrap_igDebugDrawLineExtents(); @@ -196,7 +199,7 @@ extern void wrap_igDestroyContext(); extern ImGuiID wrap_igDockBuilderAddNode(); extern void wrap_igDockBuilderRemoveNodeDockedWindows(ImGuiID node_id); extern void wrap_igDockContextProcessUndockWindow(ImGuiContext* ctx,ImGuiWindow* window); -extern ImGuiID wrap_igDockSpace(ImGuiID id); +extern ImGuiID wrap_igDockSpace(ImGuiID dockspace_id); extern ImGuiID wrap_igDockSpaceOverViewport(); extern bool wrap_igDragFloat(const char* label,float* v); extern bool wrap_igDragFloat2(const char* label,float v[2]); @@ -214,10 +217,12 @@ extern void wrap_igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback) extern void wrap_igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback); extern const char* wrap_igFindRenderedTextEnd(const char* text,const int text_len); extern void wrap_igFocusWindow(ImGuiWindow* window); +extern ImDrawList* wrap_igGetBackgroundDrawList(); extern ImU32 wrap_igGetColorU32_Col(ImGuiCol idx); extern ImU32 wrap_igGetColorU32_U32(ImU32 col); extern float wrap_igGetColumnOffset(); extern float wrap_igGetColumnWidth(); +extern ImDrawList* wrap_igGetForegroundDrawList_ViewportPtr(); extern void wrap_igGetMouseDragDelta(ImVec2* pOut); extern ImGuiTypingSelectRequest* wrap_igGetTypingSelectRequest(); extern uintptr_t wrap_igImFileLoadToMemory(const char* filename,const char* mode); @@ -246,11 +251,11 @@ extern bool wrap_igInputTextWithHint(const char* label,const char* hint,char* bu extern bool wrap_igInvisibleButton(const char* str_id,const ImVec2 size); extern bool wrap_igIsItemClicked(); extern bool wrap_igIsItemHovered(); -extern bool wrap_igIsKeyChordPressed_ID(ImGuiKeyChord key_chord,ImGuiID owner_id); +extern bool wrap_igIsKeyChordPressed_InputFlags(ImGuiKeyChord key_chord,ImGuiInputFlags flags); extern bool wrap_igIsKeyPressed_Bool(ImGuiKey key); -extern bool wrap_igIsKeyPressed_ID(ImGuiKey key,ImGuiID owner_id); +extern bool wrap_igIsKeyPressed_InputFlags(ImGuiKey key,ImGuiInputFlags flags); extern bool wrap_igIsMouseClicked_Bool(ImGuiMouseButton button); -extern bool wrap_igIsMouseClicked_ID(ImGuiMouseButton button,ImGuiID owner_id); +extern bool wrap_igIsMouseClicked_InputFlags(ImGuiMouseButton button,ImGuiInputFlags flags); extern bool wrap_igIsMouseDragPastThreshold(ImGuiMouseButton button); extern bool wrap_igIsMouseDragging(ImGuiMouseButton button); extern bool wrap_igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max); @@ -302,11 +307,11 @@ extern bool wrap_igSelectable_BoolPtr(const char* label,bool* p_selected); extern void wrap_igSeparatorEx(ImGuiSeparatorFlags flags); extern void wrap_igSetAllocatorFunctions(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func); extern bool wrap_igSetDragDropPayload(const char* type,uintptr_t data,size_t sz); -extern void wrap_igSetItemKeyOwner(ImGuiKey key); extern void wrap_igSetKeyOwner(ImGuiKey key,ImGuiID owner_id); extern void wrap_igSetKeyOwnersForKeyChord(ImGuiKeyChord key,ImGuiID owner_id); extern void wrap_igSetKeyboardFocusHere(); extern void wrap_igSetNextItemOpen(bool is_open); +extern void wrap_igSetNextItemShortcut(ImGuiKeyChord key_chord); extern void wrap_igSetNextWindowCollapsed(bool collapsed); extern void wrap_igSetNextWindowDockID(ImGuiID dock_id); extern void wrap_igSetNextWindowPos(const ImVec2 pos); @@ -316,7 +321,6 @@ extern void wrap_igSetScrollFromPosX_Float(float local_x); extern void wrap_igSetScrollFromPosY_Float(float local_y); extern void wrap_igSetScrollHereX(); extern void wrap_igSetScrollHereY(); -extern bool wrap_igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id); extern void wrap_igSetWindowCollapsed_Bool(bool collapsed); extern void wrap_igSetWindowCollapsed_Str(const char* name,bool collapsed); extern void wrap_igSetWindowCollapsed_WindowPtr(ImGuiWindow* window,bool collapsed); @@ -326,7 +330,7 @@ extern void wrap_igSetWindowPos_WindowPtr(ImGuiWindow* window,const ImVec2 pos); extern void wrap_igSetWindowSize_Str(const char* name,const ImVec2 size); extern void wrap_igSetWindowSize_Vec2(const ImVec2 size); extern void wrap_igSetWindowSize_WindowPtr(ImGuiWindow* window,const ImVec2 size); -extern bool wrap_igShortcut(ImGuiKeyChord key_chord); +extern bool wrap_igShortcut_Nil(ImGuiKeyChord key_chord); extern void wrap_igShowAboutWindow(); extern void wrap_igShowDebugLogWindow(); extern void wrap_igShowDemoWindow(); @@ -349,7 +353,6 @@ extern void wrap_igStyleColorsClassic(); extern void wrap_igStyleColorsDark(); extern void wrap_igStyleColorsLight(); extern bool wrap_igTabItemButton(const char* label); -extern void wrap_igTableAngledHeadersRowEx(float angle); extern ImGuiTableColumnFlags wrap_igTableGetColumnFlags(); extern const char* wrap_igTableGetColumnName_Int(); extern ImGuiID wrap_igTableGetColumnResizeID(ImGuiTable* table,int column_n); @@ -359,6 +362,7 @@ extern void wrap_igTableSetBgColor(ImGuiTableBgTarget target,ImU32 color); extern void wrap_igTableSetupColumn(const char* label); extern bool wrap_igTempInputScalar(const ImRect bb,ImGuiID id,const char* label,ImGuiDataType data_type,uintptr_t p_data,const char* format); extern void wrap_igTextEx(const char* text,const int text_len); +extern void wrap_igTextLinkOpenURL(const char* label); extern void wrap_igTextUnformatted(const char* text,const int text_len); extern bool wrap_igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label); extern bool wrap_igTreeNodeEx_Str(const char* label); diff --git a/cimmarkdown_typedefs.cpp b/cimmarkdown_typedefs.cpp index a219dbdf3..961d08666 100644 --- a/cimmarkdown_typedefs.cpp +++ b/cimmarkdown_typedefs.cpp @@ -3,4 +3,4 @@ #include "cimmarkdown_typedefs.h" -#include "cimgui/cimmarkdown.h" +#include "cwrappers/cimmarkdown.h" diff --git a/cimmarkdown_typedefs.h b/cimmarkdown_typedefs.h index 64e34f05a..f4dbbdec6 100644 --- a/cimmarkdown_typedefs.h +++ b/cimmarkdown_typedefs.h @@ -4,7 +4,7 @@ #pragma once -#include "cimgui/cimmarkdown.h" +#include "cwrappers/cimmarkdown.h" #ifdef __cplusplus extern "C" { diff --git a/cimmarkdown_wrapper.cpp b/cimmarkdown_wrapper.cpp index 6c84ecdd4..5216b416c 100644 --- a/cimmarkdown_wrapper.cpp +++ b/cimmarkdown_wrapper.cpp @@ -2,7 +2,7 @@ // DO NOT EDIT. #include "cimmarkdown_wrapper.h" -#include "cimgui/cimmarkdown.h" +#include "cwrappers/cimmarkdown.h" bool wrap_RenderLinkText(TextRegion* self,const char* text_,const Link link_,const char* markdown_,const MarkdownConfig mdConfig_,const char** linkHoverStart_) { return RenderLinkText(self,text_,0,link_,markdown_,mdConfig_,linkHoverStart_); } void wrap_RenderLinkTextWrappedV(TextRegion* self,const char* text_,const Link link_,const char* markdown_,const MarkdownConfig mdConfig_,const char** linkHoverStart_,bool bIndentToHere_) { RenderLinkTextWrapped(self,text_,0,link_,markdown_,mdConfig_,linkHoverStart_,bIndentToHere_); } diff --git a/cimmarkdown_wrapper.h b/cimmarkdown_wrapper.h index 1ef492f45..91ade443c 100644 --- a/cimmarkdown_wrapper.h +++ b/cimmarkdown_wrapper.h @@ -3,7 +3,7 @@ #pragma once -#include "cimgui/cimmarkdown.h" +#include "cwrappers/cimmarkdown.h" #ifdef __cplusplus extern "C" { diff --git a/cimnodes_typedefs.cpp b/cimnodes_typedefs.cpp index 05ec478e5..d91b0ba39 100644 --- a/cimnodes_typedefs.cpp +++ b/cimnodes_typedefs.cpp @@ -3,7 +3,7 @@ #include "cimnodes_typedefs.h" -#include "cimgui/cimnodes.h" +#include "cwrappers/cimnodes.h" uintptr_t ImNodesMiniMapNodeHoveringCallbackUserData_toUintptr(ImNodesMiniMapNodeHoveringCallbackUserData ptr) { return (uintptr_t)ptr; diff --git a/cimnodes_typedefs.h b/cimnodes_typedefs.h index f14f3dc3f..e5beedb9d 100644 --- a/cimnodes_typedefs.h +++ b/cimnodes_typedefs.h @@ -4,7 +4,7 @@ #pragma once -#include "cimgui/cimnodes.h" +#include "cwrappers/cimnodes.h" #ifdef __cplusplus extern "C" { diff --git a/cimnodes_wrapper.cpp b/cimnodes_wrapper.cpp index a047cf64a..56121c0fc 100644 --- a/cimnodes_wrapper.cpp +++ b/cimnodes_wrapper.cpp @@ -2,7 +2,7 @@ // DO NOT EDIT. #include "cimnodes_wrapper.h" -#include "cimgui/cimnodes.h" +#include "cwrappers/cimnodes.h" void wrap_imnodes_BeginInputAttribute(int id) { imnodes_BeginInputAttribute(id,ImNodesPinShape_CircleFilled); } void wrap_imnodes_BeginOutputAttribute(int id) { imnodes_BeginOutputAttribute(id,ImNodesPinShape_CircleFilled); } diff --git a/cimnodes_wrapper.h b/cimnodes_wrapper.h index e53181337..73dbfdbab 100644 --- a/cimnodes_wrapper.h +++ b/cimnodes_wrapper.h @@ -3,7 +3,7 @@ #pragma once -#include "cimgui/cimnodes.h" +#include "cwrappers/cimnodes.h" #ifdef __cplusplus extern "C" { diff --git a/cimplot_typedefs.cpp b/cimplot_typedefs.cpp index 06a82185e..9977627d2 100644 --- a/cimplot_typedefs.cpp +++ b/cimplot_typedefs.cpp @@ -3,4 +3,4 @@ #include "cimplot_typedefs.h" -#include "cimgui/cimplot.h" +#include "cwrappers/cimplot.h" diff --git a/cimplot_typedefs.h b/cimplot_typedefs.h index 138b9ac22..dc99dde8d 100644 --- a/cimplot_typedefs.h +++ b/cimplot_typedefs.h @@ -4,7 +4,7 @@ #pragma once -#include "cimgui/cimplot.h" +#include "cwrappers/cimplot.h" #ifdef __cplusplus extern "C" { diff --git a/cimplot_wrapper.cpp b/cimplot_wrapper.cpp index 100c12ab2..b70a36513 100644 --- a/cimplot_wrapper.cpp +++ b/cimplot_wrapper.cpp @@ -2,7 +2,7 @@ // DO NOT EDIT. #include "cimplot_wrapper.h" -#include "cimgui/cimplot.h" +#include "cwrappers/cimplot.h" void wrap_ImPlotAnnotationCollection_Append(ImPlotAnnotationCollection* self,const ImVec2 pos,const ImVec2 off,ImU32 bg,ImU32 fg,bool clamp,const char* fmt) { ImPlotAnnotationCollection_Append(self,pos,off,bg,fg,clamp,fmt); } void wrap_ImPlotTagCollection_Append(ImPlotTagCollection* self,ImAxis axis,double value,ImU32 bg,ImU32 fg,const char* fmt) { ImPlotTagCollection_Append(self,axis,value,bg,fg,fmt); } diff --git a/cimplot_wrapper.h b/cimplot_wrapper.h index 418c84060..8d20682e5 100644 --- a/cimplot_wrapper.h +++ b/cimplot_wrapper.h @@ -3,7 +3,7 @@ #pragma once -#include "cimgui/cimplot.h" +#include "cwrappers/cimplot.h" #ifdef __cplusplus extern "C" { diff --git a/clipboard.go b/clipboard.go index 699ad6d8e..15f3d5db3 100644 --- a/clipboard.go +++ b/clipboard.go @@ -55,12 +55,12 @@ type ClipboardHandler interface { SetClipboard(s string) } -func (io IO) SetClipboardHandler(handler ClipboardHandler) { +func (io PlatformIO) SetClipboardHandler(handler ClipboardHandler) { rawIO, rawIOFin := io.Handle() defer rawIOFin() - rawIO.GetClipboardTextFn = (C.get_clipboard_cb)(C.get_clipboard_callback) - rawIO.SetClipboardTextFn = (C.set_clipboard_cb)(C.set_clipboard_callback) + rawIO.Platform_GetClipboardTextFn = (C.get_clipboard_cb)(C.get_clipboard_callback) + rawIO.Platform_SetClipboardTextFn = (C.set_clipboard_cb)(C.set_clipboard_callback) /* TODO: Turns out the ClipboardUserData isn't guaranteed to be nil for a fresh IO struct, @@ -79,5 +79,5 @@ func (io IO) SetClipboardHandler(handler ClipboardHandler) { } userData := cgo.NewHandle(helper) - rawIO.ClipboardUserData = unsafe.Pointer(userData) + rawIO.Platform_ClipboardUserData = unsafe.Pointer(userData) } diff --git a/cmd/codegen/gengo_typedefs.go b/cmd/codegen/gengo_typedefs.go index f4eb6a2a7..d022ab1a5 100644 --- a/cmd/codegen/gengo_typedefs.go +++ b/cmd/codegen/gengo_typedefs.go @@ -46,7 +46,7 @@ import "unsafe" ` #pragma once -#include "cimgui/%s.h" +#include "cwrappers/%s.h" #ifdef __cplusplus extern "C" { @@ -57,7 +57,7 @@ extern "C" { fmt.Fprintf(typedefsCppSb, ` #include "%[1]s_typedefs.h" -#include "cimgui/%[1]s.h" +#include "cwrappers/%[1]s.h" `, data.prefix) // because go ranges through maps as if it was drunken, we need to sort keys. diff --git a/cwrappers/VERSION.txt b/cwrappers/VERSION.txt new file mode 100644 index 000000000..f510bb9d8 --- /dev/null +++ b/cwrappers/VERSION.txt @@ -0,0 +1,8 @@ +cimgui (https://github.com/cimgui/cimgui) HEAD is on: 0c7f67607d2aac88f5eaa9aa907a868a17144d58 +cimgui/imgui HEAD is on: 8ba7efb738d6ee992ef81b451162591e43badbcf +cimplot (https://github.com/cimgui/cimplot) HEAD is on: 439f705b1cfae0e9fbe42c13ab5b45becc47d404 +cimplot/implot HEAD is on: f156599faefe316f7dd20fe6c783bf87c8bb6fd9 +cimnodes (https://github.com/cimgui/cimnodes) HEAD is on: f20c83c3cab8e99828d85c66ed3acd087f632c21 +cimnodes/imnodes HEAD is on: 8563e1655bd9bb1f249e6552cc6274d506ee788b +cimmarkdown (https://github.com/gucio321/cimmarkdown) HEAD is on: 6e921ffc2b57a9969b98bf8f5aeed912bfb497f6 +cimmarkdown/imgui_markdown HEAD is on: 4eb198f68090c9a1622bb9c78ee61f65b6ddc898 diff --git a/cimgui/cimgui.cpp b/cwrappers/cimgui.cpp similarity index 93% rename from cimgui/cimgui.cpp rename to cwrappers/cimgui.cpp index 8f76359bd..660f98cc7 100644 --- a/cimgui/cimgui.cpp +++ b/cwrappers/cimgui.cpp @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.90.4" 19040 from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.91.2 WIP" 19114 from Dear ImGui https://github.com/ocornut/imgui //with imgui_internal.h api //docking branch #ifdef IMGUI_ENABLE_FREETYPE @@ -64,6 +64,10 @@ CIMGUI_API ImGuiIO* igGetIO() { return &ImGui::GetIO(); } +CIMGUI_API ImGuiPlatformIO* igGetPlatformIO() +{ + return &ImGui::GetPlatformIO(); +} CIMGUI_API ImGuiStyle* igGetStyle() { return &ImGui::GetStyle(); @@ -272,22 +276,6 @@ CIMGUI_API void igSetWindowFocus_Str(const char* name) { return ImGui::SetWindowFocus(name); } -CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut) -{ - *pOut = ImGui::GetContentRegionAvail(); -} -CIMGUI_API void igGetContentRegionMax(ImVec2 *pOut) -{ - *pOut = ImGui::GetContentRegionMax(); -} -CIMGUI_API void igGetWindowContentRegionMin(ImVec2 *pOut) -{ - *pOut = ImGui::GetWindowContentRegionMin(); -} -CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut) -{ - *pOut = ImGui::GetWindowContentRegionMax(); -} CIMGUI_API float igGetScrollX() { return ImGui::GetScrollX(); @@ -356,25 +344,25 @@ CIMGUI_API void igPushStyleVar_Vec2(ImGuiStyleVar idx,const ImVec2 val) { return ImGui::PushStyleVar(idx,val); } -CIMGUI_API void igPopStyleVar(int count) +CIMGUI_API void igPushStyleVarX(ImGuiStyleVar idx,float val_x) { - return ImGui::PopStyleVar(count); + return ImGui::PushStyleVarX(idx,val_x); } -CIMGUI_API void igPushTabStop(bool tab_stop) +CIMGUI_API void igPushStyleVarY(ImGuiStyleVar idx,float val_y) { - return ImGui::PushTabStop(tab_stop); + return ImGui::PushStyleVarY(idx,val_y); } -CIMGUI_API void igPopTabStop() +CIMGUI_API void igPopStyleVar(int count) { - return ImGui::PopTabStop(); + return ImGui::PopStyleVar(count); } -CIMGUI_API void igPushButtonRepeat(bool repeat) +CIMGUI_API void igPushItemFlag(ImGuiItemFlags option,bool enabled) { - return ImGui::PushButtonRepeat(repeat); + return ImGui::PushItemFlag(option,enabled); } -CIMGUI_API void igPopButtonRepeat() +CIMGUI_API void igPopItemFlag() { - return ImGui::PopButtonRepeat(); + return ImGui::PopItemFlag(); } CIMGUI_API void igPushItemWidth(float item_width) { @@ -436,6 +424,10 @@ CIMGUI_API void igSetCursorScreenPos(const ImVec2 pos) { return ImGui::SetCursorScreenPos(pos); } +CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut) +{ + *pOut = ImGui::GetContentRegionAvail(); +} CIMGUI_API void igGetCursorPos(ImVec2 *pOut) { *pOut = ImGui::GetCursorPos(); @@ -552,6 +544,10 @@ CIMGUI_API ImGuiID igGetID_Ptr(const void* ptr_id) { return ImGui::GetID(ptr_id); } +CIMGUI_API ImGuiID igGetID_Int(int int_id) +{ + return ImGui::GetID(int_id); +} CIMGUI_API void igTextUnformatted(const char* text,const char* text_end) { return ImGui::TextUnformatted(text,text_end); @@ -670,6 +666,14 @@ CIMGUI_API void igBullet() { return ImGui::Bullet(); } +CIMGUI_API bool igTextLink(const char* label) +{ + return ImGui::TextLink(label); +} +CIMGUI_API void igTextLinkOpenURL(const char* label,const char* url) +{ + return ImGui::TextLinkOpenURL(label,url); +} CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col) { return ImGui::Image(user_texture_id,image_size,uv0,uv1,tint_col,border_col); @@ -966,6 +970,10 @@ CIMGUI_API void igSetNextItemOpen(bool is_open,ImGuiCond cond) { return ImGui::SetNextItemOpen(is_open,cond); } +CIMGUI_API void igSetNextItemStorageID(ImGuiID storage_id) +{ + return ImGui::SetNextItemStorageID(storage_id); +} CIMGUI_API bool igSelectable_Bool(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size) { return ImGui::Selectable(label,selected,flags,size); @@ -974,6 +982,22 @@ CIMGUI_API bool igSelectable_BoolPtr(const char* label,bool* p_selected,ImGuiSel { return ImGui::Selectable(label,p_selected,flags,size); } +CIMGUI_API ImGuiMultiSelectIO* igBeginMultiSelect(ImGuiMultiSelectFlags flags,int selection_size,int items_count) +{ + return ImGui::BeginMultiSelect(flags,selection_size,items_count); +} +CIMGUI_API ImGuiMultiSelectIO* igEndMultiSelect() +{ + return ImGui::EndMultiSelect(); +} +CIMGUI_API void igSetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data) +{ + return ImGui::SetNextItemSelectionUserData(selection_user_data); +} +CIMGUI_API bool igIsItemToggledSelection() +{ + return ImGui::IsItemToggledSelection(); +} CIMGUI_API bool igBeginListBox(const char* label,const ImVec2 size) { return ImGui::BeginListBox(label,size); @@ -1132,9 +1156,9 @@ CIMGUI_API bool igIsPopupOpen_Str(const char* str_id,ImGuiPopupFlags flags) { return ImGui::IsPopupOpen(str_id,flags); } -CIMGUI_API bool igBeginTable(const char* str_id,int column,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width) +CIMGUI_API bool igBeginTable(const char* str_id,int columns,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width) { - return ImGui::BeginTable(str_id,column,flags,outer_size,inner_width); + return ImGui::BeginTable(str_id,columns,flags,outer_size,inner_width); } CIMGUI_API void igEndTable() { @@ -1200,13 +1224,17 @@ CIMGUI_API void igTableSetColumnEnabled(int column_n,bool v) { return ImGui::TableSetColumnEnabled(column_n,v); } +CIMGUI_API int igTableGetHoveredColumn() +{ + return ImGui::TableGetHoveredColumn(); +} CIMGUI_API void igTableSetBgColor(ImGuiTableBgTarget target,ImU32 color,int column_n) { return ImGui::TableSetBgColor(target,color,column_n); } -CIMGUI_API void igColumns(int count,const char* id,bool border) +CIMGUI_API void igColumns(int count,const char* id,bool borders) { - return ImGui::Columns(count,id,border); + return ImGui::Columns(count,id,borders); } CIMGUI_API void igNextColumn() { @@ -1260,13 +1288,13 @@ CIMGUI_API void igSetTabItemClosed(const char* tab_or_docked_window_label) { return ImGui::SetTabItemClosed(tab_or_docked_window_label); } -CIMGUI_API ImGuiID igDockSpace(ImGuiID id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class) +CIMGUI_API ImGuiID igDockSpace(ImGuiID dockspace_id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class) { - return ImGui::DockSpace(id,size,flags,window_class); + return ImGui::DockSpace(dockspace_id,size,flags,window_class); } -CIMGUI_API ImGuiID igDockSpaceOverViewport(const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class) +CIMGUI_API ImGuiID igDockSpaceOverViewport(ImGuiID dockspace_id,const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class) { - return ImGui::DockSpaceOverViewport(viewport,flags,window_class); + return ImGui::DockSpaceOverViewport(dockspace_id,viewport,flags,window_class); } CIMGUI_API void igSetNextWindowDockID(ImGuiID dock_id,ImGuiCond cond) { @@ -1436,15 +1464,7 @@ CIMGUI_API ImGuiViewport* igGetMainViewport() { return ImGui::GetMainViewport(); } -CIMGUI_API ImDrawList* igGetBackgroundDrawList_Nil() -{ - return ImGui::GetBackgroundDrawList(); -} -CIMGUI_API ImDrawList* igGetForegroundDrawList_Nil() -{ - return ImGui::GetForegroundDrawList(); -} -CIMGUI_API ImDrawList* igGetBackgroundDrawList_ViewportPtr(ImGuiViewport* viewport) +CIMGUI_API ImDrawList* igGetBackgroundDrawList(ImGuiViewport* viewport) { return ImGui::GetBackgroundDrawList(viewport); } @@ -1532,6 +1552,18 @@ CIMGUI_API void igSetNextFrameWantCaptureKeyboard(bool want_capture_keyboard) { return ImGui::SetNextFrameWantCaptureKeyboard(want_capture_keyboard); } +CIMGUI_API bool igShortcut_Nil(ImGuiKeyChord key_chord,ImGuiInputFlags flags) +{ + return ImGui::Shortcut(key_chord,flags); +} +CIMGUI_API void igSetNextItemShortcut(ImGuiKeyChord key_chord,ImGuiInputFlags flags) +{ + return ImGui::SetNextItemShortcut(key_chord,flags); +} +CIMGUI_API void igSetItemKeyOwner_Nil(ImGuiKey key) +{ + return ImGui::SetItemKeyOwner(key); +} CIMGUI_API bool igIsMouseDown_Nil(ImGuiMouseButton button) { return ImGui::IsMouseDown(button); @@ -1636,6 +1668,17 @@ CIMGUI_API bool igDebugCheckVersionAndDataLayout(const char* version_str,size_t { return ImGui::DebugCheckVersionAndDataLayout(version_str,sz_io,sz_style,sz_vec2,sz_vec4,sz_drawvert,sz_drawidx); } +CIMGUI_API void igDebugLog(const char* fmt,...) +{ + va_list args; + va_start(args, fmt); + ImGui::DebugLogV(fmt,args); + va_end(args); +} +CIMGUI_API void igDebugLogV(const char* fmt,va_list args) +{ + return ImGui::DebugLogV(fmt,args); +} CIMGUI_API void igSetAllocatorFunctions(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func,void* user_data) { return ImGui::SetAllocatorFunctions(alloc_func,free_func,user_data); @@ -1652,10 +1695,6 @@ CIMGUI_API void igMemFree(void* ptr) { return ImGui::MemFree(ptr); } -CIMGUI_API ImGuiPlatformIO* igGetPlatformIO() -{ - return &ImGui::GetPlatformIO(); -} CIMGUI_API void igUpdatePlatformWindows() { return ImGui::UpdatePlatformWindows(); @@ -1764,6 +1803,10 @@ CIMGUI_API void ImGuiIO_ClearInputKeys(ImGuiIO* self) { return self->ClearInputKeys(); } +CIMGUI_API void ImGuiIO_ClearInputMouse(ImGuiIO* self) +{ + return self->ClearInputMouse(); +} CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void) { return IM_NEW(ImGuiIO)(); @@ -2036,6 +2079,10 @@ CIMGUI_API void ImGuiListClipper_IncludeItemsByIndex(ImGuiListClipper* self,int { return self->IncludeItemsByIndex(item_begin,item_end); } +CIMGUI_API void ImGuiListClipper_SeekCursorForItem(ImGuiListClipper* self,int item_index) +{ + return self->SeekCursorForItem(item_index); +} CIMGUI_API ImColor* ImColor_ImColor_Nil(void) { return IM_NEW(ImColor)(); @@ -2068,6 +2115,54 @@ CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a) { *pOut = ImColor::HSV(h,s,v,a); } +CIMGUI_API ImGuiSelectionBasicStorage* ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage(void) +{ + return IM_NEW(ImGuiSelectionBasicStorage)(); +} +CIMGUI_API void ImGuiSelectionBasicStorage_destroy(ImGuiSelectionBasicStorage* self) +{ + IM_DELETE(self); +} +CIMGUI_API void ImGuiSelectionBasicStorage_ApplyRequests(ImGuiSelectionBasicStorage* self,ImGuiMultiSelectIO* ms_io) +{ + return self->ApplyRequests(ms_io); +} +CIMGUI_API bool ImGuiSelectionBasicStorage_Contains(ImGuiSelectionBasicStorage* self,ImGuiID id) +{ + return self->Contains(id); +} +CIMGUI_API void ImGuiSelectionBasicStorage_Clear(ImGuiSelectionBasicStorage* self) +{ + return self->Clear(); +} +CIMGUI_API void ImGuiSelectionBasicStorage_Swap(ImGuiSelectionBasicStorage* self,ImGuiSelectionBasicStorage* r) +{ + return self->Swap(*r); +} +CIMGUI_API void ImGuiSelectionBasicStorage_SetItemSelected(ImGuiSelectionBasicStorage* self,ImGuiID id,bool selected) +{ + return self->SetItemSelected(id,selected); +} +CIMGUI_API bool ImGuiSelectionBasicStorage_GetNextSelectedItem(ImGuiSelectionBasicStorage* self,void** opaque_it,ImGuiID* out_id) +{ + return self->GetNextSelectedItem(opaque_it,out_id); +} +CIMGUI_API ImGuiID ImGuiSelectionBasicStorage_GetStorageIdFromIndex(ImGuiSelectionBasicStorage* self,int idx) +{ + return self->GetStorageIdFromIndex(idx); +} +CIMGUI_API ImGuiSelectionExternalStorage* ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage(void) +{ + return IM_NEW(ImGuiSelectionExternalStorage)(); +} +CIMGUI_API void ImGuiSelectionExternalStorage_destroy(ImGuiSelectionExternalStorage* self) +{ + IM_DELETE(self); +} +CIMGUI_API void ImGuiSelectionExternalStorage_ApplyRequests(ImGuiSelectionExternalStorage* self,ImGuiMultiSelectIO* ms_io) +{ + return self->ApplyRequests(ms_io); +} CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void) { return IM_NEW(ImDrawCmd)(); @@ -2192,13 +2287,13 @@ CIMGUI_API void ImDrawList_AddNgonFilled(ImDrawList* self,const ImVec2 center,fl { return self->AddNgonFilled(center,radius,col,num_segments); } -CIMGUI_API void ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments,float thickness) +CIMGUI_API void ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments,float thickness) { - return self->AddEllipse(center,radius_x,radius_y,col,rot,num_segments,thickness); + return self->AddEllipse(center,radius,col,rot,num_segments,thickness); } -CIMGUI_API void ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments) +CIMGUI_API void ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments) { - return self->AddEllipseFilled(center,radius_x,radius_y,col,rot,num_segments); + return self->AddEllipseFilled(center,radius,col,rot,num_segments); } CIMGUI_API void ImDrawList_AddText_Vec2(ImDrawList* self,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end) { @@ -2208,6 +2303,14 @@ CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,const ImFont* font,f { return self->AddText(font,font_size,pos,col,text_begin,text_end,wrap_width,cpu_fine_clip_rect); } +CIMGUI_API void ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments) +{ + return self->AddBezierCubic(p1,p2,p3,p4,col,thickness,num_segments); +} +CIMGUI_API void ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness,int num_segments) +{ + return self->AddBezierQuadratic(p1,p2,p3,col,thickness,num_segments); +} CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness) { return self->AddPolyline(points,num_points,col,flags,thickness); @@ -2216,13 +2319,9 @@ CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* po { return self->AddConvexPolyFilled(points,num_points,col); } -CIMGUI_API void ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments) +CIMGUI_API void ImDrawList_AddConcavePolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col) { - return self->AddBezierCubic(p1,p2,p3,p4,col,thickness,num_segments); -} -CIMGUI_API void ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness,int num_segments) -{ - return self->AddBezierQuadratic(p1,p2,p3,col,thickness,num_segments); + return self->AddConcavePolyFilled(points,num_points,col); } CIMGUI_API void ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col) { @@ -2252,6 +2351,10 @@ CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col) { return self->PathFillConvex(col); } +CIMGUI_API void ImDrawList_PathFillConcave(ImDrawList* self,ImU32 col) +{ + return self->PathFillConcave(col); +} CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,ImDrawFlags flags,float thickness) { return self->PathStroke(col,flags,thickness); @@ -2264,9 +2367,9 @@ CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 center,fl { return self->PathArcToFast(center,radius,a_min_of_12,a_max_of_12); } -CIMGUI_API void ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,float rot,float a_min,float a_max,int num_segments) +CIMGUI_API void ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,const ImVec2 radius,float rot,float a_min,float a_max,int num_segments) { - return self->PathEllipticalArcTo(center,radius_x,radius_y,rot,a_min,a_max,num_segments); + return self->PathEllipticalArcTo(center,radius,rot,a_min,a_max,num_segments); } CIMGUI_API void ImDrawList_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,int num_segments) { @@ -2364,6 +2467,10 @@ CIMGUI_API void ImDrawList__OnChangedVtxOffset(ImDrawList* self) { return self->_OnChangedVtxOffset(); } +CIMGUI_API void ImDrawList__SetTextureID(ImDrawList* self,ImTextureID texture_id) +{ + return self->_SetTextureID(texture_id); +} CIMGUI_API int ImDrawList__CalcCircleAutoSegmentCount(ImDrawList* self,float radius) { return self->_CalcCircleAutoSegmentCount(radius); @@ -2692,10 +2799,6 @@ CIMGUI_API void ImGuiPlatformImeData_destroy(ImGuiPlatformImeData* self) { IM_DELETE(self); } -CIMGUI_API ImGuiKey igGetKeyIndex(ImGuiKey key) -{ - return ImGui::GetKeyIndex(key); -} CIMGUI_API ImGuiID igImHashData(const void* data,size_t data_size,ImGuiID seed) { return ImHashData(data,data_size,seed); @@ -2768,9 +2871,9 @@ CIMGUI_API int igImStrlenW(const ImWchar* str) { return ImStrlenW(str); } -CIMGUI_API const ImWchar* igImStrbolW(const ImWchar* buf_mid_line,const ImWchar* buf_begin) +CIMGUI_API const char* igImStrbol(const char* buf_mid_line,const char* buf_begin) { - return ImStrbolW(buf_mid_line,buf_begin); + return ImStrbol(buf_mid_line,buf_begin); } CIMGUI_API char igImToUpper(char c) { @@ -2784,6 +2887,10 @@ CIMGUI_API bool igImCharIsBlankW(unsigned int c) { return ImCharIsBlankW(c); } +CIMGUI_API bool igImCharIsXdigitA(char c) +{ + return ImCharIsXdigitA(c); +} CIMGUI_API int igImFormatString(char* buf,size_t buf_size,const char* fmt,...) { va_list args; @@ -2863,6 +2970,10 @@ CIMGUI_API const char* igImTextFindPreviousUtf8Codepoint(const char* in_text_sta { return ImTextFindPreviousUtf8Codepoint(in_text_start,in_text_curr); } +CIMGUI_API int igImTextCountLines(const char* in_text,const char* in_text_end) +{ + return ImTextCountLines(in_text,in_text_end); +} CIMGUI_API ImFileHandle igImFileOpen(const char* filename,const char* mode) { return ImFileOpen(filename,mode); @@ -2939,7 +3050,7 @@ CIMGUI_API void igImMax(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs) { *pOut = ImMax(lhs,rhs); } -CIMGUI_API void igImClamp(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,ImVec2 mx) +CIMGUI_API void igImClamp(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,const ImVec2 mx) { *pOut = ImClamp(v,mn,mx); } @@ -3003,6 +3114,10 @@ CIMGUI_API float igImLinearSweep(float current,float target,float speed) { return ImLinearSweep(current,target,speed); } +CIMGUI_API float igImLinearRemapClamp(float s0,float s1,float d0,float d1,float x) +{ + return ImLinearRemapClamp(s0,s1,d0,d1,x); +} CIMGUI_API void igImMul(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs) { *pOut = ImMul(lhs,rhs); @@ -3051,6 +3166,10 @@ CIMGUI_API float igImTriangleArea(const ImVec2 a,const ImVec2 b,const ImVec2 c) { return ImTriangleArea(a,b,c); } +CIMGUI_API bool igImTriangleIsClockwise(const ImVec2 a,const ImVec2 b,const ImVec2 c) +{ + return ImTriangleIsClockwise(a,b,c); +} CIMGUI_API ImVec1* ImVec1_ImVec1_Nil(void) { return IM_NEW(ImVec1)(); @@ -3263,6 +3382,10 @@ CIMGUI_API void ImGuiTextIndex_append(ImGuiTextIndex* self,const char* base,int { return self->append(base,old_size,new_size); } +CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key) +{ + return ImLowerBound(in_begin,in_end,key); +} CIMGUI_API ImDrawListSharedData* ImDrawListSharedData_ImDrawListSharedData(void) { return IM_NEW(ImDrawListSharedData)(); @@ -3283,6 +3406,10 @@ CIMGUI_API void ImDrawDataBuilder_destroy(ImDrawDataBuilder* self) { IM_DELETE(self); } +CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent) +{ + return self->GetVarPtr(parent); +} CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Int(ImGuiStyleVar idx,int v) { return IM_NEW(ImGuiStyleMod)(idx,v); @@ -3355,18 +3482,14 @@ CIMGUI_API void ImGuiInputTextState_ClearFreeMemory(ImGuiInputTextState* self) { return self->ClearFreeMemory(); } -CIMGUI_API int ImGuiInputTextState_GetUndoAvailCount(ImGuiInputTextState* self) -{ - return self->GetUndoAvailCount(); -} -CIMGUI_API int ImGuiInputTextState_GetRedoAvailCount(ImGuiInputTextState* self) -{ - return self->GetRedoAvailCount(); -} CIMGUI_API void ImGuiInputTextState_OnKeyPressed(ImGuiInputTextState* self,int key) { return self->OnKeyPressed(key); } +CIMGUI_API void ImGuiInputTextState_OnCharPressed(ImGuiInputTextState* self,unsigned int c) +{ + return self->OnCharPressed(c); +} CIMGUI_API void ImGuiInputTextState_CursorAnimReset(ImGuiInputTextState* self) { return self->CursorAnimReset(); @@ -3471,10 +3594,6 @@ CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(int index) { return IM_NEW(ImGuiPtrOrIndex)(index); } -CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent) -{ - return self->GetVarPtr(parent); -} CIMGUI_API ImGuiPopupData* ImGuiPopupData_ImGuiPopupData(void) { return IM_NEW(ImGuiPopupData)(); @@ -3579,6 +3698,38 @@ CIMGUI_API void ImGuiOldColumns_destroy(ImGuiOldColumns* self) { IM_DELETE(self); } +CIMGUI_API ImGuiBoxSelectState* ImGuiBoxSelectState_ImGuiBoxSelectState(void) +{ + return IM_NEW(ImGuiBoxSelectState)(); +} +CIMGUI_API void ImGuiBoxSelectState_destroy(ImGuiBoxSelectState* self) +{ + IM_DELETE(self); +} +CIMGUI_API ImGuiMultiSelectTempData* ImGuiMultiSelectTempData_ImGuiMultiSelectTempData(void) +{ + return IM_NEW(ImGuiMultiSelectTempData)(); +} +CIMGUI_API void ImGuiMultiSelectTempData_destroy(ImGuiMultiSelectTempData* self) +{ + IM_DELETE(self); +} +CIMGUI_API void ImGuiMultiSelectTempData_Clear(ImGuiMultiSelectTempData* self) +{ + return self->Clear(); +} +CIMGUI_API void ImGuiMultiSelectTempData_ClearIO(ImGuiMultiSelectTempData* self) +{ + return self->ClearIO(); +} +CIMGUI_API ImGuiMultiSelectState* ImGuiMultiSelectState_ImGuiMultiSelectState(void) +{ + return IM_NEW(ImGuiMultiSelectState)(); +} +CIMGUI_API void ImGuiMultiSelectState_destroy(ImGuiMultiSelectState* self) +{ + IM_DELETE(self); +} CIMGUI_API ImGuiDockNode* ImGuiDockNode_ImGuiDockNode(ImGuiID id) { return IM_NEW(ImGuiDockNode)(id); @@ -3655,13 +3806,13 @@ CIMGUI_API void ImGuiViewportP_ClearRequestFlags(ImGuiViewportP* self) { return self->ClearRequestFlags(); } -CIMGUI_API void ImGuiViewportP_CalcWorkRectPos(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min) +CIMGUI_API void ImGuiViewportP_CalcWorkRectPos(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min) { - *pOut = self->CalcWorkRectPos(off_min); + *pOut = self->CalcWorkRectPos(inset_min); } -CIMGUI_API void ImGuiViewportP_CalcWorkRectSize(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min,const ImVec2 off_max) +CIMGUI_API void ImGuiViewportP_CalcWorkRectSize(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min,const ImVec2 inset_max) { - *pOut = self->CalcWorkRectSize(off_min,off_max); + *pOut = self->CalcWorkRectSize(inset_min,inset_max); } CIMGUI_API void ImGuiViewportP_UpdateWorkRect(ImGuiViewportP* self) { @@ -3759,6 +3910,10 @@ CIMGUI_API ImGuiID ImGuiWindow_GetID_Int(ImGuiWindow* self,int n) { return self->GetID(n); } +CIMGUI_API ImGuiID ImGuiWindow_GetIDFromPos(ImGuiWindow* self,const ImVec2 p_abs) +{ + return self->GetIDFromPos(p_abs); +} CIMGUI_API ImGuiID ImGuiWindow_GetIDFromRectangle(ImGuiWindow* self,const ImRect r_abs) { return self->GetIDFromRectangle(r_abs); @@ -3771,18 +3926,10 @@ CIMGUI_API float ImGuiWindow_CalcFontSize(ImGuiWindow* self) { return self->CalcFontSize(); } -CIMGUI_API float ImGuiWindow_TitleBarHeight(ImGuiWindow* self) -{ - return self->TitleBarHeight(); -} CIMGUI_API void ImGuiWindow_TitleBarRect(ImRect *pOut,ImGuiWindow* self) { *pOut = self->TitleBarRect(); } -CIMGUI_API float ImGuiWindow_MenuBarHeight(ImGuiWindow* self) -{ - return self->MenuBarHeight(); -} CIMGUI_API void ImGuiWindow_MenuBarRect(ImRect *pOut,ImGuiWindow* self) { *pOut = self->MenuBarRect(); @@ -3875,6 +4022,10 @@ CIMGUI_API void igUpdateWindowParentAndRootLinks(ImGuiWindow* window,ImGuiWindow { return ImGui::UpdateWindowParentAndRootLinks(window,flags,parent_window); } +CIMGUI_API void igUpdateWindowSkipRefresh(ImGuiWindow* window) +{ + return ImGui::UpdateWindowSkipRefresh(window); +} CIMGUI_API void igCalcWindowNextAutoFitSize(ImVec2 *pOut,ImGuiWindow* window) { *pOut = ImGui::CalcWindowNextAutoFitSize(window); @@ -3927,6 +4078,10 @@ CIMGUI_API void igWindowRectRelToAbs(ImRect *pOut,ImGuiWindow* window,const ImRe { *pOut = ImGui::WindowRectRelToAbs(window,r); } +CIMGUI_API void igWindowPosAbsToRel(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p) +{ + *pOut = ImGui::WindowPosAbsToRel(window,p); +} CIMGUI_API void igWindowPosRelToAbs(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p) { *pOut = ImGui::WindowPosRelToAbs(window,p); @@ -3963,6 +4118,10 @@ CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindo { return ImGui::FindBottomMostVisibleWindowWithinBeginStack(window); } +CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags) +{ + return ImGui::SetNextWindowRefreshPolicy(flags); +} CIMGUI_API void igSetCurrentFont(ImFont* font) { return ImGui::SetCurrentFont(font); @@ -3995,6 +4154,10 @@ CIMGUI_API void igUpdateHoveredWindowAndCaptureFlags() { return ImGui::UpdateHoveredWindowAndCaptureFlags(); } +CIMGUI_API void igFindHoveredWindowEx(const ImVec2 pos,bool find_first_and_in_any_viewport,ImGuiWindow** out_hovered_window,ImGuiWindow** out_hovered_window_under_moving_window) +{ + return ImGui::FindHoveredWindowEx(pos,find_first_and_in_any_viewport,out_hovered_window,out_hovered_window_under_moving_window); +} CIMGUI_API void igStartMouseMovingWindow(ImGuiWindow* window) { return ImGui::StartMouseMovingWindow(window); @@ -4023,9 +4186,9 @@ CIMGUI_API void igCallContextHooks(ImGuiContext* context,ImGuiContextHookType ty { return ImGui::CallContextHooks(context,type); } -CIMGUI_API void igTranslateWindowsInViewport(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos) +CIMGUI_API void igTranslateWindowsInViewport(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos,const ImVec2 old_size,const ImVec2 new_size) { - return ImGui::TranslateWindowsInViewport(viewport,old_pos,new_pos); + return ImGui::TranslateWindowsInViewport(viewport,old_pos,new_pos,old_size,new_size); } CIMGUI_API void igScaleWindowsInViewport(ImGuiViewportP* viewport,float scale) { @@ -4227,29 +4390,21 @@ CIMGUI_API void igPushMultiItemsWidths(int components,float width_full) { return ImGui::PushMultiItemsWidths(components,width_full); } -CIMGUI_API bool igIsItemToggledSelection() -{ - return ImGui::IsItemToggledSelection(); -} -CIMGUI_API void igGetContentRegionMaxAbs(ImVec2 *pOut) -{ - *pOut = ImGui::GetContentRegionMaxAbs(); -} CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width_excess) { return ImGui::ShrinkWidths(items,count,width_excess); } -CIMGUI_API void igPushItemFlag(ImGuiItemFlags option,bool enabled) +CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx) { - return ImGui::PushItemFlag(option,enabled); + return ImGui::GetStyleVarInfo(idx); } -CIMGUI_API void igPopItemFlag() +CIMGUI_API void igBeginDisabledOverrideReenable() { - return ImGui::PopItemFlag(); + return ImGui::BeginDisabledOverrideReenable(); } -CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx) +CIMGUI_API void igEndDisabledOverrideReenable() { - return ImGui::GetStyleVarInfo(idx); + return ImGui::EndDisabledOverrideReenable(); } CIMGUI_API void igLogBegin(ImGuiLogType type,int auto_open_depth) { @@ -4271,6 +4426,10 @@ CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg { return ImGui::BeginChildEx(name,id,size_arg,child_flags,window_flags); } +CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags) +{ + return ImGui::BeginPopupEx(id,extra_window_flags); +} CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags) { return ImGui::OpenPopupEx(id,popup_flags); @@ -4291,18 +4450,6 @@ CIMGUI_API bool igIsPopupOpen_ID(ImGuiID id,ImGuiPopupFlags popup_flags) { return ImGui::IsPopupOpen(id,popup_flags); } -CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_flags) -{ - return ImGui::BeginPopupEx(id,extra_flags); -} -CIMGUI_API bool igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags) -{ - return ImGui::BeginTooltipEx(tooltip_flags,extra_window_flags); -} -CIMGUI_API bool igBeginTooltipHidden() -{ - return ImGui::BeginTooltipHidden(); -} CIMGUI_API void igGetPopupAllowedExtentRect(ImRect *pOut,ImGuiWindow* window) { *pOut = ImGui::GetPopupAllowedExtentRect(window); @@ -4327,6 +4474,14 @@ CIMGUI_API void igFindBestWindowPosForPopupEx(ImVec2 *pOut,const ImVec2 ref_pos, { *pOut = ImGui::FindBestWindowPosForPopupEx(ref_pos,size,last_dir,r_outer,r_avoid,policy); } +CIMGUI_API bool igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags) +{ + return ImGui::BeginTooltipEx(tooltip_flags,extra_window_flags); +} +CIMGUI_API bool igBeginTooltipHidden() +{ + return ImGui::BeginTooltipHidden(); +} CIMGUI_API bool igBeginViewportSideBar(const char* name,ImGuiViewport* viewport,ImGuiDir dir,float size,ImGuiWindowFlags window_flags) { return ImGui::BeginViewportSideBar(name,viewport,dir,size,window_flags); @@ -4375,7 +4530,7 @@ CIMGUI_API void igNavMoveRequestResolveWithLastItem(ImGuiNavItemData* result) { return ImGui::NavMoveRequestResolveWithLastItem(result); } -CIMGUI_API void igNavMoveRequestResolveWithPastTreeNode(ImGuiNavItemData* result,ImGuiNavTreeNodeData* tree_node_data) +CIMGUI_API void igNavMoveRequestResolveWithPastTreeNode(ImGuiNavItemData* result,ImGuiTreeNodeStackData* tree_node_data) { return ImGui::NavMoveRequestResolveWithPastTreeNode(result,tree_node_data); } @@ -4431,9 +4586,9 @@ CIMGUI_API bool igIsNamedKey(ImGuiKey key) { return ImGui::IsNamedKey(key); } -CIMGUI_API bool igIsNamedKeyOrModKey(ImGuiKey key) +CIMGUI_API bool igIsNamedKeyOrMod(ImGuiKey key) { - return ImGui::IsNamedKeyOrModKey(key); + return ImGui::IsNamedKeyOrMod(key); } CIMGUI_API bool igIsLegacyKey(ImGuiKey key) { @@ -4455,17 +4610,17 @@ CIMGUI_API bool igIsAliasKey(ImGuiKey key) { return ImGui::IsAliasKey(key); } -CIMGUI_API bool igIsModKey(ImGuiKey key) +CIMGUI_API bool igIsLRModKey(ImGuiKey key) { - return ImGui::IsModKey(key); + return ImGui::IsLRModKey(key); } -CIMGUI_API ImGuiKeyChord igFixupKeyChord(ImGuiContext* ctx,ImGuiKeyChord key_chord) +CIMGUI_API ImGuiKeyChord igFixupKeyChord(ImGuiKeyChord key_chord) { - return ImGui::FixupKeyChord(ctx,key_chord); + return ImGui::FixupKeyChord(key_chord); } -CIMGUI_API ImGuiKey igConvertSingleModFlagToKey(ImGuiContext* ctx,ImGuiKey key) +CIMGUI_API ImGuiKey igConvertSingleModFlagToKey(ImGuiKey key) { - return ImGui::ConvertSingleModFlagToKey(ctx,key); + return ImGui::ConvertSingleModFlagToKey(key); } CIMGUI_API ImGuiKeyData* igGetKeyData_ContextPtr(ImGuiContext* ctx,ImGuiKey key) { @@ -4527,7 +4682,7 @@ CIMGUI_API void igSetKeyOwnersForKeyChord(ImGuiKeyChord key,ImGuiID owner_id,ImG { return ImGui::SetKeyOwnersForKeyChord(key,owner_id,flags); } -CIMGUI_API void igSetItemKeyOwner(ImGuiKey key,ImGuiInputFlags flags) +CIMGUI_API void igSetItemKeyOwner_InputFlags(ImGuiKey key,ImGuiInputFlags flags) { return ImGui::SetItemKeyOwner(key,flags); } @@ -4543,21 +4698,25 @@ CIMGUI_API bool igIsKeyDown_ID(ImGuiKey key,ImGuiID owner_id) { return ImGui::IsKeyDown(key,owner_id); } -CIMGUI_API bool igIsKeyPressed_ID(ImGuiKey key,ImGuiID owner_id,ImGuiInputFlags flags) +CIMGUI_API bool igIsKeyPressed_InputFlags(ImGuiKey key,ImGuiInputFlags flags,ImGuiID owner_id) { - return ImGui::IsKeyPressed(key,owner_id,flags); + return ImGui::IsKeyPressed(key,flags,owner_id); } CIMGUI_API bool igIsKeyReleased_ID(ImGuiKey key,ImGuiID owner_id) { return ImGui::IsKeyReleased(key,owner_id); } +CIMGUI_API bool igIsKeyChordPressed_InputFlags(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id) +{ + return ImGui::IsKeyChordPressed(key_chord,flags,owner_id); +} CIMGUI_API bool igIsMouseDown_ID(ImGuiMouseButton button,ImGuiID owner_id) { return ImGui::IsMouseDown(button,owner_id); } -CIMGUI_API bool igIsMouseClicked_ID(ImGuiMouseButton button,ImGuiID owner_id,ImGuiInputFlags flags) +CIMGUI_API bool igIsMouseClicked_InputFlags(ImGuiMouseButton button,ImGuiInputFlags flags,ImGuiID owner_id) { - return ImGui::IsMouseClicked(button,owner_id,flags); + return ImGui::IsMouseClicked(button,flags,owner_id); } CIMGUI_API bool igIsMouseReleased_ID(ImGuiMouseButton button,ImGuiID owner_id) { @@ -4567,21 +4726,13 @@ CIMGUI_API bool igIsMouseDoubleClicked_ID(ImGuiMouseButton button,ImGuiID owner_ { return ImGui::IsMouseDoubleClicked(button,owner_id); } -CIMGUI_API bool igIsKeyChordPressed_ID(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags) -{ - return ImGui::IsKeyChordPressed(key_chord,owner_id,flags); -} -CIMGUI_API void igSetNextItemShortcut(ImGuiKeyChord key_chord) -{ - return ImGui::SetNextItemShortcut(key_chord); -} -CIMGUI_API bool igShortcut(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags) +CIMGUI_API bool igShortcut_ID(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id) { - return ImGui::Shortcut(key_chord,owner_id,flags); + return ImGui::Shortcut(key_chord,flags,owner_id); } -CIMGUI_API bool igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags) +CIMGUI_API bool igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id) { - return ImGui::SetShortcutRouting(key_chord,owner_id,flags); + return ImGui::SetShortcutRouting(key_chord,flags,owner_id); } CIMGUI_API bool igTestShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id) { @@ -4807,6 +4958,38 @@ CIMGUI_API int igTypingSelectFindBestLeadingMatch(ImGuiTypingSelectRequest* req, { return ImGui::TypingSelectFindBestLeadingMatch(req,items_count,get_item_name_func,user_data); } +CIMGUI_API bool igBeginBoxSelect(const ImRect scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags) +{ + return ImGui::BeginBoxSelect(scope_rect,window,box_select_id,ms_flags); +} +CIMGUI_API void igEndBoxSelect(const ImRect scope_rect,ImGuiMultiSelectFlags ms_flags) +{ + return ImGui::EndBoxSelect(scope_rect,ms_flags); +} +CIMGUI_API void igMultiSelectItemHeader(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags) +{ + return ImGui::MultiSelectItemHeader(id,p_selected,p_button_flags); +} +CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed) +{ + return ImGui::MultiSelectItemFooter(id,p_selected,p_pressed); +} +CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected) +{ + return ImGui::MultiSelectAddSetAll(ms,selected); +} +CIMGUI_API void igMultiSelectAddSetRange(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item) +{ + return ImGui::MultiSelectAddSetRange(ms,selected,range_dir,first_item,last_item); +} +CIMGUI_API ImGuiBoxSelectState* igGetBoxSelectState(ImGuiID id) +{ + return ImGui::GetBoxSelectState(id); +} +CIMGUI_API ImGuiMultiSelectState* igGetMultiSelectState(ImGuiID id) +{ + return ImGui::GetMultiSelectState(id); +} CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect clip_rect) { return ImGui::SetWindowClipRectBeforeSetChannel(window,clip_rect); @@ -4859,10 +5042,6 @@ CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection so { return ImGui::TableSetColumnSortDirection(column_n,sort_direction,append_to_sort_specs); } -CIMGUI_API int igTableGetHoveredColumn() -{ - return ImGui::TableGetHoveredColumn(); -} CIMGUI_API int igTableGetHoveredRow() { return ImGui::TableGetHoveredRow(); @@ -4883,9 +5062,9 @@ CIMGUI_API void igTablePopBackgroundChannel() { return ImGui::TablePopBackgroundChannel(); } -CIMGUI_API void igTableAngledHeadersRowEx(float angle,float max_label_width) +CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count) { - return ImGui::TableAngledHeadersRowEx(angle,max_label_width); + return ImGui::TableAngledHeadersRowEx(row_id,angle,max_label_width,data,data_count); } CIMGUI_API ImGuiTable* igGetCurrentTable() { @@ -4995,9 +5174,9 @@ CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int i { return ImGui::TableGetColumnResizeID(table,column_n,instance_no); } -CIMGUI_API float igTableGetMaxColumnWidth(const ImGuiTable* table,int column_n) +CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n) { - return ImGui::TableGetMaxColumnWidth(table,column_n); + return ImGui::TableCalcMaxColumnWidth(table,column_n); } CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n) { @@ -5151,9 +5330,9 @@ CIMGUI_API void igRenderTextEllipsis(ImDrawList* draw_list,const ImVec2 pos_min, { return ImGui::RenderTextEllipsis(draw_list,pos_min,pos_max,clip_max_x,ellipsis_max_x,text,text_end,text_size_if_known); } -CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool border,float rounding) +CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool borders,float rounding) { - return ImGui::RenderFrame(p_min,p_max,fill_col,border,rounding); + return ImGui::RenderFrame(p_min,p_max,fill_col,borders,rounding); } CIMGUI_API void igRenderFrameBorder(ImVec2 p_min,ImVec2 p_max,float rounding) { @@ -5295,17 +5474,17 @@ CIMGUI_API void igTreePushOverrideID(ImGuiID id) { return ImGui::TreePushOverrideID(id); } -CIMGUI_API void igTreeNodeSetOpen(ImGuiID id,bool open) +CIMGUI_API bool igTreeNodeGetOpen(ImGuiID storage_id) { - return ImGui::TreeNodeSetOpen(id,open); + return ImGui::TreeNodeGetOpen(storage_id); } -CIMGUI_API bool igTreeNodeUpdateNextOpen(ImGuiID id,ImGuiTreeNodeFlags flags) +CIMGUI_API void igTreeNodeSetOpen(ImGuiID storage_id,bool open) { - return ImGui::TreeNodeUpdateNextOpen(id,flags); + return ImGui::TreeNodeSetOpen(storage_id,open); } -CIMGUI_API void igSetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data) +CIMGUI_API bool igTreeNodeUpdateNextOpen(ImGuiID storage_id,ImGuiTreeNodeFlags flags) { - return ImGui::SetNextItemSelectionUserData(selection_user_data); + return ImGui::TreeNodeUpdateNextOpen(storage_id,flags); } CIMGUI_API const ImGuiDataTypeInfo* igDataTypeGetInfo(ImGuiDataType data_type) { @@ -5319,9 +5498,9 @@ CIMGUI_API void igDataTypeApplyOp(ImGuiDataType data_type,int op,void* output,co { return ImGui::DataTypeApplyOp(data_type,op,output,arg_1,arg_2); } -CIMGUI_API bool igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,void* p_data,const char* format) +CIMGUI_API bool igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,void* p_data,const char* format,void* p_data_when_empty) { - return ImGui::DataTypeApplyFromText(buf,data_type,p_data,format); + return ImGui::DataTypeApplyFromText(buf,data_type,p_data,format,p_data_when_empty); } CIMGUI_API int igDataTypeCompare(ImGuiDataType data_type,const void* arg_1,const void* arg_2) { @@ -5355,6 +5534,10 @@ CIMGUI_API ImGuiInputTextState* igGetInputTextState(ImGuiID id) { return ImGui::GetInputTextState(id); } +CIMGUI_API void igSetNextItemRefVal(ImGuiDataType data_type,void* p_data) +{ + return ImGui::SetNextItemRefVal(data_type,p_data); +} CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags) { return ImGui::ColorTooltip(text,col,flags); @@ -5395,17 +5578,6 @@ CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window) { return ImGui::GcAwakeTransientWindowBuffers(window); } -CIMGUI_API void igDebugLog(const char* fmt,...) -{ - va_list args; - va_start(args, fmt); - ImGui::DebugLogV(fmt,args); - va_end(args); -} -CIMGUI_API void igDebugLogV(const char* fmt,va_list args) -{ - return ImGui::DebugLogV(fmt,args); -} CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size) { return ImGui::DebugAllocHook(info,frame_count,ptr,size); @@ -5434,6 +5606,10 @@ CIMGUI_API void igDebugDrawItemRect(ImU32 col) { return ImGui::DebugDrawItemRect(col); } +CIMGUI_API void igDebugTextUnformattedWithLocateItem(const char* line_begin,const char* line_end) +{ + return ImGui::DebugTextUnformattedWithLocateItem(line_begin,line_end); +} CIMGUI_API void igDebugLocateItem(ImGuiID target_id) { return ImGui::DebugLocateItem(target_id); @@ -5514,6 +5690,10 @@ CIMGUI_API void igDebugNodeTypingSelectState(ImGuiTypingSelectState* state) { return ImGui::DebugNodeTypingSelectState(state); } +CIMGUI_API void igDebugNodeMultiSelectState(ImGuiMultiSelectState* state) +{ + return ImGui::DebugNodeMultiSelectState(state); +} CIMGUI_API void igDebugNodeWindow(ImGuiWindow* window,const char* label) { return ImGui::DebugNodeWindow(window,label); @@ -5534,6 +5714,10 @@ CIMGUI_API void igDebugNodeViewport(ImGuiViewportP* viewport) { return ImGui::DebugNodeViewport(viewport); } +CIMGUI_API void igDebugNodePlatformMonitor(ImGuiPlatformMonitor* monitor,const char* label,int idx) +{ + return ImGui::DebugNodePlatformMonitor(monitor,label,idx); +} CIMGUI_API void igDebugRenderKeyboardPreview(ImDrawList* draw_list) { return ImGui::DebugRenderKeyboardPreview(draw_list); @@ -5655,7 +5839,7 @@ CimguiStorage& GetCimguiStorage() ImGuiIO& io = ImGui::GetIO(); if (io.BackendLanguageUserData == NULL) { - io.BackendLanguageUserData = new CimguiStorage(); + io.BackendLanguageUserData = IM_NEW(CimguiStorage)(); } return *(CimguiStorage*)io.BackendLanguageUserData; diff --git a/cimgui/cimgui.h b/cwrappers/cimgui.h similarity index 90% rename from cimgui/cimgui.h rename to cwrappers/cimgui.h index db89b48dc..530155f12 100644 --- a/cimgui/cimgui.h +++ b/cwrappers/cimgui.h @@ -1,5 +1,5 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.90.4" 19040 from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.91.2 WIP" 19114 from Dear ImGui https://github.com/ocornut/imgui //with imgui_internal.h api //docking branch #ifndef CIMGUI_INCLUDED @@ -60,13 +60,18 @@ typedef struct ImGuiIO ImGuiIO; typedef struct ImGuiInputTextCallbackData ImGuiInputTextCallbackData; typedef struct ImGuiKeyData ImGuiKeyData; typedef struct ImGuiListClipper ImGuiListClipper; +typedef struct ImGuiMultiSelectIO ImGuiMultiSelectIO; typedef struct ImGuiOnceUponAFrame ImGuiOnceUponAFrame; typedef struct ImGuiPayload ImGuiPayload; typedef struct ImGuiPlatformIO ImGuiPlatformIO; -typedef struct ImGuiPlatformMonitor ImGuiPlatformMonitor; typedef struct ImGuiPlatformImeData ImGuiPlatformImeData; +typedef struct ImGuiPlatformMonitor ImGuiPlatformMonitor; +typedef struct ImGuiSelectionBasicStorage ImGuiSelectionBasicStorage; +typedef struct ImGuiSelectionExternalStorage ImGuiSelectionExternalStorage; +typedef struct ImGuiSelectionRequest ImGuiSelectionRequest; typedef struct ImGuiSizeCallbackData ImGuiSizeCallbackData; typedef struct ImGuiStorage ImGuiStorage; +typedef struct ImGuiStoragePair ImGuiStoragePair; typedef struct ImGuiStyle ImGuiStyle; typedef struct ImGuiTableSortSpecs ImGuiTableSortSpecs; typedef struct ImGuiTableColumnSortSpecs ImGuiTableColumnSortSpecs; @@ -77,6 +82,7 @@ typedef struct ImGuiWindowClass ImGuiWindowClass; typedef struct ImBitVector ImBitVector; typedef struct ImRect ImRect; typedef struct ImDrawDataBuilder ImDrawDataBuilder; +typedef struct ImGuiBoxSelectState ImGuiBoxSelectState; typedef struct ImGuiColorMod ImGuiColorMod; typedef struct ImGuiContextHook ImGuiContextHook; typedef struct ImGuiDataVarInfo ImGuiDataVarInfo; @@ -91,8 +97,9 @@ typedef struct ImGuiInputTextDeactivateData ImGuiInputTextDeactivateData; typedef struct ImGuiLastItemData ImGuiLastItemData; typedef struct ImGuiLocEntry ImGuiLocEntry; typedef struct ImGuiMenuColumns ImGuiMenuColumns; +typedef struct ImGuiMultiSelectState ImGuiMultiSelectState; +typedef struct ImGuiMultiSelectTempData ImGuiMultiSelectTempData; typedef struct ImGuiNavItemData ImGuiNavItemData; -typedef struct ImGuiNavTreeNodeData ImGuiNavTreeNodeData; typedef struct ImGuiMetricsConfig ImGuiMetricsConfig; typedef struct ImGuiNextWindowData ImGuiNextWindowData; typedef struct ImGuiNextItemData ImGuiNextItemData; @@ -105,18 +112,31 @@ typedef struct ImGuiStyleMod ImGuiStyleMod; typedef struct ImGuiTabBar ImGuiTabBar; typedef struct ImGuiTabItem ImGuiTabItem; typedef struct ImGuiTable ImGuiTable; +typedef struct ImGuiTableHeaderData ImGuiTableHeaderData; typedef struct ImGuiTableColumn ImGuiTableColumn; typedef struct ImGuiTableInstanceData ImGuiTableInstanceData; typedef struct ImGuiTableTempData ImGuiTableTempData; typedef struct ImGuiTableSettings ImGuiTableSettings; typedef struct ImGuiTableColumnsSettings ImGuiTableColumnsSettings; +typedef struct ImGuiTreeNodeStackData ImGuiTreeNodeStackData; typedef struct ImGuiTypingSelectState ImGuiTypingSelectState; typedef struct ImGuiTypingSelectRequest ImGuiTypingSelectRequest; typedef struct ImGuiWindow ImGuiWindow; +typedef struct ImGuiWindowDockStyle ImGuiWindowDockStyle; typedef struct ImGuiWindowTempData ImGuiWindowTempData; typedef struct ImGuiWindowSettings ImGuiWindowSettings; +typedef struct STB_TexteditState STB_TexteditState; typedef struct ImVector_const_charPtr {int Size;int Capacity;const char** Data;} ImVector_const_charPtr; +typedef unsigned int ImGuiID; +typedef signed char ImS8; +typedef unsigned char ImU8; +typedef signed short ImS16; +typedef unsigned short ImU16; +typedef signed int ImS32; +typedef unsigned int ImU32; +typedef signed long long ImS64; +typedef unsigned long long ImU64; struct ImDrawChannel; struct ImDrawCmd; struct ImDrawData; @@ -136,13 +156,18 @@ struct ImGuiIO; struct ImGuiInputTextCallbackData; struct ImGuiKeyData; struct ImGuiListClipper; +struct ImGuiMultiSelectIO; struct ImGuiOnceUponAFrame; struct ImGuiPayload; struct ImGuiPlatformIO; -struct ImGuiPlatformMonitor; struct ImGuiPlatformImeData; +struct ImGuiPlatformMonitor; +struct ImGuiSelectionBasicStorage; +struct ImGuiSelectionExternalStorage; +struct ImGuiSelectionRequest; struct ImGuiSizeCallbackData; struct ImGuiStorage; +struct ImGuiStoragePair; struct ImGuiStyle; struct ImGuiTableSortSpecs; struct ImGuiTableColumnSortSpecs; @@ -153,10 +178,8 @@ struct ImGuiWindowClass; typedef int ImGuiCol; typedef int ImGuiCond; typedef int ImGuiDataType; -typedef int ImGuiDir; typedef int ImGuiMouseButton; typedef int ImGuiMouseCursor; -typedef int ImGuiSortDirection; typedef int ImGuiStyleVar; typedef int ImGuiTableBgTarget; typedef int ImDrawFlags; @@ -172,9 +195,12 @@ typedef int ImGuiDockNodeFlags; typedef int ImGuiDragDropFlags; typedef int ImGuiFocusedFlags; typedef int ImGuiHoveredFlags; +typedef int ImGuiInputFlags; typedef int ImGuiInputTextFlags; +typedef int ImGuiItemFlags; typedef int ImGuiKeyChord; typedef int ImGuiPopupFlags; +typedef int ImGuiMultiSelectFlags; typedef int ImGuiSelectableFlags; typedef int ImGuiSliderFlags; typedef int ImGuiTabBarFlags; @@ -185,17 +211,9 @@ typedef int ImGuiTableRowFlags; typedef int ImGuiTreeNodeFlags; typedef int ImGuiViewportFlags; typedef int ImGuiWindowFlags;typedef void* ImTextureID;typedef unsigned short ImDrawIdx; -typedef unsigned int ImGuiID; -typedef signed char ImS8; -typedef unsigned char ImU8; -typedef signed short ImS16; -typedef unsigned short ImU16; -typedef signed int ImS32; -typedef unsigned int ImU32; -typedef signed long long ImS64; -typedef unsigned long long ImU64; typedef unsigned int ImWchar32; typedef unsigned short ImWchar16;typedef ImWchar32 ImWchar; +typedef ImS64 ImGuiSelectionUserData; typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data); typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); typedef void* (*ImGuiMemAllocFunc)(size_t sz, void* user_data); @@ -235,7 +253,6 @@ typedef enum { ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse, ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, - ImGuiWindowFlags_NavFlattened = 1 << 23, ImGuiWindowFlags_ChildWindow = 1 << 24, ImGuiWindowFlags_Tooltip = 1 << 25, ImGuiWindowFlags_Popup = 1 << 26, @@ -245,10 +262,11 @@ typedef enum { + }ImGuiWindowFlags_; typedef enum { ImGuiChildFlags_None = 0, - ImGuiChildFlags_Border = 1 << 0, + ImGuiChildFlags_Borders = 1 << 0, ImGuiChildFlags_AlwaysUseWindowPadding = 1 << 1, ImGuiChildFlags_ResizeX = 1 << 2, ImGuiChildFlags_ResizeY = 1 << 3, @@ -256,30 +274,45 @@ typedef enum { ImGuiChildFlags_AutoResizeY = 1 << 5, ImGuiChildFlags_AlwaysAutoResize = 1 << 6, ImGuiChildFlags_FrameStyle = 1 << 7, + ImGuiChildFlags_NavFlattened = 1 << 8, + + + }ImGuiChildFlags_; +typedef enum { + ImGuiItemFlags_None = 0, + ImGuiItemFlags_NoTabStop = 1 << 0, + ImGuiItemFlags_NoNav = 1 << 1, + ImGuiItemFlags_NoNavDefaultFocus = 1 << 2, + ImGuiItemFlags_ButtonRepeat = 1 << 3, + ImGuiItemFlags_AutoClosePopups = 1 << 4, + ImGuiItemFlags_AllowDuplicateId = 1 << 5, +}ImGuiItemFlags_; typedef enum { ImGuiInputTextFlags_None = 0, ImGuiInputTextFlags_CharsDecimal = 1 << 0, ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, - ImGuiInputTextFlags_CharsUppercase = 1 << 2, - ImGuiInputTextFlags_CharsNoBlank = 1 << 3, - ImGuiInputTextFlags_AutoSelectAll = 1 << 4, - ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5, - ImGuiInputTextFlags_CallbackCompletion = 1 << 6, - ImGuiInputTextFlags_CallbackHistory = 1 << 7, - ImGuiInputTextFlags_CallbackAlways = 1 << 8, - ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, - ImGuiInputTextFlags_AllowTabInput = 1 << 10, - ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, - ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, - ImGuiInputTextFlags_AlwaysOverwrite = 1 << 13, - ImGuiInputTextFlags_ReadOnly = 1 << 14, - ImGuiInputTextFlags_Password = 1 << 15, + ImGuiInputTextFlags_CharsScientific = 1 << 2, + ImGuiInputTextFlags_CharsUppercase = 1 << 3, + ImGuiInputTextFlags_CharsNoBlank = 1 << 4, + ImGuiInputTextFlags_AllowTabInput = 1 << 5, + ImGuiInputTextFlags_EnterReturnsTrue = 1 << 6, + ImGuiInputTextFlags_EscapeClearsAll = 1 << 7, + ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 8, + ImGuiInputTextFlags_ReadOnly = 1 << 9, + ImGuiInputTextFlags_Password = 1 << 10, + ImGuiInputTextFlags_AlwaysOverwrite = 1 << 11, + ImGuiInputTextFlags_AutoSelectAll = 1 << 12, + ImGuiInputTextFlags_ParseEmptyRefVal = 1 << 13, + ImGuiInputTextFlags_DisplayEmptyRefVal = 1 << 14, + ImGuiInputTextFlags_NoHorizontalScroll = 1 << 15, ImGuiInputTextFlags_NoUndoRedo = 1 << 16, - ImGuiInputTextFlags_CharsScientific = 1 << 17, - ImGuiInputTextFlags_CallbackResize = 1 << 18, - ImGuiInputTextFlags_CallbackEdit = 1 << 19, - ImGuiInputTextFlags_EscapeClearsAll = 1 << 20, + ImGuiInputTextFlags_CallbackCompletion = 1 << 17, + ImGuiInputTextFlags_CallbackHistory = 1 << 18, + ImGuiInputTextFlags_CallbackAlways = 1 << 19, + ImGuiInputTextFlags_CallbackCharFilter = 1 << 20, + ImGuiInputTextFlags_CallbackResize = 1 << 21, + ImGuiInputTextFlags_CallbackEdit = 1 << 22, }ImGuiInputTextFlags_; typedef enum { ImGuiTreeNodeFlags_None = 0, @@ -296,8 +329,9 @@ typedef enum { ImGuiTreeNodeFlags_FramePadding = 1 << 10, ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11, ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12, - ImGuiTreeNodeFlags_SpanAllColumns = 1 << 13, - ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 14, + ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13, + ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14, + ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 15, ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog, @@ -320,11 +354,13 @@ typedef enum { }ImGuiPopupFlags_; typedef enum { ImGuiSelectableFlags_None = 0, - ImGuiSelectableFlags_DontClosePopups = 1 << 0, + ImGuiSelectableFlags_NoAutoClosePopups = 1 << 0, ImGuiSelectableFlags_SpanAllColumns = 1 << 1, ImGuiSelectableFlags_AllowDoubleClick = 1 << 2, ImGuiSelectableFlags_Disabled = 1 << 3, ImGuiSelectableFlags_AllowOverlap = 1 << 4, + ImGuiSelectableFlags_Highlight = 1 << 5, + @@ -350,8 +386,9 @@ typedef enum { ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 << 3, ImGuiTabBarFlags_NoTabListScrollingButtons = 1 << 4, ImGuiTabBarFlags_NoTooltip = 1 << 5, - ImGuiTabBarFlags_FittingPolicyResizeDown = 1 << 6, - ImGuiTabBarFlags_FittingPolicyScroll = 1 << 7, + ImGuiTabBarFlags_DrawSelectedOverline = 1 << 6, + ImGuiTabBarFlags_FittingPolicyResizeDown = 1 << 7, + ImGuiTabBarFlags_FittingPolicyScroll = 1 << 8, ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll, ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown, }ImGuiTabBarFlags_; @@ -421,11 +458,17 @@ typedef enum { ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2, ImGuiDragDropFlags_SourceAllowNullID = 1 << 3, ImGuiDragDropFlags_SourceExtern = 1 << 4, - ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5, + ImGuiDragDropFlags_PayloadAutoExpire = 1 << 5, + ImGuiDragDropFlags_PayloadNoCrossContext = 1 << 6, + ImGuiDragDropFlags_PayloadNoCrossProcess = 1 << 7, ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10, ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11, ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12, ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect, + + + + }ImGuiDragDropFlags_; typedef enum { ImGuiDataType_S8, @@ -438,21 +481,22 @@ typedef enum { ImGuiDataType_U64, ImGuiDataType_Float, ImGuiDataType_Double, + ImGuiDataType_Bool, ImGuiDataType_COUNT }ImGuiDataType_; typedef enum { - ImGuiDir_None = -1, - ImGuiDir_Left = 0, - ImGuiDir_Right = 1, - ImGuiDir_Up = 2, - ImGuiDir_Down = 3, - ImGuiDir_COUNT -}ImGuiDir_; +ImGuiDir_None=-1, +ImGuiDir_Left=0, +ImGuiDir_Right=1, +ImGuiDir_Up=2, +ImGuiDir_Down=3, +ImGuiDir_COUNT=4, +}ImGuiDir; typedef enum { - ImGuiSortDirection_None = 0, - ImGuiSortDirection_Ascending = 1, - ImGuiSortDirection_Descending = 2 -}ImGuiSortDirection_; +ImGuiSortDirection_None=0, +ImGuiSortDirection_Ascending=1, +ImGuiSortDirection_Descending=2, +}ImGuiSortDirection; typedef enum { ImGuiKey_None=0, ImGuiKey_Tab=512, @@ -615,14 +659,26 @@ ImGuiMod_Ctrl=1 << 12, ImGuiMod_Shift=1 << 13, ImGuiMod_Alt=1 << 14, ImGuiMod_Super=1 << 15, -ImGuiMod_Shortcut=1 << 11, -ImGuiMod_Mask_=0xF800, +ImGuiMod_Mask_=0xF000, ImGuiKey_NamedKey_BEGIN=512, ImGuiKey_NamedKey_END=ImGuiKey_COUNT, ImGuiKey_NamedKey_COUNT=ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN, ImGuiKey_KeysData_SIZE=ImGuiKey_NamedKey_COUNT, ImGuiKey_KeysData_OFFSET=ImGuiKey_NamedKey_BEGIN, }ImGuiKey; +typedef enum { + ImGuiInputFlags_None = 0, + ImGuiInputFlags_Repeat = 1 << 0, + ImGuiInputFlags_RouteActive = 1 << 10, + ImGuiInputFlags_RouteFocused = 1 << 11, + ImGuiInputFlags_RouteGlobal = 1 << 12, + ImGuiInputFlags_RouteAlways = 1 << 13, + ImGuiInputFlags_RouteOverFocused = 1 << 14, + ImGuiInputFlags_RouteOverActive = 1 << 15, + ImGuiInputFlags_RouteUnlessBgFocused = 1 << 16, + ImGuiInputFlags_RouteFromRootWindow = 1 << 17, + ImGuiInputFlags_Tooltip = 1 << 18, +}ImGuiInputFlags_; typedef enum { ImGuiConfigFlags_None = 0, ImGuiConfigFlags_NavEnableKeyboard = 1 << 0, @@ -631,7 +687,8 @@ typedef enum { ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3, ImGuiConfigFlags_NoMouse = 1 << 4, ImGuiConfigFlags_NoMouseCursorChange = 1 << 5, - ImGuiConfigFlags_DockingEnable = 1 << 6, + ImGuiConfigFlags_NoKeyboard = 1 << 6, + ImGuiConfigFlags_DockingEnable = 1 << 7, ImGuiConfigFlags_ViewportsEnable = 1 << 10, ImGuiConfigFlags_DpiEnableScaleViewports= 1 << 14, ImGuiConfigFlags_DpiEnableScaleFonts = 1 << 15, @@ -682,11 +739,13 @@ typedef enum { ImGuiCol_ResizeGrip, ImGuiCol_ResizeGripHovered, ImGuiCol_ResizeGripActive, - ImGuiCol_Tab, ImGuiCol_TabHovered, - ImGuiCol_TabActive, - ImGuiCol_TabUnfocused, - ImGuiCol_TabUnfocusedActive, + ImGuiCol_Tab, + ImGuiCol_TabSelected, + ImGuiCol_TabSelectedOverline, + ImGuiCol_TabDimmed, + ImGuiCol_TabDimmedSelected, + ImGuiCol_TabDimmedSelectedOverline, ImGuiCol_DockingPreview, ImGuiCol_DockingEmptyBg, ImGuiCol_PlotLines, @@ -698,13 +757,20 @@ typedef enum { ImGuiCol_TableBorderLight, ImGuiCol_TableRowBg, ImGuiCol_TableRowBgAlt, + ImGuiCol_TextLink, ImGuiCol_TextSelectedBg, ImGuiCol_DragDropTarget, ImGuiCol_NavHighlight, ImGuiCol_NavWindowingHighlight, ImGuiCol_NavWindowingDimBg, ImGuiCol_ModalWindowDimBg, - ImGuiCol_COUNT + ImGuiCol_COUNT, + + + + + + }ImGuiCol_; typedef enum { ImGuiStyleVar_Alpha, @@ -730,7 +796,11 @@ typedef enum { ImGuiStyleVar_GrabMinSize, ImGuiStyleVar_GrabRounding, ImGuiStyleVar_TabRounding, + ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TabBarBorderSize, + ImGuiStyleVar_TabBarOverlineSize, + ImGuiStyleVar_TableAngledHeadersAngle, + ImGuiStyleVar_TableAngledHeadersTextAlign, ImGuiStyleVar_ButtonTextAlign, ImGuiStyleVar_SelectableTextAlign, ImGuiStyleVar_SeparatorTextBorderSize, @@ -745,7 +815,6 @@ typedef enum { ImGuiButtonFlags_MouseButtonRight = 1 << 1, ImGuiButtonFlags_MouseButtonMiddle = 1 << 2, ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle, - ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft, }ImGuiButtonFlags_; typedef enum { ImGuiColorEditFlags_None = 0, @@ -784,6 +853,7 @@ typedef enum { ImGuiSliderFlags_Logarithmic = 1 << 5, ImGuiSliderFlags_NoRoundToFormat = 1 << 6, ImGuiSliderFlags_NoInput = 1 << 7, + ImGuiSliderFlags_WrapAround = 1 << 8, ImGuiSliderFlags_InvalidMask_ = 0x7000000F, }ImGuiSliderFlags_; typedef enum { @@ -908,7 +978,7 @@ struct ImGuiTableColumnSortSpecs ImGuiID ColumnUserID; ImS16 ColumnIndex; ImS16 SortOrder; - ImGuiSortDirection SortDirection : 8; + ImGuiSortDirection SortDirection; }; struct ImGuiStyle { @@ -942,7 +1012,9 @@ struct ImGuiStyle float TabBorderSize; float TabMinWidthForCloseButton; float TabBarBorderSize; + float TabBarOverlineSize; float TableAngledHeadersAngle; + ImVec2 TableAngledHeadersTextAlign; ImGuiDir ColorButtonPosition; ImVec2 ButtonTextAlign; ImVec2 SelectableTextAlign; @@ -982,7 +1054,8 @@ struct ImGuiIO float IniSavingRate; const char* IniFilename; const char* LogFilename; - void* UserData; ImFontAtlas*Fonts; + void* UserData; + ImFontAtlas*Fonts; float FontGlobalScale; bool FontAllowUserScaling; ImFont* FontDefault; @@ -997,6 +1070,7 @@ struct ImGuiIO bool ConfigViewportsNoDefaultParent; bool MouseDrawCursor; bool ConfigMacOSXBehaviors; + bool ConfigNavSwapGamepadButtons; bool ConfigInputTrickleEventQueue; bool ConfigInputTextCursorBlink; bool ConfigInputTextEnterKeepActive; @@ -1010,6 +1084,7 @@ struct ImGuiIO float KeyRepeatDelay; float KeyRepeatRate; bool ConfigDebugIsDebuggerPresent; + bool ConfigDebugHighlightIdConflicts; bool ConfigDebugBeginReturnValueOnce; bool ConfigDebugBeginReturnValueLoop; bool ConfigDebugIgnoreFocusLoss; @@ -1018,12 +1093,7 @@ struct ImGuiIO const char* BackendRendererName; void* BackendPlatformUserData; void* BackendRendererUserData; - void* BackendLanguageUserData; - const char* (*GetClipboardTextFn)(void* user_data); - void (*SetClipboardTextFn)(void* user_data, const char* text); - void* ClipboardUserData; - void (*SetPlatformImeDataFn)(ImGuiViewport* viewport, ImGuiPlatformImeData* data); - ImWchar PlatformLocaleDecimalPoint; bool WantCaptureMouse; + void* BackendLanguageUserData; bool WantCaptureMouse; bool WantCaptureKeyboard; bool WantTextInput; bool WantSetMousePos; @@ -1060,6 +1130,7 @@ struct ImGuiIO bool MouseDownOwned[5]; bool MouseDownOwnedUnlessPopupClose[5]; bool MouseWheelRequestAxisSwap; + bool MouseCtrlLeftAsRightClick; float MouseDownDuration[5]; float MouseDownDurationPrev[5]; ImVec2 MouseDragMaxDistanceAbs[5]; @@ -1146,17 +1217,15 @@ struct ImGuiTextBuffer }; struct ImGuiStoragePair { - ImGuiID key; - union { int val_i; float val_f; void* val_p; }; + ImGuiID key; + union { int val_i; float val_f; void* val_p; }; }; -typedef struct ImGuiStoragePair ImGuiStoragePair; - typedef struct ImVector_ImGuiStoragePair {int Size;int Capacity;ImGuiStoragePair* Data;} ImVector_ImGuiStoragePair; struct ImGuiStorage -{ ImVector_ImGuiStoragePair Data; +{ + ImVector_ImGuiStoragePair Data; }; -typedef struct ImGuiStoragePair ImGuiStoragePair; struct ImGuiListClipper { ImGuiContext* Ctx; @@ -1165,12 +1234,70 @@ struct ImGuiListClipper int ItemsCount; float ItemsHeight; float StartPosY; + double StartSeekOffsetY; void* TempData; }; struct ImColor { ImVec4 Value; }; +typedef enum { + ImGuiMultiSelectFlags_None = 0, + ImGuiMultiSelectFlags_SingleSelect = 1 << 0, + ImGuiMultiSelectFlags_NoSelectAll = 1 << 1, + ImGuiMultiSelectFlags_NoRangeSelect = 1 << 2, + ImGuiMultiSelectFlags_NoAutoSelect = 1 << 3, + ImGuiMultiSelectFlags_NoAutoClear = 1 << 4, + ImGuiMultiSelectFlags_NoAutoClearOnReselect = 1 << 5, + ImGuiMultiSelectFlags_BoxSelect1d = 1 << 6, + ImGuiMultiSelectFlags_BoxSelect2d = 1 << 7, + ImGuiMultiSelectFlags_BoxSelectNoScroll = 1 << 8, + ImGuiMultiSelectFlags_ClearOnEscape = 1 << 9, + ImGuiMultiSelectFlags_ClearOnClickVoid = 1 << 10, + ImGuiMultiSelectFlags_ScopeWindow = 1 << 11, + ImGuiMultiSelectFlags_ScopeRect = 1 << 12, + ImGuiMultiSelectFlags_SelectOnClick = 1 << 13, + ImGuiMultiSelectFlags_SelectOnClickRelease = 1 << 14, + ImGuiMultiSelectFlags_NavWrapX = 1 << 16, +}ImGuiMultiSelectFlags_; +typedef struct ImVector_ImGuiSelectionRequest {int Size;int Capacity;ImGuiSelectionRequest* Data;} ImVector_ImGuiSelectionRequest; + +struct ImGuiMultiSelectIO +{ + ImVector_ImGuiSelectionRequest Requests; + ImGuiSelectionUserData RangeSrcItem; + ImGuiSelectionUserData NavIdItem; + bool NavIdSelected; + bool RangeSrcReset; + int ItemsCount; +}; +typedef enum { + ImGuiSelectionRequestType_None = 0, + ImGuiSelectionRequestType_SetAll, + ImGuiSelectionRequestType_SetRange, +}ImGuiSelectionRequestType; +struct ImGuiSelectionRequest +{ + ImGuiSelectionRequestType Type; + bool Selected; + ImS8 RangeDirection; + ImGuiSelectionUserData RangeFirstItem; + ImGuiSelectionUserData RangeLastItem; +}; +struct ImGuiSelectionBasicStorage +{ + int Size; + bool PreserveOrder; + void* UserData; + ImGuiID (*AdapterIndexToStorageId)(ImGuiSelectionBasicStorage* self, int idx); + int _SelectionOrder; + ImGuiStorage _Storage; +}; +struct ImGuiSelectionExternalStorage +{ + void* UserData; + void (*AdapterSetItemSelected)(ImGuiSelectionExternalStorage* self, int idx, bool selected); +}; typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); struct ImDrawCmd { @@ -1237,12 +1364,12 @@ typedef enum { }ImDrawListFlags_; typedef struct ImVector_ImDrawVert {int Size;int Capacity;ImDrawVert* Data;} ImVector_ImDrawVert; +typedef struct ImVector_ImVec2 {int Size;int Capacity;ImVec2* Data;} ImVector_ImVec2; + typedef struct ImVector_ImVec4 {int Size;int Capacity;ImVec4* Data;} ImVector_ImVec4; typedef struct ImVector_ImTextureID {int Size;int Capacity;ImTextureID* Data;} ImVector_ImTextureID; -typedef struct ImVector_ImVec2 {int Size;int Capacity;ImVec2* Data;} ImVector_ImVec2; - struct ImDrawList { ImVector_ImDrawCmd CmdBuffer; @@ -1251,15 +1378,15 @@ struct ImDrawList ImDrawListFlags Flags; unsigned int _VtxCurrentIdx; ImDrawListSharedData* _Data; - const char* _OwnerName; ImDrawVert* _VtxWritePtr; ImDrawIdx* _IdxWritePtr; - ImVector_ImVec4 _ClipRectStack; - ImVector_ImTextureID _TextureIdStack; ImVector_ImVec2 _Path; ImDrawCmdHeader _CmdHeader; ImDrawListSplitter _Splitter; + ImVector_ImVec4 _ClipRectStack; + ImVector_ImTextureID _TextureIdStack; float _FringeScale; + const char* _OwnerName; }; typedef struct ImVector_ImDrawListPtr {int Size;int Capacity;ImDrawList** Data;} ImVector_ImDrawListPtr; @@ -1428,6 +1555,14 @@ typedef struct ImVector_ImGuiViewportPtr {int Size;int Capacity;ImGuiViewport** struct ImGuiPlatformIO { + const char* (*Platform_GetClipboardTextFn)(ImGuiContext* ctx); + void (*Platform_SetClipboardTextFn)(ImGuiContext* ctx, const char* text); + void* Platform_ClipboardUserData; + bool (*Platform_OpenInShellFn)(ImGuiContext* ctx, const char* path); + void* Platform_OpenInShellUserData; + void (*Platform_SetImeDataFn)(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); + void* Platform_ImeUserData; + ImWchar Platform_LocaleDecimalPoint; void (*Platform_CreateWindow)(ImGuiViewport* vp); void (*Platform_DestroyWindow)(ImGuiViewport* vp); void (*Platform_ShowWindow)(ImGuiViewport* vp); @@ -1445,6 +1580,7 @@ struct ImGuiPlatformIO void (*Platform_SwapBuffers)(ImGuiViewport* vp, void* render_arg); float (*Platform_GetWindowDpiScale)(ImGuiViewport* vp); void (*Platform_OnChangedViewport)(ImGuiViewport* vp); + ImVec4 (*Platform_GetWindowWorkAreaInsets)(ImGuiViewport* vp); int (*Platform_CreateVkSurface)(ImGuiViewport* vp, ImU64 vk_inst, const void* vk_allocators, ImU64* out_vk_surface); void (*Renderer_CreateWindow)(ImGuiViewport* vp); void (*Renderer_DestroyWindow)(ImGuiViewport* vp); @@ -1470,6 +1606,7 @@ struct ImGuiPlatformImeData struct ImRect; struct ImDrawDataBuilder; struct ImDrawListSharedData; +struct ImGuiBoxSelectState; struct ImGuiColorMod; struct ImGuiContext; struct ImGuiContextHook; @@ -1485,8 +1622,9 @@ struct ImGuiInputTextDeactivateData; struct ImGuiLastItemData; struct ImGuiLocEntry; struct ImGuiMenuColumns; +struct ImGuiMultiSelectState; +struct ImGuiMultiSelectTempData; struct ImGuiNavItemData; -struct ImGuiNavTreeNodeData; struct ImGuiMetricsConfig; struct ImGuiNextWindowData; struct ImGuiNextItemData; @@ -1499,14 +1637,17 @@ struct ImGuiStyleMod; struct ImGuiTabBar; struct ImGuiTabItem; struct ImGuiTable; +struct ImGuiTableHeaderData; struct ImGuiTableColumn; struct ImGuiTableInstanceData; struct ImGuiTableTempData; struct ImGuiTableSettings; struct ImGuiTableColumnsSettings; +struct ImGuiTreeNodeStackData; struct ImGuiTypingSelectState; struct ImGuiTypingSelectRequest; struct ImGuiWindow; +struct ImGuiWindowDockStyle; struct ImGuiWindowTempData; struct ImGuiWindowSettings; typedef int ImGuiDataAuthority; @@ -1514,8 +1655,6 @@ typedef int ImGuiLayoutType; typedef int ImGuiActivateFlags; typedef int ImGuiDebugLogFlags; typedef int ImGuiFocusRequestFlags; -typedef int ImGuiInputFlags; -typedef int ImGuiItemFlags; typedef int ImGuiItemStatusFlags; typedef int ImGuiOldColumnFlags; typedef int ImGuiNavHighlightFlags; @@ -1527,43 +1666,8 @@ typedef int ImGuiSeparatorFlags; typedef int ImGuiTextFlags; typedef int ImGuiTooltipFlags; typedef int ImGuiTypingSelectFlags; +typedef int ImGuiWindowRefreshFlags; typedef void (*ImGuiErrorLogCallback)(void* user_data, const char* fmt, ...);extern ImGuiContext* GImGui; -typedef struct StbUndoRecord StbUndoRecord; -struct StbUndoRecord -{ - int where; - int insert_length; - int delete_length; - int char_storage; -}; -typedef struct StbUndoState StbUndoState; -struct StbUndoState -{ - StbUndoRecord undo_rec [99]; - ImWchar undo_char[999]; - short undo_point, redo_point; - int undo_char_point, redo_char_point; -}; -typedef struct STB_TexteditState STB_TexteditState; -struct STB_TexteditState -{ int cursor; int select_start; - int select_end; unsigned char insert_mode; int row_count_per_page; - unsigned char cursor_at_end_of_line; - unsigned char initialized; - unsigned char has_preferred_x; - unsigned char single_line; - unsigned char padding1, padding2, padding3; - float preferred_x; - StbUndoState undostate; -}; -typedef struct StbTexteditRow StbTexteditRow; -struct StbTexteditRow -{ - float x0,x1; - float baseline_y_delta; - float ymin,ymax; - int num_chars; -}; typedef FILE* ImFileHandle; typedef struct ImVec1 ImVec1; struct ImVec1 @@ -1598,6 +1702,7 @@ struct ImDrawListSharedData ImVec2 TexUvWhitePixel; ImFont* Font; float FontSize; + float FontScale; float CurveTessellationTol; float CircleSegmentMaxError; ImVec4 ClipRectFullscreen; @@ -1613,21 +1718,41 @@ struct ImDrawDataBuilder ImVector_ImDrawListPtr* Layers[2]; ImVector_ImDrawListPtr LayerData1; }; +struct ImGuiDataVarInfo +{ + ImGuiDataType Type; + ImU32 Count; + ImU32 Offset; +}; +typedef struct ImGuiDataTypeStorage ImGuiDataTypeStorage; +struct ImGuiDataTypeStorage +{ + ImU8 Data[8]; +}; +struct ImGuiDataTypeInfo +{ + size_t Size; + const char* Name; + const char* PrintFmt; + const char* ScanFmt; +}; typedef enum { - ImGuiItemFlags_None = 0, - ImGuiItemFlags_NoTabStop = 1 << 0, - ImGuiItemFlags_ButtonRepeat = 1 << 1, - ImGuiItemFlags_Disabled = 1 << 2, - ImGuiItemFlags_NoNav = 1 << 3, - ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, - ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, - ImGuiItemFlags_MixedValue = 1 << 6, - ImGuiItemFlags_ReadOnly = 1 << 7, - ImGuiItemFlags_NoWindowHoverableCheck = 1 << 8, - ImGuiItemFlags_AllowOverlap = 1 << 9, - ImGuiItemFlags_Inputable = 1 << 10, - ImGuiItemFlags_HasSelectionUserData = 1 << 11, -}ImGuiItemFlags_; + ImGuiDataType_String = ImGuiDataType_COUNT + 1, + ImGuiDataType_Pointer, + ImGuiDataType_ID, +}ImGuiDataTypePrivate_; +typedef enum { + ImGuiItemFlags_Disabled = 1 << 10, + ImGuiItemFlags_ReadOnly = 1 << 11, + ImGuiItemFlags_MixedValue = 1 << 12, + ImGuiItemFlags_NoWindowHoverableCheck = 1 << 13, + ImGuiItemFlags_AllowOverlap = 1 << 14, + ImGuiItemFlags_Inputable = 1 << 20, + ImGuiItemFlags_HasSelectionUserData = 1 << 21, + ImGuiItemFlags_IsMultiSelect = 1 << 22, + + ImGuiItemFlags_Default_ = ImGuiItemFlags_AutoClosePopups, +}ImGuiItemFlagsPrivate_; typedef enum { ImGuiItemStatusFlags_None = 0, ImGuiItemStatusFlags_HoveredRect = 1 << 0, @@ -1640,6 +1765,7 @@ typedef enum { ImGuiItemStatusFlags_HoveredWindow = 1 << 7, ImGuiItemStatusFlags_Visible = 1 << 8, ImGuiItemStatusFlags_HasClipRect = 1 << 9, + ImGuiItemStatusFlags_HasShortcut = 1 << 10, @@ -1657,6 +1783,7 @@ typedef enum { ImGuiInputTextFlags_Multiline = 1 << 26, ImGuiInputTextFlags_NoMarkEdited = 1 << 27, ImGuiInputTextFlags_MergedItem = 1 << 28, + ImGuiInputTextFlags_LocalizeDecimalPoint= 1 << 29, }ImGuiInputTextFlagsPrivate_; typedef enum { ImGuiButtonFlags_PressedOnClick = 1 << 4, @@ -1697,8 +1824,9 @@ typedef enum { ImGuiSelectableFlags_NoSetKeyOwner = 1 << 27, }ImGuiSelectableFlagsPrivate_; typedef enum { - ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 20, - ImGuiTreeNodeFlags_UpsideDownArrow = 1 << 21, + ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 28, + ImGuiTreeNodeFlags_UpsideDownArrow = 1 << 29, + ImGuiTreeNodeFlags_OpenOnMask_ = ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_OpenOnArrow, }ImGuiTreeNodeFlagsPrivate_; typedef enum { ImGuiSeparatorFlags_None = 0, @@ -1791,19 +1919,19 @@ struct ImGuiInputTextDeactivatedState { ImGuiID ID; ImVector_char TextA; -}; +}; struct STB_TexteditState; +typedef STB_TexteditState ImStbTexteditState; struct ImGuiInputTextState { ImGuiContext* Ctx; + ImStbTexteditState* Stb; ImGuiID ID; - int CurLenW, CurLenA; - ImVector_ImWchar TextW; + int CurLenA; ImVector_char TextA; ImVector_char InitialTextA; - bool TextAIsValid; + ImVector_char CallbackTextBackup; int BufCapacityA; - float ScrollX; - STB_TexteditState Stb; + ImVec2 Scroll; float CursorAnim; bool CursorFollow; bool SelectedAllMouseLock; @@ -1813,6 +1941,12 @@ struct ImGuiInputTextState int ReloadSelectionStart; int ReloadSelectionEnd; }; +typedef enum { + ImGuiWindowRefreshFlags_None = 0, + ImGuiWindowRefreshFlags_TryToAvoidRefresh = 1 << 0, + ImGuiWindowRefreshFlags_RefreshOnHover = 1 << 1, + ImGuiWindowRefreshFlags_RefreshOnFocus = 1 << 2, +}ImGuiWindowRefreshFlags_; typedef enum { ImGuiNextWindowDataFlags_None = 0, ImGuiNextWindowDataFlags_HasPos = 1 << 0, @@ -1824,9 +1958,10 @@ typedef enum { ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6, ImGuiNextWindowDataFlags_HasScroll = 1 << 7, ImGuiNextWindowDataFlags_HasChildFlags = 1 << 8, - ImGuiNextWindowDataFlags_HasViewport = 1 << 9, - ImGuiNextWindowDataFlags_HasDock = 1 << 10, - ImGuiNextWindowDataFlags_HasWindowClass = 1 << 11, + ImGuiNextWindowDataFlags_HasRefreshPolicy = 1 << 9, + ImGuiNextWindowDataFlags_HasViewport = 1 << 10, + ImGuiNextWindowDataFlags_HasDock = 1 << 11, + ImGuiNextWindowDataFlags_HasWindowClass = 1 << 12, }ImGuiNextWindowDataFlags_; struct ImGuiNextWindowData { @@ -1851,23 +1986,29 @@ struct ImGuiNextWindowData ImGuiID DockId; ImGuiWindowClass WindowClass; ImVec2 MenuBarOffsetMinVal; + ImGuiWindowRefreshFlags RefreshFlagsVal; }; -typedef ImS64 ImGuiSelectionUserData; typedef enum { ImGuiNextItemDataFlags_None = 0, ImGuiNextItemDataFlags_HasWidth = 1 << 0, ImGuiNextItemDataFlags_HasOpen = 1 << 1, ImGuiNextItemDataFlags_HasShortcut = 1 << 2, + ImGuiNextItemDataFlags_HasRefVal = 1 << 3, + ImGuiNextItemDataFlags_HasStorageID = 1 << 4, }ImGuiNextItemDataFlags_; struct ImGuiNextItemData { ImGuiNextItemDataFlags Flags; ImGuiItemFlags ItemFlags; + ImGuiID FocusScopeId; ImGuiSelectionUserData SelectionUserData; float Width; ImGuiKeyChord Shortcut; + ImGuiInputFlags ShortcutFlags; bool OpenVal; - ImGuiCond OpenCond : 8; + ImU8 OpenCond; + ImGuiDataTypeStorage RefVal; + ImGuiID StorageId; }; struct ImGuiLastItemData { @@ -1878,10 +2019,12 @@ struct ImGuiLastItemData ImRect NavRect; ImRect DisplayRect; ImRect ClipRect; + ImGuiKeyChord Shortcut; }; -struct ImGuiNavTreeNodeData +struct ImGuiTreeNodeStackData { ImGuiID ID; + ImGuiTreeNodeFlags TreeFlags; ImGuiItemFlags InFlags; ImRect NavRect; }; @@ -1903,6 +2046,7 @@ struct ImGuiWindowStackData ImGuiWindow* Window; ImGuiLastItemData ParentLastItemDataBackup; ImGuiStackSizes StackSizesOnBegin; + bool DisabledOverrideReenable; }; typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem; struct ImGuiShrinkWidthItem @@ -1917,29 +2061,6 @@ struct ImGuiPtrOrIndex void* Ptr; int Index; }; -struct ImGuiDataVarInfo -{ - ImGuiDataType Type; - ImU32 Count; - ImU32 Offset; -}; -typedef struct ImGuiDataTypeTempStorage ImGuiDataTypeTempStorage; -struct ImGuiDataTypeTempStorage -{ - ImU8 Data[8]; -}; -struct ImGuiDataTypeInfo -{ - size_t Size; - const char* Name; - const char* PrintFmt; - const char* ScanFmt; -}; -typedef enum { - ImGuiDataType_String = ImGuiDataType_COUNT + 1, - ImGuiDataType_Pointer, - ImGuiDataType_ID, -}ImGuiDataTypePrivate_; typedef enum { ImGuiPopupPositionPolicy_Default, ImGuiPopupPositionPolicy_ComboBox, @@ -1949,7 +2070,7 @@ struct ImGuiPopupData { ImGuiID PopupId; ImGuiWindow* Window; - ImGuiWindow* BackupNavWindow; + ImGuiWindow* RestoreNavWindow; int ParentNavLayer; int OpenFrameCount; ImGuiID OpenParentId; @@ -1975,7 +2096,6 @@ typedef enum { ImGuiInputSource_Mouse, ImGuiInputSource_Keyboard, ImGuiInputSource_Gamepad, - ImGuiInputSource_Clipboard, ImGuiInputSource_COUNT }ImGuiInputSource; typedef struct ImGuiInputEventMousePos ImGuiInputEventMousePos; @@ -2052,8 +2172,6 @@ struct ImGuiKeyOwnerData bool LockUntilRelease; }; typedef enum { - ImGuiInputFlags_None = 0, - ImGuiInputFlags_Repeat = 1 << 0, ImGuiInputFlags_RepeatRateDefault = 1 << 1, ImGuiInputFlags_RepeatRateNavMove = 1 << 2, ImGuiInputFlags_RepeatRateNavTweak = 1 << 3, @@ -2061,28 +2179,24 @@ typedef enum { ImGuiInputFlags_RepeatUntilKeyModsChange = 1 << 5, ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone = 1 << 6, ImGuiInputFlags_RepeatUntilOtherKeyPress = 1 << 7, - ImGuiInputFlags_CondHovered = 1 << 8, - ImGuiInputFlags_CondActive = 1 << 9, + ImGuiInputFlags_LockThisFrame = 1 << 20, + ImGuiInputFlags_LockUntilRelease = 1 << 21, + ImGuiInputFlags_CondHovered = 1 << 22, + ImGuiInputFlags_CondActive = 1 << 23, ImGuiInputFlags_CondDefault_ = ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive, - ImGuiInputFlags_LockThisFrame = 1 << 10, - ImGuiInputFlags_LockUntilRelease = 1 << 11, - ImGuiInputFlags_RouteFocused = 1 << 12, - ImGuiInputFlags_RouteGlobalLow = 1 << 13, - ImGuiInputFlags_RouteGlobal = 1 << 14, - ImGuiInputFlags_RouteGlobalHigh = 1 << 15, - ImGuiInputFlags_RouteAlways = 1 << 16, - ImGuiInputFlags_RouteUnlessBgFocused= 1 << 17, ImGuiInputFlags_RepeatRateMask_ = ImGuiInputFlags_RepeatRateDefault | ImGuiInputFlags_RepeatRateNavMove | ImGuiInputFlags_RepeatRateNavTweak, ImGuiInputFlags_RepeatUntilMask_ = ImGuiInputFlags_RepeatUntilRelease | ImGuiInputFlags_RepeatUntilKeyModsChange | ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone | ImGuiInputFlags_RepeatUntilOtherKeyPress, ImGuiInputFlags_RepeatMask_ = ImGuiInputFlags_Repeat | ImGuiInputFlags_RepeatRateMask_ | ImGuiInputFlags_RepeatUntilMask_, ImGuiInputFlags_CondMask_ = ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive, - ImGuiInputFlags_RouteMask_ = ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteGlobalLow | ImGuiInputFlags_RouteGlobalHigh, + ImGuiInputFlags_RouteTypeMask_ = ImGuiInputFlags_RouteActive | ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteAlways, + ImGuiInputFlags_RouteOptionsMask_ = ImGuiInputFlags_RouteOverFocused | ImGuiInputFlags_RouteOverActive | ImGuiInputFlags_RouteUnlessBgFocused | ImGuiInputFlags_RouteFromRootWindow, ImGuiInputFlags_SupportedByIsKeyPressed = ImGuiInputFlags_RepeatMask_, ImGuiInputFlags_SupportedByIsMouseClicked = ImGuiInputFlags_Repeat, - ImGuiInputFlags_SupportedByShortcut = ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteMask_ | ImGuiInputFlags_RouteAlways | ImGuiInputFlags_RouteUnlessBgFocused, + ImGuiInputFlags_SupportedByShortcut = ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_, + ImGuiInputFlags_SupportedBySetNextItemShortcut = ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_ | ImGuiInputFlags_Tooltip, ImGuiInputFlags_SupportedBySetKeyOwner = ImGuiInputFlags_LockThisFrame | ImGuiInputFlags_LockUntilRelease, ImGuiInputFlags_SupportedBySetItemKeyOwner = ImGuiInputFlags_SupportedBySetKeyOwner | ImGuiInputFlags_CondMask_, -}ImGuiInputFlags_; +}ImGuiInputFlagsPrivate_; typedef struct ImGuiListClipperRange ImGuiListClipperRange; struct ImGuiListClipperRange { @@ -2147,6 +2261,7 @@ typedef enum { ImGuiNavMoveFlags_Activate = 1 << 12, ImGuiNavMoveFlags_NoSelect = 1 << 13, ImGuiNavMoveFlags_NoSetNavHighlight = 1 << 14, + ImGuiNavMoveFlags_NoClearActiveId = 1 << 15, }ImGuiNavMoveFlags_; typedef enum { ImGuiNavLayer_Main = 0, @@ -2160,10 +2275,10 @@ struct ImGuiNavItemData ImGuiID FocusScopeId; ImRect RectRel; ImGuiItemFlags InFlags; - ImGuiSelectionUserData SelectionUserData; float DistBox; float DistCenter; float DistAxial; + ImGuiSelectionUserData SelectionUserData; }; typedef struct ImGuiFocusScopeData ImGuiFocusScopeData; struct ImGuiFocusScopeData @@ -2229,6 +2344,54 @@ struct ImGuiOldColumns ImVector_ImGuiOldColumnData Columns; ImDrawListSplitter Splitter; }; +struct ImGuiBoxSelectState +{ + ImGuiID ID; + bool IsActive; + bool IsStarting; + bool IsStartedFromVoid; + bool IsStartedSetNavIdOnce; + bool RequestClear; + ImGuiKeyChord KeyMods : 16; + ImVec2 StartPosRel; + ImVec2 EndPosRel; + ImVec2 ScrollAccum; + ImGuiWindow* Window; + bool UnclipMode; + ImRect UnclipRect; + ImRect BoxSelectRectPrev; + ImRect BoxSelectRectCurr; +}; +struct ImGuiMultiSelectTempData +{ + ImGuiMultiSelectIO IO; + ImGuiMultiSelectState* Storage; + ImGuiID FocusScopeId; + ImGuiMultiSelectFlags Flags; + ImVec2 ScopeRectMin; + ImVec2 BackupCursorMaxPos; + ImGuiSelectionUserData LastSubmittedItem; + ImGuiID BoxSelectId; + ImGuiKeyChord KeyMods; + ImS8 LoopRequestSetAll; + bool IsEndIO; + bool IsFocused; + bool IsKeyboardSetRange; + bool NavIdPassedBy; + bool RangeSrcPassedBy; + bool RangeDstPassedBy; +}; +struct ImGuiMultiSelectState +{ + ImGuiWindow* Window; + ImGuiID ID; + int LastFrameActive; + int LastSelectionSize; + ImS8 RangeSelected; + ImS8 NavIdSelected; + ImGuiSelectionUserData RangeSrcItem; + ImGuiSelectionUserData NavIdItem; +}; typedef enum { ImGuiDockNodeFlags_DockSpace = 1 << 10, ImGuiDockNodeFlags_CentralNode = 1 << 11, @@ -2245,8 +2408,8 @@ typedef enum { ImGuiDockNodeFlags_NoDockingOverEmpty = 1 << 22, ImGuiDockNodeFlags_NoDocking = ImGuiDockNodeFlags_NoDockingOverMe | ImGuiDockNodeFlags_NoDockingOverOther | ImGuiDockNodeFlags_NoDockingOverEmpty | ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoDockingSplitOther, ImGuiDockNodeFlags_SharedFlagsInheritMask_ = ~0, - ImGuiDockNodeFlags_NoResizeFlagsMask_ = ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY, - ImGuiDockNodeFlags_LocalFlagsTransferMask_ = ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton, + ImGuiDockNodeFlags_NoResizeFlagsMask_ = (int)ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY, + ImGuiDockNodeFlags_LocalFlagsTransferMask_ = (int)ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | (int)ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton, ImGuiDockNodeFlags_SavedFlagsMask_ = ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton, }ImGuiDockNodeFlagsPrivate_; typedef enum { @@ -2308,14 +2471,15 @@ struct ImGuiDockNode }; typedef enum { ImGuiWindowDockStyleCol_Text, - ImGuiWindowDockStyleCol_Tab, ImGuiWindowDockStyleCol_TabHovered, - ImGuiWindowDockStyleCol_TabActive, - ImGuiWindowDockStyleCol_TabUnfocused, - ImGuiWindowDockStyleCol_TabUnfocusedActive, + ImGuiWindowDockStyleCol_TabFocused, + ImGuiWindowDockStyleCol_TabSelected, + ImGuiWindowDockStyleCol_TabSelectedOverline, + ImGuiWindowDockStyleCol_TabDimmed, + ImGuiWindowDockStyleCol_TabDimmedSelected, + ImGuiWindowDockStyleCol_TabDimmedSelectedOverline, ImGuiWindowDockStyleCol_COUNT }ImGuiWindowDockStyleCol; -typedef struct ImGuiWindowDockStyle ImGuiWindowDockStyle; struct ImGuiWindowDockStyle { ImU32 Colors[ImGuiWindowDockStyleCol_COUNT]; @@ -2341,6 +2505,7 @@ struct ImGuiViewportP int LastFocusedStampCount; ImGuiID LastNameHash; ImVec2 LastPos; + ImVec2 LastSize; float Alpha; float LastAlpha; bool LastFocusedHadNavWindow; @@ -2352,10 +2517,10 @@ struct ImGuiViewportP ImVec2 LastPlatformPos; ImVec2 LastPlatformSize; ImVec2 LastRendererSize; - ImVec2 WorkOffsetMin; - ImVec2 WorkOffsetMax; - ImVec2 BuildWorkOffsetMin; - ImVec2 BuildWorkOffsetMax; + ImVec2 WorkInsetMin; + ImVec2 WorkInsetMax; + ImVec2 BuildWorkInsetMin; + ImVec2 BuildWorkInsetMax; }; struct ImGuiWindowSettings { @@ -2393,10 +2558,12 @@ ImGuiLocKey_TableResetOrder=4, ImGuiLocKey_WindowingMainMenuBar=5, ImGuiLocKey_WindowingPopup=6, ImGuiLocKey_WindowingUntitled=7, -ImGuiLocKey_DockingHideTabBar=8, -ImGuiLocKey_DockingHoldShiftToDock=9, -ImGuiLocKey_DockingDragToUndockOrMoveNode=10, -ImGuiLocKey_COUNT=11, +ImGuiLocKey_OpenLink_s=8, +ImGuiLocKey_CopyLink=9, +ImGuiLocKey_DockingHideTabBar=10, +ImGuiLocKey_DockingHoldShiftToDock=11, +ImGuiLocKey_DockingDragToUndockOrMoveNode=12, +ImGuiLocKey_COUNT=13, }ImGuiLocKey; struct ImGuiLocEntry { @@ -2499,7 +2666,7 @@ typedef struct ImVector_ImGuiGroupData {int Size;int Capacity;ImGuiGroupData* Da typedef struct ImVector_ImGuiPopupData {int Size;int Capacity;ImGuiPopupData* Data;} ImVector_ImGuiPopupData; -typedef struct ImVector_ImGuiNavTreeNodeData {int Size;int Capacity;ImGuiNavTreeNodeData* Data;} ImVector_ImGuiNavTreeNodeData; +typedef struct ImVector_ImGuiTreeNodeStackData {int Size;int Capacity;ImGuiTreeNodeStackData* Data;} ImVector_ImGuiTreeNodeStackData; typedef struct ImVector_ImGuiViewportPPtr {int Size;int Capacity;ImGuiViewportP** Data;} ImVector_ImGuiViewportPPtr; @@ -2521,6 +2688,12 @@ typedef struct ImVector_ImGuiPtrOrIndex {int Size;int Capacity;ImGuiPtrOrIndex* typedef struct ImVector_ImGuiShrinkWidthItem {int Size;int Capacity;ImGuiShrinkWidthItem* Data;} ImVector_ImGuiShrinkWidthItem; +typedef struct ImVector_ImGuiMultiSelectTempData {int Size;int Capacity;ImGuiMultiSelectTempData* Data;} ImVector_ImGuiMultiSelectTempData; + +typedef struct ImVector_ImGuiMultiSelectState {int Size;int Capacity;ImGuiMultiSelectState* Data;} ImVector_ImGuiMultiSelectState; + +typedef struct ImPool_ImGuiMultiSelectState {ImVector_ImGuiMultiSelectState Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;ImPoolIdx AliveCount;} ImPool_ImGuiMultiSelectState; + typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; typedef struct ImVector_ImGuiSettingsHandler {int Size;int Capacity;ImGuiSettingsHandler* Data;} ImVector_ImGuiSettingsHandler; @@ -2543,6 +2716,8 @@ struct ImGuiContext ImFont* Font; float FontSize; float FontBaseSize; + float FontScale; + float CurrentDpiScale; ImDrawListSharedData DrawListSharedData; double Time; int FrameCount; @@ -2555,6 +2730,7 @@ struct ImGuiContext bool GcCompactAll; bool TestEngineHookItems; void* TestEngine; + char ContextName[16]; ImVector_ImGuiInputEvent InputEventsQueue; ImVector_ImGuiInputEvent InputEventsTrail; ImGuiMouseSource InputEventsNextMouseSource; @@ -2570,6 +2746,7 @@ struct ImGuiContext ImGuiWindow* CurrentWindow; ImGuiWindow* HoveredWindow; ImGuiWindow* HoveredWindowUnderMovingWindow; + ImGuiWindow* HoveredWindowBeforeClear; ImGuiWindow* MovingWindow; ImGuiWindow* WheelingWindow; ImVec2 WheelingWindowRefMousePos; @@ -2578,13 +2755,16 @@ struct ImGuiContext float WheelingWindowReleaseTimer; ImVec2 WheelingWindowWheelRemainder; ImVec2 WheelingAxisAvg; + ImGuiID DebugDrawIdConflicts; ImGuiID DebugHookIdInfo; ImGuiID HoveredId; ImGuiID HoveredIdPreviousFrame; - bool HoveredIdAllowOverlap; - bool HoveredIdDisabled; + int HoveredIdPreviousFrameItemCount; float HoveredIdTimer; float HoveredIdNotActiveTimer; + bool HoveredIdAllowOverlap; + bool HoveredIdIsDisabled; + bool ItemUnclipByLog; ImGuiID ActiveId; ImGuiID ActiveIdIsAlive; float ActiveIdTimer; @@ -2630,9 +2810,8 @@ struct ImGuiContext ImVector_ImGuiGroupData GroupStack; ImVector_ImGuiPopupData OpenPopupStack; ImVector_ImGuiPopupData BeginPopupStack; - ImVector_ImGuiNavTreeNodeData NavTreeNodeStack; + ImVector_ImGuiTreeNodeStackData TreeNodeStack; ImVector_ImGuiViewportPPtr Viewports; - float CurrentDpiScale; ImGuiViewportP* CurrentViewport; ImGuiViewportP* MouseViewport; ImGuiViewportP* MouseLastHoveredViewport; @@ -2645,20 +2824,17 @@ struct ImGuiContext ImGuiWindow* NavWindow; ImGuiID NavId; ImGuiID NavFocusScopeId; - ImVector_ImGuiFocusScopeData NavFocusRoute; + ImGuiNavLayer NavLayer; ImGuiID NavActivateId; ImGuiID NavActivateDownId; ImGuiID NavActivatePressedId; ImGuiActivateFlags NavActivateFlags; + ImVector_ImGuiFocusScopeData NavFocusRoute; ImGuiID NavHighlightActivatedId; float NavHighlightActivatedTimer; - ImGuiID NavJustMovedToId; - ImGuiID NavJustMovedToFocusScopeId; - ImGuiKeyChord NavJustMovedToKeyMods; ImGuiID NavNextActivateId; ImGuiActivateFlags NavNextActivateFlags; ImGuiInputSource NavInputSource; - ImGuiNavLayer NavLayer; ImGuiSelectionUserData NavLastValidSelectionUserData; bool NavIdIsAlive; bool NavMousePosDirty; @@ -2686,6 +2862,12 @@ struct ImGuiContext ImGuiNavItemData NavMoveResultLocalVisible; ImGuiNavItemData NavMoveResultOther; ImGuiNavItemData NavTabbingResultFirst; + ImGuiID NavJustMovedFromFocusScopeId; + ImGuiID NavJustMovedToId; + ImGuiID NavJustMovedToFocusScopeId; + ImGuiKeyChord NavJustMovedToKeyMods; + bool NavJustMovedToIsTabbing; + bool NavJustMovedToHasSelectionData; ImGuiKeyChord ConfigNavWindowingKeyNext; ImGuiKeyChord ConfigNavWindowingKeyPrev; ImGuiWindow* NavWindowingTarget; @@ -2729,6 +2911,11 @@ struct ImGuiContext ImPool_ImGuiTabBar TabBars; ImVector_ImGuiPtrOrIndex CurrentTabBarStack; ImVector_ImGuiShrinkWidthItem ShrinkWidthBuffer; + ImGuiBoxSelectState BoxSelectState; + ImGuiMultiSelectTempData* CurrentMultiSelect; + int MultiSelectTempDataStacked; + ImVector_ImGuiMultiSelectTempData MultiSelectTempData; + ImPool_ImGuiMultiSelectState MultiSelectStorage; ImGuiID HoverItemDelayId; ImGuiID HoverItemDelayIdPreviousFrame; float HoverItemDelayTimer; @@ -2742,6 +2929,7 @@ struct ImGuiContext ImGuiInputTextDeactivatedState InputTextDeactivatedState; ImFont InputTextPasswordFont; ImGuiID TempInputId; + ImGuiDataTypeStorage DataTypeZeroValue; int BeginMenuDepth; int BeginComboDepth; ImGuiColorEditFlags ColorEditOptions; @@ -2754,13 +2942,14 @@ struct ImGuiContext ImGuiComboPreviewData ComboPreviewData; ImRect WindowResizeBorderExpectedRect; bool WindowResizeRelativeMode; + short ScrollbarSeekMode; + float ScrollbarClickDeltaToGrabCenter; float SliderGrabClickOffset; float SliderCurrentAccum; bool SliderCurrentAccumDirty; bool DragCurrentAccumDirty; float DragCurrentAccum; float DragSpeedDefaultRatio; - float ScrollbarClickDeltaToGrabCenter; float DisabledAlphaBackup; short DisabledStackSize; short LockMarkEdited; @@ -2848,7 +3037,7 @@ struct ImGuiWindowTempData ImVec2 MenuBarOffset; ImGuiMenuColumns MenuColumns; int TreeDepth; - ImU32 TreeJumpToParentOnPopMask; + ImU32 TreeHasStackDataDepthMask; ImVector_ImGuiWindowPtr ChildWindows; ImGuiStorage* StateStorage; ImGuiOldColumns* CurrentColumns; @@ -2884,6 +3073,7 @@ struct ImGuiWindow ImVec2 WindowPadding; float WindowRounding; float WindowBorderSize; + float TitleBarHeight, MenuBarHeight; float DecoOuterSizeX1, DecoOuterSizeY1; float DecoOuterSizeX2, DecoOuterSizeY2; float DecoInnerSizeX1, DecoInnerSizeY1; @@ -2891,6 +3081,7 @@ struct ImGuiWindow ImGuiID MoveId; ImGuiID TabId; ImGuiID ChildId; + ImGuiID PopupId; ImVec2 Scroll; ImVec2 ScrollMax; ImVec2 ScrollTarget; @@ -2905,6 +3096,7 @@ struct ImGuiWindow bool Collapsed; bool WantCollapseToggle; bool SkipItems; + bool SkipRefresh; bool Appearing; bool Hidden; bool IsFallbackWindow; @@ -2917,7 +3109,6 @@ struct ImGuiWindow short BeginOrderWithinParent; short BeginOrderWithinContext; short FocusOrder; - ImGuiID PopupId; ImS8 AutoFitFramesX, AutoFitFramesY; bool AutoFitOnlyGrows; ImGuiDir AutoPosLastDirection; @@ -3051,6 +3242,7 @@ struct ImGuiTableColumn float MaxX; float WidthRequest; float WidthAuto; + float WidthMax; float StretchWeight; float InitStretchWeightOrWidth; ImRect ClipRect; @@ -3093,6 +3285,13 @@ struct ImGuiTableCellData ImU32 BgColor; ImGuiTableColumnIdx Column; }; +struct ImGuiTableHeaderData +{ + ImGuiTableColumnIdx Index; + ImU32 TextColor; + ImU32 BgColor0; + ImU32 BgColor1; +}; struct ImGuiTableInstanceData { ImGuiID TableInstanceID; @@ -3227,11 +3426,14 @@ struct ImGuiTable bool MemoryCompacted; bool HostSkipItems; }; +typedef struct ImVector_ImGuiTableHeaderData {int Size;int Capacity;ImGuiTableHeaderData* Data;} ImVector_ImGuiTableHeaderData; + struct ImGuiTableTempData { int TableIndex; float LastTimeActive; - float AngledHeadersExtraWidth; ImVec2 UserOuterSize; + float AngledHeadersExtraWidth; + ImVector_ImGuiTableHeaderData AngledHeadersRequests; ImVec2 UserOuterSize; ImDrawListSplitter DrawSplitter; ImRect HostBackupWorkRect; ImRect HostBackupParentWorkRect; ImVec2 HostBackupPrevLineSize; @@ -3268,6 +3470,8 @@ struct ImFontBuilderIO }; #define IMGUI_HAS_DOCK 1 +#define ImDrawCallback_ResetRenderState (ImDrawCallback)(-8) + #else struct GLFWwindow; struct SDL_Window; @@ -3275,14 +3479,11 @@ typedef union SDL_Event SDL_Event; #endif // CIMGUI_DEFINE_ENUMS_AND_STRUCTS #ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS -typedef struct ImGuiStorage::ImGuiStoragePair ImGuiStoragePair; typedef struct ImGuiTextFilter::ImGuiTextRange ImGuiTextRange; typedef ImStb::STB_TexteditState STB_TexteditState; -typedef ImStb::StbTexteditRow StbTexteditRow; -typedef ImStb::StbUndoRecord StbUndoRecord; -typedef ImStb::StbUndoState StbUndoState; typedef ImChunkStream ImChunkStream_ImGuiTableSettings; typedef ImChunkStream ImChunkStream_ImGuiWindowSettings; +typedef ImPool ImPool_ImGuiMultiSelectState; typedef ImPool ImPool_ImGuiTabBar; typedef ImPool ImPool_ImGuiTable; typedef ImSpan ImSpan_ImGuiTableCellData; @@ -3309,12 +3510,13 @@ typedef ImVector ImVector_ImGuiItemFlags; typedef ImVector ImVector_ImGuiKeyRoutingData; typedef ImVector ImVector_ImGuiListClipperData; typedef ImVector ImVector_ImGuiListClipperRange; -typedef ImVector ImVector_ImGuiNavTreeNodeData; +typedef ImVector ImVector_ImGuiMultiSelectTempData; typedef ImVector ImVector_ImGuiOldColumnData; typedef ImVector ImVector_ImGuiOldColumns; typedef ImVector ImVector_ImGuiPlatformMonitor; typedef ImVector ImVector_ImGuiPopupData; typedef ImVector ImVector_ImGuiPtrOrIndex; +typedef ImVector ImVector_ImGuiSelectionRequest; typedef ImVector ImVector_ImGuiSettingsHandler; typedef ImVector ImVector_ImGuiShrinkWidthItem; typedef ImVector ImVector_ImGuiStackLevelInfo; @@ -3322,9 +3524,11 @@ typedef ImVector ImVector_ImGuiStoragePair; typedef ImVector ImVector_ImGuiStyleMod; typedef ImVector ImVector_ImGuiTabItem; typedef ImVector ImVector_ImGuiTableColumnSortSpecs; +typedef ImVector ImVector_ImGuiTableHeaderData; typedef ImVector ImVector_ImGuiTableInstanceData; typedef ImVector ImVector_ImGuiTableTempData; typedef ImVector ImVector_ImGuiTextRange; +typedef ImVector ImVector_ImGuiTreeNodeStackData; typedef ImVector ImVector_ImGuiViewportPtr; typedef ImVector ImVector_ImGuiViewportPPtr; typedef ImVector ImVector_ImGuiWindowPtr; @@ -3351,6 +3555,7 @@ CIMGUI_API void igDestroyContext(ImGuiContext* ctx); CIMGUI_API ImGuiContext* igGetCurrentContext(void); CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx); CIMGUI_API ImGuiIO* igGetIO(void); +CIMGUI_API ImGuiPlatformIO* igGetPlatformIO(void); CIMGUI_API ImGuiStyle* igGetStyle(void); CIMGUI_API void igNewFrame(void); CIMGUI_API void igEndFrame(void); @@ -3403,10 +3608,6 @@ CIMGUI_API void igSetWindowPos_Str(const char* name,const ImVec2 pos,ImGuiCond c CIMGUI_API void igSetWindowSize_Str(const char* name,const ImVec2 size,ImGuiCond cond); CIMGUI_API void igSetWindowCollapsed_Str(const char* name,bool collapsed,ImGuiCond cond); CIMGUI_API void igSetWindowFocus_Str(const char* name); -CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut); -CIMGUI_API void igGetContentRegionMax(ImVec2 *pOut); -CIMGUI_API void igGetWindowContentRegionMin(ImVec2 *pOut); -CIMGUI_API void igGetWindowContentRegionMax(ImVec2 *pOut); CIMGUI_API float igGetScrollX(void); CIMGUI_API float igGetScrollY(void); CIMGUI_API void igSetScrollX_Float(float scroll_x); @@ -3424,11 +3625,11 @@ CIMGUI_API void igPushStyleColor_Vec4(ImGuiCol idx,const ImVec4 col); CIMGUI_API void igPopStyleColor(int count); CIMGUI_API void igPushStyleVar_Float(ImGuiStyleVar idx,float val); CIMGUI_API void igPushStyleVar_Vec2(ImGuiStyleVar idx,const ImVec2 val); +CIMGUI_API void igPushStyleVarX(ImGuiStyleVar idx,float val_x); +CIMGUI_API void igPushStyleVarY(ImGuiStyleVar idx,float val_y); CIMGUI_API void igPopStyleVar(int count); -CIMGUI_API void igPushTabStop(bool tab_stop); -CIMGUI_API void igPopTabStop(void); -CIMGUI_API void igPushButtonRepeat(bool repeat); -CIMGUI_API void igPopButtonRepeat(void); +CIMGUI_API void igPushItemFlag(ImGuiItemFlags option,bool enabled); +CIMGUI_API void igPopItemFlag(void); CIMGUI_API void igPushItemWidth(float item_width); CIMGUI_API void igPopItemWidth(void); CIMGUI_API void igSetNextItemWidth(float item_width); @@ -3444,6 +3645,7 @@ CIMGUI_API ImU32 igGetColorU32_U32(ImU32 col,float alpha_mul); CIMGUI_API const ImVec4* igGetStyleColorVec4(ImGuiCol idx); CIMGUI_API void igGetCursorScreenPos(ImVec2 *pOut); CIMGUI_API void igSetCursorScreenPos(const ImVec2 pos); +CIMGUI_API void igGetContentRegionAvail(ImVec2 *pOut); CIMGUI_API void igGetCursorPos(ImVec2 *pOut); CIMGUI_API float igGetCursorPosX(void); CIMGUI_API float igGetCursorPosY(void); @@ -3473,6 +3675,7 @@ CIMGUI_API void igPopID(void); CIMGUI_API ImGuiID igGetID_Str(const char* str_id); CIMGUI_API ImGuiID igGetID_StrStr(const char* str_id_begin,const char* str_id_end); CIMGUI_API ImGuiID igGetID_Ptr(const void* ptr_id); +CIMGUI_API ImGuiID igGetID_Int(int int_id); CIMGUI_API void igTextUnformatted(const char* text,const char* text_end); CIMGUI_API void igText(const char* fmt,...); CIMGUI_API void igTextV(const char* fmt,va_list args); @@ -3498,6 +3701,8 @@ CIMGUI_API bool igRadioButton_Bool(const char* label,bool active); CIMGUI_API bool igRadioButton_IntPtr(const char* label,int* v,int v_button); CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* overlay); CIMGUI_API void igBullet(void); +CIMGUI_API bool igTextLink(const char* label); +CIMGUI_API void igTextLinkOpenURL(const char* label,const char* url); CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col); CIMGUI_API bool igImageButton(const char* str_id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col); CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags); @@ -3568,8 +3773,13 @@ CIMGUI_API float igGetTreeNodeToLabelSpacing(void); CIMGUI_API bool igCollapsingHeader_TreeNodeFlags(const char* label,ImGuiTreeNodeFlags flags); CIMGUI_API bool igCollapsingHeader_BoolPtr(const char* label,bool* p_visible,ImGuiTreeNodeFlags flags); CIMGUI_API void igSetNextItemOpen(bool is_open,ImGuiCond cond); +CIMGUI_API void igSetNextItemStorageID(ImGuiID storage_id); CIMGUI_API bool igSelectable_Bool(const char* label,bool selected,ImGuiSelectableFlags flags,const ImVec2 size); CIMGUI_API bool igSelectable_BoolPtr(const char* label,bool* p_selected,ImGuiSelectableFlags flags,const ImVec2 size); +CIMGUI_API ImGuiMultiSelectIO* igBeginMultiSelect(ImGuiMultiSelectFlags flags,int selection_size,int items_count); +CIMGUI_API ImGuiMultiSelectIO* igEndMultiSelect(void); +CIMGUI_API void igSetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data); +CIMGUI_API bool igIsItemToggledSelection(void); CIMGUI_API bool igBeginListBox(const char* label,const ImVec2 size); CIMGUI_API void igEndListBox(void); CIMGUI_API bool igListBox_Str_arr(const char* label,int* current_item,const char* const items[],int items_count,int height_in_items); @@ -3608,7 +3818,7 @@ CIMGUI_API bool igBeginPopupContextItem(const char* str_id,ImGuiPopupFlags popup CIMGUI_API bool igBeginPopupContextWindow(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igBeginPopupContextVoid(const char* str_id,ImGuiPopupFlags popup_flags); CIMGUI_API bool igIsPopupOpen_Str(const char* str_id,ImGuiPopupFlags flags); -CIMGUI_API bool igBeginTable(const char* str_id,int column,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width); +CIMGUI_API bool igBeginTable(const char* str_id,int columns,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width); CIMGUI_API void igEndTable(void); CIMGUI_API void igTableNextRow(ImGuiTableRowFlags row_flags,float min_row_height); CIMGUI_API bool igTableNextColumn(void); @@ -3625,8 +3835,9 @@ CIMGUI_API int igTableGetRowIndex(void); CIMGUI_API const char* igTableGetColumnName_Int(int column_n); CIMGUI_API ImGuiTableColumnFlags igTableGetColumnFlags(int column_n); CIMGUI_API void igTableSetColumnEnabled(int column_n,bool v); +CIMGUI_API int igTableGetHoveredColumn(void); CIMGUI_API void igTableSetBgColor(ImGuiTableBgTarget target,ImU32 color,int column_n); -CIMGUI_API void igColumns(int count,const char* id,bool border); +CIMGUI_API void igColumns(int count,const char* id,bool borders); CIMGUI_API void igNextColumn(void); CIMGUI_API int igGetColumnIndex(void); CIMGUI_API float igGetColumnWidth(int column_index); @@ -3640,8 +3851,8 @@ CIMGUI_API bool igBeginTabItem(const char* label,bool* p_open,ImGuiTabItemFlags CIMGUI_API void igEndTabItem(void); CIMGUI_API bool igTabItemButton(const char* label,ImGuiTabItemFlags flags); CIMGUI_API void igSetTabItemClosed(const char* tab_or_docked_window_label); -CIMGUI_API ImGuiID igDockSpace(ImGuiID id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class); -CIMGUI_API ImGuiID igDockSpaceOverViewport(const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class); +CIMGUI_API ImGuiID igDockSpace(ImGuiID dockspace_id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class); +CIMGUI_API ImGuiID igDockSpaceOverViewport(ImGuiID dockspace_id,const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class); CIMGUI_API void igSetNextWindowDockID(ImGuiID dock_id,ImGuiCond cond); CIMGUI_API void igSetNextWindowClass(const ImGuiWindowClass* window_class); CIMGUI_API ImGuiID igGetWindowDockID(void); @@ -3684,9 +3895,7 @@ CIMGUI_API void igGetItemRectMin(ImVec2 *pOut); CIMGUI_API void igGetItemRectMax(ImVec2 *pOut); CIMGUI_API void igGetItemRectSize(ImVec2 *pOut); CIMGUI_API ImGuiViewport* igGetMainViewport(void); -CIMGUI_API ImDrawList* igGetBackgroundDrawList_Nil(void); -CIMGUI_API ImDrawList* igGetForegroundDrawList_Nil(void); -CIMGUI_API ImDrawList* igGetBackgroundDrawList_ViewportPtr(ImGuiViewport* viewport); +CIMGUI_API ImDrawList* igGetBackgroundDrawList(ImGuiViewport* viewport); CIMGUI_API ImDrawList* igGetForegroundDrawList_ViewportPtr(ImGuiViewport* viewport); CIMGUI_API bool igIsRectVisible_Nil(const ImVec2 size); CIMGUI_API bool igIsRectVisible_Vec2(const ImVec2 rect_min,const ImVec2 rect_max); @@ -3708,6 +3917,9 @@ CIMGUI_API bool igIsKeyChordPressed_Nil(ImGuiKeyChord key_chord); CIMGUI_API int igGetKeyPressedAmount(ImGuiKey key,float repeat_delay,float rate); CIMGUI_API const char* igGetKeyName(ImGuiKey key); CIMGUI_API void igSetNextFrameWantCaptureKeyboard(bool want_capture_keyboard); +CIMGUI_API bool igShortcut_Nil(ImGuiKeyChord key_chord,ImGuiInputFlags flags); +CIMGUI_API void igSetNextItemShortcut(ImGuiKeyChord key_chord,ImGuiInputFlags flags); +CIMGUI_API void igSetItemKeyOwner_Nil(ImGuiKey key); CIMGUI_API bool igIsMouseDown_Nil(ImGuiMouseButton button); CIMGUI_API bool igIsMouseClicked_Bool(ImGuiMouseButton button,bool repeat); CIMGUI_API bool igIsMouseReleased_Nil(ImGuiMouseButton button); @@ -3734,11 +3946,12 @@ CIMGUI_API void igDebugTextEncoding(const char* text); CIMGUI_API void igDebugFlashStyleColor(ImGuiCol idx); CIMGUI_API void igDebugStartItemPicker(void); CIMGUI_API bool igDebugCheckVersionAndDataLayout(const char* version_str,size_t sz_io,size_t sz_style,size_t sz_vec2,size_t sz_vec4,size_t sz_drawvert,size_t sz_drawidx); +CIMGUI_API void igDebugLog(const char* fmt,...); +CIMGUI_API void igDebugLogV(const char* fmt,va_list args); CIMGUI_API void igSetAllocatorFunctions(ImGuiMemAllocFunc alloc_func,ImGuiMemFreeFunc free_func,void* user_data); CIMGUI_API void igGetAllocatorFunctions(ImGuiMemAllocFunc* p_alloc_func,ImGuiMemFreeFunc* p_free_func,void** p_user_data); CIMGUI_API void* igMemAlloc(size_t size); CIMGUI_API void igMemFree(void* ptr); -CIMGUI_API ImGuiPlatformIO* igGetPlatformIO(void); CIMGUI_API void igUpdatePlatformWindows(void); CIMGUI_API void igRenderPlatformWindowsDefault(void* platform_render_arg,void* renderer_render_arg); CIMGUI_API void igDestroyPlatformWindows(void); @@ -3766,6 +3979,7 @@ CIMGUI_API void ImGuiIO_SetKeyEventNativeData(ImGuiIO* self,ImGuiKey key,int nat CIMGUI_API void ImGuiIO_SetAppAcceptingEvents(ImGuiIO* self,bool accepting_events); CIMGUI_API void ImGuiIO_ClearEventsQueue(ImGuiIO* self); CIMGUI_API void ImGuiIO_ClearInputKeys(ImGuiIO* self); +CIMGUI_API void ImGuiIO_ClearInputMouse(ImGuiIO* self); CIMGUI_API ImGuiIO* ImGuiIO_ImGuiIO(void); CIMGUI_API void ImGuiIO_destroy(ImGuiIO* self); CIMGUI_API ImGuiInputTextCallbackData* ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(void); @@ -3834,6 +4048,7 @@ CIMGUI_API void ImGuiListClipper_End(ImGuiListClipper* self); CIMGUI_API bool ImGuiListClipper_Step(ImGuiListClipper* self); CIMGUI_API void ImGuiListClipper_IncludeItemByIndex(ImGuiListClipper* self,int item_index); CIMGUI_API void ImGuiListClipper_IncludeItemsByIndex(ImGuiListClipper* self,int item_begin,int item_end); +CIMGUI_API void ImGuiListClipper_SeekCursorForItem(ImGuiListClipper* self,int item_index); CIMGUI_API ImColor* ImColor_ImColor_Nil(void); CIMGUI_API void ImColor_destroy(ImColor* self); CIMGUI_API ImColor* ImColor_ImColor_Float(float r,float g,float b,float a); @@ -3842,6 +4057,18 @@ CIMGUI_API ImColor* ImColor_ImColor_Int(int r,int g,int b,int a); CIMGUI_API ImColor* ImColor_ImColor_U32(ImU32 rgba); CIMGUI_API void ImColor_SetHSV(ImColor* self,float h,float s,float v,float a); CIMGUI_API void ImColor_HSV(ImColor *pOut,float h,float s,float v,float a); +CIMGUI_API ImGuiSelectionBasicStorage* ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage(void); +CIMGUI_API void ImGuiSelectionBasicStorage_destroy(ImGuiSelectionBasicStorage* self); +CIMGUI_API void ImGuiSelectionBasicStorage_ApplyRequests(ImGuiSelectionBasicStorage* self,ImGuiMultiSelectIO* ms_io); +CIMGUI_API bool ImGuiSelectionBasicStorage_Contains(ImGuiSelectionBasicStorage* self,ImGuiID id); +CIMGUI_API void ImGuiSelectionBasicStorage_Clear(ImGuiSelectionBasicStorage* self); +CIMGUI_API void ImGuiSelectionBasicStorage_Swap(ImGuiSelectionBasicStorage* self,ImGuiSelectionBasicStorage* r); +CIMGUI_API void ImGuiSelectionBasicStorage_SetItemSelected(ImGuiSelectionBasicStorage* self,ImGuiID id,bool selected); +CIMGUI_API bool ImGuiSelectionBasicStorage_GetNextSelectedItem(ImGuiSelectionBasicStorage* self,void** opaque_it,ImGuiID* out_id); +CIMGUI_API ImGuiID ImGuiSelectionBasicStorage_GetStorageIdFromIndex(ImGuiSelectionBasicStorage* self,int idx); +CIMGUI_API ImGuiSelectionExternalStorage* ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage(void); +CIMGUI_API void ImGuiSelectionExternalStorage_destroy(ImGuiSelectionExternalStorage* self); +CIMGUI_API void ImGuiSelectionExternalStorage_ApplyRequests(ImGuiSelectionExternalStorage* self,ImGuiMultiSelectIO* ms_io); CIMGUI_API ImDrawCmd* ImDrawCmd_ImDrawCmd(void); CIMGUI_API void ImDrawCmd_destroy(ImDrawCmd* self); CIMGUI_API ImTextureID ImDrawCmd_GetTexID(ImDrawCmd* self); @@ -3873,14 +4100,15 @@ CIMGUI_API void ImDrawList_AddCircle(ImDrawList* self,const ImVec2 center,float CIMGUI_API void ImDrawList_AddCircleFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments); CIMGUI_API void ImDrawList_AddNgon(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments,float thickness); CIMGUI_API void ImDrawList_AddNgonFilled(ImDrawList* self,const ImVec2 center,float radius,ImU32 col,int num_segments); -CIMGUI_API void ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments,float thickness); -CIMGUI_API void ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments); +CIMGUI_API void ImDrawList_AddEllipse(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments,float thickness); +CIMGUI_API void ImDrawList_AddEllipseFilled(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments); CIMGUI_API void ImDrawList_AddText_Vec2(ImDrawList* self,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end); CIMGUI_API void ImDrawList_AddText_FontPtr(ImDrawList* self,const ImFont* font,float font_size,const ImVec2 pos,ImU32 col,const char* text_begin,const char* text_end,float wrap_width,const ImVec4* cpu_fine_clip_rect); -CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness); -CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col); CIMGUI_API void ImDrawList_AddBezierCubic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,ImU32 col,float thickness,int num_segments); CIMGUI_API void ImDrawList_AddBezierQuadratic(ImDrawList* self,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,ImU32 col,float thickness,int num_segments); +CIMGUI_API void ImDrawList_AddPolyline(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col,ImDrawFlags flags,float thickness); +CIMGUI_API void ImDrawList_AddConvexPolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col); +CIMGUI_API void ImDrawList_AddConcavePolyFilled(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col); CIMGUI_API void ImDrawList_AddImage(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col); CIMGUI_API void ImDrawList_AddImageQuad(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p1,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,const ImVec2 uv1,const ImVec2 uv2,const ImVec2 uv3,const ImVec2 uv4,ImU32 col); CIMGUI_API void ImDrawList_AddImageRounded(ImDrawList* self,ImTextureID user_texture_id,const ImVec2 p_min,const ImVec2 p_max,const ImVec2 uv_min,const ImVec2 uv_max,ImU32 col,float rounding,ImDrawFlags flags); @@ -3888,10 +4116,11 @@ CIMGUI_API void ImDrawList_PathClear(ImDrawList* self); CIMGUI_API void ImDrawList_PathLineTo(ImDrawList* self,const ImVec2 pos); CIMGUI_API void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self,const ImVec2 pos); CIMGUI_API void ImDrawList_PathFillConvex(ImDrawList* self,ImU32 col); +CIMGUI_API void ImDrawList_PathFillConcave(ImDrawList* self,ImU32 col); CIMGUI_API void ImDrawList_PathStroke(ImDrawList* self,ImU32 col,ImDrawFlags flags,float thickness); CIMGUI_API void ImDrawList_PathArcTo(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max,int num_segments); CIMGUI_API void ImDrawList_PathArcToFast(ImDrawList* self,const ImVec2 center,float radius,int a_min_of_12,int a_max_of_12); -CIMGUI_API void ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,float rot,float a_min,float a_max,int num_segments); +CIMGUI_API void ImDrawList_PathEllipticalArcTo(ImDrawList* self,const ImVec2 center,const ImVec2 radius,float rot,float a_min,float a_max,int num_segments); CIMGUI_API void ImDrawList_PathBezierCubicCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,const ImVec2 p4,int num_segments); CIMGUI_API void ImDrawList_PathBezierQuadraticCurveTo(ImDrawList* self,const ImVec2 p2,const ImVec2 p3,int num_segments); CIMGUI_API void ImDrawList_PathRect(ImDrawList* self,const ImVec2 rect_min,const ImVec2 rect_max,float rounding,ImDrawFlags flags); @@ -3916,6 +4145,7 @@ CIMGUI_API void ImDrawList__TryMergeDrawCmds(ImDrawList* self); CIMGUI_API void ImDrawList__OnChangedClipRect(ImDrawList* self); CIMGUI_API void ImDrawList__OnChangedTextureID(ImDrawList* self); CIMGUI_API void ImDrawList__OnChangedVtxOffset(ImDrawList* self); +CIMGUI_API void ImDrawList__SetTextureID(ImDrawList* self,ImTextureID texture_id); CIMGUI_API int ImDrawList__CalcCircleAutoSegmentCount(ImDrawList* self,float radius); CIMGUI_API void ImDrawList__PathArcToFastEx(ImDrawList* self,const ImVec2 center,float radius,int a_min_sample,int a_max_sample,int a_step); CIMGUI_API void ImDrawList__PathArcToN(ImDrawList* self,const ImVec2 center,float radius,float a_min,float a_max,int num_segments); @@ -3998,7 +4228,6 @@ CIMGUI_API ImGuiPlatformMonitor* ImGuiPlatformMonitor_ImGuiPlatformMonitor(void) CIMGUI_API void ImGuiPlatformMonitor_destroy(ImGuiPlatformMonitor* self); CIMGUI_API ImGuiPlatformImeData* ImGuiPlatformImeData_ImGuiPlatformImeData(void); CIMGUI_API void ImGuiPlatformImeData_destroy(ImGuiPlatformImeData* self); -CIMGUI_API ImGuiKey igGetKeyIndex(ImGuiKey key); CIMGUI_API ImGuiID igImHashData(const void* data,size_t data_size,ImGuiID seed); CIMGUI_API ImGuiID igImHashStr(const char* data,size_t data_size,ImGuiID seed); CIMGUI_API void igImQsort(void* base,size_t count,size_t size_of_element,int(*compare_func)(void const*,void const*)); @@ -4017,10 +4246,11 @@ CIMGUI_API const char* igImStristr(const char* haystack,const char* haystack_end CIMGUI_API void igImStrTrimBlanks(char* str); CIMGUI_API const char* igImStrSkipBlank(const char* str); CIMGUI_API int igImStrlenW(const ImWchar* str); -CIMGUI_API const ImWchar* igImStrbolW(const ImWchar* buf_mid_line,const ImWchar* buf_begin); +CIMGUI_API const char* igImStrbol(const char* buf_mid_line,const char* buf_begin); CIMGUI_API char igImToUpper(char c); CIMGUI_API bool igImCharIsBlankA(char c); CIMGUI_API bool igImCharIsBlankW(unsigned int c); +CIMGUI_API bool igImCharIsXdigitA(char c); CIMGUI_API int igImFormatString(char* buf,size_t buf_size,const char* fmt,...); CIMGUI_API int igImFormatStringV(char* buf,size_t buf_size,const char* fmt,va_list args); CIMGUI_API void igImFormatStringToTempBuffer(const char** out_buf,const char** out_buf_end,const char* fmt,...); @@ -4039,6 +4269,7 @@ CIMGUI_API int igImTextCountCharsFromUtf8(const char* in_text,const char* in_tex CIMGUI_API int igImTextCountUtf8BytesFromChar(const char* in_text,const char* in_text_end); CIMGUI_API int igImTextCountUtf8BytesFromStr(const ImWchar* in_text,const ImWchar* in_text_end); CIMGUI_API const char* igImTextFindPreviousUtf8Codepoint(const char* in_text_start,const char* in_text_curr); +CIMGUI_API int igImTextCountLines(const char* in_text,const char* in_text_end); CIMGUI_API ImFileHandle igImFileOpen(const char* filename,const char* mode); CIMGUI_API bool igImFileClose(ImFileHandle file); CIMGUI_API ImU64 igImFileGetSize(ImFileHandle file); @@ -4058,7 +4289,7 @@ CIMGUI_API float igImRsqrt_Float(float x); CIMGUI_API double igImRsqrt_double(double x); CIMGUI_API void igImMin(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs); CIMGUI_API void igImMax(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs); -CIMGUI_API void igImClamp(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,ImVec2 mx); +CIMGUI_API void igImClamp(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,const ImVec2 mx); CIMGUI_API void igImLerp_Vec2Float(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,float t); CIMGUI_API void igImLerp_Vec2Vec2(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,const ImVec2 t); CIMGUI_API void igImLerp_Vec4(ImVec4 *pOut,const ImVec4 a,const ImVec4 b,float t); @@ -4074,6 +4305,7 @@ CIMGUI_API int igImModPositive(int a,int b); CIMGUI_API float igImDot(const ImVec2 a,const ImVec2 b); CIMGUI_API void igImRotate(ImVec2 *pOut,const ImVec2 v,float cos_a,float sin_a); CIMGUI_API float igImLinearSweep(float current,float target,float speed); +CIMGUI_API float igImLinearRemapClamp(float s0,float s1,float d0,float d1,float x); CIMGUI_API void igImMul(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs); CIMGUI_API bool igImIsFloatAboveGuaranteedIntegerPrecision(float f); CIMGUI_API float igImExponentialMovingAverage(float avg,float sample,int n); @@ -4086,6 +4318,7 @@ CIMGUI_API bool igImTriangleContainsPoint(const ImVec2 a,const ImVec2 b,const Im CIMGUI_API void igImTriangleClosestPoint(ImVec2 *pOut,const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 p); CIMGUI_API void igImTriangleBarycentricCoords(const ImVec2 a,const ImVec2 b,const ImVec2 c,const ImVec2 p,float* out_u,float* out_v,float* out_w); CIMGUI_API float igImTriangleArea(const ImVec2 a,const ImVec2 b,const ImVec2 c); +CIMGUI_API bool igImTriangleIsClockwise(const ImVec2 a,const ImVec2 b,const ImVec2 c); CIMGUI_API ImVec1* ImVec1_ImVec1_Nil(void); CIMGUI_API void ImVec1_destroy(ImVec1* self); CIMGUI_API ImVec1* ImVec1_ImVec1_Float(float _x); @@ -4139,11 +4372,13 @@ CIMGUI_API int ImGuiTextIndex_size(ImGuiTextIndex* self); CIMGUI_API const char* ImGuiTextIndex_get_line_begin(ImGuiTextIndex* self,const char* base,int n); CIMGUI_API const char* ImGuiTextIndex_get_line_end(ImGuiTextIndex* self,const char* base,int n); CIMGUI_API void ImGuiTextIndex_append(ImGuiTextIndex* self,const char* base,int old_size,int new_size); +CIMGUI_API ImGuiStoragePair* igImLowerBound(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key); CIMGUI_API ImDrawListSharedData* ImDrawListSharedData_ImDrawListSharedData(void); CIMGUI_API void ImDrawListSharedData_destroy(ImDrawListSharedData* self); CIMGUI_API void ImDrawListSharedData_SetCircleTessellationMaxError(ImDrawListSharedData* self,float max_error); CIMGUI_API ImDrawDataBuilder* ImDrawDataBuilder_ImDrawDataBuilder(void); CIMGUI_API void ImDrawDataBuilder_destroy(ImDrawDataBuilder* self); +CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent); CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Int(ImGuiStyleVar idx,int v); CIMGUI_API void ImGuiStyleMod_destroy(ImGuiStyleMod* self); CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Float(ImGuiStyleVar idx,float v); @@ -4162,9 +4397,8 @@ CIMGUI_API ImGuiInputTextState* ImGuiInputTextState_ImGuiInputTextState(void); CIMGUI_API void ImGuiInputTextState_destroy(ImGuiInputTextState* self); CIMGUI_API void ImGuiInputTextState_ClearText(ImGuiInputTextState* self); CIMGUI_API void ImGuiInputTextState_ClearFreeMemory(ImGuiInputTextState* self); -CIMGUI_API int ImGuiInputTextState_GetUndoAvailCount(ImGuiInputTextState* self); -CIMGUI_API int ImGuiInputTextState_GetRedoAvailCount(ImGuiInputTextState* self); CIMGUI_API void ImGuiInputTextState_OnKeyPressed(ImGuiInputTextState* self,int key); +CIMGUI_API void ImGuiInputTextState_OnCharPressed(ImGuiInputTextState* self,unsigned int c); CIMGUI_API void ImGuiInputTextState_CursorAnimReset(ImGuiInputTextState* self); CIMGUI_API void ImGuiInputTextState_CursorClamp(ImGuiInputTextState* self); CIMGUI_API bool ImGuiInputTextState_HasSelection(ImGuiInputTextState* self); @@ -4191,7 +4425,6 @@ CIMGUI_API void ImGuiStackSizes_CompareWithContextState(ImGuiStackSizes* self,Im CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(void* ptr); CIMGUI_API void ImGuiPtrOrIndex_destroy(ImGuiPtrOrIndex* self); CIMGUI_API ImGuiPtrOrIndex* ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(int index); -CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent); CIMGUI_API ImGuiPopupData* ImGuiPopupData_ImGuiPopupData(void); CIMGUI_API void ImGuiPopupData_destroy(ImGuiPopupData* self); CIMGUI_API ImGuiInputEvent* ImGuiInputEvent_ImGuiInputEvent(void); @@ -4218,6 +4451,14 @@ CIMGUI_API ImGuiOldColumnData* ImGuiOldColumnData_ImGuiOldColumnData(void); CIMGUI_API void ImGuiOldColumnData_destroy(ImGuiOldColumnData* self); CIMGUI_API ImGuiOldColumns* ImGuiOldColumns_ImGuiOldColumns(void); CIMGUI_API void ImGuiOldColumns_destroy(ImGuiOldColumns* self); +CIMGUI_API ImGuiBoxSelectState* ImGuiBoxSelectState_ImGuiBoxSelectState(void); +CIMGUI_API void ImGuiBoxSelectState_destroy(ImGuiBoxSelectState* self); +CIMGUI_API ImGuiMultiSelectTempData* ImGuiMultiSelectTempData_ImGuiMultiSelectTempData(void); +CIMGUI_API void ImGuiMultiSelectTempData_destroy(ImGuiMultiSelectTempData* self); +CIMGUI_API void ImGuiMultiSelectTempData_Clear(ImGuiMultiSelectTempData* self); +CIMGUI_API void ImGuiMultiSelectTempData_ClearIO(ImGuiMultiSelectTempData* self); +CIMGUI_API ImGuiMultiSelectState* ImGuiMultiSelectState_ImGuiMultiSelectState(void); +CIMGUI_API void ImGuiMultiSelectState_destroy(ImGuiMultiSelectState* self); CIMGUI_API ImGuiDockNode* ImGuiDockNode_ImGuiDockNode(ImGuiID id); CIMGUI_API void ImGuiDockNode_destroy(ImGuiDockNode* self); CIMGUI_API bool ImGuiDockNode_IsRootNode(ImGuiDockNode* self); @@ -4237,8 +4478,8 @@ CIMGUI_API void ImGuiDockContext_destroy(ImGuiDockContext* self); CIMGUI_API ImGuiViewportP* ImGuiViewportP_ImGuiViewportP(void); CIMGUI_API void ImGuiViewportP_destroy(ImGuiViewportP* self); CIMGUI_API void ImGuiViewportP_ClearRequestFlags(ImGuiViewportP* self); -CIMGUI_API void ImGuiViewportP_CalcWorkRectPos(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min); -CIMGUI_API void ImGuiViewportP_CalcWorkRectSize(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min,const ImVec2 off_max); +CIMGUI_API void ImGuiViewportP_CalcWorkRectPos(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min); +CIMGUI_API void ImGuiViewportP_CalcWorkRectSize(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min,const ImVec2 inset_max); CIMGUI_API void ImGuiViewportP_UpdateWorkRect(ImGuiViewportP* self); CIMGUI_API void ImGuiViewportP_GetMainRect(ImRect *pOut,ImGuiViewportP* self); CIMGUI_API void ImGuiViewportP_GetWorkRect(ImRect *pOut,ImGuiViewportP* self); @@ -4263,12 +4504,11 @@ CIMGUI_API void ImGuiWindow_destroy(ImGuiWindow* self); CIMGUI_API ImGuiID ImGuiWindow_GetID_Str(ImGuiWindow* self,const char* str,const char* str_end); CIMGUI_API ImGuiID ImGuiWindow_GetID_Ptr(ImGuiWindow* self,const void* ptr); CIMGUI_API ImGuiID ImGuiWindow_GetID_Int(ImGuiWindow* self,int n); +CIMGUI_API ImGuiID ImGuiWindow_GetIDFromPos(ImGuiWindow* self,const ImVec2 p_abs); CIMGUI_API ImGuiID ImGuiWindow_GetIDFromRectangle(ImGuiWindow* self,const ImRect r_abs); CIMGUI_API void ImGuiWindow_Rect(ImRect *pOut,ImGuiWindow* self); CIMGUI_API float ImGuiWindow_CalcFontSize(ImGuiWindow* self); -CIMGUI_API float ImGuiWindow_TitleBarHeight(ImGuiWindow* self); CIMGUI_API void ImGuiWindow_TitleBarRect(ImRect *pOut,ImGuiWindow* self); -CIMGUI_API float ImGuiWindow_MenuBarHeight(ImGuiWindow* self); CIMGUI_API void ImGuiWindow_MenuBarRect(ImRect *pOut,ImGuiWindow* self); CIMGUI_API ImGuiTabItem* ImGuiTabItem_ImGuiTabItem(void); CIMGUI_API void ImGuiTabItem_destroy(ImGuiTabItem* self); @@ -4292,6 +4532,7 @@ CIMGUI_API ImGuiWindow* igGetCurrentWindow(void); CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id); CIMGUI_API ImGuiWindow* igFindWindowByName(const char* name); CIMGUI_API void igUpdateWindowParentAndRootLinks(ImGuiWindow* window,ImGuiWindowFlags flags,ImGuiWindow* parent_window); +CIMGUI_API void igUpdateWindowSkipRefresh(ImGuiWindow* window); CIMGUI_API void igCalcWindowNextAutoFitSize(ImVec2 *pOut,ImGuiWindow* window); CIMGUI_API bool igIsWindowChildOf(ImGuiWindow* window,ImGuiWindow* potential_parent,bool popup_hierarchy,bool dock_hierarchy); CIMGUI_API bool igIsWindowWithinBeginStackOf(ImGuiWindow* window,ImGuiWindow* potential_parent); @@ -4305,6 +4546,7 @@ CIMGUI_API void igSetWindowHiddenAndSkipItemsForCurrentFrame(ImGuiWindow* window CIMGUI_API void igSetWindowParentWindowForFocusRoute(ImGuiWindow* window,ImGuiWindow* parent_window); CIMGUI_API void igWindowRectAbsToRel(ImRect *pOut,ImGuiWindow* window,const ImRect r); CIMGUI_API void igWindowRectRelToAbs(ImRect *pOut,ImGuiWindow* window,const ImRect r); +CIMGUI_API void igWindowPosAbsToRel(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p); CIMGUI_API void igWindowPosRelToAbs(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p); CIMGUI_API void igFocusWindow(ImGuiWindow* window,ImGuiFocusRequestFlags flags); CIMGUI_API void igFocusTopMostWindowUnderOne(ImGuiWindow* under_this_window,ImGuiWindow* ignore_window,ImGuiViewport* filter_viewport,ImGuiFocusRequestFlags flags); @@ -4314,6 +4556,7 @@ CIMGUI_API void igBringWindowToDisplayBack(ImGuiWindow* window); CIMGUI_API void igBringWindowToDisplayBehind(ImGuiWindow* window,ImGuiWindow* above_window); CIMGUI_API int igFindWindowDisplayIndex(ImGuiWindow* window); CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindow* window); +CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags); CIMGUI_API void igSetCurrentFont(ImFont* font); CIMGUI_API ImFont* igGetDefaultFont(void); CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window); @@ -4322,6 +4565,7 @@ CIMGUI_API void igInitialize(void); CIMGUI_API void igShutdown(void); CIMGUI_API void igUpdateInputEvents(bool trickle_fast_inputs); CIMGUI_API void igUpdateHoveredWindowAndCaptureFlags(void); +CIMGUI_API void igFindHoveredWindowEx(const ImVec2 pos,bool find_first_and_in_any_viewport,ImGuiWindow** out_hovered_window,ImGuiWindow** out_hovered_window_under_moving_window); CIMGUI_API void igStartMouseMovingWindow(ImGuiWindow* window); CIMGUI_API void igStartMouseMovingWindowOrNode(ImGuiWindow* window,ImGuiDockNode* node,bool undock); CIMGUI_API void igUpdateMouseMovingWindowNewFrame(void); @@ -4329,7 +4573,7 @@ CIMGUI_API void igUpdateMouseMovingWindowEndFrame(void); CIMGUI_API ImGuiID igAddContextHook(ImGuiContext* context,const ImGuiContextHook* hook); CIMGUI_API void igRemoveContextHook(ImGuiContext* context,ImGuiID hook_to_remove); CIMGUI_API void igCallContextHooks(ImGuiContext* context,ImGuiContextHookType type); -CIMGUI_API void igTranslateWindowsInViewport(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos); +CIMGUI_API void igTranslateWindowsInViewport(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos,const ImVec2 old_size,const ImVec2 new_size); CIMGUI_API void igScaleWindowsInViewport(ImGuiViewportP* viewport,float scale); CIMGUI_API void igDestroyPlatformWindow(ImGuiViewportP* viewport); CIMGUI_API void igSetWindowViewport(ImGuiWindow* window,ImGuiViewportP* viewport); @@ -4380,31 +4624,29 @@ CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiI CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h); CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x); CIMGUI_API void igPushMultiItemsWidths(int components,float width_full); -CIMGUI_API bool igIsItemToggledSelection(void); -CIMGUI_API void igGetContentRegionMaxAbs(ImVec2 *pOut); CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width_excess); -CIMGUI_API void igPushItemFlag(ImGuiItemFlags option,bool enabled); -CIMGUI_API void igPopItemFlag(void); CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx); +CIMGUI_API void igBeginDisabledOverrideReenable(void); +CIMGUI_API void igEndDisabledOverrideReenable(void); CIMGUI_API void igLogBegin(ImGuiLogType type,int auto_open_depth); CIMGUI_API void igLogToBuffer(int auto_open_depth); CIMGUI_API void igLogRenderedText(const ImVec2* ref_pos,const char* text,const char* text_end); CIMGUI_API void igLogSetNextTextDecoration(const char* prefix,const char* suffix); CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg,ImGuiChildFlags child_flags,ImGuiWindowFlags window_flags); +CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags); CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags); CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup); CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup); CIMGUI_API void igClosePopupsExceptModals(void); CIMGUI_API bool igIsPopupOpen_ID(ImGuiID id,ImGuiPopupFlags popup_flags); -CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_flags); -CIMGUI_API bool igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags); -CIMGUI_API bool igBeginTooltipHidden(void); CIMGUI_API void igGetPopupAllowedExtentRect(ImRect *pOut,ImGuiWindow* window); CIMGUI_API ImGuiWindow* igGetTopMostPopupModal(void); CIMGUI_API ImGuiWindow* igGetTopMostAndVisiblePopupModal(void); CIMGUI_API ImGuiWindow* igFindBlockingModal(ImGuiWindow* window); CIMGUI_API void igFindBestWindowPosForPopup(ImVec2 *pOut,ImGuiWindow* window); CIMGUI_API void igFindBestWindowPosForPopupEx(ImVec2 *pOut,const ImVec2 ref_pos,const ImVec2 size,ImGuiDir* last_dir,const ImRect r_outer,const ImRect r_avoid,ImGuiPopupPositionPolicy policy); +CIMGUI_API bool igBeginTooltipEx(ImGuiTooltipFlags tooltip_flags,ImGuiWindowFlags extra_window_flags); +CIMGUI_API bool igBeginTooltipHidden(void); CIMGUI_API bool igBeginViewportSideBar(const char* name,ImGuiViewport* viewport,ImGuiDir dir,float size,ImGuiWindowFlags window_flags); CIMGUI_API bool igBeginMenuEx(const char* label,const char* icon,bool enabled); CIMGUI_API bool igMenuItemEx(const char* label,const char* icon,const char* shortcut,bool selected,bool enabled); @@ -4417,7 +4659,7 @@ CIMGUI_API bool igNavMoveRequestButNoResultYet(void); CIMGUI_API void igNavMoveRequestSubmit(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags); CIMGUI_API void igNavMoveRequestForward(ImGuiDir move_dir,ImGuiDir clip_dir,ImGuiNavMoveFlags move_flags,ImGuiScrollFlags scroll_flags); CIMGUI_API void igNavMoveRequestResolveWithLastItem(ImGuiNavItemData* result); -CIMGUI_API void igNavMoveRequestResolveWithPastTreeNode(ImGuiNavItemData* result,ImGuiNavTreeNodeData* tree_node_data); +CIMGUI_API void igNavMoveRequestResolveWithPastTreeNode(ImGuiNavItemData* result,ImGuiTreeNodeStackData* tree_node_data); CIMGUI_API void igNavMoveRequestCancel(void); CIMGUI_API void igNavMoveRequestApplyResult(void); CIMGUI_API void igNavMoveRequestTryWrapping(ImGuiWindow* window,ImGuiNavMoveFlags move_flags); @@ -4431,15 +4673,15 @@ CIMGUI_API void igSetNavFocusScope(ImGuiID focus_scope_id); CIMGUI_API void igFocusItem(void); CIMGUI_API void igActivateItemByID(ImGuiID id); CIMGUI_API bool igIsNamedKey(ImGuiKey key); -CIMGUI_API bool igIsNamedKeyOrModKey(ImGuiKey key); +CIMGUI_API bool igIsNamedKeyOrMod(ImGuiKey key); CIMGUI_API bool igIsLegacyKey(ImGuiKey key); CIMGUI_API bool igIsKeyboardKey(ImGuiKey key); CIMGUI_API bool igIsGamepadKey(ImGuiKey key); CIMGUI_API bool igIsMouseKey(ImGuiKey key); CIMGUI_API bool igIsAliasKey(ImGuiKey key); -CIMGUI_API bool igIsModKey(ImGuiKey key); -CIMGUI_API ImGuiKeyChord igFixupKeyChord(ImGuiContext* ctx,ImGuiKeyChord key_chord); -CIMGUI_API ImGuiKey igConvertSingleModFlagToKey(ImGuiContext* ctx,ImGuiKey key); +CIMGUI_API bool igIsLRModKey(ImGuiKey key); +CIMGUI_API ImGuiKeyChord igFixupKeyChord(ImGuiKeyChord key_chord); +CIMGUI_API ImGuiKey igConvertSingleModFlagToKey(ImGuiKey key); CIMGUI_API ImGuiKeyData* igGetKeyData_ContextPtr(ImGuiContext* ctx,ImGuiKey key); CIMGUI_API ImGuiKeyData* igGetKeyData_Key(ImGuiKey key); CIMGUI_API const char* igGetKeyChordName(ImGuiKeyChord key_chord); @@ -4455,20 +4697,19 @@ CIMGUI_API bool igIsActiveIdUsingNavDir(ImGuiDir dir); CIMGUI_API ImGuiID igGetKeyOwner(ImGuiKey key); CIMGUI_API void igSetKeyOwner(ImGuiKey key,ImGuiID owner_id,ImGuiInputFlags flags); CIMGUI_API void igSetKeyOwnersForKeyChord(ImGuiKeyChord key,ImGuiID owner_id,ImGuiInputFlags flags); -CIMGUI_API void igSetItemKeyOwner(ImGuiKey key,ImGuiInputFlags flags); +CIMGUI_API void igSetItemKeyOwner_InputFlags(ImGuiKey key,ImGuiInputFlags flags); CIMGUI_API bool igTestKeyOwner(ImGuiKey key,ImGuiID owner_id); CIMGUI_API ImGuiKeyOwnerData* igGetKeyOwnerData(ImGuiContext* ctx,ImGuiKey key); CIMGUI_API bool igIsKeyDown_ID(ImGuiKey key,ImGuiID owner_id); -CIMGUI_API bool igIsKeyPressed_ID(ImGuiKey key,ImGuiID owner_id,ImGuiInputFlags flags); +CIMGUI_API bool igIsKeyPressed_InputFlags(ImGuiKey key,ImGuiInputFlags flags,ImGuiID owner_id); CIMGUI_API bool igIsKeyReleased_ID(ImGuiKey key,ImGuiID owner_id); +CIMGUI_API bool igIsKeyChordPressed_InputFlags(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id); CIMGUI_API bool igIsMouseDown_ID(ImGuiMouseButton button,ImGuiID owner_id); -CIMGUI_API bool igIsMouseClicked_ID(ImGuiMouseButton button,ImGuiID owner_id,ImGuiInputFlags flags); +CIMGUI_API bool igIsMouseClicked_InputFlags(ImGuiMouseButton button,ImGuiInputFlags flags,ImGuiID owner_id); CIMGUI_API bool igIsMouseReleased_ID(ImGuiMouseButton button,ImGuiID owner_id); CIMGUI_API bool igIsMouseDoubleClicked_ID(ImGuiMouseButton button,ImGuiID owner_id); -CIMGUI_API bool igIsKeyChordPressed_ID(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags); -CIMGUI_API void igSetNextItemShortcut(ImGuiKeyChord key_chord); -CIMGUI_API bool igShortcut(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags); -CIMGUI_API bool igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags); +CIMGUI_API bool igShortcut_ID(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id); +CIMGUI_API bool igSetShortcutRouting(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id); CIMGUI_API bool igTestShortcutRouting(ImGuiKeyChord key_chord,ImGuiID owner_id); CIMGUI_API ImGuiKeyRoutingData* igGetShortcutRoutingData(ImGuiKeyChord key_chord); CIMGUI_API void igDockContextInitialize(ImGuiContext* ctx); @@ -4525,6 +4766,14 @@ CIMGUI_API ImGuiTypingSelectRequest* igGetTypingSelectRequest(ImGuiTypingSelectF CIMGUI_API int igTypingSelectFindMatch(ImGuiTypingSelectRequest* req,int items_count,const char*(*get_item_name_func)(void*,int),void* user_data,int nav_item_idx); CIMGUI_API int igTypingSelectFindNextSingleCharMatch(ImGuiTypingSelectRequest* req,int items_count,const char*(*get_item_name_func)(void*,int),void* user_data,int nav_item_idx); CIMGUI_API int igTypingSelectFindBestLeadingMatch(ImGuiTypingSelectRequest* req,int items_count,const char*(*get_item_name_func)(void*,int),void* user_data); +CIMGUI_API bool igBeginBoxSelect(const ImRect scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags); +CIMGUI_API void igEndBoxSelect(const ImRect scope_rect,ImGuiMultiSelectFlags ms_flags); +CIMGUI_API void igMultiSelectItemHeader(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags); +CIMGUI_API void igMultiSelectItemFooter(ImGuiID id,bool* p_selected,bool* p_pressed); +CIMGUI_API void igMultiSelectAddSetAll(ImGuiMultiSelectTempData* ms,bool selected); +CIMGUI_API void igMultiSelectAddSetRange(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item); +CIMGUI_API ImGuiBoxSelectState* igGetBoxSelectState(ImGuiID id); +CIMGUI_API ImGuiMultiSelectState* igGetMultiSelectState(ImGuiID id); CIMGUI_API void igSetWindowClipRectBeforeSetChannel(ImGuiWindow* window,const ImRect clip_rect); CIMGUI_API void igBeginColumns(const char* str_id,int count,ImGuiOldColumnFlags flags); CIMGUI_API void igEndColumns(void); @@ -4538,13 +4787,12 @@ CIMGUI_API float igGetColumnNormFromOffset(const ImGuiOldColumns* columns,float CIMGUI_API void igTableOpenContextMenu(int column_n); CIMGUI_API void igTableSetColumnWidth(int column_n,float width); CIMGUI_API void igTableSetColumnSortDirection(int column_n,ImGuiSortDirection sort_direction,bool append_to_sort_specs); -CIMGUI_API int igTableGetHoveredColumn(void); CIMGUI_API int igTableGetHoveredRow(void); CIMGUI_API float igTableGetHeaderRowHeight(void); CIMGUI_API float igTableGetHeaderAngledMaxLabelWidth(void); CIMGUI_API void igTablePushBackgroundChannel(void); CIMGUI_API void igTablePopBackgroundChannel(void); -CIMGUI_API void igTableAngledHeadersRowEx(float angle,float max_label_width); +CIMGUI_API void igTableAngledHeadersRowEx(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count); CIMGUI_API ImGuiTable* igGetCurrentTable(void); CIMGUI_API ImGuiTable* igTableFindByID(ImGuiID id); CIMGUI_API bool igBeginTableEx(const char* name,ImGuiID id,int columns_count,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width); @@ -4572,7 +4820,7 @@ CIMGUI_API void igTableEndCell(ImGuiTable* table); CIMGUI_API void igTableGetCellBgRect(ImRect *pOut,const ImGuiTable* table,int column_n); CIMGUI_API const char* igTableGetColumnName_TablePtr(const ImGuiTable* table,int column_n); CIMGUI_API ImGuiID igTableGetColumnResizeID(ImGuiTable* table,int column_n,int instance_no); -CIMGUI_API float igTableGetMaxColumnWidth(const ImGuiTable* table,int column_n); +CIMGUI_API float igTableCalcMaxColumnWidth(const ImGuiTable* table,int column_n); CIMGUI_API void igTableSetColumnWidthAutoSingle(ImGuiTable* table,int column_n); CIMGUI_API void igTableSetColumnWidthAutoAll(ImGuiTable* table); CIMGUI_API void igTableRemove(ImGuiTable* table); @@ -4611,7 +4859,7 @@ CIMGUI_API void igRenderTextWrapped(ImVec2 pos,const char* text,const char* text CIMGUI_API void igRenderTextClipped(const ImVec2 pos_min,const ImVec2 pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2 align,const ImRect* clip_rect); CIMGUI_API void igRenderTextClippedEx(ImDrawList* draw_list,const ImVec2 pos_min,const ImVec2 pos_max,const char* text,const char* text_end,const ImVec2* text_size_if_known,const ImVec2 align,const ImRect* clip_rect); CIMGUI_API void igRenderTextEllipsis(ImDrawList* draw_list,const ImVec2 pos_min,const ImVec2 pos_max,float clip_max_x,float ellipsis_max_x,const char* text,const char* text_end,const ImVec2* text_size_if_known); -CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool border,float rounding); +CIMGUI_API void igRenderFrame(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool borders,float rounding); CIMGUI_API void igRenderFrameBorder(ImVec2 p_min,ImVec2 p_max,float rounding); CIMGUI_API void igRenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list,ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,float grid_step,ImVec2 grid_off,float rounding,ImDrawFlags flags); CIMGUI_API void igRenderNavHighlight(const ImRect bb,ImGuiID id,ImGuiNavHighlightFlags flags); @@ -4647,13 +4895,13 @@ CIMGUI_API bool igSliderBehavior(const ImRect bb,ImGuiID id,ImGuiDataType data_t CIMGUI_API bool igSplitterBehavior(const ImRect bb,ImGuiID id,ImGuiAxis axis,float* size1,float* size2,float min_size1,float min_size2,float hover_extend,float hover_visibility_delay,ImU32 bg_col); CIMGUI_API bool igTreeNodeBehavior(ImGuiID id,ImGuiTreeNodeFlags flags,const char* label,const char* label_end); CIMGUI_API void igTreePushOverrideID(ImGuiID id); -CIMGUI_API void igTreeNodeSetOpen(ImGuiID id,bool open); -CIMGUI_API bool igTreeNodeUpdateNextOpen(ImGuiID id,ImGuiTreeNodeFlags flags); -CIMGUI_API void igSetNextItemSelectionUserData(ImGuiSelectionUserData selection_user_data); +CIMGUI_API bool igTreeNodeGetOpen(ImGuiID storage_id); +CIMGUI_API void igTreeNodeSetOpen(ImGuiID storage_id,bool open); +CIMGUI_API bool igTreeNodeUpdateNextOpen(ImGuiID storage_id,ImGuiTreeNodeFlags flags); CIMGUI_API const ImGuiDataTypeInfo* igDataTypeGetInfo(ImGuiDataType data_type); CIMGUI_API int igDataTypeFormatString(char* buf,int buf_size,ImGuiDataType data_type,const void* p_data,const char* format); CIMGUI_API void igDataTypeApplyOp(ImGuiDataType data_type,int op,void* output,const void* arg_1,const void* arg_2); -CIMGUI_API bool igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,void* p_data,const char* format); +CIMGUI_API bool igDataTypeApplyFromText(const char* buf,ImGuiDataType data_type,void* p_data,const char* format,void* p_data_when_empty); CIMGUI_API int igDataTypeCompare(ImGuiDataType data_type,const void* arg_1,const void* arg_2); CIMGUI_API bool igDataTypeClamp(ImGuiDataType data_type,void* p_data,const void* p_min,const void* p_max); CIMGUI_API bool igInputTextEx(const char* label,const char* hint,char* buf,int buf_size,const ImVec2 size_arg,ImGuiInputTextFlags flags,ImGuiInputTextCallback callback,void* user_data); @@ -4662,6 +4910,7 @@ CIMGUI_API bool igTempInputText(const ImRect bb,ImGuiID id,const char* label,cha CIMGUI_API bool igTempInputScalar(const ImRect bb,ImGuiID id,const char* label,ImGuiDataType data_type,void* p_data,const char* format,const void* p_clamp_min,const void* p_clamp_max); CIMGUI_API bool igTempInputIsActive(ImGuiID id); CIMGUI_API ImGuiInputTextState* igGetInputTextState(ImGuiID id); +CIMGUI_API void igSetNextItemRefVal(ImGuiDataType data_type,void* p_data); CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags); CIMGUI_API void igColorEditOptionsPopup(const float* col,ImGuiColorEditFlags flags); CIMGUI_API void igColorPickerOptionsPopup(const float* ref_col,ImGuiColorEditFlags flags); @@ -4672,8 +4921,6 @@ CIMGUI_API void igShadeVertsTransformPos(ImDrawList* draw_list,int vert_start_id CIMGUI_API void igGcCompactTransientMiscBuffers(void); CIMGUI_API void igGcCompactTransientWindowBuffers(ImGuiWindow* window); CIMGUI_API void igGcAwakeTransientWindowBuffers(ImGuiWindow* window); -CIMGUI_API void igDebugLog(const char* fmt,...); -CIMGUI_API void igDebugLogV(const char* fmt,va_list args); CIMGUI_API void igDebugAllocHook(ImGuiDebugAllocInfo* info,int frame_count,void* ptr,size_t size); CIMGUI_API void igErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback,void* user_data); CIMGUI_API void igErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback,void* user_data); @@ -4681,6 +4928,7 @@ CIMGUI_API void igErrorCheckUsingSetCursorPosToExtendParentBoundaries(void); CIMGUI_API void igDebugDrawCursorPos(ImU32 col); CIMGUI_API void igDebugDrawLineExtents(ImU32 col); CIMGUI_API void igDebugDrawItemRect(ImU32 col); +CIMGUI_API void igDebugTextUnformattedWithLocateItem(const char* line_begin,const char* line_end); CIMGUI_API void igDebugLocateItem(ImGuiID target_id); CIMGUI_API void igDebugLocateItemOnHover(ImGuiID target_id); CIMGUI_API void igDebugLocateItemResolveWithLastItem(void); @@ -4701,11 +4949,13 @@ CIMGUI_API void igDebugNodeTable(ImGuiTable* table); CIMGUI_API void igDebugNodeTableSettings(ImGuiTableSettings* settings); CIMGUI_API void igDebugNodeInputTextState(ImGuiInputTextState* state); CIMGUI_API void igDebugNodeTypingSelectState(ImGuiTypingSelectState* state); +CIMGUI_API void igDebugNodeMultiSelectState(ImGuiMultiSelectState* state); CIMGUI_API void igDebugNodeWindow(ImGuiWindow* window,const char* label); CIMGUI_API void igDebugNodeWindowSettings(ImGuiWindowSettings* settings); CIMGUI_API void igDebugNodeWindowsList(ImVector_ImGuiWindowPtr* windows,const char* label); CIMGUI_API void igDebugNodeWindowsListByBeginStackParent(ImGuiWindow** windows,int windows_size,ImGuiWindow* parent_in_begin_stack); CIMGUI_API void igDebugNodeViewport(ImGuiViewportP* viewport); +CIMGUI_API void igDebugNodePlatformMonitor(ImGuiPlatformMonitor* monitor,const char* label,int idx); CIMGUI_API void igDebugRenderKeyboardPreview(ImDrawList* draw_list); CIMGUI_API void igDebugRenderViewportThumbnail(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb); CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype(void); @@ -4736,6 +4986,10 @@ CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self); CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p); CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p); +#ifdef IMGUI_HAS_DOCK +CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowPos(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_pos)); +CIMGUI_API void ImGuiPlatformIO_Set_Platform_GetWindowSize(ImGuiPlatformIO* platform_io, void(*user_callback)(ImGuiViewport* vp, ImVec2* out_size)); +#endif #endif //CIMGUI_INCLUDED diff --git a/cimgui/cimgui_impl.h b/cwrappers/cimgui_impl.h similarity index 98% rename from cimgui/cimgui_impl.h rename to cwrappers/cimgui_impl.h index bdef2c02f..223f7bc75 100644 --- a/cimgui/cimgui_impl.h +++ b/cwrappers/cimgui_impl.h @@ -19,6 +19,7 @@ CIMGUI_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window,double xoffset, CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods); CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c); CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event); +CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds); #endif #ifdef CIMGUI_USE_OPENGL3 diff --git a/cimgui/cimgui_templates/definitions.json b/cwrappers/cimgui_templates/definitions.json similarity index 92% rename from cimgui/cimgui_templates/definitions.json rename to cwrappers/cimgui_templates/definitions.json index eb7d36711..aef5fad8c 100644 --- a/cimgui/cimgui_templates/definitions.json +++ b/cwrappers/cimgui_templates/definitions.json @@ -13,7 +13,7 @@ "cimguiname": "ImBitArray_ClearAllBits", "defaults": {}, "funcname": "ClearAllBits", - "location": "imgui_internal:601", + "location": "imgui_internal:596", "ov_cimguiname": "ImBitArray_ClearAllBits", "ret": "void", "signature": "()", @@ -39,7 +39,7 @@ "cimguiname": "ImBitArray_ClearBit", "defaults": {}, "funcname": "ClearBit", - "location": "imgui_internal:605", + "location": "imgui_internal:600", "ov_cimguiname": "ImBitArray_ClearBit", "ret": "void", "signature": "(int)", @@ -57,7 +57,7 @@ "constructor": true, "defaults": {}, "funcname": "ImBitArray", - "location": "imgui_internal:600", + "location": "imgui_internal:595", "ov_cimguiname": "ImBitArray_ImBitArray", "signature": "()", "stname": "ImBitArray", @@ -78,7 +78,7 @@ "cimguiname": "ImBitArray_SetAllBits", "defaults": {}, "funcname": "SetAllBits", - "location": "imgui_internal:602", + "location": "imgui_internal:597", "ov_cimguiname": "ImBitArray_SetAllBits", "ret": "void", "signature": "()", @@ -104,7 +104,7 @@ "cimguiname": "ImBitArray_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui_internal:604", + "location": "imgui_internal:599", "ov_cimguiname": "ImBitArray_SetBit", "ret": "void", "signature": "(int)", @@ -135,7 +135,7 @@ "comment": "// Works on range [n..n2)", "defaults": {}, "funcname": "SetBitRange", - "location": "imgui_internal:606", + "location": "imgui_internal:601", "ov_cimguiname": "ImBitArray_SetBitRange", "ret": "void", "signature": "(int,int)", @@ -161,7 +161,7 @@ "cimguiname": "ImBitArray_TestBit", "defaults": {}, "funcname": "TestBit", - "location": "imgui_internal:603", + "location": "imgui_internal:598", "ov_cimguiname": "ImBitArray_TestBit", "ret": "bool", "signature": "(int)const", @@ -203,7 +203,7 @@ "cimguiname": "ImBitVector_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:616", + "location": "imgui_internal:611", "ov_cimguiname": "ImBitVector_Clear", "ret": "void", "signature": "()", @@ -228,7 +228,7 @@ "cimguiname": "ImBitVector_ClearBit", "defaults": {}, "funcname": "ClearBit", - "location": "imgui_internal:619", + "location": "imgui_internal:614", "ov_cimguiname": "ImBitVector_ClearBit", "ret": "void", "signature": "(int)", @@ -253,7 +253,7 @@ "cimguiname": "ImBitVector_Create", "defaults": {}, "funcname": "Create", - "location": "imgui_internal:615", + "location": "imgui_internal:610", "ov_cimguiname": "ImBitVector_Create", "ret": "void", "signature": "(int)", @@ -278,7 +278,7 @@ "cimguiname": "ImBitVector_SetBit", "defaults": {}, "funcname": "SetBit", - "location": "imgui_internal:618", + "location": "imgui_internal:613", "ov_cimguiname": "ImBitVector_SetBit", "ret": "void", "signature": "(int)", @@ -303,7 +303,7 @@ "cimguiname": "ImBitVector_TestBit", "defaults": {}, "funcname": "TestBit", - "location": "imgui_internal:617", + "location": "imgui_internal:612", "ov_cimguiname": "ImBitVector_TestBit", "ret": "bool", "signature": "(int)const", @@ -328,7 +328,7 @@ "cimguiname": "ImChunkStream_alloc_chunk", "defaults": {}, "funcname": "alloc_chunk", - "location": "imgui_internal:720", + "location": "imgui_internal:715", "ov_cimguiname": "ImChunkStream_alloc_chunk", "ret": "T*", "signature": "(size_t)", @@ -350,7 +350,7 @@ "cimguiname": "ImChunkStream_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:721", + "location": "imgui_internal:716", "ov_cimguiname": "ImChunkStream_begin", "ret": "T*", "signature": "()", @@ -376,7 +376,7 @@ "cimguiname": "ImChunkStream_chunk_size", "defaults": {}, "funcname": "chunk_size", - "location": "imgui_internal:723", + "location": "imgui_internal:718", "ov_cimguiname": "ImChunkStream_chunk_size", "ret": "int", "signature": "(const T*)", @@ -398,7 +398,7 @@ "cimguiname": "ImChunkStream_clear", "defaults": {}, "funcname": "clear", - "location": "imgui_internal:717", + "location": "imgui_internal:712", "ov_cimguiname": "ImChunkStream_clear", "ret": "void", "signature": "()", @@ -420,7 +420,7 @@ "cimguiname": "ImChunkStream_empty", "defaults": {}, "funcname": "empty", - "location": "imgui_internal:718", + "location": "imgui_internal:713", "ov_cimguiname": "ImChunkStream_empty", "ret": "bool", "signature": "()const", @@ -442,7 +442,7 @@ "cimguiname": "ImChunkStream_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:724", + "location": "imgui_internal:719", "ov_cimguiname": "ImChunkStream_end", "ret": "T*", "signature": "()", @@ -468,7 +468,7 @@ "cimguiname": "ImChunkStream_next_chunk", "defaults": {}, "funcname": "next_chunk", - "location": "imgui_internal:722", + "location": "imgui_internal:717", "ov_cimguiname": "ImChunkStream_next_chunk", "ret": "T*", "signature": "(T*)", @@ -494,7 +494,7 @@ "cimguiname": "ImChunkStream_offset_from_ptr", "defaults": {}, "funcname": "offset_from_ptr", - "location": "imgui_internal:725", + "location": "imgui_internal:720", "ov_cimguiname": "ImChunkStream_offset_from_ptr", "ret": "int", "signature": "(const T*)", @@ -520,7 +520,7 @@ "cimguiname": "ImChunkStream_ptr_from_offset", "defaults": {}, "funcname": "ptr_from_offset", - "location": "imgui_internal:726", + "location": "imgui_internal:721", "ov_cimguiname": "ImChunkStream_ptr_from_offset", "ret": "T*", "signature": "(int)", @@ -542,7 +542,7 @@ "cimguiname": "ImChunkStream_size", "defaults": {}, "funcname": "size", - "location": "imgui_internal:719", + "location": "imgui_internal:714", "ov_cimguiname": "ImChunkStream_size", "ret": "int", "signature": "()const", @@ -569,7 +569,7 @@ "cimguiname": "ImChunkStream_swap", "defaults": {}, "funcname": "swap", - "location": "imgui_internal:727", + "location": "imgui_internal:722", "ov_cimguiname": "ImChunkStream_swap", "ret": "void", "signature": "(ImChunkStream_T *)", @@ -610,7 +610,7 @@ }, "funcname": "HSV", "is_static_function": true, - "location": "imgui:2678", + "location": "imgui:2859", "nonUDT": 1, "ov_cimguiname": "ImColor_HSV", "ret": "void", @@ -628,7 +628,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2668", + "location": "imgui:2849", "ov_cimguiname": "ImColor_ImColor_Nil", "signature": "()", "stname": "ImColor" @@ -661,7 +661,7 @@ "a": "1.0f" }, "funcname": "ImColor", - "location": "imgui:2669", + "location": "imgui:2850", "ov_cimguiname": "ImColor_ImColor_Float", "signature": "(float,float,float,float)", "stname": "ImColor" @@ -680,7 +680,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2670", + "location": "imgui:2851", "ov_cimguiname": "ImColor_ImColor_Vec4", "signature": "(const ImVec4)", "stname": "ImColor" @@ -713,7 +713,7 @@ "a": "255" }, "funcname": "ImColor", - "location": "imgui:2671", + "location": "imgui:2852", "ov_cimguiname": "ImColor_ImColor_Int", "signature": "(int,int,int,int)", "stname": "ImColor" @@ -732,7 +732,7 @@ "constructor": true, "defaults": {}, "funcname": "ImColor", - "location": "imgui:2672", + "location": "imgui:2853", "ov_cimguiname": "ImColor_ImColor_U32", "signature": "(ImU32)", "stname": "ImColor" @@ -770,7 +770,7 @@ "a": "1.0f" }, "funcname": "SetHSV", - "location": "imgui:2677", + "location": "imgui:2858", "ov_cimguiname": "ImColor_SetHSV", "ret": "void", "signature": "(float,float,float,float)", @@ -810,7 +810,7 @@ "cimguiname": "ImDrawCmd_GetTexID", "defaults": {}, "funcname": "GetTexID", - "location": "imgui:2726", + "location": "imgui:3055", "ov_cimguiname": "ImDrawCmd_GetTexID", "ret": "ImTextureID", "signature": "()const", @@ -828,7 +828,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawCmd", - "location": "imgui:2723", + "location": "imgui:3052", "ov_cimguiname": "ImDrawCmd_ImDrawCmd", "signature": "()", "stname": "ImDrawCmd" @@ -863,7 +863,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawDataBuilder", - "location": "imgui_internal:803", + "location": "imgui_internal:801", "ov_cimguiname": "ImDrawDataBuilder_ImDrawDataBuilder", "signature": "()", "stname": "ImDrawDataBuilder" @@ -907,7 +907,7 @@ "comment": "// Helper to add an external draw list into an existing ImDrawData.", "defaults": {}, "funcname": "AddDrawList", - "location": "imgui:2964", + "location": "imgui:3303", "ov_cimguiname": "ImDrawData_AddDrawList", "ret": "void", "signature": "(ImDrawList*)", @@ -928,7 +928,7 @@ "cimguiname": "ImDrawData_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2963", + "location": "imgui:3302", "ov_cimguiname": "ImDrawData_Clear", "ret": "void", "signature": "()", @@ -950,7 +950,7 @@ "comment": "// Helper to convert all buffers from indexed to non-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering!", "defaults": {}, "funcname": "DeIndexAllBuffers", - "location": "imgui:2965", + "location": "imgui:3304", "ov_cimguiname": "ImDrawData_DeIndexAllBuffers", "ret": "void", "signature": "()", @@ -967,7 +967,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawData", - "location": "imgui:2962", + "location": "imgui:3301", "ov_cimguiname": "ImDrawData_ImDrawData", "signature": "()", "stname": "ImDrawData" @@ -992,7 +992,7 @@ "comment": "// Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, or if there is a difference between your window resolution and framebuffer resolution.", "defaults": {}, "funcname": "ScaleClipRects", - "location": "imgui:2966", + "location": "imgui:3305", "ov_cimguiname": "ImDrawData_ScaleClipRects", "ret": "void", "signature": "(const ImVec2)", @@ -1028,7 +1028,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawListSharedData", - "location": "imgui_internal:794", + "location": "imgui_internal:792", "ov_cimguiname": "ImDrawListSharedData_ImDrawListSharedData", "signature": "()", "stname": "ImDrawListSharedData" @@ -1052,7 +1052,7 @@ "cimguiname": "ImDrawListSharedData_SetCircleTessellationMaxError", "defaults": {}, "funcname": "SetCircleTessellationMaxError", - "location": "imgui_internal:795", + "location": "imgui_internal:793", "ov_cimguiname": "ImDrawListSharedData_SetCircleTessellationMaxError", "ret": "void", "signature": "(float)", @@ -1093,7 +1093,7 @@ "comment": "// Do not clear Channels[] so our allocations are reused next frame", "defaults": {}, "funcname": "Clear", - "location": "imgui:2771", + "location": "imgui:3100", "ov_cimguiname": "ImDrawListSplitter_Clear", "ret": "void", "signature": "()", @@ -1114,7 +1114,7 @@ "cimguiname": "ImDrawListSplitter_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui:2772", + "location": "imgui:3101", "ov_cimguiname": "ImDrawListSplitter_ClearFreeMemory", "ret": "void", "signature": "()", @@ -1131,7 +1131,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawListSplitter", - "location": "imgui:2769", + "location": "imgui:3098", "ov_cimguiname": "ImDrawListSplitter_ImDrawListSplitter", "signature": "()", "stname": "ImDrawListSplitter" @@ -1155,7 +1155,7 @@ "cimguiname": "ImDrawListSplitter_Merge", "defaults": {}, "funcname": "Merge", - "location": "imgui:2774", + "location": "imgui:3103", "ov_cimguiname": "ImDrawListSplitter_Merge", "ret": "void", "signature": "(ImDrawList*)", @@ -1184,7 +1184,7 @@ "cimguiname": "ImDrawListSplitter_SetCurrentChannel", "defaults": {}, "funcname": "SetCurrentChannel", - "location": "imgui:2775", + "location": "imgui:3104", "ov_cimguiname": "ImDrawListSplitter_SetCurrentChannel", "ret": "void", "signature": "(ImDrawList*,int)", @@ -1213,7 +1213,7 @@ "cimguiname": "ImDrawListSplitter_Split", "defaults": {}, "funcname": "Split", - "location": "imgui:2773", + "location": "imgui:3102", "ov_cimguiname": "ImDrawListSplitter_Split", "ret": "void", "signature": "(ImDrawList*,int)", @@ -1233,7 +1233,7 @@ "cimguiname": "ImDrawListSplitter_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2770", + "location": "imgui:3099", "ov_cimguiname": "ImDrawListSplitter_destroy", "realdestructor": true, "ret": "void", @@ -1286,7 +1286,7 @@ "num_segments": "0" }, "funcname": "AddBezierCubic", - "location": "imgui:2876", + "location": "imgui:3203", "ov_cimguiname": "ImDrawList_AddBezierCubic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -1334,7 +1334,7 @@ "num_segments": "0" }, "funcname": "AddBezierQuadratic", - "location": "imgui:2877", + "location": "imgui:3204", "ov_cimguiname": "ImDrawList_AddBezierQuadratic", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float,int)", @@ -1364,7 +1364,7 @@ "comment": "// Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles.", "defaults": {}, "funcname": "AddCallback", - "location": "imgui:2903", + "location": "imgui:3238", "ov_cimguiname": "ImDrawList_AddCallback", "ret": "void", "signature": "(ImDrawCallback,void*)", @@ -1408,7 +1408,7 @@ "thickness": "1.0f" }, "funcname": "AddCircle", - "location": "imgui:2866", + "location": "imgui:3195", "ov_cimguiname": "ImDrawList_AddCircle", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -1447,13 +1447,46 @@ "num_segments": "0" }, "funcname": "AddCircleFilled", - "location": "imgui:2867", + "location": "imgui:3196", "ov_cimguiname": "ImDrawList_AddCircleFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", "stname": "ImDrawList" } ], + "ImDrawList_AddConcavePolyFilled": [ + { + "args": "(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)", + "argsT": [ + { + "name": "self", + "type": "ImDrawList*" + }, + { + "name": "points", + "type": "const ImVec2*" + }, + { + "name": "num_points", + "type": "int" + }, + { + "name": "col", + "type": "ImU32" + } + ], + "argsoriginal": "(const ImVec2* points,int num_points,ImU32 col)", + "call_args": "(points,num_points,col)", + "cimguiname": "ImDrawList_AddConcavePolyFilled", + "defaults": {}, + "funcname": "AddConcavePolyFilled", + "location": "imgui:3211", + "ov_cimguiname": "ImDrawList_AddConcavePolyFilled", + "ret": "void", + "signature": "(const ImVec2*,int,ImU32)", + "stname": "ImDrawList" + } + ], "ImDrawList_AddConvexPolyFilled": [ { "args": "(ImDrawList* self,const ImVec2* points,int num_points,ImU32 col)", @@ -1480,7 +1513,7 @@ "cimguiname": "ImDrawList_AddConvexPolyFilled", "defaults": {}, "funcname": "AddConvexPolyFilled", - "location": "imgui:2875", + "location": "imgui:3210", "ov_cimguiname": "ImDrawList_AddConvexPolyFilled", "ret": "void", "signature": "(const ImVec2*,int,ImU32)", @@ -1502,7 +1535,7 @@ "comment": "// This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible", "defaults": {}, "funcname": "AddDrawCmd", - "location": "imgui:2904", + "location": "imgui:3239", "ov_cimguiname": "ImDrawList_AddDrawCmd", "ret": "void", "signature": "()", @@ -1511,7 +1544,7 @@ ], "ImDrawList_AddEllipse": [ { - "args": "(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments,float thickness)", + "args": "(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments,float thickness)", "argsT": [ { "name": "self", @@ -1522,12 +1555,8 @@ "type": "const ImVec2" }, { - "name": "radius_x", - "type": "float" - }, - { - "name": "radius_y", - "type": "float" + "name": "radius", + "type": "const ImVec2" }, { "name": "col", @@ -1546,8 +1575,8 @@ "type": "float" } ], - "argsoriginal": "(const ImVec2& center,float radius_x,float radius_y,ImU32 col,float rot=0.0f,int num_segments=0,float thickness=1.0f)", - "call_args": "(center,radius_x,radius_y,col,rot,num_segments,thickness)", + "argsoriginal": "(const ImVec2& center,const ImVec2& radius,ImU32 col,float rot=0.0f,int num_segments=0,float thickness=1.0f)", + "call_args": "(center,radius,col,rot,num_segments,thickness)", "cimguiname": "ImDrawList_AddEllipse", "defaults": { "num_segments": "0", @@ -1555,16 +1584,16 @@ "thickness": "1.0f" }, "funcname": "AddEllipse", - "location": "imgui:2870", + "location": "imgui:3199", "ov_cimguiname": "ImDrawList_AddEllipse", "ret": "void", - "signature": "(const ImVec2,float,float,ImU32,float,int,float)", + "signature": "(const ImVec2,const ImVec2,ImU32,float,int,float)", "stname": "ImDrawList" } ], "ImDrawList_AddEllipseFilled": [ { - "args": "(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,ImU32 col,float rot,int num_segments)", + "args": "(ImDrawList* self,const ImVec2 center,const ImVec2 radius,ImU32 col,float rot,int num_segments)", "argsT": [ { "name": "self", @@ -1575,12 +1604,8 @@ "type": "const ImVec2" }, { - "name": "radius_x", - "type": "float" - }, - { - "name": "radius_y", - "type": "float" + "name": "radius", + "type": "const ImVec2" }, { "name": "col", @@ -1595,18 +1620,18 @@ "type": "int" } ], - "argsoriginal": "(const ImVec2& center,float radius_x,float radius_y,ImU32 col,float rot=0.0f,int num_segments=0)", - "call_args": "(center,radius_x,radius_y,col,rot,num_segments)", + "argsoriginal": "(const ImVec2& center,const ImVec2& radius,ImU32 col,float rot=0.0f,int num_segments=0)", + "call_args": "(center,radius,col,rot,num_segments)", "cimguiname": "ImDrawList_AddEllipseFilled", "defaults": { "num_segments": "0", "rot": "0.0f" }, "funcname": "AddEllipseFilled", - "location": "imgui:2871", + "location": "imgui:3200", "ov_cimguiname": "ImDrawList_AddEllipseFilled", "ret": "void", - "signature": "(const ImVec2,float,float,ImU32,float,int)", + "signature": "(const ImVec2,const ImVec2,ImU32,float,int)", "stname": "ImDrawList" } ], @@ -1652,7 +1677,7 @@ "uv_min": "ImVec2(0,0)" }, "funcname": "AddImage", - "location": "imgui:2883", + "location": "imgui:3217", "ov_cimguiname": "ImDrawList_AddImage", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1719,7 +1744,7 @@ "uv4": "ImVec2(0,1)" }, "funcname": "AddImageQuad", - "location": "imgui:2884", + "location": "imgui:3218", "ov_cimguiname": "ImDrawList_AddImageQuad", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -1774,7 +1799,7 @@ "flags": "0" }, "funcname": "AddImageRounded", - "location": "imgui:2885", + "location": "imgui:3219", "ov_cimguiname": "ImDrawList_AddImageRounded", "ret": "void", "signature": "(ImTextureID,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -1813,7 +1838,7 @@ "thickness": "1.0f" }, "funcname": "AddLine", - "location": "imgui:2858", + "location": "imgui:3187", "ov_cimguiname": "ImDrawList_AddLine", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float)", @@ -1856,7 +1881,7 @@ "thickness": "1.0f" }, "funcname": "AddNgon", - "location": "imgui:2868", + "location": "imgui:3197", "ov_cimguiname": "ImDrawList_AddNgon", "ret": "void", "signature": "(const ImVec2,float,ImU32,int,float)", @@ -1893,7 +1918,7 @@ "cimguiname": "ImDrawList_AddNgonFilled", "defaults": {}, "funcname": "AddNgonFilled", - "location": "imgui:2869", + "location": "imgui:3198", "ov_cimguiname": "ImDrawList_AddNgonFilled", "ret": "void", "signature": "(const ImVec2,float,ImU32,int)", @@ -1934,7 +1959,7 @@ "cimguiname": "ImDrawList_AddPolyline", "defaults": {}, "funcname": "AddPolyline", - "location": "imgui:2874", + "location": "imgui:3209", "ov_cimguiname": "ImDrawList_AddPolyline", "ret": "void", "signature": "(const ImVec2*,int,ImU32,ImDrawFlags,float)", @@ -1981,7 +2006,7 @@ "thickness": "1.0f" }, "funcname": "AddQuad", - "location": "imgui:2862", + "location": "imgui:3191", "ov_cimguiname": "ImDrawList_AddQuad", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -2022,7 +2047,7 @@ "cimguiname": "ImDrawList_AddQuadFilled", "defaults": {}, "funcname": "AddQuadFilled", - "location": "imgui:2863", + "location": "imgui:3192", "ov_cimguiname": "ImDrawList_AddQuadFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2072,7 +2097,7 @@ "thickness": "1.0f" }, "funcname": "AddRect", - "location": "imgui:2859", + "location": "imgui:3188", "ov_cimguiname": "ImDrawList_AddRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags,float)", @@ -2117,7 +2142,7 @@ "rounding": "0.0f" }, "funcname": "AddRectFilled", - "location": "imgui:2860", + "location": "imgui:3189", "ov_cimguiname": "ImDrawList_AddRectFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,float,ImDrawFlags)", @@ -2162,7 +2187,7 @@ "cimguiname": "ImDrawList_AddRectFilledMultiColor", "defaults": {}, "funcname": "AddRectFilledMultiColor", - "location": "imgui:2861", + "location": "imgui:3190", "ov_cimguiname": "ImDrawList_AddRectFilledMultiColor", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32,ImU32,ImU32,ImU32)", @@ -2201,7 +2226,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:2872", + "location": "imgui:3201", "ov_cimguiname": "ImDrawList_AddText_Vec2", "ret": "void", "signature": "(const ImVec2,ImU32,const char*,const char*)", @@ -2256,7 +2281,7 @@ "wrap_width": "0.0f" }, "funcname": "AddText", - "location": "imgui:2873", + "location": "imgui:3202", "ov_cimguiname": "ImDrawList_AddText_FontPtr", "ret": "void", "signature": "(const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)", @@ -2299,7 +2324,7 @@ "thickness": "1.0f" }, "funcname": "AddTriangle", - "location": "imgui:2864", + "location": "imgui:3193", "ov_cimguiname": "ImDrawList_AddTriangle", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32,float)", @@ -2336,7 +2361,7 @@ "cimguiname": "ImDrawList_AddTriangleFilled", "defaults": {}, "funcname": "AddTriangleFilled", - "location": "imgui:2865", + "location": "imgui:3194", "ov_cimguiname": "ImDrawList_AddTriangleFilled", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -2357,7 +2382,7 @@ "cimguiname": "ImDrawList_ChannelsMerge", "defaults": {}, "funcname": "ChannelsMerge", - "location": "imgui:2914", + "location": "imgui:3249", "ov_cimguiname": "ImDrawList_ChannelsMerge", "ret": "void", "signature": "()", @@ -2382,7 +2407,7 @@ "cimguiname": "ImDrawList_ChannelsSetCurrent", "defaults": {}, "funcname": "ChannelsSetCurrent", - "location": "imgui:2915", + "location": "imgui:3250", "ov_cimguiname": "ImDrawList_ChannelsSetCurrent", "ret": "void", "signature": "(int)", @@ -2407,7 +2432,7 @@ "cimguiname": "ImDrawList_ChannelsSplit", "defaults": {}, "funcname": "ChannelsSplit", - "location": "imgui:2913", + "location": "imgui:3248", "ov_cimguiname": "ImDrawList_ChannelsSplit", "ret": "void", "signature": "(int)", @@ -2429,7 +2454,7 @@ "comment": "// Create a clone of the CmdBuffer/IdxBuffer/VtxBuffer.", "defaults": {}, "funcname": "CloneOutput", - "location": "imgui:2905", + "location": "imgui:3240", "ov_cimguiname": "ImDrawList_CloneOutput", "ret": "ImDrawList*", "signature": "()const", @@ -2454,7 +2479,7 @@ "cimguiname": "ImDrawList_GetClipRectMax", "defaults": {}, "funcname": "GetClipRectMax", - "location": "imgui:2849", + "location": "imgui:3178", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMax", "ret": "void", @@ -2480,7 +2505,7 @@ "cimguiname": "ImDrawList_GetClipRectMin", "defaults": {}, "funcname": "GetClipRectMin", - "location": "imgui:2848", + "location": "imgui:3177", "nonUDT": 1, "ov_cimguiname": "ImDrawList_GetClipRectMin", "ret": "void", @@ -2503,7 +2528,7 @@ "constructor": true, "defaults": {}, "funcname": "ImDrawList", - "location": "imgui:2840", + "location": "imgui:3169", "ov_cimguiname": "ImDrawList_ImDrawList", "signature": "(ImDrawListSharedData*)", "stname": "ImDrawList" @@ -2545,7 +2570,7 @@ "num_segments": "0" }, "funcname": "PathArcTo", - "location": "imgui:2895", + "location": "imgui:3230", "ov_cimguiname": "ImDrawList_PathArcTo", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -2583,7 +2608,7 @@ "comment": "// Use precomputed angles for a 12 steps circle", "defaults": {}, "funcname": "PathArcToFast", - "location": "imgui:2896", + "location": "imgui:3231", "ov_cimguiname": "ImDrawList_PathArcToFast", "ret": "void", "signature": "(const ImVec2,float,int,int)", @@ -2623,7 +2648,7 @@ "num_segments": "0" }, "funcname": "PathBezierCubicCurveTo", - "location": "imgui:2898", + "location": "imgui:3233", "ov_cimguiname": "ImDrawList_PathBezierCubicCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,int)", @@ -2659,7 +2684,7 @@ "num_segments": "0" }, "funcname": "PathBezierQuadraticCurveTo", - "location": "imgui:2899", + "location": "imgui:3234", "ov_cimguiname": "ImDrawList_PathBezierQuadraticCurveTo", "ret": "void", "signature": "(const ImVec2,const ImVec2,int)", @@ -2680,7 +2705,7 @@ "cimguiname": "ImDrawList_PathClear", "defaults": {}, "funcname": "PathClear", - "location": "imgui:2890", + "location": "imgui:3224", "ov_cimguiname": "ImDrawList_PathClear", "ret": "void", "signature": "()", @@ -2689,7 +2714,7 @@ ], "ImDrawList_PathEllipticalArcTo": [ { - "args": "(ImDrawList* self,const ImVec2 center,float radius_x,float radius_y,float rot,float a_min,float a_max,int num_segments)", + "args": "(ImDrawList* self,const ImVec2 center,const ImVec2 radius,float rot,float a_min,float a_max,int num_segments)", "argsT": [ { "name": "self", @@ -2700,12 +2725,8 @@ "type": "const ImVec2" }, { - "name": "radius_x", - "type": "float" - }, - { - "name": "radius_y", - "type": "float" + "name": "radius", + "type": "const ImVec2" }, { "name": "rot", @@ -2724,18 +2745,43 @@ "type": "int" } ], - "argsoriginal": "(const ImVec2& center,float radius_x,float radius_y,float rot,float a_min,float a_max,int num_segments=0)", - "call_args": "(center,radius_x,radius_y,rot,a_min,a_max,num_segments)", + "argsoriginal": "(const ImVec2& center,const ImVec2& radius,float rot,float a_min,float a_max,int num_segments=0)", + "call_args": "(center,radius,rot,a_min,a_max,num_segments)", "cimguiname": "ImDrawList_PathEllipticalArcTo", "comment": "// Ellipse", "defaults": { "num_segments": "0" }, "funcname": "PathEllipticalArcTo", - "location": "imgui:2897", + "location": "imgui:3232", "ov_cimguiname": "ImDrawList_PathEllipticalArcTo", "ret": "void", - "signature": "(const ImVec2,float,float,float,float,float,int)", + "signature": "(const ImVec2,const ImVec2,float,float,float,int)", + "stname": "ImDrawList" + } + ], + "ImDrawList_PathFillConcave": [ + { + "args": "(ImDrawList* self,ImU32 col)", + "argsT": [ + { + "name": "self", + "type": "ImDrawList*" + }, + { + "name": "col", + "type": "ImU32" + } + ], + "argsoriginal": "(ImU32 col)", + "call_args": "(col)", + "cimguiname": "ImDrawList_PathFillConcave", + "defaults": {}, + "funcname": "PathFillConcave", + "location": "imgui:3228", + "ov_cimguiname": "ImDrawList_PathFillConcave", + "ret": "void", + "signature": "(ImU32)", "stname": "ImDrawList" } ], @@ -2757,7 +2803,7 @@ "cimguiname": "ImDrawList_PathFillConvex", "defaults": {}, "funcname": "PathFillConvex", - "location": "imgui:2893", + "location": "imgui:3227", "ov_cimguiname": "ImDrawList_PathFillConvex", "ret": "void", "signature": "(ImU32)", @@ -2782,7 +2828,7 @@ "cimguiname": "ImDrawList_PathLineTo", "defaults": {}, "funcname": "PathLineTo", - "location": "imgui:2891", + "location": "imgui:3225", "ov_cimguiname": "ImDrawList_PathLineTo", "ret": "void", "signature": "(const ImVec2)", @@ -2807,7 +2853,7 @@ "cimguiname": "ImDrawList_PathLineToMergeDuplicate", "defaults": {}, "funcname": "PathLineToMergeDuplicate", - "location": "imgui:2892", + "location": "imgui:3226", "ov_cimguiname": "ImDrawList_PathLineToMergeDuplicate", "ret": "void", "signature": "(const ImVec2)", @@ -2847,7 +2893,7 @@ "rounding": "0.0f" }, "funcname": "PathRect", - "location": "imgui:2900", + "location": "imgui:3235", "ov_cimguiname": "ImDrawList_PathRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,float,ImDrawFlags)", @@ -2883,7 +2929,7 @@ "thickness": "1.0f" }, "funcname": "PathStroke", - "location": "imgui:2894", + "location": "imgui:3229", "ov_cimguiname": "ImDrawList_PathStroke", "ret": "void", "signature": "(ImU32,ImDrawFlags,float)", @@ -2904,7 +2950,7 @@ "cimguiname": "ImDrawList_PopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:2845", + "location": "imgui:3174", "ov_cimguiname": "ImDrawList_PopClipRect", "ret": "void", "signature": "()", @@ -2925,7 +2971,7 @@ "cimguiname": "ImDrawList_PopTextureID", "defaults": {}, "funcname": "PopTextureID", - "location": "imgui:2847", + "location": "imgui:3176", "ov_cimguiname": "ImDrawList_PopTextureID", "ret": "void", "signature": "()", @@ -2982,7 +3028,7 @@ "cimguiname": "ImDrawList_PrimQuadUV", "defaults": {}, "funcname": "PrimQuadUV", - "location": "imgui:2924", + "location": "imgui:3259", "ov_cimguiname": "ImDrawList_PrimQuadUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -3016,7 +3062,7 @@ "comment": "// Axis aligned rectangle (composed of two triangles)", "defaults": {}, "funcname": "PrimRect", - "location": "imgui:2922", + "location": "imgui:3257", "ov_cimguiname": "ImDrawList_PrimRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -3057,7 +3103,7 @@ "cimguiname": "ImDrawList_PrimRectUV", "defaults": {}, "funcname": "PrimRectUV", - "location": "imgui:2923", + "location": "imgui:3258", "ov_cimguiname": "ImDrawList_PrimRectUV", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,ImU32)", @@ -3086,7 +3132,7 @@ "cimguiname": "ImDrawList_PrimReserve", "defaults": {}, "funcname": "PrimReserve", - "location": "imgui:2920", + "location": "imgui:3255", "ov_cimguiname": "ImDrawList_PrimReserve", "ret": "void", "signature": "(int,int)", @@ -3115,7 +3161,7 @@ "cimguiname": "ImDrawList_PrimUnreserve", "defaults": {}, "funcname": "PrimUnreserve", - "location": "imgui:2921", + "location": "imgui:3256", "ov_cimguiname": "ImDrawList_PrimUnreserve", "ret": "void", "signature": "(int,int)", @@ -3149,7 +3195,7 @@ "comment": "// Write vertex with unique index", "defaults": {}, "funcname": "PrimVtx", - "location": "imgui:2927", + "location": "imgui:3262", "ov_cimguiname": "ImDrawList_PrimVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -3174,7 +3220,7 @@ "cimguiname": "ImDrawList_PrimWriteIdx", "defaults": {}, "funcname": "PrimWriteIdx", - "location": "imgui:2926", + "location": "imgui:3261", "ov_cimguiname": "ImDrawList_PrimWriteIdx", "ret": "void", "signature": "(ImDrawIdx)", @@ -3207,7 +3253,7 @@ "cimguiname": "ImDrawList_PrimWriteVtx", "defaults": {}, "funcname": "PrimWriteVtx", - "location": "imgui:2925", + "location": "imgui:3260", "ov_cimguiname": "ImDrawList_PrimWriteVtx", "ret": "void", "signature": "(const ImVec2,const ImVec2,ImU32)", @@ -3243,7 +3289,7 @@ "intersect_with_current_clip_rect": "false" }, "funcname": "PushClipRect", - "location": "imgui:2843", + "location": "imgui:3172", "ov_cimguiname": "ImDrawList_PushClipRect", "ret": "void", "signature": "(const ImVec2,const ImVec2,bool)", @@ -3264,7 +3310,7 @@ "cimguiname": "ImDrawList_PushClipRectFullScreen", "defaults": {}, "funcname": "PushClipRectFullScreen", - "location": "imgui:2844", + "location": "imgui:3173", "ov_cimguiname": "ImDrawList_PushClipRectFullScreen", "ret": "void", "signature": "()", @@ -3289,7 +3335,7 @@ "cimguiname": "ImDrawList_PushTextureID", "defaults": {}, "funcname": "PushTextureID", - "location": "imgui:2846", + "location": "imgui:3175", "ov_cimguiname": "ImDrawList_PushTextureID", "ret": "void", "signature": "(ImTextureID)", @@ -3314,7 +3360,7 @@ "cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "defaults": {}, "funcname": "_CalcCircleAutoSegmentCount", - "location": "imgui:2941", + "location": "imgui:3280", "ov_cimguiname": "ImDrawList__CalcCircleAutoSegmentCount", "ret": "int", "signature": "(float)const", @@ -3335,7 +3381,7 @@ "cimguiname": "ImDrawList__ClearFreeMemory", "defaults": {}, "funcname": "_ClearFreeMemory", - "location": "imgui:2935", + "location": "imgui:3273", "ov_cimguiname": "ImDrawList__ClearFreeMemory", "ret": "void", "signature": "()", @@ -3356,7 +3402,7 @@ "cimguiname": "ImDrawList__OnChangedClipRect", "defaults": {}, "funcname": "_OnChangedClipRect", - "location": "imgui:2938", + "location": "imgui:3276", "ov_cimguiname": "ImDrawList__OnChangedClipRect", "ret": "void", "signature": "()", @@ -3377,7 +3423,7 @@ "cimguiname": "ImDrawList__OnChangedTextureID", "defaults": {}, "funcname": "_OnChangedTextureID", - "location": "imgui:2939", + "location": "imgui:3277", "ov_cimguiname": "ImDrawList__OnChangedTextureID", "ret": "void", "signature": "()", @@ -3398,7 +3444,7 @@ "cimguiname": "ImDrawList__OnChangedVtxOffset", "defaults": {}, "funcname": "_OnChangedVtxOffset", - "location": "imgui:2940", + "location": "imgui:3278", "ov_cimguiname": "ImDrawList__OnChangedVtxOffset", "ret": "void", "signature": "()", @@ -3439,7 +3485,7 @@ "cimguiname": "ImDrawList__PathArcToFastEx", "defaults": {}, "funcname": "_PathArcToFastEx", - "location": "imgui:2942", + "location": "imgui:3281", "ov_cimguiname": "ImDrawList__PathArcToFastEx", "ret": "void", "signature": "(const ImVec2,float,int,int,int)", @@ -3480,7 +3526,7 @@ "cimguiname": "ImDrawList__PathArcToN", "defaults": {}, "funcname": "_PathArcToN", - "location": "imgui:2943", + "location": "imgui:3282", "ov_cimguiname": "ImDrawList__PathArcToN", "ret": "void", "signature": "(const ImVec2,float,float,float,int)", @@ -3501,7 +3547,7 @@ "cimguiname": "ImDrawList__PopUnusedDrawCmd", "defaults": {}, "funcname": "_PopUnusedDrawCmd", - "location": "imgui:2936", + "location": "imgui:3274", "ov_cimguiname": "ImDrawList__PopUnusedDrawCmd", "ret": "void", "signature": "()", @@ -3522,13 +3568,38 @@ "cimguiname": "ImDrawList__ResetForNewFrame", "defaults": {}, "funcname": "_ResetForNewFrame", - "location": "imgui:2934", + "location": "imgui:3272", "ov_cimguiname": "ImDrawList__ResetForNewFrame", "ret": "void", "signature": "()", "stname": "ImDrawList" } ], + "ImDrawList__SetTextureID": [ + { + "args": "(ImDrawList* self,ImTextureID texture_id)", + "argsT": [ + { + "name": "self", + "type": "ImDrawList*" + }, + { + "name": "texture_id", + "type": "ImTextureID" + } + ], + "argsoriginal": "(ImTextureID texture_id)", + "call_args": "(texture_id)", + "cimguiname": "ImDrawList__SetTextureID", + "defaults": {}, + "funcname": "_SetTextureID", + "location": "imgui:3279", + "ov_cimguiname": "ImDrawList__SetTextureID", + "ret": "void", + "signature": "(ImTextureID)", + "stname": "ImDrawList" + } + ], "ImDrawList__TryMergeDrawCmds": [ { "args": "(ImDrawList* self)", @@ -3543,7 +3614,7 @@ "cimguiname": "ImDrawList__TryMergeDrawCmds", "defaults": {}, "funcname": "_TryMergeDrawCmds", - "location": "imgui:2937", + "location": "imgui:3275", "ov_cimguiname": "ImDrawList__TryMergeDrawCmds", "ret": "void", "signature": "()", @@ -3563,7 +3634,7 @@ "cimguiname": "ImDrawList_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2842", + "location": "imgui:3171", "ov_cimguiname": "ImDrawList_destroy", "realdestructor": true, "ret": "void", @@ -3581,7 +3652,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlasCustomRect", - "location": "imgui:3038", + "location": "imgui:3377", "ov_cimguiname": "ImFontAtlasCustomRect_ImFontAtlasCustomRect", "signature": "()", "stname": "ImFontAtlasCustomRect" @@ -3601,7 +3672,7 @@ "cimguiname": "ImFontAtlasCustomRect_IsPacked", "defaults": {}, "funcname": "IsPacked", - "location": "imgui:3039", + "location": "imgui:3378", "ov_cimguiname": "ImFontAtlasCustomRect_IsPacked", "ret": "bool", "signature": "()const", @@ -3667,7 +3738,7 @@ "offset": "ImVec2(0,0)" }, "funcname": "AddCustomRectFontGlyph", - "location": "imgui:3124", + "location": "imgui:3463", "ov_cimguiname": "ImFontAtlas_AddCustomRectFontGlyph", "ret": "int", "signature": "(ImFont*,ImWchar,int,int,float,const ImVec2)", @@ -3696,7 +3767,7 @@ "cimguiname": "ImFontAtlas_AddCustomRectRegular", "defaults": {}, "funcname": "AddCustomRectRegular", - "location": "imgui:3123", + "location": "imgui:3462", "ov_cimguiname": "ImFontAtlas_AddCustomRectRegular", "ret": "int", "signature": "(int,int)", @@ -3721,7 +3792,7 @@ "cimguiname": "ImFontAtlas_AddFont", "defaults": {}, "funcname": "AddFont", - "location": "imgui:3072", + "location": "imgui:3411", "ov_cimguiname": "ImFontAtlas_AddFont", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -3748,7 +3819,7 @@ "font_cfg": "NULL" }, "funcname": "AddFontDefault", - "location": "imgui:3073", + "location": "imgui:3412", "ov_cimguiname": "ImFontAtlas_AddFontDefault", "ret": "ImFont*", "signature": "(const ImFontConfig*)", @@ -3788,7 +3859,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromFileTTF", - "location": "imgui:3074", + "location": "imgui:3413", "ov_cimguiname": "ImFontAtlas_AddFontFromFileTTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -3829,7 +3900,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedBase85TTF", - "location": "imgui:3077", + "location": "imgui:3416", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedBase85TTF", "ret": "ImFont*", "signature": "(const char*,float,const ImFontConfig*,const ImWchar*)", @@ -3874,7 +3945,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryCompressedTTF", - "location": "imgui:3076", + "location": "imgui:3415", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryCompressedTTF", "ret": "ImFont*", "signature": "(const void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3919,7 +3990,7 @@ "glyph_ranges": "NULL" }, "funcname": "AddFontFromMemoryTTF", - "location": "imgui:3075", + "location": "imgui:3414", "ov_cimguiname": "ImFontAtlas_AddFontFromMemoryTTF", "ret": "ImFont*", "signature": "(void*,int,float,const ImFontConfig*,const ImWchar*)", @@ -3941,7 +4012,7 @@ "comment": "// Build pixels data. This is called automatically for you by the GetTexData*** functions.", "defaults": {}, "funcname": "Build", - "location": "imgui:3088", + "location": "imgui:3427", "ov_cimguiname": "ImFontAtlas_Build", "ret": "bool", "signature": "()", @@ -3974,7 +4045,7 @@ "cimguiname": "ImFontAtlas_CalcCustomRectUV", "defaults": {}, "funcname": "CalcCustomRectUV", - "location": "imgui:3128", + "location": "imgui:3467", "ov_cimguiname": "ImFontAtlas_CalcCustomRectUV", "ret": "void", "signature": "(const ImFontAtlasCustomRect*,ImVec2*,ImVec2*)const", @@ -3996,7 +4067,7 @@ "comment": "// Clear all input and output.", "defaults": {}, "funcname": "Clear", - "location": "imgui:3081", + "location": "imgui:3420", "ov_cimguiname": "ImFontAtlas_Clear", "ret": "void", "signature": "()", @@ -4018,7 +4089,7 @@ "comment": "// Clear output font data (glyphs storage, UV coordinates).", "defaults": {}, "funcname": "ClearFonts", - "location": "imgui:3080", + "location": "imgui:3419", "ov_cimguiname": "ImFontAtlas_ClearFonts", "ret": "void", "signature": "()", @@ -4040,7 +4111,7 @@ "comment": "// Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts.", "defaults": {}, "funcname": "ClearInputData", - "location": "imgui:3078", + "location": "imgui:3417", "ov_cimguiname": "ImFontAtlas_ClearInputData", "ret": "void", "signature": "()", @@ -4062,7 +4133,7 @@ "comment": "// Clear output texture data (CPU side). Saves RAM once the texture has been copied to graphics memory.", "defaults": {}, "funcname": "ClearTexData", - "location": "imgui:3079", + "location": "imgui:3418", "ov_cimguiname": "ImFontAtlas_ClearTexData", "ret": "void", "signature": "()", @@ -4087,7 +4158,7 @@ "cimguiname": "ImFontAtlas_GetCustomRectByIndex", "defaults": {}, "funcname": "GetCustomRectByIndex", - "location": "imgui:3125", + "location": "imgui:3464", "ov_cimguiname": "ImFontAtlas_GetCustomRectByIndex", "ret": "ImFontAtlasCustomRect*", "signature": "(int)", @@ -4109,7 +4180,7 @@ "comment": "// Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs", "defaults": {}, "funcname": "GetGlyphRangesChineseFull", - "location": "imgui:3106", + "location": "imgui:3445", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseFull", "ret": "const ImWchar*", "signature": "()", @@ -4131,7 +4202,7 @@ "comment": "// Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese", "defaults": {}, "funcname": "GetGlyphRangesChineseSimplifiedCommon", - "location": "imgui:3107", + "location": "imgui:3446", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon", "ret": "const ImWchar*", "signature": "()", @@ -4153,7 +4224,7 @@ "comment": "// Default + about 400 Cyrillic characters", "defaults": {}, "funcname": "GetGlyphRangesCyrillic", - "location": "imgui:3108", + "location": "imgui:3447", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesCyrillic", "ret": "const ImWchar*", "signature": "()", @@ -4175,7 +4246,7 @@ "comment": "// Basic Latin, Extended Latin", "defaults": {}, "funcname": "GetGlyphRangesDefault", - "location": "imgui:3102", + "location": "imgui:3441", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesDefault", "ret": "const ImWchar*", "signature": "()", @@ -4197,7 +4268,7 @@ "comment": "// Default + Greek and Coptic", "defaults": {}, "funcname": "GetGlyphRangesGreek", - "location": "imgui:3103", + "location": "imgui:3442", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesGreek", "ret": "const ImWchar*", "signature": "()", @@ -4219,7 +4290,7 @@ "comment": "// Default + Hiragana, Katakana, Half-Width, Selection of 2999 Ideographs", "defaults": {}, "funcname": "GetGlyphRangesJapanese", - "location": "imgui:3105", + "location": "imgui:3444", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesJapanese", "ret": "const ImWchar*", "signature": "()", @@ -4241,7 +4312,7 @@ "comment": "// Default + Korean characters", "defaults": {}, "funcname": "GetGlyphRangesKorean", - "location": "imgui:3104", + "location": "imgui:3443", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesKorean", "ret": "const ImWchar*", "signature": "()", @@ -4263,7 +4334,7 @@ "comment": "// Default + Thai characters", "defaults": {}, "funcname": "GetGlyphRangesThai", - "location": "imgui:3109", + "location": "imgui:3448", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesThai", "ret": "const ImWchar*", "signature": "()", @@ -4285,7 +4356,7 @@ "comment": "// Default + Vietnamese characters", "defaults": {}, "funcname": "GetGlyphRangesVietnamese", - "location": "imgui:3110", + "location": "imgui:3449", "ov_cimguiname": "ImFontAtlas_GetGlyphRangesVietnamese", "ret": "const ImWchar*", "signature": "()", @@ -4326,7 +4397,7 @@ "cimguiname": "ImFontAtlas_GetMouseCursorTexData", "defaults": {}, "funcname": "GetMouseCursorTexData", - "location": "imgui:3129", + "location": "imgui:3468", "ov_cimguiname": "ImFontAtlas_GetMouseCursorTexData", "ret": "bool", "signature": "(ImGuiMouseCursor,ImVec2*,ImVec2*,ImVec2[2],ImVec2[2])", @@ -4366,7 +4437,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsAlpha8", - "location": "imgui:3089", + "location": "imgui:3428", "ov_cimguiname": "ImFontAtlas_GetTexDataAsAlpha8", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -4406,7 +4477,7 @@ "out_bytes_per_pixel": "NULL" }, "funcname": "GetTexDataAsRGBA32", - "location": "imgui:3090", + "location": "imgui:3429", "ov_cimguiname": "ImFontAtlas_GetTexDataAsRGBA32", "ret": "void", "signature": "(unsigned char**,int*,int*,int*)", @@ -4423,7 +4494,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontAtlas", - "location": "imgui:3070", + "location": "imgui:3409", "ov_cimguiname": "ImFontAtlas_ImFontAtlas", "signature": "()", "stname": "ImFontAtlas" @@ -4444,7 +4515,7 @@ "comment": "// Bit ambiguous: used to detect when user didn't build texture but effectively we should check TexID != 0 except that would be backend dependent...", "defaults": {}, "funcname": "IsBuilt", - "location": "imgui:3091", + "location": "imgui:3430", "ov_cimguiname": "ImFontAtlas_IsBuilt", "ret": "bool", "signature": "()const", @@ -4469,7 +4540,7 @@ "cimguiname": "ImFontAtlas_SetTexID", "defaults": {}, "funcname": "SetTexID", - "location": "imgui:3092", + "location": "imgui:3431", "ov_cimguiname": "ImFontAtlas_SetTexID", "ret": "void", "signature": "(ImTextureID)", @@ -4489,7 +4560,7 @@ "cimguiname": "ImFontAtlas_destroy", "defaults": {}, "destructor": true, - "location": "imgui:3071", + "location": "imgui:3410", "ov_cimguiname": "ImFontAtlas_destroy", "realdestructor": true, "ret": "void", @@ -4507,7 +4578,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontConfig", - "location": "imgui:2998", + "location": "imgui:3337", "ov_cimguiname": "ImFontConfig_ImFontConfig", "signature": "()", "stname": "ImFontConfig" @@ -4551,7 +4622,7 @@ "comment": "// Add character", "defaults": {}, "funcname": "AddChar", - "location": "imgui:3023", + "location": "imgui:3362", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddChar", "ret": "void", "signature": "(ImWchar)", @@ -4577,7 +4648,7 @@ "comment": "// Add ranges, e.g. builder.AddRanges(ImFontAtlas::GetGlyphRangesDefault()) to force add all of ASCII/Latin+Ext", "defaults": {}, "funcname": "AddRanges", - "location": "imgui:3025", + "location": "imgui:3364", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddRanges", "ret": "void", "signature": "(const ImWchar*)", @@ -4609,7 +4680,7 @@ "text_end": "NULL" }, "funcname": "AddText", - "location": "imgui:3024", + "location": "imgui:3363", "ov_cimguiname": "ImFontGlyphRangesBuilder_AddText", "ret": "void", "signature": "(const char*,const char*)", @@ -4635,7 +4706,7 @@ "comment": "// Output new ranges", "defaults": {}, "funcname": "BuildRanges", - "location": "imgui:3026", + "location": "imgui:3365", "ov_cimguiname": "ImFontGlyphRangesBuilder_BuildRanges", "ret": "void", "signature": "(ImVector_ImWchar*)", @@ -4656,7 +4727,7 @@ "cimguiname": "ImFontGlyphRangesBuilder_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:3020", + "location": "imgui:3359", "ov_cimguiname": "ImFontGlyphRangesBuilder_Clear", "ret": "void", "signature": "()", @@ -4682,7 +4753,7 @@ "comment": "// Get bit n in the array", "defaults": {}, "funcname": "GetBit", - "location": "imgui:3021", + "location": "imgui:3360", "ov_cimguiname": "ImFontGlyphRangesBuilder_GetBit", "ret": "bool", "signature": "(size_t)const", @@ -4699,7 +4770,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFontGlyphRangesBuilder", - "location": "imgui:3019", + "location": "imgui:3358", "ov_cimguiname": "ImFontGlyphRangesBuilder_ImFontGlyphRangesBuilder", "signature": "()", "stname": "ImFontGlyphRangesBuilder" @@ -4724,7 +4795,7 @@ "comment": "// Set bit n in the array", "defaults": {}, "funcname": "SetBit", - "location": "imgui:3022", + "location": "imgui:3361", "ov_cimguiname": "ImFontGlyphRangesBuilder_SetBit", "ret": "void", "signature": "(size_t)", @@ -4808,7 +4879,7 @@ "cimguiname": "ImFont_AddGlyph", "defaults": {}, "funcname": "AddGlyph", - "location": "imgui:3219", + "location": "imgui:3558", "ov_cimguiname": "ImFont_AddGlyph", "ret": "void", "signature": "(const ImFontConfig*,ImWchar,float,float,float,float,float,float,float,float,float)", @@ -4844,7 +4915,7 @@ "overwrite_dst": "true" }, "funcname": "AddRemapChar", - "location": "imgui:3220", + "location": "imgui:3559", "ov_cimguiname": "ImFont_AddRemapChar", "ret": "void", "signature": "(ImWchar,ImWchar,bool)", @@ -4865,7 +4936,7 @@ "cimguiname": "ImFont_BuildLookupTable", "defaults": {}, "funcname": "BuildLookupTable", - "location": "imgui:3216", + "location": "imgui:3555", "ov_cimguiname": "ImFont_BuildLookupTable", "ret": "void", "signature": "()", @@ -4918,7 +4989,7 @@ "text_end": "NULL" }, "funcname": "CalcTextSizeA", - "location": "imgui:3210", + "location": "imgui:3549", "nonUDT": 1, "ov_cimguiname": "ImFont_CalcTextSizeA", "ret": "void", @@ -4956,7 +5027,7 @@ "cimguiname": "ImFont_CalcWordWrapPositionA", "defaults": {}, "funcname": "CalcWordWrapPositionA", - "location": "imgui:3211", + "location": "imgui:3550", "ov_cimguiname": "ImFont_CalcWordWrapPositionA", "ret": "const char*", "signature": "(float,const char*,const char*,float)const", @@ -4977,7 +5048,7 @@ "cimguiname": "ImFont_ClearOutputData", "defaults": {}, "funcname": "ClearOutputData", - "location": "imgui:3217", + "location": "imgui:3556", "ov_cimguiname": "ImFont_ClearOutputData", "ret": "void", "signature": "()", @@ -5002,7 +5073,7 @@ "cimguiname": "ImFont_FindGlyph", "defaults": {}, "funcname": "FindGlyph", - "location": "imgui:3202", + "location": "imgui:3541", "ov_cimguiname": "ImFont_FindGlyph", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -5027,7 +5098,7 @@ "cimguiname": "ImFont_FindGlyphNoFallback", "defaults": {}, "funcname": "FindGlyphNoFallback", - "location": "imgui:3203", + "location": "imgui:3542", "ov_cimguiname": "ImFont_FindGlyphNoFallback", "ret": "const ImFontGlyph*", "signature": "(ImWchar)const", @@ -5052,7 +5123,7 @@ "cimguiname": "ImFont_GetCharAdvance", "defaults": {}, "funcname": "GetCharAdvance", - "location": "imgui:3204", + "location": "imgui:3543", "ov_cimguiname": "ImFont_GetCharAdvance", "ret": "float", "signature": "(ImWchar)const", @@ -5073,7 +5144,7 @@ "cimguiname": "ImFont_GetDebugName", "defaults": {}, "funcname": "GetDebugName", - "location": "imgui:3206", + "location": "imgui:3545", "ov_cimguiname": "ImFont_GetDebugName", "ret": "const char*", "signature": "()const", @@ -5098,7 +5169,7 @@ "cimguiname": "ImFont_GrowIndex", "defaults": {}, "funcname": "GrowIndex", - "location": "imgui:3218", + "location": "imgui:3557", "ov_cimguiname": "ImFont_GrowIndex", "ret": "void", "signature": "(int)", @@ -5115,7 +5186,7 @@ "constructor": true, "defaults": {}, "funcname": "ImFont", - "location": "imgui:3200", + "location": "imgui:3539", "ov_cimguiname": "ImFont_ImFont", "signature": "()", "stname": "ImFont" @@ -5143,7 +5214,7 @@ "cimguiname": "ImFont_IsGlyphRangeUnused", "defaults": {}, "funcname": "IsGlyphRangeUnused", - "location": "imgui:3222", + "location": "imgui:3561", "ov_cimguiname": "ImFont_IsGlyphRangeUnused", "ret": "bool", "signature": "(unsigned int,unsigned int)", @@ -5164,7 +5235,7 @@ "cimguiname": "ImFont_IsLoaded", "defaults": {}, "funcname": "IsLoaded", - "location": "imgui:3205", + "location": "imgui:3544", "ov_cimguiname": "ImFont_IsLoaded", "ret": "bool", "signature": "()const", @@ -5205,7 +5276,7 @@ "cimguiname": "ImFont_RenderChar", "defaults": {}, "funcname": "RenderChar", - "location": "imgui:3212", + "location": "imgui:3551", "ov_cimguiname": "ImFont_RenderChar", "ret": "void", "signature": "(ImDrawList*,float,const ImVec2,ImU32,ImWchar)const", @@ -5265,7 +5336,7 @@ "wrap_width": "0.0f" }, "funcname": "RenderText", - "location": "imgui:3213", + "location": "imgui:3552", "ov_cimguiname": "ImFont_RenderText", "ret": "void", "signature": "(ImDrawList*,float,const ImVec2,ImU32,const ImVec4,const char*,const char*,float,bool)const", @@ -5294,7 +5365,7 @@ "cimguiname": "ImFont_SetGlyphVisible", "defaults": {}, "funcname": "SetGlyphVisible", - "location": "imgui:3221", + "location": "imgui:3560", "ov_cimguiname": "ImFont_SetGlyphVisible", "ret": "void", "signature": "(ImWchar,bool)", @@ -5314,7 +5385,7 @@ "cimguiname": "ImFont_destroy", "defaults": {}, "destructor": true, - "location": "imgui:3201", + "location": "imgui:3540", "ov_cimguiname": "ImFont_destroy", "realdestructor": true, "ret": "void", @@ -5322,6 +5393,41 @@ "stname": "ImFont" } ], + "ImGuiBoxSelectState_ImGuiBoxSelectState": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiBoxSelectState_ImGuiBoxSelectState", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiBoxSelectState", + "location": "imgui_internal:1754", + "ov_cimguiname": "ImGuiBoxSelectState_ImGuiBoxSelectState", + "signature": "()", + "stname": "ImGuiBoxSelectState" + } + ], + "ImGuiBoxSelectState_destroy": [ + { + "args": "(ImGuiBoxSelectState* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiBoxSelectState*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiBoxSelectState_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiBoxSelectState_destroy", + "ret": "void", + "signature": "(ImGuiBoxSelectState*)", + "stname": "ImGuiBoxSelectState" + } + ], "ImGuiComboPreviewData_ImGuiComboPreviewData": [ { "args": "()", @@ -5332,7 +5438,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiComboPreviewData", - "location": "imgui_internal:1025", + "location": "imgui_internal:1058", "ov_cimguiname": "ImGuiComboPreviewData_ImGuiComboPreviewData", "signature": "()", "stname": "ImGuiComboPreviewData" @@ -5367,7 +5473,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiContextHook", - "location": "imgui_internal:2098", + "location": "imgui_internal:2177", "ov_cimguiname": "ImGuiContextHook_ImGuiContextHook", "signature": "()", "stname": "ImGuiContextHook" @@ -5404,11 +5510,11 @@ "argsoriginal": "(ImFontAtlas* shared_font_atlas)", "call_args": "(shared_font_atlas)", "cimguiname": "ImGuiContext_ImGuiContext", - "comment": " // Different to ensure initial submission\n PlatformImeViewport = 0;\n\n DockNodeWindowMenuHandler = ((void *)0) ;\n\n SettingsLoaded = false;\n SettingsDirtyTimer = 0.0f;\n HookIdNext = 0;\n\n memset(LocalizationTable, 0, sizeof(LocalizationTable));\n\n LogEnabled = false;\n LogType = ImGuiLogType_None;\n LogNextPrefix = LogNextSuffix = ((void *)0) ;\n LogFile = ((void *)0) ;\n LogLinePosY = 3.40282346638528859811704183484516925e+38F ;\n LogLineFirstItem = false;\n LogDepthRef = 0;\n LogDepthToExpand = LogDepthToExpandDefault = 2;\n\n DebugLogFlags = ImGuiDebugLogFlags_OutputToTTY;\n DebugLocateId = 0;\n DebugLogAutoDisableFlags = ImGuiDebugLogFlags_None;\n DebugLogAutoDisableFrames = 0;\n DebugLocateFrames = 0;\n DebugBeginReturnValueCullDepth = -1;\n DebugItemPickerActive = false;\n DebugItemPickerMouseButton = ImGuiMouseButton_Left;\n DebugItemPickerBreakId = 0;\n DebugFlashStyleColorTime = 0.0f;\n DebugFlashStyleColorIdx = ImGuiCol_COUNT;\n DebugHoveredDockNode = ((void *)0) ;\n\n // Same as DebugBreakClearData(). Those fields are scattered in their respective subsystem to stay in hot-data locations\n DebugBreakInWindow = 0;\n DebugBreakInTable = 0;\n DebugBreakInLocateId = false;\n DebugBreakKeyChord = ImGuiKey_Pause;\n DebugBreakInShortcutRouting = ImGuiKey_None;\n\n memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame));\n FramerateSecPerFrameIdx = FramerateSecPerFrameCount = 0;\n FramerateSecPerFrameAccum = 0.0f;\n WantCaptureMouseNextFrame = WantCaptureKeyboardNextFrame = WantTextInputNextFrame = -1;\n memset(TempKeychordName, 0, sizeof(TempKeychordName));\n }", + "comment": "\n\n // All platforms use Ctrl+Tab but Ctrl<>Super are swapped on Mac...\n // FIXME: Because this value is stored, it annoyingly interfere with toggling io.ConfigMacOSXBehaviors updating this..\n ConfigNavWindowingKeyNext = IO.ConfigMacOSXBehaviors ? (ImGuiMod_Super | ImGuiKey_Tab) : (ImGuiMod_Ctrl | ImGuiKey_Tab);\n ConfigNavWindowingKeyPrev = IO.ConfigMacOSXBehaviors ? (ImGuiMod_Super | ImGuiMod_Shift | ImGuiKey_Tab) : (ImGuiMod_Ctrl | ImGuiMod_Shift | ImGuiKey_Tab);\n NavWindowingTarget = NavWindowingTargetAnim = NavWindowingListWindow = ((void *)0) ;\n NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f;\n NavWindowingToggleLayer = false;\n NavWindowingToggleKey = ImGuiKey_None;\n\n DimBgRatio = 0.0f;\n\n DragDropActive = DragDropWithinSource = DragDropWithinTarget = false;\n DragDropSourceFlags = ImGuiDragDropFlags_None;\n DragDropSourceFrameCount = -1;\n DragDropMouseButton = -1;\n DragDropTargetId = 0;\n DragDropAcceptFlags = ImGuiDragDropFlags_None;\n DragDropAcceptIdCurrRectSurface = 0.0f;\n DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0;\n DragDropAcceptFrameCount = -1;\n DragDropHoldJustPressedId = 0;\n memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal));\n\n ClipperTempDataStacked = 0;\n\n CurrentTable = ((void *)0) ;\n TablesTempDataStacked = 0;\n CurrentTabBar = ((void *)0) ;\n CurrentMultiSelect = ((void *)0) ;\n MultiSelectTempDataStacked = 0;\n\n HoverItemDelayId = HoverItemDelayIdPreviousFrame = HoverItemUnlockedStationaryId = HoverWindowUnlockedStationaryId = 0;\n HoverItemDelayTimer = HoverItemDelayClearTimer = 0.0f;\n\n MouseCursor = ImGuiMouseCursor_Arrow;\n MouseStationaryTimer = 0.0f;\n\n TempInputId = 0;\n memset(&DataTypeZeroValue, 0, sizeof(DataTypeZeroValue));\n BeginMenuDepth = BeginComboDepth = 0;\n ColorEditOptions = ImGuiColorEditFlags_DefaultOptions_;\n ColorEditCurrentID = ColorEditSavedID = 0;\n ColorEditSavedHue = ColorEditSavedSat = 0.0f;\n ColorEditSavedColor = 0;\n WindowResizeRelativeMode = false;\n ScrollbarSeekMode = 0;\n ScrollbarClickDeltaToGrabCenter = 0.0f;\n SliderGrabClickOffset = 0.0f;\n SliderCurrentAccum = 0.0f;\n SliderCurrentAccumDirty = false;\n DragCurrentAccumDirty = false;\n DragCurrentAccum = 0.0f;\n DragSpeedDefaultRatio = 1.0f / 100.0f;\n DisabledAlphaBackup = 0.0f;\n DisabledStackSize = 0;\n LockMarkEdited = 0;\n TooltipOverrideCount = 0;\n\n PlatformImeData.InputPos = ImVec2(0.0f, 0.0f);\n PlatformImeDataPrev.InputPos = ImVec2(-1.0f, -1.0f); // Different to ensure initial submission\n PlatformImeViewport = 0;\n\n DockNodeWindowMenuHandler = ((void *)0) ;\n\n SettingsLoaded = false;\n SettingsDirtyTimer = 0.0f;\n HookIdNext = 0;\n\n memset(LocalizationTable, 0, sizeof(LocalizationTable));\n\n LogEnabled = false;\n LogType = ImGuiLogType_None;\n LogNextPrefix = LogNextSuffix = ((void *)0) ;\n LogFile = ((void *)0) ;\n LogLinePosY = 3.40282346638528859811704183484516925e+38F ;\n LogLineFirstItem = false;\n LogDepthRef = 0;\n LogDepthToExpand = LogDepthToExpandDefault = 2;\n\n DebugLogFlags = ImGuiDebugLogFlags_OutputToTTY;\n DebugLocateId = 0;\n DebugLogAutoDisableFlags = ImGuiDebugLogFlags_None;\n DebugLogAutoDisableFrames = 0;\n DebugLocateFrames = 0;\n DebugBeginReturnValueCullDepth = -1;\n DebugItemPickerActive = false;\n DebugItemPickerMouseButton = ImGuiMouseButton_Left;\n DebugItemPickerBreakId = 0;\n DebugFlashStyleColorTime = 0.0f;\n DebugFlashStyleColorIdx = ImGuiCol_COUNT;\n DebugHoveredDockNode = ((void *)0) ;\n\n // Same as DebugBreakClearData(). Those fields are scattered in their respective subsystem to stay in hot-data locations\n DebugBreakInWindow = 0;\n DebugBreakInTable = 0;\n DebugBreakInLocateId = false;\n DebugBreakKeyChord = ImGuiKey_Pause;\n DebugBreakInShortcutRouting = ImGuiKey_None;\n\n memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame));\n FramerateSecPerFrameIdx = FramerateSecPerFrameCount = 0;\n FramerateSecPerFrameAccum = 0.0f;\n WantCaptureMouseNextFrame = WantCaptureKeyboardNextFrame = WantTextInputNextFrame = -1;\n memset(TempKeychordName, 0, sizeof(TempKeychordName));\n }", "constructor": true, "defaults": {}, "funcname": "ImGuiContext", - "location": "imgui_internal:2453", + "location": "imgui_internal:2550", "ov_cimguiname": "ImGuiContext_ImGuiContext", "signature": "(ImFontAtlas*)", "stname": "ImGuiContext" @@ -5451,7 +5557,7 @@ "cimguiname": "ImGuiDataVarInfo_GetVarPtr", "defaults": {}, "funcname": "GetVarPtr", - "location": "imgui_internal:1272", + "location": "imgui_internal:813", "ov_cimguiname": "ImGuiDataVarInfo_GetVarPtr", "ret": "void*", "signature": "(void*)const", @@ -5468,7 +5574,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiDebugAllocInfo", - "location": "imgui_internal:2038", + "location": "imgui_internal:2117", "ov_cimguiname": "ImGuiDebugAllocInfo_ImGuiDebugAllocInfo", "signature": "()", "stname": "ImGuiDebugAllocInfo" @@ -5503,7 +5609,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiDockContext", - "location": "imgui_internal:1881", + "location": "imgui_internal:1952", "ov_cimguiname": "ImGuiDockContext_ImGuiDockContext", "signature": "()", "stname": "ImGuiDockContext" @@ -5543,7 +5649,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiDockNode", - "location": "imgui_internal:1838", + "location": "imgui_internal:1906", "ov_cimguiname": "ImGuiDockNode_ImGuiDockNode", "signature": "(ImGuiID)", "stname": "ImGuiDockNode" @@ -5563,7 +5669,7 @@ "cimguiname": "ImGuiDockNode_IsCentralNode", "defaults": {}, "funcname": "IsCentralNode", - "location": "imgui_internal:1843", + "location": "imgui_internal:1911", "ov_cimguiname": "ImGuiDockNode_IsCentralNode", "ret": "bool", "signature": "()const", @@ -5584,7 +5690,7 @@ "cimguiname": "ImGuiDockNode_IsDockSpace", "defaults": {}, "funcname": "IsDockSpace", - "location": "imgui_internal:1841", + "location": "imgui_internal:1909", "ov_cimguiname": "ImGuiDockNode_IsDockSpace", "ret": "bool", "signature": "()const", @@ -5605,7 +5711,7 @@ "cimguiname": "ImGuiDockNode_IsEmpty", "defaults": {}, "funcname": "IsEmpty", - "location": "imgui_internal:1848", + "location": "imgui_internal:1916", "ov_cimguiname": "ImGuiDockNode_IsEmpty", "ret": "bool", "signature": "()const", @@ -5626,7 +5732,7 @@ "cimguiname": "ImGuiDockNode_IsFloatingNode", "defaults": {}, "funcname": "IsFloatingNode", - "location": "imgui_internal:1842", + "location": "imgui_internal:1910", "ov_cimguiname": "ImGuiDockNode_IsFloatingNode", "ret": "bool", "signature": "()const", @@ -5648,7 +5754,7 @@ "comment": "// Hidden tab bar can be shown back by clicking the small triangle", "defaults": {}, "funcname": "IsHiddenTabBar", - "location": "imgui_internal:1844", + "location": "imgui_internal:1912", "ov_cimguiname": "ImGuiDockNode_IsHiddenTabBar", "ret": "bool", "signature": "()const", @@ -5669,7 +5775,7 @@ "cimguiname": "ImGuiDockNode_IsLeafNode", "defaults": {}, "funcname": "IsLeafNode", - "location": "imgui_internal:1847", + "location": "imgui_internal:1915", "ov_cimguiname": "ImGuiDockNode_IsLeafNode", "ret": "bool", "signature": "()const", @@ -5691,7 +5797,7 @@ "comment": "// Never show a tab bar", "defaults": {}, "funcname": "IsNoTabBar", - "location": "imgui_internal:1845", + "location": "imgui_internal:1913", "ov_cimguiname": "ImGuiDockNode_IsNoTabBar", "ret": "bool", "signature": "()const", @@ -5712,7 +5818,7 @@ "cimguiname": "ImGuiDockNode_IsRootNode", "defaults": {}, "funcname": "IsRootNode", - "location": "imgui_internal:1840", + "location": "imgui_internal:1908", "ov_cimguiname": "ImGuiDockNode_IsRootNode", "ret": "bool", "signature": "()const", @@ -5733,7 +5839,7 @@ "cimguiname": "ImGuiDockNode_IsSplitNode", "defaults": {}, "funcname": "IsSplitNode", - "location": "imgui_internal:1846", + "location": "imgui_internal:1914", "ov_cimguiname": "ImGuiDockNode_IsSplitNode", "ret": "bool", "signature": "()const", @@ -5758,7 +5864,7 @@ "cimguiname": "ImGuiDockNode_Rect", "defaults": {}, "funcname": "Rect", - "location": "imgui_internal:1849", + "location": "imgui_internal:1917", "nonUDT": 1, "ov_cimguiname": "ImGuiDockNode_Rect", "ret": "void", @@ -5784,7 +5890,7 @@ "cimguiname": "ImGuiDockNode_SetLocalFlags", "defaults": {}, "funcname": "SetLocalFlags", - "location": "imgui_internal:1851", + "location": "imgui_internal:1919", "ov_cimguiname": "ImGuiDockNode_SetLocalFlags", "ret": "void", "signature": "(ImGuiDockNodeFlags)", @@ -5805,7 +5911,7 @@ "cimguiname": "ImGuiDockNode_UpdateMergedFlags", "defaults": {}, "funcname": "UpdateMergedFlags", - "location": "imgui_internal:1852", + "location": "imgui_internal:1920", "ov_cimguiname": "ImGuiDockNode_UpdateMergedFlags", "ret": "void", "signature": "()", @@ -5825,7 +5931,7 @@ "cimguiname": "ImGuiDockNode_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:1839", + "location": "imgui_internal:1907", "ov_cimguiname": "ImGuiDockNode_destroy", "realdestructor": true, "ret": "void", @@ -5843,7 +5949,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiIDStackTool", - "location": "imgui_internal:2080", + "location": "imgui_internal:2159", "ov_cimguiname": "ImGuiIDStackTool_ImGuiIDStackTool", "signature": "()", "stname": "ImGuiIDStackTool" @@ -5887,7 +5993,7 @@ "comment": "// Queue a gain/loss of focus for the application (generally based on OS/platform focus of your window)", "defaults": {}, "funcname": "AddFocusEvent", - "location": "imgui:2250", + "location": "imgui:2408", "ov_cimguiname": "ImGuiIO_AddFocusEvent", "ret": "void", "signature": "(bool)", @@ -5913,7 +6019,7 @@ "comment": "// Queue a new character input", "defaults": {}, "funcname": "AddInputCharacter", - "location": "imgui:2251", + "location": "imgui:2409", "ov_cimguiname": "ImGuiIO_AddInputCharacter", "ret": "void", "signature": "(unsigned int)", @@ -5939,7 +6045,7 @@ "comment": "// Queue a new character input from a UTF-16 character, it can be a surrogate", "defaults": {}, "funcname": "AddInputCharacterUTF16", - "location": "imgui:2252", + "location": "imgui:2410", "ov_cimguiname": "ImGuiIO_AddInputCharacterUTF16", "ret": "void", "signature": "(ImWchar16)", @@ -5965,7 +6071,7 @@ "comment": "// Queue a new characters input from a UTF-8 string", "defaults": {}, "funcname": "AddInputCharactersUTF8", - "location": "imgui:2253", + "location": "imgui:2411", "ov_cimguiname": "ImGuiIO_AddInputCharactersUTF8", "ret": "void", "signature": "(const char*)", @@ -5999,7 +6105,7 @@ "comment": "// Queue a new key down/up event for analog values (e.g. ImGuiKey_Gamepad_ values). Dead-zones should be handled by the backend.", "defaults": {}, "funcname": "AddKeyAnalogEvent", - "location": "imgui:2244", + "location": "imgui:2402", "ov_cimguiname": "ImGuiIO_AddKeyAnalogEvent", "ret": "void", "signature": "(ImGuiKey,bool,float)", @@ -6029,7 +6135,7 @@ "comment": "// Queue a new key down/up event. Key should be \"translated\" (as in, generally ImGuiKey_A matches the key end-user would use to emit an 'A' character)", "defaults": {}, "funcname": "AddKeyEvent", - "location": "imgui:2243", + "location": "imgui:2401", "ov_cimguiname": "ImGuiIO_AddKeyEvent", "ret": "void", "signature": "(ImGuiKey,bool)", @@ -6059,7 +6165,7 @@ "comment": "// Queue a mouse button change", "defaults": {}, "funcname": "AddMouseButtonEvent", - "location": "imgui:2246", + "location": "imgui:2404", "ov_cimguiname": "ImGuiIO_AddMouseButtonEvent", "ret": "void", "signature": "(int,bool)", @@ -6089,7 +6195,7 @@ "comment": "// Queue a mouse position update. Use -FLT_MAX,-FLT_MAX to signify no mouse (e.g. app not focused and not hovered)", "defaults": {}, "funcname": "AddMousePosEvent", - "location": "imgui:2245", + "location": "imgui:2403", "ov_cimguiname": "ImGuiIO_AddMousePosEvent", "ret": "void", "signature": "(float,float)", @@ -6115,7 +6221,7 @@ "comment": "// Queue a mouse source change (Mouse/TouchScreen/Pen)", "defaults": {}, "funcname": "AddMouseSourceEvent", - "location": "imgui:2248", + "location": "imgui:2406", "ov_cimguiname": "ImGuiIO_AddMouseSourceEvent", "ret": "void", "signature": "(ImGuiMouseSource)", @@ -6141,7 +6247,7 @@ "comment": "// Queue a mouse hovered viewport. Requires backend to set ImGuiBackendFlags_HasMouseHoveredViewport to call this (for multi-viewport support).", "defaults": {}, "funcname": "AddMouseViewportEvent", - "location": "imgui:2249", + "location": "imgui:2407", "ov_cimguiname": "ImGuiIO_AddMouseViewportEvent", "ret": "void", "signature": "(ImGuiID)", @@ -6171,7 +6277,7 @@ "comment": "// Queue a mouse wheel update. wheel_y<0: scroll down, wheel_y>0: scroll up, wheel_x<0: scroll right, wheel_x>0: scroll left.", "defaults": {}, "funcname": "AddMouseWheelEvent", - "location": "imgui:2247", + "location": "imgui:2405", "ov_cimguiname": "ImGuiIO_AddMouseWheelEvent", "ret": "void", "signature": "(float,float)", @@ -6193,7 +6299,7 @@ "comment": "// Clear all incoming events.", "defaults": {}, "funcname": "ClearEventsQueue", - "location": "imgui:2257", + "location": "imgui:2415", "ov_cimguiname": "ImGuiIO_ClearEventsQueue", "ret": "void", "signature": "()", @@ -6212,16 +6318,38 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "ImGuiIO_ClearInputKeys", - "comment": "// Clear current keyboard/mouse/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons.", + "comment": "// Clear current keyboard/gamepad state + current frame text input buffer. Equivalent to releasing all keys/buttons.", "defaults": {}, "funcname": "ClearInputKeys", - "location": "imgui:2258", + "location": "imgui:2416", "ov_cimguiname": "ImGuiIO_ClearInputKeys", "ret": "void", "signature": "()", "stname": "ImGuiIO" } ], + "ImGuiIO_ClearInputMouse": [ + { + "args": "(ImGuiIO* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiIO*" + } + ], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiIO_ClearInputMouse", + "comment": "// Clear current mouse state.", + "defaults": {}, + "funcname": "ClearInputMouse", + "location": "imgui:2417", + "ov_cimguiname": "ImGuiIO_ClearInputMouse", + "ret": "void", + "signature": "()", + "stname": "ImGuiIO" + } + ], "ImGuiIO_ImGuiIO": [ { "args": "()", @@ -6232,7 +6360,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiIO", - "location": "imgui:2340", + "location": "imgui:2508", "ov_cimguiname": "ImGuiIO_ImGuiIO", "signature": "()", "stname": "ImGuiIO" @@ -6257,7 +6385,7 @@ "comment": "// Set master flag for accepting key/mouse/text events (default to true). Useful if you have native dialog boxes that are interrupting your application loop/refresh, and you want to disable events being queued while your app is frozen.", "defaults": {}, "funcname": "SetAppAcceptingEvents", - "location": "imgui:2256", + "location": "imgui:2414", "ov_cimguiname": "ImGuiIO_SetAppAcceptingEvents", "ret": "void", "signature": "(bool)", @@ -6297,7 +6425,7 @@ "native_legacy_index": "-1" }, "funcname": "SetKeyEventNativeData", - "location": "imgui:2255", + "location": "imgui:2413", "ov_cimguiname": "ImGuiIO_SetKeyEventNativeData", "ret": "void", "signature": "(ImGuiKey,int,int,int)", @@ -6333,7 +6461,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputEvent", - "location": "imgui_internal:1402", + "location": "imgui_internal:1427", "ov_cimguiname": "ImGuiInputEvent_ImGuiInputEvent", "signature": "()", "stname": "ImGuiInputEvent" @@ -6372,7 +6500,7 @@ "cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "defaults": {}, "funcname": "ClearSelection", - "location": "imgui:2382", + "location": "imgui:2552", "ov_cimguiname": "ImGuiInputTextCallbackData_ClearSelection", "ret": "void", "signature": "()", @@ -6401,7 +6529,7 @@ "cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "defaults": {}, "funcname": "DeleteChars", - "location": "imgui:2379", + "location": "imgui:2549", "ov_cimguiname": "ImGuiInputTextCallbackData_DeleteChars", "ret": "void", "signature": "(int,int)", @@ -6422,7 +6550,7 @@ "cimguiname": "ImGuiInputTextCallbackData_HasSelection", "defaults": {}, "funcname": "HasSelection", - "location": "imgui:2383", + "location": "imgui:2553", "ov_cimguiname": "ImGuiInputTextCallbackData_HasSelection", "ret": "bool", "signature": "()const", @@ -6439,7 +6567,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextCallbackData", - "location": "imgui:2378", + "location": "imgui:2548", "ov_cimguiname": "ImGuiInputTextCallbackData_ImGuiInputTextCallbackData", "signature": "()", "stname": "ImGuiInputTextCallbackData" @@ -6473,7 +6601,7 @@ "text_end": "NULL" }, "funcname": "InsertChars", - "location": "imgui:2380", + "location": "imgui:2550", "ov_cimguiname": "ImGuiInputTextCallbackData_InsertChars", "ret": "void", "signature": "(int,const char*,const char*)", @@ -6494,7 +6622,7 @@ "cimguiname": "ImGuiInputTextCallbackData_SelectAll", "defaults": {}, "funcname": "SelectAll", - "location": "imgui:2381", + "location": "imgui:2551", "ov_cimguiname": "ImGuiInputTextCallbackData_SelectAll", "ret": "void", "signature": "()", @@ -6534,7 +6662,7 @@ "cimguiname": "ImGuiInputTextDeactivatedState_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui_internal:1071", + "location": "imgui_internal:1104", "ov_cimguiname": "ImGuiInputTextDeactivatedState_ClearFreeMemory", "ret": "void", "signature": "()", @@ -6551,7 +6679,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextDeactivatedState", - "location": "imgui_internal:1070", + "location": "imgui_internal:1103", "ov_cimguiname": "ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState", "signature": "()", "stname": "ImGuiInputTextDeactivatedState" @@ -6590,7 +6718,7 @@ "cimguiname": "ImGuiInputTextState_ClearFreeMemory", "defaults": {}, "funcname": "ClearFreeMemory", - "location": "imgui_internal:1098", + "location": "imgui_internal:1143", "ov_cimguiname": "ImGuiInputTextState_ClearFreeMemory", "ret": "void", "signature": "()", @@ -6611,7 +6739,7 @@ "cimguiname": "ImGuiInputTextState_ClearSelection", "defaults": {}, "funcname": "ClearSelection", - "location": "imgui_internal:1107", + "location": "imgui_internal:1151", "ov_cimguiname": "ImGuiInputTextState_ClearSelection", "ret": "void", "signature": "()", @@ -6632,7 +6760,7 @@ "cimguiname": "ImGuiInputTextState_ClearText", "defaults": {}, "funcname": "ClearText", - "location": "imgui_internal:1097", + "location": "imgui_internal:1142", "ov_cimguiname": "ImGuiInputTextState_ClearText", "ret": "void", "signature": "()", @@ -6651,10 +6779,9 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "ImGuiInputTextState_CursorAnimReset", - "comment": "// After a user-input the cursor stays on for a while without blinking", "defaults": {}, "funcname": "CursorAnimReset", - "location": "imgui_internal:1104", + "location": "imgui_internal:1148", "ov_cimguiname": "ImGuiInputTextState_CursorAnimReset", "ret": "void", "signature": "()", @@ -6675,7 +6802,7 @@ "cimguiname": "ImGuiInputTextState_CursorClamp", "defaults": {}, "funcname": "CursorClamp", - "location": "imgui_internal:1105", + "location": "imgui_internal:1149", "ov_cimguiname": "ImGuiInputTextState_CursorClamp", "ret": "void", "signature": "()", @@ -6696,34 +6823,13 @@ "cimguiname": "ImGuiInputTextState_GetCursorPos", "defaults": {}, "funcname": "GetCursorPos", - "location": "imgui_internal:1108", + "location": "imgui_internal:1152", "ov_cimguiname": "ImGuiInputTextState_GetCursorPos", "ret": "int", "signature": "()const", "stname": "ImGuiInputTextState" } ], - "ImGuiInputTextState_GetRedoAvailCount": [ - { - "args": "(ImGuiInputTextState* self)", - "argsT": [ - { - "name": "self", - "type": "ImGuiInputTextState*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "ImGuiInputTextState_GetRedoAvailCount", - "defaults": {}, - "funcname": "GetRedoAvailCount", - "location": "imgui_internal:1100", - "ov_cimguiname": "ImGuiInputTextState_GetRedoAvailCount", - "ret": "int", - "signature": "()const", - "stname": "ImGuiInputTextState" - } - ], "ImGuiInputTextState_GetSelectionEnd": [ { "args": "(ImGuiInputTextState* self)", @@ -6738,7 +6844,7 @@ "cimguiname": "ImGuiInputTextState_GetSelectionEnd", "defaults": {}, "funcname": "GetSelectionEnd", - "location": "imgui_internal:1110", + "location": "imgui_internal:1154", "ov_cimguiname": "ImGuiInputTextState_GetSelectionEnd", "ret": "int", "signature": "()const", @@ -6759,34 +6865,13 @@ "cimguiname": "ImGuiInputTextState_GetSelectionStart", "defaults": {}, "funcname": "GetSelectionStart", - "location": "imgui_internal:1109", + "location": "imgui_internal:1153", "ov_cimguiname": "ImGuiInputTextState_GetSelectionStart", "ret": "int", "signature": "()const", "stname": "ImGuiInputTextState" } ], - "ImGuiInputTextState_GetUndoAvailCount": [ - { - "args": "(ImGuiInputTextState* self)", - "argsT": [ - { - "name": "self", - "type": "ImGuiInputTextState*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "ImGuiInputTextState_GetUndoAvailCount", - "defaults": {}, - "funcname": "GetUndoAvailCount", - "location": "imgui_internal:1099", - "ov_cimguiname": "ImGuiInputTextState_GetUndoAvailCount", - "ret": "int", - "signature": "()const", - "stname": "ImGuiInputTextState" - } - ], "ImGuiInputTextState_HasSelection": [ { "args": "(ImGuiInputTextState* self)", @@ -6801,7 +6886,7 @@ "cimguiname": "ImGuiInputTextState_HasSelection", "defaults": {}, "funcname": "HasSelection", - "location": "imgui_internal:1106", + "location": "imgui_internal:1150", "ov_cimguiname": "ImGuiInputTextState_HasSelection", "ret": "bool", "signature": "()const", @@ -6818,12 +6903,37 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiInputTextState", - "location": "imgui_internal:1096", + "location": "imgui_internal:1140", "ov_cimguiname": "ImGuiInputTextState_ImGuiInputTextState", "signature": "()", "stname": "ImGuiInputTextState" } ], + "ImGuiInputTextState_OnCharPressed": [ + { + "args": "(ImGuiInputTextState* self,unsigned int c)", + "argsT": [ + { + "name": "self", + "type": "ImGuiInputTextState*" + }, + { + "name": "c", + "type": "unsigned int" + } + ], + "argsoriginal": "(unsigned int c)", + "call_args": "(c)", + "cimguiname": "ImGuiInputTextState_OnCharPressed", + "defaults": {}, + "funcname": "OnCharPressed", + "location": "imgui_internal:1145", + "ov_cimguiname": "ImGuiInputTextState_OnCharPressed", + "ret": "void", + "signature": "(unsigned int)", + "stname": "ImGuiInputTextState" + } + ], "ImGuiInputTextState_OnKeyPressed": [ { "args": "(ImGuiInputTextState* self,int key)", @@ -6843,7 +6953,7 @@ "comment": "// Cannot be inline because we call in code in stb_textedit.h implementation", "defaults": {}, "funcname": "OnKeyPressed", - "location": "imgui_internal:1101", + "location": "imgui_internal:1144", "ov_cimguiname": "ImGuiInputTextState_OnKeyPressed", "ret": "void", "signature": "(int)", @@ -6864,7 +6974,7 @@ "cimguiname": "ImGuiInputTextState_ReloadUserBufAndKeepSelection", "defaults": {}, "funcname": "ReloadUserBufAndKeepSelection", - "location": "imgui_internal:1119", + "location": "imgui_internal:1163", "ov_cimguiname": "ImGuiInputTextState_ReloadUserBufAndKeepSelection", "ret": "void", "signature": "()", @@ -6885,7 +6995,7 @@ "cimguiname": "ImGuiInputTextState_ReloadUserBufAndMoveToEnd", "defaults": {}, "funcname": "ReloadUserBufAndMoveToEnd", - "location": "imgui_internal:1120", + "location": "imgui_internal:1164", "ov_cimguiname": "ImGuiInputTextState_ReloadUserBufAndMoveToEnd", "ret": "void", "signature": "()", @@ -6906,7 +7016,7 @@ "cimguiname": "ImGuiInputTextState_ReloadUserBufAndSelectAll", "defaults": {}, "funcname": "ReloadUserBufAndSelectAll", - "location": "imgui_internal:1118", + "location": "imgui_internal:1162", "ov_cimguiname": "ImGuiInputTextState_ReloadUserBufAndSelectAll", "ret": "void", "signature": "()", @@ -6927,7 +7037,7 @@ "cimguiname": "ImGuiInputTextState_SelectAll", "defaults": {}, "funcname": "SelectAll", - "location": "imgui_internal:1111", + "location": "imgui_internal:1155", "ov_cimguiname": "ImGuiInputTextState_SelectAll", "ret": "void", "signature": "()", @@ -6947,7 +7057,9 @@ "cimguiname": "ImGuiInputTextState_destroy", "defaults": {}, "destructor": true, + "location": "imgui_internal:1141", "ov_cimguiname": "ImGuiInputTextState_destroy", + "realdestructor": true, "ret": "void", "signature": "(ImGuiInputTextState*)", "stname": "ImGuiInputTextState" @@ -6963,7 +7075,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiKeyOwnerData", - "location": "imgui_internal:1445", + "location": "imgui_internal:1471", "ov_cimguiname": "ImGuiKeyOwnerData_ImGuiKeyOwnerData", "signature": "()", "stname": "ImGuiKeyOwnerData" @@ -6998,7 +7110,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiKeyRoutingData", - "location": "imgui_internal:1421", + "location": "imgui_internal:1447", "ov_cimguiname": "ImGuiKeyRoutingData_ImGuiKeyRoutingData", "signature": "()", "stname": "ImGuiKeyRoutingData" @@ -7037,7 +7149,7 @@ "cimguiname": "ImGuiKeyRoutingTable_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:1433", + "location": "imgui_internal:1459", "ov_cimguiname": "ImGuiKeyRoutingTable_Clear", "ret": "void", "signature": "()", @@ -7054,7 +7166,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiKeyRoutingTable", - "location": "imgui_internal:1432", + "location": "imgui_internal:1458", "ov_cimguiname": "ImGuiKeyRoutingTable_ImGuiKeyRoutingTable", "signature": "()", "stname": "ImGuiKeyRoutingTable" @@ -7089,7 +7201,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiLastItemData", - "location": "imgui_internal:1209", + "location": "imgui_internal:1266", "ov_cimguiname": "ImGuiLastItemData_ImGuiLastItemData", "signature": "()", "stname": "ImGuiLastItemData" @@ -7258,7 +7370,7 @@ "items_height": "-1.0f" }, "funcname": "Begin", - "location": "imgui:2592", + "location": "imgui:2768", "ov_cimguiname": "ImGuiListClipper_Begin", "ret": "void", "signature": "(int,float)", @@ -7280,7 +7392,7 @@ "comment": "// Automatically called on the last call of Step() that returns false.", "defaults": {}, "funcname": "End", - "location": "imgui:2593", + "location": "imgui:2769", "ov_cimguiname": "ImGuiListClipper_End", "ret": "void", "signature": "()", @@ -7297,7 +7409,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiListClipper", - "location": "imgui:2590", + "location": "imgui:2766", "ov_cimguiname": "ImGuiListClipper_ImGuiListClipper", "signature": "()", "stname": "ImGuiListClipper" @@ -7321,7 +7433,7 @@ "cimguiname": "ImGuiListClipper_IncludeItemByIndex", "defaults": {}, "funcname": "IncludeItemByIndex", - "location": "imgui:2598", + "location": "imgui:2774", "ov_cimguiname": "ImGuiListClipper_IncludeItemByIndex", "ret": "void", "signature": "(int)", @@ -7351,13 +7463,38 @@ "comment": "// item_end is exclusive e.g. use (42, 42+1) to make item 42 never clipped.", "defaults": {}, "funcname": "IncludeItemsByIndex", - "location": "imgui:2599", + "location": "imgui:2775", "ov_cimguiname": "ImGuiListClipper_IncludeItemsByIndex", "ret": "void", "signature": "(int,int)", "stname": "ImGuiListClipper" } ], + "ImGuiListClipper_SeekCursorForItem": [ + { + "args": "(ImGuiListClipper* self,int item_index)", + "argsT": [ + { + "name": "self", + "type": "ImGuiListClipper*" + }, + { + "name": "item_index", + "type": "int" + } + ], + "argsoriginal": "(int item_index)", + "call_args": "(item_index)", + "cimguiname": "ImGuiListClipper_SeekCursorForItem", + "defaults": {}, + "funcname": "SeekCursorForItem", + "location": "imgui:2780", + "ov_cimguiname": "ImGuiListClipper_SeekCursorForItem", + "ret": "void", + "signature": "(int)", + "stname": "ImGuiListClipper" + } + ], "ImGuiListClipper_Step": [ { "args": "(ImGuiListClipper* self)", @@ -7373,7 +7510,7 @@ "comment": "// Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items.", "defaults": {}, "funcname": "Step", - "location": "imgui:2594", + "location": "imgui:2770", "ov_cimguiname": "ImGuiListClipper_Step", "ret": "bool", "signature": "()", @@ -7393,7 +7530,7 @@ "cimguiname": "ImGuiListClipper_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2591", + "location": "imgui:2767", "ov_cimguiname": "ImGuiListClipper_destroy", "realdestructor": true, "ret": "void", @@ -7419,7 +7556,7 @@ "cimguiname": "ImGuiMenuColumns_CalcNextTotalWidth", "defaults": {}, "funcname": "CalcNextTotalWidth", - "location": "imgui_internal:1061", + "location": "imgui_internal:1094", "ov_cimguiname": "ImGuiMenuColumns_CalcNextTotalWidth", "ret": "void", "signature": "(bool)", @@ -7456,7 +7593,7 @@ "cimguiname": "ImGuiMenuColumns_DeclColumns", "defaults": {}, "funcname": "DeclColumns", - "location": "imgui_internal:1060", + "location": "imgui_internal:1093", "ov_cimguiname": "ImGuiMenuColumns_DeclColumns", "ret": "float", "signature": "(float,float,float,float)", @@ -7473,7 +7610,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiMenuColumns", - "location": "imgui_internal:1058", + "location": "imgui_internal:1091", "ov_cimguiname": "ImGuiMenuColumns_ImGuiMenuColumns", "signature": "()", "stname": "ImGuiMenuColumns" @@ -7501,7 +7638,7 @@ "cimguiname": "ImGuiMenuColumns_Update", "defaults": {}, "funcname": "Update", - "location": "imgui_internal:1059", + "location": "imgui_internal:1092", "ov_cimguiname": "ImGuiMenuColumns_Update", "ret": "void", "signature": "(float,bool)", @@ -7527,6 +7664,119 @@ "stname": "ImGuiMenuColumns" } ], + "ImGuiMultiSelectState_ImGuiMultiSelectState": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiMultiSelectState_ImGuiMultiSelectState", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiMultiSelectState", + "location": "imgui_internal:1801", + "ov_cimguiname": "ImGuiMultiSelectState_ImGuiMultiSelectState", + "signature": "()", + "stname": "ImGuiMultiSelectState" + } + ], + "ImGuiMultiSelectState_destroy": [ + { + "args": "(ImGuiMultiSelectState* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiMultiSelectState*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiMultiSelectState_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiMultiSelectState_destroy", + "ret": "void", + "signature": "(ImGuiMultiSelectState*)", + "stname": "ImGuiMultiSelectState" + } + ], + "ImGuiMultiSelectTempData_Clear": [ + { + "args": "(ImGuiMultiSelectTempData* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiMultiSelectTempData*" + } + ], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiMultiSelectTempData_Clear", + "comment": "// Zero-clear except IO as we preserve IO.Requests[] buffer allocation.", + "defaults": {}, + "funcname": "Clear", + "location": "imgui_internal:1785", + "ov_cimguiname": "ImGuiMultiSelectTempData_Clear", + "ret": "void", + "signature": "()", + "stname": "ImGuiMultiSelectTempData" + } + ], + "ImGuiMultiSelectTempData_ClearIO": [ + { + "args": "(ImGuiMultiSelectTempData* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiMultiSelectTempData*" + } + ], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiMultiSelectTempData_ClearIO", + "defaults": {}, + "funcname": "ClearIO", + "location": "imgui_internal:1786", + "ov_cimguiname": "ImGuiMultiSelectTempData_ClearIO", + "ret": "void", + "signature": "()", + "stname": "ImGuiMultiSelectTempData" + } + ], + "ImGuiMultiSelectTempData_ImGuiMultiSelectTempData": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiMultiSelectTempData_ImGuiMultiSelectTempData", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiMultiSelectTempData", + "location": "imgui_internal:1784", + "ov_cimguiname": "ImGuiMultiSelectTempData_ImGuiMultiSelectTempData", + "signature": "()", + "stname": "ImGuiMultiSelectTempData" + } + ], + "ImGuiMultiSelectTempData_destroy": [ + { + "args": "(ImGuiMultiSelectTempData* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiMultiSelectTempData*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiMultiSelectTempData_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiMultiSelectTempData_destroy", + "ret": "void", + "signature": "(ImGuiMultiSelectTempData*)", + "stname": "ImGuiMultiSelectTempData" + } + ], "ImGuiNavItemData_Clear": [ { "args": "(ImGuiNavItemData* self)", @@ -7541,7 +7791,7 @@ "cimguiname": "ImGuiNavItemData_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:1624", + "location": "imgui_internal:1626", "ov_cimguiname": "ImGuiNavItemData_Clear", "ret": "void", "signature": "()", @@ -7558,7 +7808,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNavItemData", - "location": "imgui_internal:1623", + "location": "imgui_internal:1625", "ov_cimguiname": "ImGuiNavItemData_ImGuiNavItemData", "signature": "()", "stname": "ImGuiNavItemData" @@ -7598,7 +7848,7 @@ "comment": "// Also cleared manually by ItemAdd()!", "defaults": {}, "funcname": "ClearFlags", - "location": "imgui_internal:1194", + "location": "imgui_internal:1250", "ov_cimguiname": "ImGuiNextItemData_ClearFlags", "ret": "void", "signature": "()", @@ -7615,7 +7865,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNextItemData", - "location": "imgui_internal:1193", + "location": "imgui_internal:1249", "ov_cimguiname": "ImGuiNextItemData_ImGuiNextItemData", "signature": "()", "stname": "ImGuiNextItemData" @@ -7654,7 +7904,7 @@ "cimguiname": "ImGuiNextWindowData_ClearFlags", "defaults": {}, "funcname": "ClearFlags", - "location": "imgui_internal:1167", + "location": "imgui_internal:1221", "ov_cimguiname": "ImGuiNextWindowData_ClearFlags", "ret": "void", "signature": "()", @@ -7671,7 +7921,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiNextWindowData", - "location": "imgui_internal:1166", + "location": "imgui_internal:1220", "ov_cimguiname": "ImGuiNextWindowData_ImGuiNextWindowData", "signature": "()", "stname": "ImGuiNextWindowData" @@ -7706,7 +7956,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOldColumnData", - "location": "imgui_internal:1702", + "location": "imgui_internal:1705", "ov_cimguiname": "ImGuiOldColumnData_ImGuiOldColumnData", "signature": "()", "stname": "ImGuiOldColumnData" @@ -7741,7 +7991,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOldColumns", - "location": "imgui_internal:1723", + "location": "imgui_internal:1726", "ov_cimguiname": "ImGuiOldColumns_ImGuiOldColumns", "signature": "()", "stname": "ImGuiOldColumns" @@ -7776,7 +8026,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiOnceUponAFrame", - "location": "imgui:2456", + "location": "imgui:2626", "ov_cimguiname": "ImGuiOnceUponAFrame_ImGuiOnceUponAFrame", "signature": "()", "stname": "ImGuiOnceUponAFrame" @@ -7815,7 +8065,7 @@ "cimguiname": "ImGuiPayload_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2434", + "location": "imgui:2604", "ov_cimguiname": "ImGuiPayload_Clear", "ret": "void", "signature": "()", @@ -7832,7 +8082,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPayload", - "location": "imgui:2433", + "location": "imgui:2603", "ov_cimguiname": "ImGuiPayload_ImGuiPayload", "signature": "()", "stname": "ImGuiPayload" @@ -7856,7 +8106,7 @@ "cimguiname": "ImGuiPayload_IsDataType", "defaults": {}, "funcname": "IsDataType", - "location": "imgui:2435", + "location": "imgui:2605", "ov_cimguiname": "ImGuiPayload_IsDataType", "ret": "bool", "signature": "(const char*)const", @@ -7877,7 +8127,7 @@ "cimguiname": "ImGuiPayload_IsDelivery", "defaults": {}, "funcname": "IsDelivery", - "location": "imgui:2437", + "location": "imgui:2607", "ov_cimguiname": "ImGuiPayload_IsDelivery", "ret": "bool", "signature": "()const", @@ -7898,7 +8148,7 @@ "cimguiname": "ImGuiPayload_IsPreview", "defaults": {}, "funcname": "IsPreview", - "location": "imgui:2436", + "location": "imgui:2606", "ov_cimguiname": "ImGuiPayload_IsPreview", "ret": "bool", "signature": "()const", @@ -7931,11 +8181,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "ImGuiPlatformIO_ImGuiPlatformIO", - "comment": "// Zero clear", "constructor": true, "defaults": {}, "funcname": "ImGuiPlatformIO", - "location": "imgui:3400", + "location": "imgui:3684", "ov_cimguiname": "ImGuiPlatformIO_ImGuiPlatformIO", "signature": "()", "stname": "ImGuiPlatformIO" @@ -7970,7 +8219,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPlatformImeData", - "location": "imgui:3421", + "location": "imgui:3787", "ov_cimguiname": "ImGuiPlatformImeData_ImGuiPlatformImeData", "signature": "()", "stname": "ImGuiPlatformImeData" @@ -8005,7 +8254,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPlatformMonitor", - "location": "imgui:3411", + "location": "imgui:3777", "ov_cimguiname": "ImGuiPlatformMonitor_ImGuiPlatformMonitor", "signature": "()", "stname": "ImGuiPlatformMonitor" @@ -8040,7 +8289,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPopupData", - "location": "imgui_internal:1320", + "location": "imgui_internal:1346", "ov_cimguiname": "ImGuiPopupData_ImGuiPopupData", "signature": "()", "stname": "ImGuiPopupData" @@ -8080,7 +8329,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPtrOrIndex", - "location": "imgui_internal:1259", + "location": "imgui_internal:1319", "ov_cimguiname": "ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr", "signature": "(void*)", "stname": "ImGuiPtrOrIndex" @@ -8099,7 +8348,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiPtrOrIndex", - "location": "imgui_internal:1260", + "location": "imgui_internal:1320", "ov_cimguiname": "ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int", "signature": "(int)", "stname": "ImGuiPtrOrIndex" @@ -8124,6 +8373,289 @@ "stname": "ImGuiPtrOrIndex" } ], + "ImGuiSelectionBasicStorage_ApplyRequests": [ + { + "args": "(ImGuiSelectionBasicStorage* self,ImGuiMultiSelectIO* ms_io)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "ms_io", + "type": "ImGuiMultiSelectIO*" + } + ], + "argsoriginal": "(ImGuiMultiSelectIO* ms_io)", + "call_args": "(ms_io)", + "cimguiname": "ImGuiSelectionBasicStorage_ApplyRequests", + "comment": "// Apply selection requests coming from BeginMultiSelect() and EndMultiSelect() functions. It uses 'items_count' passed to BeginMultiSelect()", + "defaults": {}, + "funcname": "ApplyRequests", + "location": "imgui:2988", + "ov_cimguiname": "ImGuiSelectionBasicStorage_ApplyRequests", + "ret": "void", + "signature": "(ImGuiMultiSelectIO*)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_Clear": [ + { + "args": "(ImGuiSelectionBasicStorage* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + } + ], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiSelectionBasicStorage_Clear", + "comment": "// Clear selection", + "defaults": {}, + "funcname": "Clear", + "location": "imgui:2990", + "ov_cimguiname": "ImGuiSelectionBasicStorage_Clear", + "ret": "void", + "signature": "()", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_Contains": [ + { + "args": "(ImGuiSelectionBasicStorage* self,ImGuiID id)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiID id)", + "call_args": "(id)", + "cimguiname": "ImGuiSelectionBasicStorage_Contains", + "comment": "// Query if an item id is in selection.", + "defaults": {}, + "funcname": "Contains", + "location": "imgui:2989", + "ov_cimguiname": "ImGuiSelectionBasicStorage_Contains", + "ret": "bool", + "signature": "(ImGuiID)const", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_GetNextSelectedItem": [ + { + "args": "(ImGuiSelectionBasicStorage* self,void** opaque_it,ImGuiID* out_id)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "opaque_it", + "type": "void**" + }, + { + "name": "out_id", + "type": "ImGuiID*" + } + ], + "argsoriginal": "(void** opaque_it,ImGuiID* out_id)", + "call_args": "(opaque_it,out_id)", + "cimguiname": "ImGuiSelectionBasicStorage_GetNextSelectedItem", + "comment": "// Iterate selection with 'void* it = NULL; ImGuiId id; while (selection.GetNextSelectedItem(&it, &id)) ... '", + "defaults": {}, + "funcname": "GetNextSelectedItem", + "location": "imgui:2993", + "ov_cimguiname": "ImGuiSelectionBasicStorage_GetNextSelectedItem", + "ret": "bool", + "signature": "(void**,ImGuiID*)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_GetStorageIdFromIndex": [ + { + "args": "(ImGuiSelectionBasicStorage* self,int idx)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "idx", + "type": "int" + } + ], + "argsoriginal": "(int idx)", + "call_args": "(idx)", + "cimguiname": "ImGuiSelectionBasicStorage_GetStorageIdFromIndex", + "comment": "// Convert index to item id based on provided adapter.", + "defaults": {}, + "funcname": "GetStorageIdFromIndex", + "location": "imgui:2994", + "ov_cimguiname": "ImGuiSelectionBasicStorage_GetStorageIdFromIndex", + "ret": "ImGuiID", + "signature": "(int)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiSelectionBasicStorage", + "location": "imgui:2987", + "ov_cimguiname": "ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage", + "signature": "()", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_SetItemSelected": [ + { + "args": "(ImGuiSelectionBasicStorage* self,ImGuiID id,bool selected)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "id", + "type": "ImGuiID" + }, + { + "name": "selected", + "type": "bool" + } + ], + "argsoriginal": "(ImGuiID id,bool selected)", + "call_args": "(id,selected)", + "cimguiname": "ImGuiSelectionBasicStorage_SetItemSelected", + "comment": "// Add/remove an item from selection (generally done by ApplyRequests() function)", + "defaults": {}, + "funcname": "SetItemSelected", + "location": "imgui:2992", + "ov_cimguiname": "ImGuiSelectionBasicStorage_SetItemSelected", + "ret": "void", + "signature": "(ImGuiID,bool)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_Swap": [ + { + "args": "(ImGuiSelectionBasicStorage* self,ImGuiSelectionBasicStorage* r)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + }, + { + "name": "r", + "reftoptr": true, + "type": "ImGuiSelectionBasicStorage*" + } + ], + "argsoriginal": "(ImGuiSelectionBasicStorage& r)", + "call_args": "(*r)", + "cimguiname": "ImGuiSelectionBasicStorage_Swap", + "comment": "// Swap two selections", + "defaults": {}, + "funcname": "Swap", + "location": "imgui:2991", + "ov_cimguiname": "ImGuiSelectionBasicStorage_Swap", + "ret": "void", + "signature": "(ImGuiSelectionBasicStorage*)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionBasicStorage_destroy": [ + { + "args": "(ImGuiSelectionBasicStorage* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionBasicStorage*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiSelectionBasicStorage_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiSelectionBasicStorage_destroy", + "ret": "void", + "signature": "(ImGuiSelectionBasicStorage*)", + "stname": "ImGuiSelectionBasicStorage" + } + ], + "ImGuiSelectionExternalStorage_ApplyRequests": [ + { + "args": "(ImGuiSelectionExternalStorage* self,ImGuiMultiSelectIO* ms_io)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionExternalStorage*" + }, + { + "name": "ms_io", + "type": "ImGuiMultiSelectIO*" + } + ], + "argsoriginal": "(ImGuiMultiSelectIO* ms_io)", + "call_args": "(ms_io)", + "cimguiname": "ImGuiSelectionExternalStorage_ApplyRequests", + "comment": "// Apply selection requests by using AdapterSetItemSelected() calls", + "defaults": {}, + "funcname": "ApplyRequests", + "location": "imgui:3007", + "ov_cimguiname": "ImGuiSelectionExternalStorage_ApplyRequests", + "ret": "void", + "signature": "(ImGuiMultiSelectIO*)", + "stname": "ImGuiSelectionExternalStorage" + } + ], + "ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage", + "constructor": true, + "defaults": {}, + "funcname": "ImGuiSelectionExternalStorage", + "location": "imgui:3006", + "ov_cimguiname": "ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage", + "signature": "()", + "stname": "ImGuiSelectionExternalStorage" + } + ], + "ImGuiSelectionExternalStorage_destroy": [ + { + "args": "(ImGuiSelectionExternalStorage* self)", + "argsT": [ + { + "name": "self", + "type": "ImGuiSelectionExternalStorage*" + } + ], + "call_args": "(self)", + "cimguiname": "ImGuiSelectionExternalStorage_destroy", + "defaults": {}, + "destructor": true, + "ov_cimguiname": "ImGuiSelectionExternalStorage_destroy", + "ret": "void", + "signature": "(ImGuiSelectionExternalStorage*)", + "stname": "ImGuiSelectionExternalStorage" + } + ], "ImGuiSettingsHandler_ImGuiSettingsHandler": [ { "args": "()", @@ -8134,7 +8666,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiSettingsHandler", - "location": "imgui_internal:1969", + "location": "imgui_internal:2046", "ov_cimguiname": "ImGuiSettingsHandler_ImGuiSettingsHandler", "signature": "()", "stname": "ImGuiSettingsHandler" @@ -8169,7 +8701,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStackLevelInfo", - "location": "imgui_internal:2067", + "location": "imgui_internal:2146", "ov_cimguiname": "ImGuiStackLevelInfo_ImGuiStackLevelInfo", "signature": "()", "stname": "ImGuiStackLevelInfo" @@ -8212,7 +8744,7 @@ "cimguiname": "ImGuiStackSizes_CompareWithContextState", "defaults": {}, "funcname": "CompareWithContextState", - "location": "imgui_internal:1236", + "location": "imgui_internal:1295", "ov_cimguiname": "ImGuiStackSizes_CompareWithContextState", "ret": "void", "signature": "(ImGuiContext*)", @@ -8229,7 +8761,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStackSizes", - "location": "imgui_internal:1234", + "location": "imgui_internal:1293", "ov_cimguiname": "ImGuiStackSizes_ImGuiStackSizes", "signature": "()", "stname": "ImGuiStackSizes" @@ -8253,7 +8785,7 @@ "cimguiname": "ImGuiStackSizes_SetToContextState", "defaults": {}, "funcname": "SetToContextState", - "location": "imgui_internal:1235", + "location": "imgui_internal:1294", "ov_cimguiname": "ImGuiStackSizes_SetToContextState", "ret": "void", "signature": "(ImGuiContext*)", @@ -8298,7 +8830,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2523", + "location": "imgui:2683", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePair_Int", "signature": "(ImGuiID,int)", "stname": "ImGuiStoragePair" @@ -8321,7 +8853,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2524", + "location": "imgui:2684", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePair_Float", "signature": "(ImGuiID,float)", "stname": "ImGuiStoragePair" @@ -8344,7 +8876,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStoragePair", - "location": "imgui:2525", + "location": "imgui:2685", "ov_cimguiname": "ImGuiStoragePair_ImGuiStoragePair_Ptr", "signature": "(ImGuiID,void*)", "stname": "ImGuiStoragePair" @@ -8383,7 +8915,7 @@ "cimguiname": "ImGuiStorage_BuildSortByKey", "defaults": {}, "funcname": "BuildSortByKey", - "location": "imgui:2553", + "location": "imgui:2724", "ov_cimguiname": "ImGuiStorage_BuildSortByKey", "ret": "void", "signature": "()", @@ -8404,7 +8936,7 @@ "cimguiname": "ImGuiStorage_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2533", + "location": "imgui:2704", "ov_cimguiname": "ImGuiStorage_Clear", "ret": "void", "signature": "()", @@ -8435,7 +8967,7 @@ "default_val": "false" }, "funcname": "GetBool", - "location": "imgui:2536", + "location": "imgui:2707", "ov_cimguiname": "ImGuiStorage_GetBool", "ret": "bool", "signature": "(ImGuiID,bool)const", @@ -8466,7 +8998,7 @@ "default_val": "false" }, "funcname": "GetBoolRef", - "location": "imgui:2548", + "location": "imgui:2719", "ov_cimguiname": "ImGuiStorage_GetBoolRef", "ret": "bool*", "signature": "(ImGuiID,bool)", @@ -8497,7 +9029,7 @@ "default_val": "0.0f" }, "funcname": "GetFloat", - "location": "imgui:2538", + "location": "imgui:2709", "ov_cimguiname": "ImGuiStorage_GetFloat", "ret": "float", "signature": "(ImGuiID,float)const", @@ -8528,7 +9060,7 @@ "default_val": "0.0f" }, "funcname": "GetFloatRef", - "location": "imgui:2549", + "location": "imgui:2720", "ov_cimguiname": "ImGuiStorage_GetFloatRef", "ret": "float*", "signature": "(ImGuiID,float)", @@ -8559,7 +9091,7 @@ "default_val": "0" }, "funcname": "GetInt", - "location": "imgui:2534", + "location": "imgui:2705", "ov_cimguiname": "ImGuiStorage_GetInt", "ret": "int", "signature": "(ImGuiID,int)const", @@ -8590,7 +9122,7 @@ "default_val": "0" }, "funcname": "GetIntRef", - "location": "imgui:2547", + "location": "imgui:2718", "ov_cimguiname": "ImGuiStorage_GetIntRef", "ret": "int*", "signature": "(ImGuiID,int)", @@ -8616,7 +9148,7 @@ "comment": "// default_val is NULL", "defaults": {}, "funcname": "GetVoidPtr", - "location": "imgui:2540", + "location": "imgui:2711", "ov_cimguiname": "ImGuiStorage_GetVoidPtr", "ret": "void*", "signature": "(ImGuiID)const", @@ -8647,7 +9179,7 @@ "default_val": "NULL" }, "funcname": "GetVoidPtrRef", - "location": "imgui:2550", + "location": "imgui:2721", "ov_cimguiname": "ImGuiStorage_GetVoidPtrRef", "ret": "void**", "signature": "(ImGuiID,void*)", @@ -8672,7 +9204,7 @@ "cimguiname": "ImGuiStorage_SetAllInt", "defaults": {}, "funcname": "SetAllInt", - "location": "imgui:2555", + "location": "imgui:2726", "ov_cimguiname": "ImGuiStorage_SetAllInt", "ret": "void", "signature": "(int)", @@ -8701,7 +9233,7 @@ "cimguiname": "ImGuiStorage_SetBool", "defaults": {}, "funcname": "SetBool", - "location": "imgui:2537", + "location": "imgui:2708", "ov_cimguiname": "ImGuiStorage_SetBool", "ret": "void", "signature": "(ImGuiID,bool)", @@ -8730,7 +9262,7 @@ "cimguiname": "ImGuiStorage_SetFloat", "defaults": {}, "funcname": "SetFloat", - "location": "imgui:2539", + "location": "imgui:2710", "ov_cimguiname": "ImGuiStorage_SetFloat", "ret": "void", "signature": "(ImGuiID,float)", @@ -8759,7 +9291,7 @@ "cimguiname": "ImGuiStorage_SetInt", "defaults": {}, "funcname": "SetInt", - "location": "imgui:2535", + "location": "imgui:2706", "ov_cimguiname": "ImGuiStorage_SetInt", "ret": "void", "signature": "(ImGuiID,int)", @@ -8788,7 +9320,7 @@ "cimguiname": "ImGuiStorage_SetVoidPtr", "defaults": {}, "funcname": "SetVoidPtr", - "location": "imgui:2541", + "location": "imgui:2712", "ov_cimguiname": "ImGuiStorage_SetVoidPtr", "ret": "void", "signature": "(ImGuiID,void*)", @@ -8814,7 +9346,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:1010", + "location": "imgui_internal:1043", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleMod_Int", "signature": "(ImGuiStyleVar,int)", "stname": "ImGuiStyleMod" @@ -8837,7 +9369,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:1011", + "location": "imgui_internal:1044", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleMod_Float", "signature": "(ImGuiStyleVar,float)", "stname": "ImGuiStyleMod" @@ -8860,7 +9392,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyleMod", - "location": "imgui_internal:1012", + "location": "imgui_internal:1045", "ov_cimguiname": "ImGuiStyleMod_ImGuiStyleMod_Vec2", "signature": "(ImGuiStyleVar,ImVec2)", "stname": "ImGuiStyleMod" @@ -8895,7 +9427,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiStyle", - "location": "imgui:2115", + "location": "imgui:2272", "ov_cimguiname": "ImGuiStyle_ImGuiStyle", "signature": "()", "stname": "ImGuiStyle" @@ -8919,7 +9451,7 @@ "cimguiname": "ImGuiStyle_ScaleAllSizes", "defaults": {}, "funcname": "ScaleAllSizes", - "location": "imgui:2116", + "location": "imgui:2273", "ov_cimguiname": "ImGuiStyle_ScaleAllSizes", "ret": "void", "signature": "(float)", @@ -8955,7 +9487,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTabBar", - "location": "imgui_internal:2939", + "location": "imgui_internal:3049", "ov_cimguiname": "ImGuiTabBar_ImGuiTabBar", "signature": "()", "stname": "ImGuiTabBar" @@ -8990,7 +9522,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTabItem", - "location": "imgui_internal:2899", + "location": "imgui_internal:3009", "ov_cimguiname": "ImGuiTabItem_ImGuiTabItem", "signature": "()", "stname": "ImGuiTabItem" @@ -9025,7 +9557,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumnSettings", - "location": "imgui_internal:3194", + "location": "imgui_internal:3317", "ov_cimguiname": "ImGuiTableColumnSettings_ImGuiTableColumnSettings", "signature": "()", "stname": "ImGuiTableColumnSettings" @@ -9060,7 +9592,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumnSortSpecs", - "location": "imgui:1950", + "location": "imgui:2095", "ov_cimguiname": "ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs", "signature": "()", "stname": "ImGuiTableColumnSortSpecs" @@ -9095,7 +9627,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableColumn", - "location": "imgui_internal:3001", + "location": "imgui_internal:3112", "ov_cimguiname": "ImGuiTableColumn_ImGuiTableColumn", "signature": "()", "stname": "ImGuiTableColumn" @@ -9130,7 +9662,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableInstanceData", - "location": "imgui_internal:3033", + "location": "imgui_internal:3155", "ov_cimguiname": "ImGuiTableInstanceData_ImGuiTableInstanceData", "signature": "()", "stname": "ImGuiTableInstanceData" @@ -9169,7 +9701,7 @@ "cimguiname": "ImGuiTableSettings_GetColumnSettings", "defaults": {}, "funcname": "GetColumnSettings", - "location": "imgui_internal:3217", + "location": "imgui_internal:3340", "ov_cimguiname": "ImGuiTableSettings_GetColumnSettings", "ret": "ImGuiTableColumnSettings*", "signature": "()", @@ -9186,7 +9718,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableSettings", - "location": "imgui_internal:3216", + "location": "imgui_internal:3339", "ov_cimguiname": "ImGuiTableSettings_ImGuiTableSettings", "signature": "()", "stname": "ImGuiTableSettings" @@ -9221,7 +9753,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableSortSpecs", - "location": "imgui:1939", + "location": "imgui:2084", "ov_cimguiname": "ImGuiTableSortSpecs_ImGuiTableSortSpecs", "signature": "()", "stname": "ImGuiTableSortSpecs" @@ -9256,7 +9788,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTableTempData", - "location": "imgui_internal:3179", + "location": "imgui_internal:3302", "ov_cimguiname": "ImGuiTableTempData_ImGuiTableTempData", "signature": "()", "stname": "ImGuiTableTempData" @@ -9291,7 +9823,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTable", - "location": "imgui_internal:3153", + "location": "imgui_internal:3274", "ov_cimguiname": "ImGuiTable_ImGuiTable", "signature": "()", "stname": "ImGuiTable" @@ -9310,7 +9842,7 @@ "cimguiname": "ImGuiTable_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:3154", + "location": "imgui_internal:3275", "ov_cimguiname": "ImGuiTable_destroy", "realdestructor": true, "ret": "void", @@ -9328,7 +9860,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextBuffer", - "location": "imgui:2494", + "location": "imgui:2664", "ov_cimguiname": "ImGuiTextBuffer_ImGuiTextBuffer", "signature": "()", "stname": "ImGuiTextBuffer" @@ -9358,7 +9890,7 @@ "str_end": "NULL" }, "funcname": "append", - "location": "imgui:2503", + "location": "imgui:2673", "ov_cimguiname": "ImGuiTextBuffer_append", "ret": "void", "signature": "(const char*,const char*)", @@ -9388,7 +9920,7 @@ "defaults": {}, "funcname": "appendf", "isvararg": "...)", - "location": "imgui:2504", + "location": "imgui:2674", "manual": true, "ov_cimguiname": "ImGuiTextBuffer_appendf", "ret": "void", @@ -9418,7 +9950,7 @@ "cimguiname": "ImGuiTextBuffer_appendfv", "defaults": {}, "funcname": "appendfv", - "location": "imgui:2505", + "location": "imgui:2675", "ov_cimguiname": "ImGuiTextBuffer_appendfv", "ret": "void", "signature": "(const char*,va_list)", @@ -9439,7 +9971,7 @@ "cimguiname": "ImGuiTextBuffer_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:2496", + "location": "imgui:2666", "ov_cimguiname": "ImGuiTextBuffer_begin", "ret": "const char*", "signature": "()const", @@ -9460,7 +9992,7 @@ "cimguiname": "ImGuiTextBuffer_c_str", "defaults": {}, "funcname": "c_str", - "location": "imgui:2502", + "location": "imgui:2672", "ov_cimguiname": "ImGuiTextBuffer_c_str", "ret": "const char*", "signature": "()const", @@ -9481,7 +10013,7 @@ "cimguiname": "ImGuiTextBuffer_clear", "defaults": {}, "funcname": "clear", - "location": "imgui:2500", + "location": "imgui:2670", "ov_cimguiname": "ImGuiTextBuffer_clear", "ret": "void", "signature": "()", @@ -9521,7 +10053,7 @@ "cimguiname": "ImGuiTextBuffer_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2499", + "location": "imgui:2669", "ov_cimguiname": "ImGuiTextBuffer_empty", "ret": "bool", "signature": "()const", @@ -9543,7 +10075,7 @@ "comment": "// Buf is zero-terminated, so end() will point on the zero-terminator", "defaults": {}, "funcname": "end", - "location": "imgui:2497", + "location": "imgui:2667", "ov_cimguiname": "ImGuiTextBuffer_end", "ret": "const char*", "signature": "()const", @@ -9568,7 +10100,7 @@ "cimguiname": "ImGuiTextBuffer_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:2501", + "location": "imgui:2671", "ov_cimguiname": "ImGuiTextBuffer_reserve", "ret": "void", "signature": "(int)", @@ -9589,7 +10121,7 @@ "cimguiname": "ImGuiTextBuffer_size", "defaults": {}, "funcname": "size", - "location": "imgui:2498", + "location": "imgui:2668", "ov_cimguiname": "ImGuiTextBuffer_size", "ret": "int", "signature": "()const", @@ -9610,7 +10142,7 @@ "cimguiname": "ImGuiTextFilter_Build", "defaults": {}, "funcname": "Build", - "location": "imgui:2467", + "location": "imgui:2637", "ov_cimguiname": "ImGuiTextFilter_Build", "ret": "void", "signature": "()", @@ -9631,7 +10163,7 @@ "cimguiname": "ImGuiTextFilter_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui:2468", + "location": "imgui:2638", "ov_cimguiname": "ImGuiTextFilter_Clear", "ret": "void", "signature": "()", @@ -9664,7 +10196,7 @@ "width": "0.0f" }, "funcname": "Draw", - "location": "imgui:2465", + "location": "imgui:2635", "ov_cimguiname": "ImGuiTextFilter_Draw", "ret": "bool", "signature": "(const char*,float)", @@ -9688,7 +10220,7 @@ "default_filter": "\"\"" }, "funcname": "ImGuiTextFilter", - "location": "imgui:2464", + "location": "imgui:2634", "ov_cimguiname": "ImGuiTextFilter_ImGuiTextFilter", "signature": "(const char*)", "stname": "ImGuiTextFilter" @@ -9708,7 +10240,7 @@ "cimguiname": "ImGuiTextFilter_IsActive", "defaults": {}, "funcname": "IsActive", - "location": "imgui:2469", + "location": "imgui:2639", "ov_cimguiname": "ImGuiTextFilter_IsActive", "ret": "bool", "signature": "()const", @@ -9739,7 +10271,7 @@ "text_end": "NULL" }, "funcname": "PassFilter", - "location": "imgui:2466", + "location": "imgui:2636", "ov_cimguiname": "ImGuiTextFilter_PassFilter", "ret": "bool", "signature": "(const char*,const char*)const", @@ -9791,7 +10323,7 @@ "cimguiname": "ImGuiTextIndex_append", "defaults": {}, "funcname": "append", - "location": "imgui_internal:741", + "location": "imgui_internal:736", "ov_cimguiname": "ImGuiTextIndex_append", "ret": "void", "signature": "(const char*,int,int)", @@ -9812,7 +10344,7 @@ "cimguiname": "ImGuiTextIndex_clear", "defaults": {}, "funcname": "clear", - "location": "imgui_internal:737", + "location": "imgui_internal:732", "ov_cimguiname": "ImGuiTextIndex_clear", "ret": "void", "signature": "()", @@ -9841,7 +10373,7 @@ "cimguiname": "ImGuiTextIndex_get_line_begin", "defaults": {}, "funcname": "get_line_begin", - "location": "imgui_internal:739", + "location": "imgui_internal:734", "ov_cimguiname": "ImGuiTextIndex_get_line_begin", "ret": "const char*", "signature": "(const char*,int)", @@ -9870,7 +10402,7 @@ "cimguiname": "ImGuiTextIndex_get_line_end", "defaults": {}, "funcname": "get_line_end", - "location": "imgui_internal:740", + "location": "imgui_internal:735", "ov_cimguiname": "ImGuiTextIndex_get_line_end", "ret": "const char*", "signature": "(const char*,int)", @@ -9891,7 +10423,7 @@ "cimguiname": "ImGuiTextIndex_size", "defaults": {}, "funcname": "size", - "location": "imgui_internal:738", + "location": "imgui_internal:733", "ov_cimguiname": "ImGuiTextIndex_size", "ret": "int", "signature": "()", @@ -9908,7 +10440,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2477", + "location": "imgui:2647", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRange_Nil", "signature": "()", "stname": "ImGuiTextRange" @@ -9931,7 +10463,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTextRange", - "location": "imgui:2478", + "location": "imgui:2648", "ov_cimguiname": "ImGuiTextRange_ImGuiTextRange_Str", "signature": "(const char*,const char*)", "stname": "ImGuiTextRange" @@ -9970,7 +10502,7 @@ "cimguiname": "ImGuiTextRange_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2479", + "location": "imgui:2649", "ov_cimguiname": "ImGuiTextRange_empty", "ret": "bool", "signature": "()const", @@ -9999,7 +10531,7 @@ "cimguiname": "ImGuiTextRange_split", "defaults": {}, "funcname": "split", - "location": "imgui:2480", + "location": "imgui:2650", "ov_cimguiname": "ImGuiTextRange_split", "ret": "void", "signature": "(char,ImVector_ImGuiTextRange*)const", @@ -10021,7 +10553,7 @@ "comment": "// We preserve remaining data for easier debugging", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:1667", + "location": "imgui_internal:1670", "ov_cimguiname": "ImGuiTypingSelectState_Clear", "ret": "void", "signature": "()", @@ -10038,7 +10570,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiTypingSelectState", - "location": "imgui_internal:1666", + "location": "imgui_internal:1669", "ov_cimguiname": "ImGuiTypingSelectState_ImGuiTypingSelectState", "signature": "()", "stname": "ImGuiTypingSelectState" @@ -10065,7 +10597,7 @@ ], "ImGuiViewportP_CalcWorkRectPos": [ { - "args": "(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min)", + "args": "(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min)", "argsT": [ { "name": "pOut", @@ -10076,16 +10608,16 @@ "type": "ImGuiViewportP*" }, { - "name": "off_min", + "name": "inset_min", "type": "const ImVec2" } ], - "argsoriginal": "(const ImVec2& off_min)", - "call_args": "(off_min)", + "argsoriginal": "(const ImVec2& inset_min)", + "call_args": "(inset_min)", "cimguiname": "ImGuiViewportP_CalcWorkRectPos", "defaults": {}, "funcname": "CalcWorkRectPos", - "location": "imgui_internal:1921", + "location": "imgui_internal:1998", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_CalcWorkRectPos", "ret": "void", @@ -10095,7 +10627,7 @@ ], "ImGuiViewportP_CalcWorkRectSize": [ { - "args": "(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 off_min,const ImVec2 off_max)", + "args": "(ImVec2 *pOut,ImGuiViewportP* self,const ImVec2 inset_min,const ImVec2 inset_max)", "argsT": [ { "name": "pOut", @@ -10106,20 +10638,20 @@ "type": "ImGuiViewportP*" }, { - "name": "off_min", + "name": "inset_min", "type": "const ImVec2" }, { - "name": "off_max", + "name": "inset_max", "type": "const ImVec2" } ], - "argsoriginal": "(const ImVec2& off_min,const ImVec2& off_max)", - "call_args": "(off_min,off_max)", + "argsoriginal": "(const ImVec2& inset_min,const ImVec2& inset_max)", + "call_args": "(inset_min,inset_max)", "cimguiname": "ImGuiViewportP_CalcWorkRectSize", "defaults": {}, "funcname": "CalcWorkRectSize", - "location": "imgui_internal:1922", + "location": "imgui_internal:1999", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_CalcWorkRectSize", "ret": "void", @@ -10141,7 +10673,7 @@ "cimguiname": "ImGuiViewportP_ClearRequestFlags", "defaults": {}, "funcname": "ClearRequestFlags", - "location": "imgui_internal:1918", + "location": "imgui_internal:1995", "ov_cimguiname": "ImGuiViewportP_ClearRequestFlags", "ret": "void", "signature": "()", @@ -10166,7 +10698,7 @@ "cimguiname": "ImGuiViewportP_GetBuildWorkRect", "defaults": {}, "funcname": "GetBuildWorkRect", - "location": "imgui_internal:1928", + "location": "imgui_internal:2005", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetBuildWorkRect", "ret": "void", @@ -10192,7 +10724,7 @@ "cimguiname": "ImGuiViewportP_GetMainRect", "defaults": {}, "funcname": "GetMainRect", - "location": "imgui_internal:1926", + "location": "imgui_internal:2003", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetMainRect", "ret": "void", @@ -10218,7 +10750,7 @@ "cimguiname": "ImGuiViewportP_GetWorkRect", "defaults": {}, "funcname": "GetWorkRect", - "location": "imgui_internal:1927", + "location": "imgui_internal:2004", "nonUDT": 1, "ov_cimguiname": "ImGuiViewportP_GetWorkRect", "ret": "void", @@ -10236,7 +10768,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiViewportP", - "location": "imgui_internal:1916", + "location": "imgui_internal:1993", "ov_cimguiname": "ImGuiViewportP_ImGuiViewportP", "signature": "()", "stname": "ImGuiViewportP" @@ -10257,7 +10789,7 @@ "comment": "// Update public fields", "defaults": {}, "funcname": "UpdateWorkRect", - "location": "imgui_internal:1923", + "location": "imgui_internal:2000", "ov_cimguiname": "ImGuiViewportP_UpdateWorkRect", "ret": "void", "signature": "()", @@ -10277,7 +10809,7 @@ "cimguiname": "ImGuiViewportP_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:1917", + "location": "imgui_internal:1994", "ov_cimguiname": "ImGuiViewportP_destroy", "realdestructor": true, "ret": "void", @@ -10303,7 +10835,7 @@ "cimguiname": "ImGuiViewport_GetCenter", "defaults": {}, "funcname": "GetCenter", - "location": "imgui:3288", + "location": "imgui:3627", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetCenter", "ret": "void", @@ -10329,7 +10861,7 @@ "cimguiname": "ImGuiViewport_GetWorkCenter", "defaults": {}, "funcname": "GetWorkCenter", - "location": "imgui:3289", + "location": "imgui:3628", "nonUDT": 1, "ov_cimguiname": "ImGuiViewport_GetWorkCenter", "ret": "void", @@ -10347,7 +10879,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiViewport", - "location": "imgui:3284", + "location": "imgui:3623", "ov_cimguiname": "ImGuiViewport_ImGuiViewport", "signature": "()", "stname": "ImGuiViewport" @@ -10366,7 +10898,7 @@ "cimguiname": "ImGuiViewport_destroy", "defaults": {}, "destructor": true, - "location": "imgui:3285", + "location": "imgui:3624", "ov_cimguiname": "ImGuiViewport_destroy", "realdestructor": true, "ret": "void", @@ -10384,7 +10916,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindowClass", - "location": "imgui:2415", + "location": "imgui:2585", "ov_cimguiname": "ImGuiWindowClass_ImGuiWindowClass", "signature": "()", "stname": "ImGuiWindowClass" @@ -10423,7 +10955,7 @@ "cimguiname": "ImGuiWindowSettings_GetName", "defaults": {}, "funcname": "GetName", - "location": "imgui_internal:1954", + "location": "imgui_internal:2031", "ov_cimguiname": "ImGuiWindowSettings_GetName", "ret": "char*", "signature": "()", @@ -10440,7 +10972,7 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindowSettings", - "location": "imgui_internal:1953", + "location": "imgui_internal:2030", "ov_cimguiname": "ImGuiWindowSettings_ImGuiWindowSettings", "signature": "()", "stname": "ImGuiWindowSettings" @@ -10479,7 +11011,7 @@ "cimguiname": "ImGuiWindow_CalcFontSize", "defaults": {}, "funcname": "CalcFontSize", - "location": "imgui_internal:2854", + "location": "imgui_internal:2966", "ov_cimguiname": "ImGuiWindow_CalcFontSize", "ret": "float", "signature": "()const", @@ -10510,7 +11042,7 @@ "str_end": "NULL" }, "funcname": "GetID", - "location": "imgui_internal:2847", + "location": "imgui_internal:2958", "ov_cimguiname": "ImGuiWindow_GetID_Str", "ret": "ImGuiID", "signature": "(const char*,const char*)", @@ -10533,7 +11065,7 @@ "cimguiname": "ImGuiWindow_GetID", "defaults": {}, "funcname": "GetID", - "location": "imgui_internal:2848", + "location": "imgui_internal:2959", "ov_cimguiname": "ImGuiWindow_GetID_Ptr", "ret": "ImGuiID", "signature": "(const void*)", @@ -10556,13 +11088,38 @@ "cimguiname": "ImGuiWindow_GetID", "defaults": {}, "funcname": "GetID", - "location": "imgui_internal:2849", + "location": "imgui_internal:2960", "ov_cimguiname": "ImGuiWindow_GetID_Int", "ret": "ImGuiID", "signature": "(int)", "stname": "ImGuiWindow" } ], + "ImGuiWindow_GetIDFromPos": [ + { + "args": "(ImGuiWindow* self,const ImVec2 p_abs)", + "argsT": [ + { + "name": "self", + "type": "ImGuiWindow*" + }, + { + "name": "p_abs", + "type": "const ImVec2" + } + ], + "argsoriginal": "(const ImVec2& p_abs)", + "call_args": "(p_abs)", + "cimguiname": "ImGuiWindow_GetIDFromPos", + "defaults": {}, + "funcname": "GetIDFromPos", + "location": "imgui_internal:2961", + "ov_cimguiname": "ImGuiWindow_GetIDFromPos", + "ret": "ImGuiID", + "signature": "(const ImVec2)", + "stname": "ImGuiWindow" + } + ], "ImGuiWindow_GetIDFromRectangle": [ { "args": "(ImGuiWindow* self,const ImRect r_abs)", @@ -10581,7 +11138,7 @@ "cimguiname": "ImGuiWindow_GetIDFromRectangle", "defaults": {}, "funcname": "GetIDFromRectangle", - "location": "imgui_internal:2850", + "location": "imgui_internal:2962", "ov_cimguiname": "ImGuiWindow_GetIDFromRectangle", "ret": "ImGuiID", "signature": "(const ImRect)", @@ -10607,33 +11164,12 @@ "constructor": true, "defaults": {}, "funcname": "ImGuiWindow", - "location": "imgui_internal:2843", + "location": "imgui_internal:2954", "ov_cimguiname": "ImGuiWindow_ImGuiWindow", "signature": "(ImGuiContext*,const char*)", "stname": "ImGuiWindow" } ], - "ImGuiWindow_MenuBarHeight": [ - { - "args": "(ImGuiWindow* self)", - "argsT": [ - { - "name": "self", - "type": "ImGuiWindow*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "ImGuiWindow_MenuBarHeight", - "defaults": {}, - "funcname": "MenuBarHeight", - "location": "imgui_internal:2857", - "ov_cimguiname": "ImGuiWindow_MenuBarHeight", - "ret": "float", - "signature": "()const", - "stname": "ImGuiWindow" - } - ], "ImGuiWindow_MenuBarRect": [ { "args": "(ImRect *pOut,ImGuiWindow* self)", @@ -10652,7 +11188,7 @@ "cimguiname": "ImGuiWindow_MenuBarRect", "defaults": {}, "funcname": "MenuBarRect", - "location": "imgui_internal:2858", + "location": "imgui_internal:2968", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_MenuBarRect", "ret": "void", @@ -10678,7 +11214,7 @@ "cimguiname": "ImGuiWindow_Rect", "defaults": {}, "funcname": "Rect", - "location": "imgui_internal:2853", + "location": "imgui_internal:2965", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_Rect", "ret": "void", @@ -10686,27 +11222,6 @@ "stname": "ImGuiWindow" } ], - "ImGuiWindow_TitleBarHeight": [ - { - "args": "(ImGuiWindow* self)", - "argsT": [ - { - "name": "self", - "type": "ImGuiWindow*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "ImGuiWindow_TitleBarHeight", - "defaults": {}, - "funcname": "TitleBarHeight", - "location": "imgui_internal:2855", - "ov_cimguiname": "ImGuiWindow_TitleBarHeight", - "ret": "float", - "signature": "()const", - "stname": "ImGuiWindow" - } - ], "ImGuiWindow_TitleBarRect": [ { "args": "(ImRect *pOut,ImGuiWindow* self)", @@ -10725,7 +11240,7 @@ "cimguiname": "ImGuiWindow_TitleBarRect", "defaults": {}, "funcname": "TitleBarRect", - "location": "imgui_internal:2856", + "location": "imgui_internal:2967", "nonUDT": 1, "ov_cimguiname": "ImGuiWindow_TitleBarRect", "ret": "void", @@ -10746,7 +11261,7 @@ "cimguiname": "ImGuiWindow_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:2845", + "location": "imgui_internal:2956", "ov_cimguiname": "ImGuiWindow_destroy", "realdestructor": true, "ret": "void", @@ -10768,7 +11283,7 @@ "cimguiname": "ImPool_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:694", + "location": "imgui_internal:689", "ov_cimguiname": "ImPool_Add", "ret": "T*", "signature": "()", @@ -10790,7 +11305,7 @@ "cimguiname": "ImPool_Clear", "defaults": {}, "funcname": "Clear", - "location": "imgui_internal:693", + "location": "imgui_internal:688", "ov_cimguiname": "ImPool_Clear", "ret": "void", "signature": "()", @@ -10816,7 +11331,7 @@ "cimguiname": "ImPool_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:692", + "location": "imgui_internal:687", "ov_cimguiname": "ImPool_Contains", "ret": "bool", "signature": "(const T*)const", @@ -10839,7 +11354,7 @@ "comment": "// Number of active/alive items in the pool (for display purpose)", "defaults": {}, "funcname": "GetAliveCount", - "location": "imgui_internal:701", + "location": "imgui_internal:696", "ov_cimguiname": "ImPool_GetAliveCount", "ret": "int", "signature": "()const", @@ -10861,7 +11376,7 @@ "cimguiname": "ImPool_GetBufSize", "defaults": {}, "funcname": "GetBufSize", - "location": "imgui_internal:702", + "location": "imgui_internal:697", "ov_cimguiname": "ImPool_GetBufSize", "ret": "int", "signature": "()const", @@ -10887,7 +11402,7 @@ "cimguiname": "ImPool_GetByIndex", "defaults": {}, "funcname": "GetByIndex", - "location": "imgui_internal:689", + "location": "imgui_internal:684", "ov_cimguiname": "ImPool_GetByIndex", "ret": "T*", "signature": "(ImPoolIdx)", @@ -10913,7 +11428,7 @@ "cimguiname": "ImPool_GetByKey", "defaults": {}, "funcname": "GetByKey", - "location": "imgui_internal:688", + "location": "imgui_internal:683", "ov_cimguiname": "ImPool_GetByKey", "ret": "T*", "signature": "(ImGuiID)", @@ -10939,7 +11454,7 @@ "cimguiname": "ImPool_GetIndex", "defaults": {}, "funcname": "GetIndex", - "location": "imgui_internal:690", + "location": "imgui_internal:685", "ov_cimguiname": "ImPool_GetIndex", "ret": "ImPoolIdx", "signature": "(const T*)const", @@ -10962,7 +11477,7 @@ "comment": "// It is the map we need iterate to find valid items, since we don't have \"alive\" storage anywhere", "defaults": {}, "funcname": "GetMapSize", - "location": "imgui_internal:703", + "location": "imgui_internal:698", "ov_cimguiname": "ImPool_GetMapSize", "ret": "int", "signature": "()const", @@ -10988,7 +11503,7 @@ "cimguiname": "ImPool_GetOrAddByKey", "defaults": {}, "funcname": "GetOrAddByKey", - "location": "imgui_internal:691", + "location": "imgui_internal:686", "ov_cimguiname": "ImPool_GetOrAddByKey", "ret": "T*", "signature": "(ImGuiID)", @@ -11006,7 +11521,7 @@ "constructor": true, "defaults": {}, "funcname": "ImPool", - "location": "imgui_internal:686", + "location": "imgui_internal:681", "ov_cimguiname": "ImPool_ImPool", "signature": "()", "stname": "ImPool", @@ -11035,7 +11550,7 @@ "cimguiname": "ImPool_Remove", "defaults": {}, "funcname": "Remove", - "location": "imgui_internal:695", + "location": "imgui_internal:690", "ov_cimguiname": "ImPool_Remove_TPtr", "ret": "void", "signature": "(ImGuiID,const T*)", @@ -11063,7 +11578,7 @@ "cimguiname": "ImPool_Remove", "defaults": {}, "funcname": "Remove", - "location": "imgui_internal:696", + "location": "imgui_internal:691", "ov_cimguiname": "ImPool_Remove_PoolIdx", "ret": "void", "signature": "(ImGuiID,ImPoolIdx)", @@ -11089,7 +11604,7 @@ "cimguiname": "ImPool_Reserve", "defaults": {}, "funcname": "Reserve", - "location": "imgui_internal:697", + "location": "imgui_internal:692", "ov_cimguiname": "ImPool_Reserve", "ret": "void", "signature": "(int)", @@ -11115,7 +11630,7 @@ "cimguiname": "ImPool_TryGetMapData", "defaults": {}, "funcname": "TryGetMapData", - "location": "imgui_internal:704", + "location": "imgui_internal:699", "ov_cimguiname": "ImPool_TryGetMapData", "ret": "T*", "signature": "(ImPoolIdx)", @@ -11136,7 +11651,7 @@ "cimguiname": "ImPool_destroy", "defaults": {}, "destructor": true, - "location": "imgui_internal:687", + "location": "imgui_internal:682", "ov_cimguiname": "ImPool_destroy", "realdestructor": true, "ret": "void", @@ -11163,7 +11678,7 @@ "cimguiname": "ImRect_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:557", + "location": "imgui_internal:552", "ov_cimguiname": "ImRect_Add_Vec2", "ret": "void", "signature": "(const ImVec2)", @@ -11186,7 +11701,7 @@ "cimguiname": "ImRect_Add", "defaults": {}, "funcname": "Add", - "location": "imgui_internal:558", + "location": "imgui_internal:553", "ov_cimguiname": "ImRect_Add_Rect", "ret": "void", "signature": "(const ImRect)", @@ -11212,7 +11727,7 @@ "comment": "// Simple version, may lead to an inverted rectangle, which is fine for Contains/Overlaps test but not for display.", "defaults": {}, "funcname": "ClipWith", - "location": "imgui_internal:564", + "location": "imgui_internal:559", "ov_cimguiname": "ImRect_ClipWith", "ret": "void", "signature": "(const ImRect)", @@ -11238,7 +11753,7 @@ "comment": "// Full version, ensure both points are fully clipped.", "defaults": {}, "funcname": "ClipWithFull", - "location": "imgui_internal:565", + "location": "imgui_internal:560", "ov_cimguiname": "ImRect_ClipWithFull", "ret": "void", "signature": "(const ImRect)", @@ -11263,7 +11778,7 @@ "cimguiname": "ImRect_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:553", + "location": "imgui_internal:548", "ov_cimguiname": "ImRect_Contains_Vec2", "ret": "bool", "signature": "(const ImVec2)const", @@ -11286,7 +11801,7 @@ "cimguiname": "ImRect_Contains", "defaults": {}, "funcname": "Contains", - "location": "imgui_internal:554", + "location": "imgui_internal:549", "ov_cimguiname": "ImRect_Contains_Rect", "ret": "bool", "signature": "(const ImRect)const", @@ -11315,7 +11830,7 @@ "cimguiname": "ImRect_ContainsWithPad", "defaults": {}, "funcname": "ContainsWithPad", - "location": "imgui_internal:555", + "location": "imgui_internal:550", "ov_cimguiname": "ImRect_ContainsWithPad", "ret": "bool", "signature": "(const ImVec2,const ImVec2)const", @@ -11340,7 +11855,7 @@ "cimguiname": "ImRect_Expand", "defaults": {}, "funcname": "Expand", - "location": "imgui_internal:559", + "location": "imgui_internal:554", "ov_cimguiname": "ImRect_Expand_Float", "ret": "void", "signature": "(const float)", @@ -11363,7 +11878,7 @@ "cimguiname": "ImRect_Expand", "defaults": {}, "funcname": "Expand", - "location": "imgui_internal:560", + "location": "imgui_internal:555", "ov_cimguiname": "ImRect_Expand_Vec2", "ret": "void", "signature": "(const ImVec2)", @@ -11384,7 +11899,7 @@ "cimguiname": "ImRect_Floor", "defaults": {}, "funcname": "Floor", - "location": "imgui_internal:566", + "location": "imgui_internal:561", "ov_cimguiname": "ImRect_Floor", "ret": "void", "signature": "()", @@ -11405,7 +11920,7 @@ "cimguiname": "ImRect_GetArea", "defaults": {}, "funcname": "GetArea", - "location": "imgui_internal:548", + "location": "imgui_internal:543", "ov_cimguiname": "ImRect_GetArea", "ret": "float", "signature": "()const", @@ -11431,7 +11946,7 @@ "comment": "// Bottom-left", "defaults": {}, "funcname": "GetBL", - "location": "imgui_internal:551", + "location": "imgui_internal:546", "nonUDT": 1, "ov_cimguiname": "ImRect_GetBL", "ret": "void", @@ -11458,7 +11973,7 @@ "comment": "// Bottom-right", "defaults": {}, "funcname": "GetBR", - "location": "imgui_internal:552", + "location": "imgui_internal:547", "nonUDT": 1, "ov_cimguiname": "ImRect_GetBR", "ret": "void", @@ -11484,7 +11999,7 @@ "cimguiname": "ImRect_GetCenter", "defaults": {}, "funcname": "GetCenter", - "location": "imgui_internal:544", + "location": "imgui_internal:539", "nonUDT": 1, "ov_cimguiname": "ImRect_GetCenter", "ret": "void", @@ -11506,7 +12021,7 @@ "cimguiname": "ImRect_GetHeight", "defaults": {}, "funcname": "GetHeight", - "location": "imgui_internal:547", + "location": "imgui_internal:542", "ov_cimguiname": "ImRect_GetHeight", "ret": "float", "signature": "()const", @@ -11531,7 +12046,7 @@ "cimguiname": "ImRect_GetSize", "defaults": {}, "funcname": "GetSize", - "location": "imgui_internal:545", + "location": "imgui_internal:540", "nonUDT": 1, "ov_cimguiname": "ImRect_GetSize", "ret": "void", @@ -11558,7 +12073,7 @@ "comment": "// Top-left", "defaults": {}, "funcname": "GetTL", - "location": "imgui_internal:549", + "location": "imgui_internal:544", "nonUDT": 1, "ov_cimguiname": "ImRect_GetTL", "ret": "void", @@ -11585,7 +12100,7 @@ "comment": "// Top-right", "defaults": {}, "funcname": "GetTR", - "location": "imgui_internal:550", + "location": "imgui_internal:545", "nonUDT": 1, "ov_cimguiname": "ImRect_GetTR", "ret": "void", @@ -11607,7 +12122,7 @@ "cimguiname": "ImRect_GetWidth", "defaults": {}, "funcname": "GetWidth", - "location": "imgui_internal:546", + "location": "imgui_internal:541", "ov_cimguiname": "ImRect_GetWidth", "ret": "float", "signature": "()const", @@ -11624,7 +12139,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:539", + "location": "imgui_internal:534", "ov_cimguiname": "ImRect_ImRect_Nil", "signature": "()", "stname": "ImRect" @@ -11647,7 +12162,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:540", + "location": "imgui_internal:535", "ov_cimguiname": "ImRect_ImRect_Vec2", "signature": "(const ImVec2,const ImVec2)", "stname": "ImRect" @@ -11666,7 +12181,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:541", + "location": "imgui_internal:536", "ov_cimguiname": "ImRect_ImRect_Vec4", "signature": "(const ImVec4)", "stname": "ImRect" @@ -11697,7 +12212,7 @@ "constructor": true, "defaults": {}, "funcname": "ImRect", - "location": "imgui_internal:542", + "location": "imgui_internal:537", "ov_cimguiname": "ImRect_ImRect_Float", "signature": "(float,float,float,float)", "stname": "ImRect" @@ -11717,7 +12232,7 @@ "cimguiname": "ImRect_IsInverted", "defaults": {}, "funcname": "IsInverted", - "location": "imgui_internal:567", + "location": "imgui_internal:562", "ov_cimguiname": "ImRect_IsInverted", "ret": "bool", "signature": "()const", @@ -11742,7 +12257,7 @@ "cimguiname": "ImRect_Overlaps", "defaults": {}, "funcname": "Overlaps", - "location": "imgui_internal:556", + "location": "imgui_internal:551", "ov_cimguiname": "ImRect_Overlaps", "ret": "bool", "signature": "(const ImRect)const", @@ -11767,7 +12282,7 @@ "cimguiname": "ImRect_ToVec4", "defaults": {}, "funcname": "ToVec4", - "location": "imgui_internal:568", + "location": "imgui_internal:563", "nonUDT": 1, "ov_cimguiname": "ImRect_ToVec4", "ret": "void", @@ -11793,7 +12308,7 @@ "cimguiname": "ImRect_Translate", "defaults": {}, "funcname": "Translate", - "location": "imgui_internal:561", + "location": "imgui_internal:556", "ov_cimguiname": "ImRect_Translate", "ret": "void", "signature": "(const ImVec2)", @@ -11818,7 +12333,7 @@ "cimguiname": "ImRect_TranslateX", "defaults": {}, "funcname": "TranslateX", - "location": "imgui_internal:562", + "location": "imgui_internal:557", "ov_cimguiname": "ImRect_TranslateX", "ret": "void", "signature": "(float)", @@ -11843,7 +12358,7 @@ "cimguiname": "ImRect_TranslateY", "defaults": {}, "funcname": "TranslateY", - "location": "imgui_internal:563", + "location": "imgui_internal:558", "ov_cimguiname": "ImRect_TranslateY", "ret": "void", "signature": "(float)", @@ -11883,7 +12398,7 @@ "cimguiname": "ImSpanAllocator_GetArenaSizeInBytes", "defaults": {}, "funcname": "GetArenaSizeInBytes", - "location": "imgui_internal:666", + "location": "imgui_internal:661", "ov_cimguiname": "ImSpanAllocator_GetArenaSizeInBytes", "ret": "int", "signature": "()", @@ -11909,7 +12424,7 @@ "cimguiname": "ImSpanAllocator_GetSpanPtrBegin", "defaults": {}, "funcname": "GetSpanPtrBegin", - "location": "imgui_internal:668", + "location": "imgui_internal:663", "ov_cimguiname": "ImSpanAllocator_GetSpanPtrBegin", "ret": "void*", "signature": "(int)", @@ -11935,7 +12450,7 @@ "cimguiname": "ImSpanAllocator_GetSpanPtrEnd", "defaults": {}, "funcname": "GetSpanPtrEnd", - "location": "imgui_internal:669", + "location": "imgui_internal:664", "ov_cimguiname": "ImSpanAllocator_GetSpanPtrEnd", "ret": "void*", "signature": "(int)", @@ -11953,7 +12468,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpanAllocator", - "location": "imgui_internal:664", + "location": "imgui_internal:659", "ov_cimguiname": "ImSpanAllocator_ImSpanAllocator", "signature": "()", "stname": "ImSpanAllocator", @@ -11988,7 +12503,7 @@ "a": "4" }, "funcname": "Reserve", - "location": "imgui_internal:665", + "location": "imgui_internal:660", "ov_cimguiname": "ImSpanAllocator_Reserve", "ret": "void", "signature": "(int,size_t,int)", @@ -12014,7 +12529,7 @@ "cimguiname": "ImSpanAllocator_SetArenaBasePtr", "defaults": {}, "funcname": "SetArenaBasePtr", - "location": "imgui_internal:667", + "location": "imgui_internal:662", "ov_cimguiname": "ImSpanAllocator_SetArenaBasePtr", "ret": "void", "signature": "(void*)", @@ -12052,7 +12567,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:632", + "location": "imgui_internal:627", "ov_cimguiname": "ImSpan_ImSpan_Nil", "signature": "()", "stname": "ImSpan", @@ -12076,7 +12591,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:633", + "location": "imgui_internal:628", "ov_cimguiname": "ImSpan_ImSpan_TPtrInt", "signature": "(T*,int)", "stname": "ImSpan", @@ -12100,7 +12615,7 @@ "constructor": true, "defaults": {}, "funcname": "ImSpan", - "location": "imgui_internal:634", + "location": "imgui_internal:629", "ov_cimguiname": "ImSpan_ImSpan_TPtrTPtr", "signature": "(T*,T*)", "stname": "ImSpan", @@ -12121,7 +12636,7 @@ "cimguiname": "ImSpan_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:643", + "location": "imgui_internal:638", "ov_cimguiname": "ImSpan_begin_Nil", "ret": "T*", "signature": "()", @@ -12141,7 +12656,7 @@ "cimguiname": "ImSpan_begin", "defaults": {}, "funcname": "begin", - "location": "imgui_internal:644", + "location": "imgui_internal:639", "ov_cimguiname": "ImSpan_begin__const", "ret": "const T*", "signature": "()const", @@ -12183,7 +12698,7 @@ "cimguiname": "ImSpan_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:645", + "location": "imgui_internal:640", "ov_cimguiname": "ImSpan_end_Nil", "ret": "T*", "signature": "()", @@ -12203,7 +12718,7 @@ "cimguiname": "ImSpan_end", "defaults": {}, "funcname": "end", - "location": "imgui_internal:646", + "location": "imgui_internal:641", "ov_cimguiname": "ImSpan_end__const", "ret": "const T*", "signature": "()const", @@ -12229,7 +12744,7 @@ "cimguiname": "ImSpan_index_from_ptr", "defaults": {}, "funcname": "index_from_ptr", - "location": "imgui_internal:649", + "location": "imgui_internal:644", "ov_cimguiname": "ImSpan_index_from_ptr", "ret": "int", "signature": "(const T*)const", @@ -12259,7 +12774,7 @@ "cimguiname": "ImSpan_set", "defaults": {}, "funcname": "set", - "location": "imgui_internal:636", + "location": "imgui_internal:631", "ov_cimguiname": "ImSpan_set_Int", "ret": "void", "signature": "(T*,int)", @@ -12287,7 +12802,7 @@ "cimguiname": "ImSpan_set", "defaults": {}, "funcname": "set", - "location": "imgui_internal:637", + "location": "imgui_internal:632", "ov_cimguiname": "ImSpan_set_TPtr", "ret": "void", "signature": "(T*,T*)", @@ -12309,7 +12824,7 @@ "cimguiname": "ImSpan_size", "defaults": {}, "funcname": "size", - "location": "imgui_internal:638", + "location": "imgui_internal:633", "ov_cimguiname": "ImSpan_size", "ret": "int", "signature": "()const", @@ -12331,7 +12846,7 @@ "cimguiname": "ImSpan_size_in_bytes", "defaults": {}, "funcname": "size_in_bytes", - "location": "imgui_internal:639", + "location": "imgui_internal:634", "ov_cimguiname": "ImSpan_size_in_bytes", "ret": "int", "signature": "()const", @@ -12349,7 +12864,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec1", - "location": "imgui_internal:519", + "location": "imgui_internal:514", "ov_cimguiname": "ImVec1_ImVec1_Nil", "signature": "()", "stname": "ImVec1" @@ -12368,7 +12883,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec1", - "location": "imgui_internal:520", + "location": "imgui_internal:515", "ov_cimguiname": "ImVec1_ImVec1_Float", "signature": "(float)", "stname": "ImVec1" @@ -12403,7 +12918,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2", - "location": "imgui:272", + "location": "imgui:296", "ov_cimguiname": "ImVec2_ImVec2_Nil", "signature": "()", "stname": "ImVec2" @@ -12426,7 +12941,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2", - "location": "imgui:273", + "location": "imgui:297", "ov_cimguiname": "ImVec2_ImVec2_Float", "signature": "(float,float)", "stname": "ImVec2" @@ -12461,7 +12976,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:527", + "location": "imgui_internal:522", "ov_cimguiname": "ImVec2ih_ImVec2ih_Nil", "signature": "()", "stname": "ImVec2ih" @@ -12484,7 +12999,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:528", + "location": "imgui_internal:523", "ov_cimguiname": "ImVec2ih_ImVec2ih_short", "signature": "(short,short)", "stname": "ImVec2ih" @@ -12503,7 +13018,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec2ih", - "location": "imgui_internal:529", + "location": "imgui_internal:524", "ov_cimguiname": "ImVec2ih_ImVec2ih_Vec2", "signature": "(const ImVec2)", "stname": "ImVec2ih" @@ -12538,7 +13053,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec4", - "location": "imgui:285", + "location": "imgui:309", "ov_cimguiname": "ImVec4_ImVec4_Nil", "signature": "()", "stname": "ImVec4" @@ -12569,7 +13084,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVec4", - "location": "imgui:286", + "location": "imgui:310", "ov_cimguiname": "ImVec4_ImVec4_Float", "signature": "(float,float,float,float)", "stname": "ImVec4" @@ -12604,7 +13119,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1997", + "location": "imgui:2152", "ov_cimguiname": "ImVector_ImVector_Nil", "signature": "()", "stname": "ImVector", @@ -12624,7 +13139,7 @@ "constructor": true, "defaults": {}, "funcname": "ImVector", - "location": "imgui:1998", + "location": "imgui:2153", "ov_cimguiname": "ImVector_ImVector_Vector_T_", "signature": "(const ImVector_T )", "stname": "ImVector", @@ -12649,7 +13164,7 @@ "cimguiname": "ImVector__grow_capacity", "defaults": {}, "funcname": "_grow_capacity", - "location": "imgui:2024", + "location": "imgui:2179", "ov_cimguiname": "ImVector__grow_capacity", "ret": "int", "signature": "(int)const", @@ -12671,7 +13186,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:2020", + "location": "imgui:2175", "ov_cimguiname": "ImVector_back_Nil", "ret": "T*", "retref": "&", @@ -12692,7 +13207,7 @@ "cimguiname": "ImVector_back", "defaults": {}, "funcname": "back", - "location": "imgui:2021", + "location": "imgui:2176", "ov_cimguiname": "ImVector_back__const", "ret": "const T*", "retref": "&", @@ -12715,7 +13230,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:2014", + "location": "imgui:2169", "ov_cimguiname": "ImVector_begin_Nil", "ret": "T*", "signature": "()", @@ -12735,7 +13250,7 @@ "cimguiname": "ImVector_begin", "defaults": {}, "funcname": "begin", - "location": "imgui:2015", + "location": "imgui:2170", "ov_cimguiname": "ImVector_begin__const", "ret": "const T*", "signature": "()const", @@ -12757,7 +13272,7 @@ "cimguiname": "ImVector_capacity", "defaults": {}, "funcname": "capacity", - "location": "imgui:2010", + "location": "imgui:2165", "ov_cimguiname": "ImVector_capacity", "ret": "int", "signature": "()const", @@ -12780,7 +13295,7 @@ "comment": "// Important: does not destruct anything", "defaults": {}, "funcname": "clear", - "location": "imgui:2002", + "location": "imgui:2157", "ov_cimguiname": "ImVector_clear", "ret": "void", "signature": "()", @@ -12803,7 +13318,7 @@ "comment": "// Important: never called automatically! always explicit.", "defaults": {}, "funcname": "clear_delete", - "location": "imgui:2003", + "location": "imgui:2158", "ov_cimguiname": "ImVector_clear_delete", "ret": "void", "signature": "()", @@ -12826,7 +13341,7 @@ "comment": "// Important: never called automatically! always explicit.", "defaults": {}, "funcname": "clear_destruct", - "location": "imgui:2004", + "location": "imgui:2159", "ov_cimguiname": "ImVector_clear_destruct", "ret": "void", "signature": "()", @@ -12852,7 +13367,7 @@ "cimguiname": "ImVector_contains", "defaults": {}, "funcname": "contains", - "location": "imgui:2039", + "location": "imgui:2194", "ov_cimguiname": "ImVector_contains", "ret": "bool", "signature": "(const T)const", @@ -12873,7 +13388,7 @@ "cimguiname": "ImVector_destroy", "defaults": {}, "destructor": true, - "location": "imgui:2000", + "location": "imgui:2155", "ov_cimguiname": "ImVector_destroy", "realdestructor": true, "ret": "void", @@ -12896,7 +13411,7 @@ "cimguiname": "ImVector_empty", "defaults": {}, "funcname": "empty", - "location": "imgui:2006", + "location": "imgui:2161", "ov_cimguiname": "ImVector_empty", "ret": "bool", "signature": "()const", @@ -12918,7 +13433,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:2016", + "location": "imgui:2171", "ov_cimguiname": "ImVector_end_Nil", "ret": "T*", "signature": "()", @@ -12938,7 +13453,7 @@ "cimguiname": "ImVector_end", "defaults": {}, "funcname": "end", - "location": "imgui:2017", + "location": "imgui:2172", "ov_cimguiname": "ImVector_end__const", "ret": "const T*", "signature": "()const", @@ -12964,7 +13479,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:2035", + "location": "imgui:2190", "ov_cimguiname": "ImVector_erase_Nil", "ret": "T*", "signature": "(const T*)", @@ -12992,7 +13507,7 @@ "cimguiname": "ImVector_erase", "defaults": {}, "funcname": "erase", - "location": "imgui:2036", + "location": "imgui:2191", "ov_cimguiname": "ImVector_erase_TPtr", "ret": "T*", "signature": "(const T*,const T*)", @@ -13018,7 +13533,7 @@ "cimguiname": "ImVector_erase_unsorted", "defaults": {}, "funcname": "erase_unsorted", - "location": "imgui:2037", + "location": "imgui:2192", "ov_cimguiname": "ImVector_erase_unsorted", "ret": "T*", "signature": "(const T*)", @@ -13044,7 +13559,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:2040", + "location": "imgui:2195", "ov_cimguiname": "ImVector_find_Nil", "ret": "T*", "signature": "(const T)", @@ -13068,7 +13583,7 @@ "cimguiname": "ImVector_find", "defaults": {}, "funcname": "find", - "location": "imgui:2041", + "location": "imgui:2196", "ov_cimguiname": "ImVector_find__const", "ret": "const T*", "signature": "(const T)const", @@ -13094,7 +13609,7 @@ "cimguiname": "ImVector_find_erase", "defaults": {}, "funcname": "find_erase", - "location": "imgui:2043", + "location": "imgui:2198", "ov_cimguiname": "ImVector_find_erase", "ret": "bool", "signature": "(const T)", @@ -13120,7 +13635,7 @@ "cimguiname": "ImVector_find_erase_unsorted", "defaults": {}, "funcname": "find_erase_unsorted", - "location": "imgui:2044", + "location": "imgui:2199", "ov_cimguiname": "ImVector_find_erase_unsorted", "ret": "bool", "signature": "(const T)", @@ -13146,7 +13661,7 @@ "cimguiname": "ImVector_find_index", "defaults": {}, "funcname": "find_index", - "location": "imgui:2042", + "location": "imgui:2197", "ov_cimguiname": "ImVector_find_index", "ret": "int", "signature": "(const T)const", @@ -13168,7 +13683,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:2018", + "location": "imgui:2173", "ov_cimguiname": "ImVector_front_Nil", "ret": "T*", "retref": "&", @@ -13189,7 +13704,7 @@ "cimguiname": "ImVector_front", "defaults": {}, "funcname": "front", - "location": "imgui:2019", + "location": "imgui:2174", "ov_cimguiname": "ImVector_front__const", "ret": "const T*", "retref": "&", @@ -13216,7 +13731,7 @@ "cimguiname": "ImVector_index_from_ptr", "defaults": {}, "funcname": "index_from_ptr", - "location": "imgui:2045", + "location": "imgui:2200", "ov_cimguiname": "ImVector_index_from_ptr", "ret": "int", "signature": "(const T*)const", @@ -13246,7 +13761,7 @@ "cimguiname": "ImVector_insert", "defaults": {}, "funcname": "insert", - "location": "imgui:2038", + "location": "imgui:2193", "ov_cimguiname": "ImVector_insert", "ret": "T*", "signature": "(const T*,const T)", @@ -13268,7 +13783,7 @@ "cimguiname": "ImVector_max_size", "defaults": {}, "funcname": "max_size", - "location": "imgui:2009", + "location": "imgui:2164", "ov_cimguiname": "ImVector_max_size", "ret": "int", "signature": "()const", @@ -13290,7 +13805,7 @@ "cimguiname": "ImVector_pop_back", "defaults": {}, "funcname": "pop_back", - "location": "imgui:2033", + "location": "imgui:2188", "ov_cimguiname": "ImVector_pop_back", "ret": "void", "signature": "()", @@ -13316,7 +13831,7 @@ "cimguiname": "ImVector_push_back", "defaults": {}, "funcname": "push_back", - "location": "imgui:2032", + "location": "imgui:2187", "ov_cimguiname": "ImVector_push_back", "ret": "void", "signature": "(const T)", @@ -13342,7 +13857,7 @@ "cimguiname": "ImVector_push_front", "defaults": {}, "funcname": "push_front", - "location": "imgui:2034", + "location": "imgui:2189", "ov_cimguiname": "ImVector_push_front", "ret": "void", "signature": "(const T)", @@ -13368,7 +13883,7 @@ "cimguiname": "ImVector_reserve", "defaults": {}, "funcname": "reserve", - "location": "imgui:2028", + "location": "imgui:2183", "ov_cimguiname": "ImVector_reserve", "ret": "void", "signature": "(int)", @@ -13394,7 +13909,7 @@ "cimguiname": "ImVector_reserve_discard", "defaults": {}, "funcname": "reserve_discard", - "location": "imgui:2029", + "location": "imgui:2184", "ov_cimguiname": "ImVector_reserve_discard", "ret": "void", "signature": "(int)", @@ -13420,7 +13935,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:2025", + "location": "imgui:2180", "ov_cimguiname": "ImVector_resize_Nil", "ret": "void", "signature": "(int)", @@ -13448,7 +13963,7 @@ "cimguiname": "ImVector_resize", "defaults": {}, "funcname": "resize", - "location": "imgui:2026", + "location": "imgui:2181", "ov_cimguiname": "ImVector_resize_T", "ret": "void", "signature": "(int,const T)", @@ -13475,7 +13990,7 @@ "comment": "// Resize a vector to a smaller size, guaranteed not to cause a reallocation", "defaults": {}, "funcname": "shrink", - "location": "imgui:2027", + "location": "imgui:2182", "ov_cimguiname": "ImVector_shrink", "ret": "void", "signature": "(int)", @@ -13497,7 +14012,7 @@ "cimguiname": "ImVector_size", "defaults": {}, "funcname": "size", - "location": "imgui:2007", + "location": "imgui:2162", "ov_cimguiname": "ImVector_size", "ret": "int", "signature": "()const", @@ -13519,7 +14034,7 @@ "cimguiname": "ImVector_size_in_bytes", "defaults": {}, "funcname": "size_in_bytes", - "location": "imgui:2008", + "location": "imgui:2163", "ov_cimguiname": "ImVector_size_in_bytes", "ret": "int", "signature": "()const", @@ -13546,7 +14061,7 @@ "cimguiname": "ImVector_swap", "defaults": {}, "funcname": "swap", - "location": "imgui:2022", + "location": "imgui:2177", "ov_cimguiname": "ImVector_swap", "ret": "void", "signature": "(ImVector_T *)", @@ -13575,7 +14090,7 @@ "flags": "0" }, "funcname": "AcceptDragDropPayload", - "location": "imgui:873", + "location": "imgui:911", "namespace": "ImGui", "ov_cimguiname": "igAcceptDragDropPayload", "ret": "const ImGuiPayload*", @@ -13598,7 +14113,7 @@ "comment": "// Activate an item by ID (button, checkbox, tree node etc.). Activation is queued and processed on the next frame when the item is encountered again.", "defaults": {}, "funcname": "ActivateItemByID", - "location": "imgui_internal:3418", + "location": "imgui_internal:3549", "namespace": "ImGui", "ov_cimguiname": "igActivateItemByID", "ret": "void", @@ -13624,7 +14139,7 @@ "cimguiname": "igAddContextHook", "defaults": {}, "funcname": "AddContextHook", - "location": "imgui_internal:3281", + "location": "imgui_internal:3410", "namespace": "ImGui", "ov_cimguiname": "igAddContextHook", "ret": "ImGuiID", @@ -13654,7 +14169,7 @@ "cimguiname": "igAddDrawListToDrawDataEx", "defaults": {}, "funcname": "AddDrawListToDrawDataEx", - "location": "imgui_internal:3266", + "location": "imgui_internal:3394", "namespace": "ImGui", "ov_cimguiname": "igAddDrawListToDrawDataEx", "ret": "void", @@ -13676,7 +14191,7 @@ "cimguiname": "igAddSettingsHandler", "defaults": {}, "funcname": "AddSettingsHandler", - "location": "imgui_internal:3298", + "location": "imgui_internal:3427", "namespace": "ImGui", "ov_cimguiname": "igAddSettingsHandler", "ret": "void", @@ -13694,7 +14209,7 @@ "comment": "// vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item)", "defaults": {}, "funcname": "AlignTextToFramePadding", - "location": "imgui:488", + "location": "imgui:508", "namespace": "ImGui", "ov_cimguiname": "igAlignTextToFramePadding", "ret": "void", @@ -13721,7 +14236,7 @@ "comment": "// square button with an arrow shape", "defaults": {}, "funcname": "ArrowButton", - "location": "imgui:536", + "location": "imgui:557", "namespace": "ImGui", "ov_cimguiname": "igArrowButton", "ret": "bool", @@ -13757,7 +14272,7 @@ "flags": "0" }, "funcname": "ArrowButtonEx", - "location": "imgui_internal:3706", + "location": "imgui_internal:3846", "namespace": "ImGui", "ov_cimguiname": "igArrowButtonEx", "ret": "bool", @@ -13790,7 +14305,7 @@ "p_open": "NULL" }, "funcname": "Begin", - "location": "imgui:346", + "location": "imgui:371", "namespace": "ImGui", "ov_cimguiname": "igBegin", "ret": "bool", @@ -13798,6 +14313,40 @@ "stname": "" } ], + "igBeginBoxSelect": [ + { + "args": "(const ImRect scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags)", + "argsT": [ + { + "name": "scope_rect", + "type": "const ImRect" + }, + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "box_select_id", + "type": "ImGuiID" + }, + { + "name": "ms_flags", + "type": "ImGuiMultiSelectFlags" + } + ], + "argsoriginal": "(const ImRect& scope_rect,ImGuiWindow* window,ImGuiID box_select_id,ImGuiMultiSelectFlags ms_flags)", + "call_args": "(scope_rect,window,box_select_id,ms_flags)", + "cimguiname": "igBeginBoxSelect", + "defaults": {}, + "funcname": "BeginBoxSelect", + "location": "imgui_internal:3717", + "namespace": "ImGui", + "ov_cimguiname": "igBeginBoxSelect", + "ret": "bool", + "signature": "(const ImRect,ImGuiWindow*,ImGuiID,ImGuiMultiSelectFlags)", + "stname": "" + } + ], "igBeginChild": [ { "args": "(const char* str_id,const ImVec2 size,ImGuiChildFlags child_flags,ImGuiWindowFlags window_flags)", @@ -13828,7 +14377,7 @@ "window_flags": "0" }, "funcname": "BeginChild", - "location": "imgui:367", + "location": "imgui:392", "namespace": "ImGui", "ov_cimguiname": "igBeginChild_Str", "ret": "bool", @@ -13864,7 +14413,7 @@ "window_flags": "0" }, "funcname": "BeginChild", - "location": "imgui:368", + "location": "imgui:393", "namespace": "ImGui", "ov_cimguiname": "igBeginChild_ID", "ret": "bool", @@ -13902,7 +14451,7 @@ "cimguiname": "igBeginChildEx", "defaults": {}, "funcname": "BeginChildEx", - "location": "imgui_internal:3369", + "location": "imgui_internal:3496", "namespace": "ImGui", "ov_cimguiname": "igBeginChildEx", "ret": "bool", @@ -13935,7 +14484,7 @@ "flags": "0" }, "funcname": "BeginColumns", - "location": "imgui_internal:3589", + "location": "imgui_internal:3730", "namespace": "ImGui", "ov_cimguiname": "igBeginColumns", "ret": "void", @@ -13967,7 +14516,7 @@ "flags": "0" }, "funcname": "BeginCombo", - "location": "imgui:555", + "location": "imgui:578", "namespace": "ImGui", "ov_cimguiname": "igBeginCombo", "ret": "bool", @@ -13997,7 +14546,7 @@ "cimguiname": "igBeginComboPopup", "defaults": {}, "funcname": "BeginComboPopup", - "location": "imgui_internal:3391", + "location": "imgui_internal:3522", "namespace": "ImGui", "ov_cimguiname": "igBeginComboPopup", "ret": "bool", @@ -14014,7 +14563,7 @@ "cimguiname": "igBeginComboPreview", "defaults": {}, "funcname": "BeginComboPreview", - "location": "imgui_internal:3392", + "location": "imgui_internal:3523", "namespace": "ImGui", "ov_cimguiname": "igBeginComboPreview", "ret": "bool", @@ -14038,7 +14587,7 @@ "disabled": "true" }, "funcname": "BeginDisabled", - "location": "imgui:881", + "location": "imgui:920", "namespace": "ImGui", "ov_cimguiname": "igBeginDisabled", "ret": "void", @@ -14046,6 +14595,23 @@ "stname": "" } ], + "igBeginDisabledOverrideReenable": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igBeginDisabledOverrideReenable", + "defaults": {}, + "funcname": "BeginDisabledOverrideReenable", + "location": "imgui_internal:3486", + "namespace": "ImGui", + "ov_cimguiname": "igBeginDisabledOverrideReenable", + "ret": "void", + "signature": "()", + "stname": "" + } + ], "igBeginDockableDragDropSource": [ { "args": "(ImGuiWindow* window)", @@ -14060,7 +14626,7 @@ "cimguiname": "igBeginDockableDragDropSource", "defaults": {}, "funcname": "BeginDockableDragDropSource", - "location": "imgui_internal:3534", + "location": "imgui_internal:3663", "namespace": "ImGui", "ov_cimguiname": "igBeginDockableDragDropSource", "ret": "void", @@ -14082,7 +14648,7 @@ "cimguiname": "igBeginDockableDragDropTarget", "defaults": {}, "funcname": "BeginDockableDragDropTarget", - "location": "imgui_internal:3535", + "location": "imgui_internal:3664", "namespace": "ImGui", "ov_cimguiname": "igBeginDockableDragDropTarget", "ret": "void", @@ -14108,7 +14674,7 @@ "cimguiname": "igBeginDocked", "defaults": {}, "funcname": "BeginDocked", - "location": "imgui_internal:3533", + "location": "imgui_internal:3662", "namespace": "ImGui", "ov_cimguiname": "igBeginDocked", "ret": "void", @@ -14133,7 +14699,7 @@ "flags": "0" }, "funcname": "BeginDragDropSource", - "location": "imgui:869", + "location": "imgui:907", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropSource", "ret": "bool", @@ -14151,7 +14717,7 @@ "comment": "// call after submitting an item that may receive a payload. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget()", "defaults": {}, "funcname": "BeginDragDropTarget", - "location": "imgui:872", + "location": "imgui:910", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropTarget", "ret": "bool", @@ -14177,7 +14743,7 @@ "cimguiname": "igBeginDragDropTargetCustom", "defaults": {}, "funcname": "BeginDragDropTargetCustom", - "location": "imgui_internal:3576", + "location": "imgui_internal:3705", "namespace": "ImGui", "ov_cimguiname": "igBeginDragDropTargetCustom", "ret": "bool", @@ -14195,7 +14761,7 @@ "comment": "// lock horizontal starting position", "defaults": {}, "funcname": "BeginGroup", - "location": "imgui:486", + "location": "imgui:506", "namespace": "ImGui", "ov_cimguiname": "igBeginGroup", "ret": "void", @@ -14213,7 +14779,7 @@ "comment": "// begin/append a tooltip window if preceding item was hovered.", "defaults": {}, "funcname": "BeginItemTooltip", - "location": "imgui:712", + "location": "imgui:749", "namespace": "ImGui", "ov_cimguiname": "igBeginItemTooltip", "ret": "bool", @@ -14242,7 +14808,7 @@ "size": "ImVec2(0,0)" }, "funcname": "BeginListBox", - "location": "imgui:667", + "location": "imgui:703", "namespace": "ImGui", "ov_cimguiname": "igBeginListBox", "ret": "bool", @@ -14260,7 +14826,7 @@ "comment": "// create and append to a full screen menu-bar.", "defaults": {}, "funcname": "BeginMainMenuBar", - "location": "imgui:693", + "location": "imgui:729", "namespace": "ImGui", "ov_cimguiname": "igBeginMainMenuBar", "ret": "bool", @@ -14289,7 +14855,7 @@ "enabled": "true" }, "funcname": "BeginMenu", - "location": "imgui:695", + "location": "imgui:731", "namespace": "ImGui", "ov_cimguiname": "igBeginMenu", "ret": "bool", @@ -14307,7 +14873,7 @@ "comment": "// append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window).", "defaults": {}, "funcname": "BeginMenuBar", - "location": "imgui:691", + "location": "imgui:727", "namespace": "ImGui", "ov_cimguiname": "igBeginMenuBar", "ret": "bool", @@ -14339,7 +14905,7 @@ "enabled": "true" }, "funcname": "BeginMenuEx", - "location": "imgui_internal:3387", + "location": "imgui_internal:3518", "namespace": "ImGui", "ov_cimguiname": "igBeginMenuEx", "ret": "bool", @@ -14347,6 +14913,39 @@ "stname": "" } ], + "igBeginMultiSelect": [ + { + "args": "(ImGuiMultiSelectFlags flags,int selection_size,int items_count)", + "argsT": [ + { + "name": "flags", + "type": "ImGuiMultiSelectFlags" + }, + { + "name": "selection_size", + "type": "int" + }, + { + "name": "items_count", + "type": "int" + } + ], + "argsoriginal": "(ImGuiMultiSelectFlags flags,int selection_size=-1,int items_count=-1)", + "call_args": "(flags,selection_size,items_count)", + "cimguiname": "igBeginMultiSelect", + "defaults": { + "items_count": "-1", + "selection_size": "-1" + }, + "funcname": "BeginMultiSelect", + "location": "imgui:692", + "namespace": "ImGui", + "ov_cimguiname": "igBeginMultiSelect", + "ret": "ImGuiMultiSelectIO*", + "signature": "(ImGuiMultiSelectFlags,int,int)", + "stname": "" + } + ], "igBeginPopup": [ { "args": "(const char* str_id,ImGuiWindowFlags flags)", @@ -14368,7 +14967,7 @@ "flags": "0" }, "funcname": "BeginPopup", - "location": "imgui:726", + "location": "imgui:763", "namespace": "ImGui", "ov_cimguiname": "igBeginPopup", "ret": "bool", @@ -14398,7 +14997,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextItem", - "location": "imgui:748", + "location": "imgui:785", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextItem", "ret": "bool", @@ -14428,7 +15027,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextVoid", - "location": "imgui:750", + "location": "imgui:787", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextVoid", "ret": "bool", @@ -14458,7 +15057,7 @@ "str_id": "NULL" }, "funcname": "BeginPopupContextWindow", - "location": "imgui:749", + "location": "imgui:786", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupContextWindow", "ret": "bool", @@ -14468,23 +15067,23 @@ ], "igBeginPopupEx": [ { - "args": "(ImGuiID id,ImGuiWindowFlags extra_flags)", + "args": "(ImGuiID id,ImGuiWindowFlags extra_window_flags)", "argsT": [ { "name": "id", "type": "ImGuiID" }, { - "name": "extra_flags", + "name": "extra_window_flags", "type": "ImGuiWindowFlags" } ], - "argsoriginal": "(ImGuiID id,ImGuiWindowFlags extra_flags)", - "call_args": "(id,extra_flags)", + "argsoriginal": "(ImGuiID id,ImGuiWindowFlags extra_window_flags)", + "call_args": "(id,extra_window_flags)", "cimguiname": "igBeginPopupEx", "defaults": {}, "funcname": "BeginPopupEx", - "location": "imgui_internal:3375", + "location": "imgui_internal:3499", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupEx", "ret": "bool", @@ -14518,7 +15117,7 @@ "p_open": "NULL" }, "funcname": "BeginPopupModal", - "location": "imgui:727", + "location": "imgui:764", "namespace": "ImGui", "ov_cimguiname": "igBeginPopupModal", "ret": "bool", @@ -14547,7 +15146,7 @@ "flags": "0" }, "funcname": "BeginTabBar", - "location": "imgui:827", + "location": "imgui:865", "namespace": "ImGui", "ov_cimguiname": "igBeginTabBar", "ret": "bool", @@ -14577,7 +15176,7 @@ "cimguiname": "igBeginTabBarEx", "defaults": {}, "funcname": "BeginTabBarEx", - "location": "imgui_internal:3658", + "location": "imgui_internal:3798", "namespace": "ImGui", "ov_cimguiname": "igBeginTabBarEx", "ret": "bool", @@ -14611,7 +15210,7 @@ "p_open": "NULL" }, "funcname": "BeginTabItem", - "location": "imgui:829", + "location": "imgui:867", "namespace": "ImGui", "ov_cimguiname": "igBeginTabItem", "ret": "bool", @@ -14621,14 +15220,14 @@ ], "igBeginTable": [ { - "args": "(const char* str_id,int column,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width)", + "args": "(const char* str_id,int columns,ImGuiTableFlags flags,const ImVec2 outer_size,float inner_width)", "argsT": [ { "name": "str_id", "type": "const char*" }, { - "name": "column", + "name": "columns", "type": "int" }, { @@ -14644,8 +15243,8 @@ "type": "float" } ], - "argsoriginal": "(const char* str_id,int column,ImGuiTableFlags flags=0,const ImVec2& outer_size=ImVec2(0.0f,0.0f),float inner_width=0.0f)", - "call_args": "(str_id,column,flags,outer_size,inner_width)", + "argsoriginal": "(const char* str_id,int columns,ImGuiTableFlags flags=0,const ImVec2& outer_size=ImVec2(0.0f,0.0f),float inner_width=0.0f)", + "call_args": "(str_id,columns,flags,outer_size,inner_width)", "cimguiname": "igBeginTable", "defaults": { "flags": "0", @@ -14653,7 +15252,7 @@ "outer_size": "ImVec2(0.0f,0.0f)" }, "funcname": "BeginTable", - "location": "imgui:779", + "location": "imgui:816", "namespace": "ImGui", "ov_cimguiname": "igBeginTable", "ret": "bool", @@ -14699,7 +15298,7 @@ "outer_size": "ImVec2(0,0)" }, "funcname": "BeginTableEx", - "location": "imgui_internal:3614", + "location": "imgui_internal:3754", "namespace": "ImGui", "ov_cimguiname": "igBeginTableEx", "ret": "bool", @@ -14717,7 +15316,7 @@ "comment": "// begin/append a tooltip window.", "defaults": {}, "funcname": "BeginTooltip", - "location": "imgui:703", + "location": "imgui:740", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltip", "ret": "bool", @@ -14743,7 +15342,7 @@ "cimguiname": "igBeginTooltipEx", "defaults": {}, "funcname": "BeginTooltipEx", - "location": "imgui_internal:3376", + "location": "imgui_internal:3513", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltipEx", "ret": "bool", @@ -14760,7 +15359,7 @@ "cimguiname": "igBeginTooltipHidden", "defaults": {}, "funcname": "BeginTooltipHidden", - "location": "imgui_internal:3377", + "location": "imgui_internal:3514", "namespace": "ImGui", "ov_cimguiname": "igBeginTooltipHidden", "ret": "bool", @@ -14798,7 +15397,7 @@ "cimguiname": "igBeginViewportSideBar", "defaults": {}, "funcname": "BeginViewportSideBar", - "location": "imgui_internal:3386", + "location": "imgui_internal:3517", "namespace": "ImGui", "ov_cimguiname": "igBeginViewportSideBar", "ret": "bool", @@ -14820,7 +15419,7 @@ "cimguiname": "igBringWindowToDisplayBack", "defaults": {}, "funcname": "BringWindowToDisplayBack", - "location": "imgui_internal:3257", + "location": "imgui_internal:3382", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToDisplayBack", "ret": "void", @@ -14846,7 +15445,7 @@ "cimguiname": "igBringWindowToDisplayBehind", "defaults": {}, "funcname": "BringWindowToDisplayBehind", - "location": "imgui_internal:3258", + "location": "imgui_internal:3383", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToDisplayBehind", "ret": "void", @@ -14868,7 +15467,7 @@ "cimguiname": "igBringWindowToDisplayFront", "defaults": {}, "funcname": "BringWindowToDisplayFront", - "location": "imgui_internal:3256", + "location": "imgui_internal:3381", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToDisplayFront", "ret": "void", @@ -14890,7 +15489,7 @@ "cimguiname": "igBringWindowToFocusFront", "defaults": {}, "funcname": "BringWindowToFocusFront", - "location": "imgui_internal:3255", + "location": "imgui_internal:3380", "namespace": "ImGui", "ov_cimguiname": "igBringWindowToFocusFront", "ret": "void", @@ -14908,7 +15507,7 @@ "comment": "// draw a small circle + keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses", "defaults": {}, "funcname": "Bullet", - "location": "imgui:543", + "location": "imgui:564", "namespace": "ImGui", "ov_cimguiname": "igBullet", "ret": "void", @@ -14936,7 +15535,7 @@ "defaults": {}, "funcname": "BulletText", "isvararg": "...)", - "location": "imgui:526", + "location": "imgui:547", "namespace": "ImGui", "ov_cimguiname": "igBulletText", "ret": "void", @@ -14962,7 +15561,7 @@ "cimguiname": "igBulletTextV", "defaults": {}, "funcname": "BulletTextV", - "location": "imgui:527", + "location": "imgui:548", "namespace": "ImGui", "ov_cimguiname": "igBulletTextV", "ret": "void", @@ -14991,7 +15590,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Button", - "location": "imgui:533", + "location": "imgui:554", "namespace": "ImGui", "ov_cimguiname": "igButton", "ret": "bool", @@ -15031,7 +15630,7 @@ "flags": "0" }, "funcname": "ButtonBehavior", - "location": "imgui_internal:3724", + "location": "imgui_internal:3864", "namespace": "ImGui", "ov_cimguiname": "igButtonBehavior", "ret": "bool", @@ -15064,7 +15663,7 @@ "size_arg": "ImVec2(0,0)" }, "funcname": "ButtonEx", - "location": "imgui_internal:3705", + "location": "imgui_internal:3845", "namespace": "ImGui", "ov_cimguiname": "igButtonEx", "ret": "bool", @@ -15098,7 +15697,7 @@ "cimguiname": "igCalcItemSize", "defaults": {}, "funcname": "CalcItemSize", - "location": "imgui_internal:3350", + "location": "imgui_internal:3479", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcItemSize", @@ -15117,7 +15716,7 @@ "comment": "// width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions.", "defaults": {}, "funcname": "CalcItemWidth", - "location": "imgui:446", + "location": "imgui:463", "namespace": "ImGui", "ov_cimguiname": "igCalcItemWidth", "ret": "float", @@ -15147,7 +15746,7 @@ "cimguiname": "igCalcRoundingFlagsForRectInRect", "defaults": {}, "funcname": "CalcRoundingFlagsForRectInRect", - "location": "imgui_internal:3701", + "location": "imgui_internal:3841", "namespace": "ImGui", "ov_cimguiname": "igCalcRoundingFlagsForRectInRect", "ret": "ImDrawFlags", @@ -15189,7 +15788,7 @@ "wrap_width": "-1.0f" }, "funcname": "CalcTextSize", - "location": "imgui:941", + "location": "imgui:978", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcTextSize", @@ -15224,7 +15823,7 @@ "cimguiname": "igCalcTypematicRepeatAmount", "defaults": {}, "funcname": "CalcTypematicRepeatAmount", - "location": "imgui_internal:3449", + "location": "imgui_internal:3578", "namespace": "ImGui", "ov_cimguiname": "igCalcTypematicRepeatAmount", "ret": "int", @@ -15250,7 +15849,7 @@ "cimguiname": "igCalcWindowNextAutoFitSize", "defaults": {}, "funcname": "CalcWindowNextAutoFitSize", - "location": "imgui_internal:3237", + "location": "imgui_internal:3361", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igCalcWindowNextAutoFitSize", @@ -15277,7 +15876,7 @@ "cimguiname": "igCalcWrapWidthForPos", "defaults": {}, "funcname": "CalcWrapWidthForPos", - "location": "imgui_internal:3351", + "location": "imgui_internal:3480", "namespace": "ImGui", "ov_cimguiname": "igCalcWrapWidthForPos", "ret": "float", @@ -15303,7 +15902,7 @@ "cimguiname": "igCallContextHooks", "defaults": {}, "funcname": "CallContextHooks", - "location": "imgui_internal:3283", + "location": "imgui_internal:3412", "namespace": "ImGui", "ov_cimguiname": "igCallContextHooks", "ret": "void", @@ -15329,7 +15928,7 @@ "cimguiname": "igCheckbox", "defaults": {}, "funcname": "Checkbox", - "location": "imgui:537", + "location": "imgui:558", "namespace": "ImGui", "ov_cimguiname": "igCheckbox", "ret": "bool", @@ -15359,7 +15958,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:538", + "location": "imgui:559", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlags_IntPtr", "ret": "bool", @@ -15387,7 +15986,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui:539", + "location": "imgui:560", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlags_UintPtr", "ret": "bool", @@ -15415,7 +16014,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui_internal:3710", + "location": "imgui_internal:3850", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlags_S64Ptr", "ret": "bool", @@ -15443,7 +16042,7 @@ "cimguiname": "igCheckboxFlags", "defaults": {}, "funcname": "CheckboxFlags", - "location": "imgui_internal:3711", + "location": "imgui_internal:3851", "namespace": "ImGui", "ov_cimguiname": "igCheckboxFlags_U64Ptr", "ret": "bool", @@ -15460,7 +16059,7 @@ "cimguiname": "igClearActiveID", "defaults": {}, "funcname": "ClearActiveID", - "location": "imgui_internal:3333", + "location": "imgui_internal:3462", "namespace": "ImGui", "ov_cimguiname": "igClearActiveID", "ret": "void", @@ -15477,7 +16076,7 @@ "cimguiname": "igClearDragDrop", "defaults": {}, "funcname": "ClearDragDrop", - "location": "imgui_internal:3577", + "location": "imgui_internal:3706", "namespace": "ImGui", "ov_cimguiname": "igClearDragDrop", "ret": "void", @@ -15494,7 +16093,7 @@ "cimguiname": "igClearIniSettings", "defaults": {}, "funcname": "ClearIniSettings", - "location": "imgui_internal:3297", + "location": "imgui_internal:3426", "namespace": "ImGui", "ov_cimguiname": "igClearIniSettings", "ret": "void", @@ -15516,7 +16115,7 @@ "cimguiname": "igClearWindowSettings", "defaults": {}, "funcname": "ClearWindowSettings", - "location": "imgui_internal:3306", + "location": "imgui_internal:3435", "namespace": "ImGui", "ov_cimguiname": "igClearWindowSettings", "ret": "void", @@ -15542,7 +16141,7 @@ "cimguiname": "igCloseButton", "defaults": {}, "funcname": "CloseButton", - "location": "imgui_internal:3714", + "location": "imgui_internal:3854", "namespace": "ImGui", "ov_cimguiname": "igCloseButton", "ret": "bool", @@ -15560,7 +16159,7 @@ "comment": "// manually close the popup we have begin-ed into.", "defaults": {}, "funcname": "CloseCurrentPopup", - "location": "imgui:741", + "location": "imgui:778", "namespace": "ImGui", "ov_cimguiname": "igCloseCurrentPopup", "ret": "void", @@ -15586,7 +16185,7 @@ "cimguiname": "igClosePopupToLevel", "defaults": {}, "funcname": "ClosePopupToLevel", - "location": "imgui_internal:3371", + "location": "imgui_internal:3501", "namespace": "ImGui", "ov_cimguiname": "igClosePopupToLevel", "ret": "void", @@ -15603,7 +16202,7 @@ "cimguiname": "igClosePopupsExceptModals", "defaults": {}, "funcname": "ClosePopupsExceptModals", - "location": "imgui_internal:3373", + "location": "imgui_internal:3503", "namespace": "ImGui", "ov_cimguiname": "igClosePopupsExceptModals", "ret": "void", @@ -15629,7 +16228,7 @@ "cimguiname": "igClosePopupsOverWindow", "defaults": {}, "funcname": "ClosePopupsOverWindow", - "location": "imgui_internal:3372", + "location": "imgui_internal:3502", "namespace": "ImGui", "ov_cimguiname": "igClosePopupsOverWindow", "ret": "void", @@ -15659,7 +16258,7 @@ "cimguiname": "igCollapseButton", "defaults": {}, "funcname": "CollapseButton", - "location": "imgui_internal:3715", + "location": "imgui_internal:3855", "namespace": "ImGui", "ov_cimguiname": "igCollapseButton", "ret": "bool", @@ -15688,7 +16287,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:651", + "location": "imgui:674", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeader_TreeNodeFlags", "ret": "bool", @@ -15719,7 +16318,7 @@ "flags": "0" }, "funcname": "CollapsingHeader", - "location": "imgui:652", + "location": "imgui:675", "namespace": "ImGui", "ov_cimguiname": "igCollapsingHeader_BoolPtr", "ret": "bool", @@ -15757,7 +16356,7 @@ "size": "ImVec2(0,0)" }, "funcname": "ColorButton", - "location": "imgui:632", + "location": "imgui:655", "namespace": "ImGui", "ov_cimguiname": "igColorButton", "ret": "bool", @@ -15779,7 +16378,7 @@ "cimguiname": "igColorConvertFloat4ToU32", "defaults": {}, "funcname": "ColorConvertFloat4ToU32", - "location": "imgui:945", + "location": "imgui:982", "namespace": "ImGui", "ov_cimguiname": "igColorConvertFloat4ToU32", "ret": "ImU32", @@ -15824,7 +16423,7 @@ "cimguiname": "igColorConvertHSVtoRGB", "defaults": {}, "funcname": "ColorConvertHSVtoRGB", - "location": "imgui:947", + "location": "imgui:984", "namespace": "ImGui", "ov_cimguiname": "igColorConvertHSVtoRGB", "ret": "void", @@ -15869,7 +16468,7 @@ "cimguiname": "igColorConvertRGBtoHSV", "defaults": {}, "funcname": "ColorConvertRGBtoHSV", - "location": "imgui:946", + "location": "imgui:983", "namespace": "ImGui", "ov_cimguiname": "igColorConvertRGBtoHSV", "ret": "void", @@ -15895,7 +16494,7 @@ "cimguiname": "igColorConvertU32ToFloat4", "defaults": {}, "funcname": "ColorConvertU32ToFloat4", - "location": "imgui:944", + "location": "imgui:981", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igColorConvertU32ToFloat4", @@ -15928,7 +16527,7 @@ "flags": "0" }, "funcname": "ColorEdit3", - "location": "imgui:628", + "location": "imgui:651", "namespace": "ImGui", "ov_cimguiname": "igColorEdit3", "ret": "bool", @@ -15960,7 +16559,7 @@ "flags": "0" }, "funcname": "ColorEdit4", - "location": "imgui:629", + "location": "imgui:652", "namespace": "ImGui", "ov_cimguiname": "igColorEdit4", "ret": "bool", @@ -15986,7 +16585,7 @@ "cimguiname": "igColorEditOptionsPopup", "defaults": {}, "funcname": "ColorEditOptionsPopup", - "location": "imgui_internal:3762", + "location": "imgui_internal:3905", "namespace": "ImGui", "ov_cimguiname": "igColorEditOptionsPopup", "ret": "void", @@ -16018,7 +16617,7 @@ "flags": "0" }, "funcname": "ColorPicker3", - "location": "imgui:630", + "location": "imgui:653", "namespace": "ImGui", "ov_cimguiname": "igColorPicker3", "ret": "bool", @@ -16055,7 +16654,7 @@ "ref_col": "NULL" }, "funcname": "ColorPicker4", - "location": "imgui:631", + "location": "imgui:654", "namespace": "ImGui", "ov_cimguiname": "igColorPicker4", "ret": "bool", @@ -16081,7 +16680,7 @@ "cimguiname": "igColorPickerOptionsPopup", "defaults": {}, "funcname": "ColorPickerOptionsPopup", - "location": "imgui_internal:3763", + "location": "imgui_internal:3906", "namespace": "ImGui", "ov_cimguiname": "igColorPickerOptionsPopup", "ret": "void", @@ -16111,7 +16710,7 @@ "cimguiname": "igColorTooltip", "defaults": {}, "funcname": "ColorTooltip", - "location": "imgui_internal:3761", + "location": "imgui_internal:3904", "namespace": "ImGui", "ov_cimguiname": "igColorTooltip", "ret": "void", @@ -16121,7 +16720,7 @@ ], "igColumns": [ { - "args": "(int count,const char* id,bool border)", + "args": "(int count,const char* id,bool borders)", "argsT": [ { "name": "count", @@ -16132,20 +16731,20 @@ "type": "const char*" }, { - "name": "border", + "name": "borders", "type": "bool" } ], - "argsoriginal": "(int count=1,const char* id=((void*)0),bool border=true)", - "call_args": "(count,id,border)", + "argsoriginal": "(int count=1,const char* id=((void*)0),bool borders=true)", + "call_args": "(count,id,borders)", "cimguiname": "igColumns", "defaults": { - "border": "true", + "borders": "true", "count": "1", "id": "NULL" }, "funcname": "Columns", - "location": "imgui:816", + "location": "imgui:854", "namespace": "ImGui", "ov_cimguiname": "igColumns", "ret": "void", @@ -16185,7 +16784,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:557", + "location": "imgui:580", "namespace": "ImGui", "ov_cimguiname": "igCombo_Str_arr", "ret": "bool", @@ -16220,7 +16819,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:558", + "location": "imgui:581", "namespace": "ImGui", "ov_cimguiname": "igCombo_Str", "ret": "bool", @@ -16264,7 +16863,7 @@ "popup_max_height_in_items": "-1" }, "funcname": "Combo", - "location": "imgui:559", + "location": "imgui:582", "namespace": "ImGui", "ov_cimguiname": "igCombo_FnStrPtr", "ret": "bool", @@ -16274,27 +16873,23 @@ ], "igConvertSingleModFlagToKey": [ { - "args": "(ImGuiContext* ctx,ImGuiKey key)", + "args": "(ImGuiKey key)", "argsT": [ - { - "name": "ctx", - "type": "ImGuiContext*" - }, { "name": "key", "type": "ImGuiKey" } ], - "argsoriginal": "(ImGuiContext* ctx,ImGuiKey key)", - "call_args": "(ctx,key)", + "argsoriginal": "(ImGuiKey key)", + "call_args": "(key)", "cimguiname": "igConvertSingleModFlagToKey", "defaults": {}, "funcname": "ConvertSingleModFlagToKey", - "location": "imgui_internal:3431", + "location": "imgui_internal:3562", "namespace": "ImGui", "ov_cimguiname": "igConvertSingleModFlagToKey", "ret": "ImGuiKey", - "signature": "(ImGuiContext*,ImGuiKey)", + "signature": "(ImGuiKey)", "stname": "" } ], @@ -16314,7 +16909,7 @@ "shared_font_atlas": "NULL" }, "funcname": "CreateContext", - "location": "imgui:304", + "location": "imgui:328", "namespace": "ImGui", "ov_cimguiname": "igCreateContext", "ret": "ImGuiContext*", @@ -16336,7 +16931,7 @@ "cimguiname": "igCreateNewWindowSettings", "defaults": {}, "funcname": "CreateNewWindowSettings", - "location": "imgui_internal:3303", + "location": "imgui_internal:3432", "namespace": "ImGui", "ov_cimguiname": "igCreateNewWindowSettings", "ret": "ImGuiWindowSettings*", @@ -16346,7 +16941,7 @@ ], "igDataTypeApplyFromText": [ { - "args": "(const char* buf,ImGuiDataType data_type,void* p_data,const char* format)", + "args": "(const char* buf,ImGuiDataType data_type,void* p_data,const char* format,void* p_data_when_empty)", "argsT": [ { "name": "buf", @@ -16363,18 +16958,24 @@ { "name": "format", "type": "const char*" + }, + { + "name": "p_data_when_empty", + "type": "void*" } ], - "argsoriginal": "(const char* buf,ImGuiDataType data_type,void* p_data,const char* format)", - "call_args": "(buf,data_type,p_data,format)", + "argsoriginal": "(const char* buf,ImGuiDataType data_type,void* p_data,const char* format,void* p_data_when_empty=((void*)0))", + "call_args": "(buf,data_type,p_data,format,p_data_when_empty)", "cimguiname": "igDataTypeApplyFromText", - "defaults": {}, + "defaults": { + "p_data_when_empty": "NULL" + }, "funcname": "DataTypeApplyFromText", - "location": "imgui_internal:3748", + "location": "imgui_internal:3890", "namespace": "ImGui", "ov_cimguiname": "igDataTypeApplyFromText", "ret": "bool", - "signature": "(const char*,ImGuiDataType,void*,const char*)", + "signature": "(const char*,ImGuiDataType,void*,const char*,void*)", "stname": "" } ], @@ -16408,7 +17009,7 @@ "cimguiname": "igDataTypeApplyOp", "defaults": {}, "funcname": "DataTypeApplyOp", - "location": "imgui_internal:3747", + "location": "imgui_internal:3889", "namespace": "ImGui", "ov_cimguiname": "igDataTypeApplyOp", "ret": "void", @@ -16442,7 +17043,7 @@ "cimguiname": "igDataTypeClamp", "defaults": {}, "funcname": "DataTypeClamp", - "location": "imgui_internal:3750", + "location": "imgui_internal:3892", "namespace": "ImGui", "ov_cimguiname": "igDataTypeClamp", "ret": "bool", @@ -16472,7 +17073,7 @@ "cimguiname": "igDataTypeCompare", "defaults": {}, "funcname": "DataTypeCompare", - "location": "imgui_internal:3749", + "location": "imgui_internal:3891", "namespace": "ImGui", "ov_cimguiname": "igDataTypeCompare", "ret": "int", @@ -16510,7 +17111,7 @@ "cimguiname": "igDataTypeFormatString", "defaults": {}, "funcname": "DataTypeFormatString", - "location": "imgui_internal:3746", + "location": "imgui_internal:3888", "namespace": "ImGui", "ov_cimguiname": "igDataTypeFormatString", "ret": "int", @@ -16532,7 +17133,7 @@ "cimguiname": "igDataTypeGetInfo", "defaults": {}, "funcname": "DataTypeGetInfo", - "location": "imgui_internal:3745", + "location": "imgui_internal:3887", "namespace": "ImGui", "ov_cimguiname": "igDataTypeGetInfo", "ret": "const ImGuiDataTypeInfo*", @@ -16567,7 +17168,7 @@ "comment": "// size >= 0 : alloc, size = -1 : free", "defaults": {}, "funcname": "DebugAllocHook", - "location": "imgui_internal:3781", + "location": "imgui_internal:3922", "namespace": "ImGui", "ov_cimguiname": "igDebugAllocHook", "ret": "void", @@ -16593,7 +17194,7 @@ "cimguiname": "igDebugBreakButton", "defaults": {}, "funcname": "DebugBreakButton", - "location": "imgui_internal:3794", + "location": "imgui_internal:3934", "namespace": "ImGui", "ov_cimguiname": "igDebugBreakButton", "ret": "bool", @@ -16619,7 +17220,7 @@ "cimguiname": "igDebugBreakButtonTooltip", "defaults": {}, "funcname": "DebugBreakButtonTooltip", - "location": "imgui_internal:3795", + "location": "imgui_internal:3935", "namespace": "ImGui", "ov_cimguiname": "igDebugBreakButtonTooltip", "ret": "void", @@ -16636,7 +17237,7 @@ "cimguiname": "igDebugBreakClearData", "defaults": {}, "funcname": "DebugBreakClearData", - "location": "imgui_internal:3793", + "location": "imgui_internal:3933", "namespace": "ImGui", "ov_cimguiname": "igDebugBreakClearData", "ret": "void", @@ -16683,7 +17284,7 @@ "comment": "// This is called by IMGUI_CHECKVERSION() macro.", "defaults": {}, "funcname": "DebugCheckVersionAndDataLayout", - "location": "imgui:1002", + "location": "imgui:1065", "namespace": "ImGui", "ov_cimguiname": "igDebugCheckVersionAndDataLayout", "ret": "bool", @@ -16707,7 +17308,7 @@ "col": "4278190335" }, "funcname": "DebugDrawCursorPos", - "location": "imgui_internal:3787", + "location": "imgui_internal:3926", "namespace": "ImGui", "ov_cimguiname": "igDebugDrawCursorPos", "ret": "void", @@ -16731,7 +17332,7 @@ "col": "4278190335" }, "funcname": "DebugDrawItemRect", - "location": "imgui_internal:3789", + "location": "imgui_internal:3928", "namespace": "ImGui", "ov_cimguiname": "igDebugDrawItemRect", "ret": "void", @@ -16755,7 +17356,7 @@ "col": "4278190335" }, "funcname": "DebugDrawLineExtents", - "location": "imgui_internal:3788", + "location": "imgui_internal:3927", "namespace": "ImGui", "ov_cimguiname": "igDebugDrawLineExtents", "ret": "void", @@ -16777,7 +17378,7 @@ "cimguiname": "igDebugFlashStyleColor", "defaults": {}, "funcname": "DebugFlashStyleColor", - "location": "imgui:1000", + "location": "imgui:1063", "namespace": "ImGui", "ov_cimguiname": "igDebugFlashStyleColor", "ret": "void", @@ -16811,7 +17412,7 @@ "cimguiname": "igDebugHookIdInfo", "defaults": {}, "funcname": "DebugHookIdInfo", - "location": "imgui_internal:3797", + "location": "imgui_internal:3937", "namespace": "ImGui", "ov_cimguiname": "igDebugHookIdInfo", "ret": "void", @@ -16834,7 +17435,7 @@ "comment": "// Call sparingly: only 1 at the same time!", "defaults": {}, "funcname": "DebugLocateItem", - "location": "imgui_internal:3790", + "location": "imgui_internal:3930", "namespace": "ImGui", "ov_cimguiname": "igDebugLocateItem", "ret": "void", @@ -16857,7 +17458,7 @@ "comment": "// Only call on reaction to a mouse Hover: because only 1 at the same time!", "defaults": {}, "funcname": "DebugLocateItemOnHover", - "location": "imgui_internal:3791", + "location": "imgui_internal:3931", "namespace": "ImGui", "ov_cimguiname": "igDebugLocateItemOnHover", "ret": "void", @@ -16874,7 +17475,7 @@ "cimguiname": "igDebugLocateItemResolveWithLastItem", "defaults": {}, "funcname": "DebugLocateItemResolveWithLastItem", - "location": "imgui_internal:3792", + "location": "imgui_internal:3932", "namespace": "ImGui", "ov_cimguiname": "igDebugLocateItemResolveWithLastItem", "ret": "void", @@ -16898,10 +17499,11 @@ "argsoriginal": "(const char* fmt,...)", "call_args": "(fmt,...)", "cimguiname": "igDebugLog", + "comment": "// Call via IMGUI_DEBUG_LOG() for maximum stripping in caller code!", "defaults": {}, "funcname": "DebugLog", "isvararg": "...)", - "location": "imgui_internal:3779", + "location": "imgui:1067", "namespace": "ImGui", "ov_cimguiname": "igDebugLog", "ret": "void", @@ -16927,7 +17529,7 @@ "cimguiname": "igDebugLogV", "defaults": {}, "funcname": "DebugLogV", - "location": "imgui_internal:3780", + "location": "imgui:1068", "namespace": "ImGui", "ov_cimguiname": "igDebugLogV", "ret": "void", @@ -16949,7 +17551,7 @@ "cimguiname": "igDebugNodeColumns", "defaults": {}, "funcname": "DebugNodeColumns", - "location": "imgui_internal:3798", + "location": "imgui_internal:3938", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeColumns", "ret": "void", @@ -16975,7 +17577,7 @@ "cimguiname": "igDebugNodeDockNode", "defaults": {}, "funcname": "DebugNodeDockNode", - "location": "imgui_internal:3799", + "location": "imgui_internal:3939", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDockNode", "ret": "void", @@ -17013,7 +17615,7 @@ "cimguiname": "igDebugNodeDrawCmdShowMeshAndBoundingBox", "defaults": {}, "funcname": "DebugNodeDrawCmdShowMeshAndBoundingBox", - "location": "imgui_internal:3801", + "location": "imgui_internal:3941", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDrawCmdShowMeshAndBoundingBox", "ret": "void", @@ -17047,7 +17649,7 @@ "cimguiname": "igDebugNodeDrawList", "defaults": {}, "funcname": "DebugNodeDrawList", - "location": "imgui_internal:3800", + "location": "imgui_internal:3940", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeDrawList", "ret": "void", @@ -17069,7 +17671,7 @@ "cimguiname": "igDebugNodeFont", "defaults": {}, "funcname": "DebugNodeFont", - "location": "imgui_internal:3802", + "location": "imgui_internal:3942", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeFont", "ret": "void", @@ -17095,7 +17697,7 @@ "cimguiname": "igDebugNodeFontGlyph", "defaults": {}, "funcname": "DebugNodeFontGlyph", - "location": "imgui_internal:3803", + "location": "imgui_internal:3943", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeFontGlyph", "ret": "void", @@ -17117,7 +17719,7 @@ "cimguiname": "igDebugNodeInputTextState", "defaults": {}, "funcname": "DebugNodeInputTextState", - "location": "imgui_internal:3808", + "location": "imgui_internal:3948", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeInputTextState", "ret": "void", @@ -17125,6 +17727,58 @@ "stname": "" } ], + "igDebugNodeMultiSelectState": [ + { + "args": "(ImGuiMultiSelectState* state)", + "argsT": [ + { + "name": "state", + "type": "ImGuiMultiSelectState*" + } + ], + "argsoriginal": "(ImGuiMultiSelectState* state)", + "call_args": "(state)", + "cimguiname": "igDebugNodeMultiSelectState", + "defaults": {}, + "funcname": "DebugNodeMultiSelectState", + "location": "imgui_internal:3950", + "namespace": "ImGui", + "ov_cimguiname": "igDebugNodeMultiSelectState", + "ret": "void", + "signature": "(ImGuiMultiSelectState*)", + "stname": "" + } + ], + "igDebugNodePlatformMonitor": [ + { + "args": "(ImGuiPlatformMonitor* monitor,const char* label,int idx)", + "argsT": [ + { + "name": "monitor", + "type": "ImGuiPlatformMonitor*" + }, + { + "name": "label", + "type": "const char*" + }, + { + "name": "idx", + "type": "int" + } + ], + "argsoriginal": "(ImGuiPlatformMonitor* monitor,const char* label,int idx)", + "call_args": "(monitor,label,idx)", + "cimguiname": "igDebugNodePlatformMonitor", + "defaults": {}, + "funcname": "DebugNodePlatformMonitor", + "location": "imgui_internal:3956", + "namespace": "ImGui", + "ov_cimguiname": "igDebugNodePlatformMonitor", + "ret": "void", + "signature": "(ImGuiPlatformMonitor*,const char*,int)", + "stname": "" + } + ], "igDebugNodeStorage": [ { "args": "(ImGuiStorage* storage,const char* label)", @@ -17143,7 +17797,7 @@ "cimguiname": "igDebugNodeStorage", "defaults": {}, "funcname": "DebugNodeStorage", - "location": "imgui_internal:3804", + "location": "imgui_internal:3944", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeStorage", "ret": "void", @@ -17169,7 +17823,7 @@ "cimguiname": "igDebugNodeTabBar", "defaults": {}, "funcname": "DebugNodeTabBar", - "location": "imgui_internal:3805", + "location": "imgui_internal:3945", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTabBar", "ret": "void", @@ -17191,7 +17845,7 @@ "cimguiname": "igDebugNodeTable", "defaults": {}, "funcname": "DebugNodeTable", - "location": "imgui_internal:3806", + "location": "imgui_internal:3946", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTable", "ret": "void", @@ -17213,7 +17867,7 @@ "cimguiname": "igDebugNodeTableSettings", "defaults": {}, "funcname": "DebugNodeTableSettings", - "location": "imgui_internal:3807", + "location": "imgui_internal:3947", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTableSettings", "ret": "void", @@ -17235,7 +17889,7 @@ "cimguiname": "igDebugNodeTypingSelectState", "defaults": {}, "funcname": "DebugNodeTypingSelectState", - "location": "imgui_internal:3809", + "location": "imgui_internal:3949", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeTypingSelectState", "ret": "void", @@ -17257,7 +17911,7 @@ "cimguiname": "igDebugNodeViewport", "defaults": {}, "funcname": "DebugNodeViewport", - "location": "imgui_internal:3814", + "location": "imgui_internal:3955", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeViewport", "ret": "void", @@ -17283,7 +17937,7 @@ "cimguiname": "igDebugNodeWindow", "defaults": {}, "funcname": "DebugNodeWindow", - "location": "imgui_internal:3810", + "location": "imgui_internal:3951", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindow", "ret": "void", @@ -17305,7 +17959,7 @@ "cimguiname": "igDebugNodeWindowSettings", "defaults": {}, "funcname": "DebugNodeWindowSettings", - "location": "imgui_internal:3811", + "location": "imgui_internal:3952", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindowSettings", "ret": "void", @@ -17331,7 +17985,7 @@ "cimguiname": "igDebugNodeWindowsList", "defaults": {}, "funcname": "DebugNodeWindowsList", - "location": "imgui_internal:3812", + "location": "imgui_internal:3953", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindowsList", "ret": "void", @@ -17361,7 +18015,7 @@ "cimguiname": "igDebugNodeWindowsListByBeginStackParent", "defaults": {}, "funcname": "DebugNodeWindowsListByBeginStackParent", - "location": "imgui_internal:3813", + "location": "imgui_internal:3954", "namespace": "ImGui", "ov_cimguiname": "igDebugNodeWindowsListByBeginStackParent", "ret": "void", @@ -17383,7 +18037,7 @@ "cimguiname": "igDebugRenderKeyboardPreview", "defaults": {}, "funcname": "DebugRenderKeyboardPreview", - "location": "imgui_internal:3815", + "location": "imgui_internal:3957", "namespace": "ImGui", "ov_cimguiname": "igDebugRenderKeyboardPreview", "ret": "void", @@ -17413,7 +18067,7 @@ "cimguiname": "igDebugRenderViewportThumbnail", "defaults": {}, "funcname": "DebugRenderViewportThumbnail", - "location": "imgui_internal:3816", + "location": "imgui_internal:3958", "namespace": "ImGui", "ov_cimguiname": "igDebugRenderViewportThumbnail", "ret": "void", @@ -17430,7 +18084,7 @@ "cimguiname": "igDebugStartItemPicker", "defaults": {}, "funcname": "DebugStartItemPicker", - "location": "imgui:1001", + "location": "imgui:1064", "namespace": "ImGui", "ov_cimguiname": "igDebugStartItemPicker", "ret": "void", @@ -17452,7 +18106,7 @@ "cimguiname": "igDebugTextEncoding", "defaults": {}, "funcname": "DebugTextEncoding", - "location": "imgui:999", + "location": "imgui:1062", "namespace": "ImGui", "ov_cimguiname": "igDebugTextEncoding", "ret": "void", @@ -17460,6 +18114,32 @@ "stname": "" } ], + "igDebugTextUnformattedWithLocateItem": [ + { + "args": "(const char* line_begin,const char* line_end)", + "argsT": [ + { + "name": "line_begin", + "type": "const char*" + }, + { + "name": "line_end", + "type": "const char*" + } + ], + "argsoriginal": "(const char* line_begin,const char* line_end)", + "call_args": "(line_begin,line_end)", + "cimguiname": "igDebugTextUnformattedWithLocateItem", + "defaults": {}, + "funcname": "DebugTextUnformattedWithLocateItem", + "location": "imgui_internal:3929", + "namespace": "ImGui", + "ov_cimguiname": "igDebugTextUnformattedWithLocateItem", + "ret": "void", + "signature": "(const char*,const char*)", + "stname": "" + } + ], "igDestroyContext": [ { "args": "(ImGuiContext* ctx)", @@ -17477,7 +18157,7 @@ "ctx": "NULL" }, "funcname": "DestroyContext", - "location": "imgui:305", + "location": "imgui:329", "namespace": "ImGui", "ov_cimguiname": "igDestroyContext", "ret": "void", @@ -17499,7 +18179,7 @@ "cimguiname": "igDestroyPlatformWindow", "defaults": {}, "funcname": "DestroyPlatformWindow", - "location": "imgui_internal:3288", + "location": "imgui_internal:3417", "namespace": "ImGui", "ov_cimguiname": "igDestroyPlatformWindow", "ret": "void", @@ -17517,7 +18197,7 @@ "comment": "// call DestroyWindow platform functions for all viewports. call from backend Shutdown() if you need to close platform windows before imgui shutdown. otherwise will be called by DestroyContext().", "defaults": {}, "funcname": "DestroyPlatformWindows", - "location": "imgui:1019", + "location": "imgui:1085", "namespace": "ImGui", "ov_cimguiname": "igDestroyPlatformWindows", "ret": "void", @@ -17546,7 +18226,7 @@ "node_id": "0" }, "funcname": "DockBuilderAddNode", - "location": "imgui_internal:3550", + "location": "imgui_internal:3679", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderAddNode", "ret": "ImGuiID", @@ -17576,7 +18256,7 @@ "cimguiname": "igDockBuilderCopyDockSpace", "defaults": {}, "funcname": "DockBuilderCopyDockSpace", - "location": "imgui_internal:3557", + "location": "imgui_internal:3686", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyDockSpace", "ret": "void", @@ -17606,7 +18286,7 @@ "cimguiname": "igDockBuilderCopyNode", "defaults": {}, "funcname": "DockBuilderCopyNode", - "location": "imgui_internal:3558", + "location": "imgui_internal:3687", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyNode", "ret": "void", @@ -17632,7 +18312,7 @@ "cimguiname": "igDockBuilderCopyWindowSettings", "defaults": {}, "funcname": "DockBuilderCopyWindowSettings", - "location": "imgui_internal:3559", + "location": "imgui_internal:3688", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderCopyWindowSettings", "ret": "void", @@ -17658,7 +18338,7 @@ "cimguiname": "igDockBuilderDockWindow", "defaults": {}, "funcname": "DockBuilderDockWindow", - "location": "imgui_internal:3547", + "location": "imgui_internal:3676", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderDockWindow", "ret": "void", @@ -17680,7 +18360,7 @@ "cimguiname": "igDockBuilderFinish", "defaults": {}, "funcname": "DockBuilderFinish", - "location": "imgui_internal:3560", + "location": "imgui_internal:3689", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderFinish", "ret": "void", @@ -17702,7 +18382,7 @@ "cimguiname": "igDockBuilderGetCentralNode", "defaults": {}, "funcname": "DockBuilderGetCentralNode", - "location": "imgui_internal:3549", + "location": "imgui_internal:3678", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderGetCentralNode", "ret": "ImGuiDockNode*", @@ -17724,7 +18404,7 @@ "cimguiname": "igDockBuilderGetNode", "defaults": {}, "funcname": "DockBuilderGetNode", - "location": "imgui_internal:3548", + "location": "imgui_internal:3677", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderGetNode", "ret": "ImGuiDockNode*", @@ -17747,7 +18427,7 @@ "comment": "// Remove node and all its child, undock all windows", "defaults": {}, "funcname": "DockBuilderRemoveNode", - "location": "imgui_internal:3551", + "location": "imgui_internal:3680", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNode", "ret": "void", @@ -17770,7 +18450,7 @@ "comment": "// Remove all split/hierarchy. All remaining docked windows will be re-docked to the remaining root node (node_id).", "defaults": {}, "funcname": "DockBuilderRemoveNodeChildNodes", - "location": "imgui_internal:3553", + "location": "imgui_internal:3682", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNodeChildNodes", "ret": "void", @@ -17798,7 +18478,7 @@ "clear_settings_refs": "true" }, "funcname": "DockBuilderRemoveNodeDockedWindows", - "location": "imgui_internal:3552", + "location": "imgui_internal:3681", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderRemoveNodeDockedWindows", "ret": "void", @@ -17824,7 +18504,7 @@ "cimguiname": "igDockBuilderSetNodePos", "defaults": {}, "funcname": "DockBuilderSetNodePos", - "location": "imgui_internal:3554", + "location": "imgui_internal:3683", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSetNodePos", "ret": "void", @@ -17850,7 +18530,7 @@ "cimguiname": "igDockBuilderSetNodeSize", "defaults": {}, "funcname": "DockBuilderSetNodeSize", - "location": "imgui_internal:3555", + "location": "imgui_internal:3684", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSetNodeSize", "ret": "void", @@ -17889,7 +18569,7 @@ "comment": "// Create 2 child nodes in this parent node.", "defaults": {}, "funcname": "DockBuilderSplitNode", - "location": "imgui_internal:3556", + "location": "imgui_internal:3685", "namespace": "ImGui", "ov_cimguiname": "igDockBuilderSplitNode", "ret": "ImGuiID", @@ -17935,7 +18615,7 @@ "cimguiname": "igDockContextCalcDropPosForDocking", "defaults": {}, "funcname": "DockContextCalcDropPosForDocking", - "location": "imgui_internal:3522", + "location": "imgui_internal:3651", "namespace": "ImGui", "ov_cimguiname": "igDockContextCalcDropPosForDocking", "ret": "bool", @@ -17966,7 +18646,7 @@ "comment": "// Use root_id==0 to clear all", "defaults": {}, "funcname": "DockContextClearNodes", - "location": "imgui_internal:3511", + "location": "imgui_internal:3640", "namespace": "ImGui", "ov_cimguiname": "igDockContextClearNodes", "ret": "void", @@ -17988,7 +18668,7 @@ "cimguiname": "igDockContextEndFrame", "defaults": {}, "funcname": "DockContextEndFrame", - "location": "imgui_internal:3515", + "location": "imgui_internal:3644", "namespace": "ImGui", "ov_cimguiname": "igDockContextEndFrame", "ret": "void", @@ -18014,7 +18694,7 @@ "cimguiname": "igDockContextFindNodeByID", "defaults": {}, "funcname": "DockContextFindNodeByID", - "location": "imgui_internal:3523", + "location": "imgui_internal:3652", "namespace": "ImGui", "ov_cimguiname": "igDockContextFindNodeByID", "ret": "ImGuiDockNode*", @@ -18036,7 +18716,7 @@ "cimguiname": "igDockContextGenNodeID", "defaults": {}, "funcname": "DockContextGenNodeID", - "location": "imgui_internal:3516", + "location": "imgui_internal:3645", "namespace": "ImGui", "ov_cimguiname": "igDockContextGenNodeID", "ret": "ImGuiID", @@ -18058,7 +18738,7 @@ "cimguiname": "igDockContextInitialize", "defaults": {}, "funcname": "DockContextInitialize", - "location": "imgui_internal:3509", + "location": "imgui_internal:3638", "namespace": "ImGui", "ov_cimguiname": "igDockContextInitialize", "ret": "void", @@ -18080,7 +18760,7 @@ "cimguiname": "igDockContextNewFrameUpdateDocking", "defaults": {}, "funcname": "DockContextNewFrameUpdateDocking", - "location": "imgui_internal:3514", + "location": "imgui_internal:3643", "namespace": "ImGui", "ov_cimguiname": "igDockContextNewFrameUpdateDocking", "ret": "void", @@ -18102,7 +18782,7 @@ "cimguiname": "igDockContextNewFrameUpdateUndocking", "defaults": {}, "funcname": "DockContextNewFrameUpdateUndocking", - "location": "imgui_internal:3513", + "location": "imgui_internal:3642", "namespace": "ImGui", "ov_cimguiname": "igDockContextNewFrameUpdateUndocking", "ret": "void", @@ -18128,7 +18808,7 @@ "cimguiname": "igDockContextProcessUndockNode", "defaults": {}, "funcname": "DockContextProcessUndockNode", - "location": "imgui_internal:3521", + "location": "imgui_internal:3650", "namespace": "ImGui", "ov_cimguiname": "igDockContextProcessUndockNode", "ret": "void", @@ -18160,7 +18840,7 @@ "clear_persistent_docking_ref": "true" }, "funcname": "DockContextProcessUndockWindow", - "location": "imgui_internal:3520", + "location": "imgui_internal:3649", "namespace": "ImGui", "ov_cimguiname": "igDockContextProcessUndockWindow", "ret": "void", @@ -18206,7 +18886,7 @@ "cimguiname": "igDockContextQueueDock", "defaults": {}, "funcname": "DockContextQueueDock", - "location": "imgui_internal:3517", + "location": "imgui_internal:3646", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueDock", "ret": "void", @@ -18232,7 +18912,7 @@ "cimguiname": "igDockContextQueueUndockNode", "defaults": {}, "funcname": "DockContextQueueUndockNode", - "location": "imgui_internal:3519", + "location": "imgui_internal:3648", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueUndockNode", "ret": "void", @@ -18258,7 +18938,7 @@ "cimguiname": "igDockContextQueueUndockWindow", "defaults": {}, "funcname": "DockContextQueueUndockWindow", - "location": "imgui_internal:3518", + "location": "imgui_internal:3647", "namespace": "ImGui", "ov_cimguiname": "igDockContextQueueUndockWindow", "ret": "void", @@ -18280,7 +18960,7 @@ "cimguiname": "igDockContextRebuildNodes", "defaults": {}, "funcname": "DockContextRebuildNodes", - "location": "imgui_internal:3512", + "location": "imgui_internal:3641", "namespace": "ImGui", "ov_cimguiname": "igDockContextRebuildNodes", "ret": "void", @@ -18302,7 +18982,7 @@ "cimguiname": "igDockContextShutdown", "defaults": {}, "funcname": "DockContextShutdown", - "location": "imgui_internal:3510", + "location": "imgui_internal:3639", "namespace": "ImGui", "ov_cimguiname": "igDockContextShutdown", "ret": "void", @@ -18324,7 +19004,7 @@ "cimguiname": "igDockNodeBeginAmendTabBar", "defaults": {}, "funcname": "DockNodeBeginAmendTabBar", - "location": "imgui_internal:3525", + "location": "imgui_internal:3654", "namespace": "ImGui", "ov_cimguiname": "igDockNodeBeginAmendTabBar", "ret": "bool", @@ -18341,7 +19021,7 @@ "cimguiname": "igDockNodeEndAmendTabBar", "defaults": {}, "funcname": "DockNodeEndAmendTabBar", - "location": "imgui_internal:3526", + "location": "imgui_internal:3655", "namespace": "ImGui", "ov_cimguiname": "igDockNodeEndAmendTabBar", "ret": "void", @@ -18363,7 +19043,7 @@ "cimguiname": "igDockNodeGetDepth", "defaults": {}, "funcname": "DockNodeGetDepth", - "location": "imgui_internal:3529", + "location": "imgui_internal:3658", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetDepth", "ret": "int", @@ -18385,7 +19065,7 @@ "cimguiname": "igDockNodeGetRootNode", "defaults": {}, "funcname": "DockNodeGetRootNode", - "location": "imgui_internal:3527", + "location": "imgui_internal:3656", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetRootNode", "ret": "ImGuiDockNode*", @@ -18407,7 +19087,7 @@ "cimguiname": "igDockNodeGetWindowMenuButtonId", "defaults": {}, "funcname": "DockNodeGetWindowMenuButtonId", - "location": "imgui_internal:3530", + "location": "imgui_internal:3659", "namespace": "ImGui", "ov_cimguiname": "igDockNodeGetWindowMenuButtonId", "ret": "ImGuiID", @@ -18433,7 +19113,7 @@ "cimguiname": "igDockNodeIsInHierarchyOf", "defaults": {}, "funcname": "DockNodeIsInHierarchyOf", - "location": "imgui_internal:3528", + "location": "imgui_internal:3657", "namespace": "ImGui", "ov_cimguiname": "igDockNodeIsInHierarchyOf", "ret": "bool", @@ -18463,7 +19143,7 @@ "cimguiname": "igDockNodeWindowMenuHandler_Default", "defaults": {}, "funcname": "DockNodeWindowMenuHandler_Default", - "location": "imgui_internal:3524", + "location": "imgui_internal:3653", "namespace": "ImGui", "ov_cimguiname": "igDockNodeWindowMenuHandler_Default", "ret": "void", @@ -18473,10 +19153,10 @@ ], "igDockSpace": [ { - "args": "(ImGuiID id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)", + "args": "(ImGuiID dockspace_id,const ImVec2 size,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)", "argsT": [ { - "name": "id", + "name": "dockspace_id", "type": "ImGuiID" }, { @@ -18492,8 +19172,8 @@ "type": "const ImGuiWindowClass*" } ], - "argsoriginal": "(ImGuiID id,const ImVec2& size=ImVec2(0,0),ImGuiDockNodeFlags flags=0,const ImGuiWindowClass* window_class=((void*)0))", - "call_args": "(id,size,flags,window_class)", + "argsoriginal": "(ImGuiID dockspace_id,const ImVec2& size=ImVec2(0,0),ImGuiDockNodeFlags flags=0,const ImGuiWindowClass* window_class=((void*)0))", + "call_args": "(dockspace_id,size,flags,window_class)", "cimguiname": "igDockSpace", "defaults": { "flags": "0", @@ -18501,7 +19181,7 @@ "window_class": "NULL" }, "funcname": "DockSpace", - "location": "imgui:847", + "location": "imgui:885", "namespace": "ImGui", "ov_cimguiname": "igDockSpace", "ret": "ImGuiID", @@ -18511,8 +19191,12 @@ ], "igDockSpaceOverViewport": [ { - "args": "(const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)", + "args": "(ImGuiID dockspace_id,const ImGuiViewport* viewport,ImGuiDockNodeFlags flags,const ImGuiWindowClass* window_class)", "argsT": [ + { + "name": "dockspace_id", + "type": "ImGuiID" + }, { "name": "viewport", "type": "const ImGuiViewport*" @@ -18526,20 +19210,21 @@ "type": "const ImGuiWindowClass*" } ], - "argsoriginal": "(const ImGuiViewport* viewport=((void*)0),ImGuiDockNodeFlags flags=0,const ImGuiWindowClass* window_class=((void*)0))", - "call_args": "(viewport,flags,window_class)", + "argsoriginal": "(ImGuiID dockspace_id=0,const ImGuiViewport* viewport=((void*)0),ImGuiDockNodeFlags flags=0,const ImGuiWindowClass* window_class=((void*)0))", + "call_args": "(dockspace_id,viewport,flags,window_class)", "cimguiname": "igDockSpaceOverViewport", "defaults": { + "dockspace_id": "0", "flags": "0", "viewport": "NULL", "window_class": "NULL" }, "funcname": "DockSpaceOverViewport", - "location": "imgui:848", + "location": "imgui:886", "namespace": "ImGui", "ov_cimguiname": "igDockSpaceOverViewport", "ret": "ImGuiID", - "signature": "(const ImGuiViewport*,ImGuiDockNodeFlags,const ImGuiWindowClass*)", + "signature": "(ImGuiID,const ImGuiViewport*,ImGuiDockNodeFlags,const ImGuiWindowClass*)", "stname": "" } ], @@ -18585,7 +19270,7 @@ "cimguiname": "igDragBehavior", "defaults": {}, "funcname": "DragBehavior", - "location": "imgui_internal:3725", + "location": "imgui_internal:3865", "namespace": "ImGui", "ov_cimguiname": "igDragBehavior", "ret": "bool", @@ -18638,7 +19323,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat", - "location": "imgui:573", + "location": "imgui:596", "namespace": "ImGui", "ov_cimguiname": "igDragFloat", "ret": "bool", @@ -18690,7 +19375,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat2", - "location": "imgui:574", + "location": "imgui:597", "namespace": "ImGui", "ov_cimguiname": "igDragFloat2", "ret": "bool", @@ -18742,7 +19427,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat3", - "location": "imgui:575", + "location": "imgui:598", "namespace": "ImGui", "ov_cimguiname": "igDragFloat3", "ret": "bool", @@ -18794,7 +19479,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloat4", - "location": "imgui:576", + "location": "imgui:599", "namespace": "ImGui", "ov_cimguiname": "igDragFloat4", "ret": "bool", @@ -18855,7 +19540,7 @@ "v_speed": "1.0f" }, "funcname": "DragFloatRange2", - "location": "imgui:577", + "location": "imgui:600", "namespace": "ImGui", "ov_cimguiname": "igDragFloatRange2", "ret": "bool", @@ -18908,7 +19593,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt", - "location": "imgui:578", + "location": "imgui:601", "namespace": "ImGui", "ov_cimguiname": "igDragInt", "ret": "bool", @@ -18960,7 +19645,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt2", - "location": "imgui:579", + "location": "imgui:602", "namespace": "ImGui", "ov_cimguiname": "igDragInt2", "ret": "bool", @@ -19012,7 +19697,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt3", - "location": "imgui:580", + "location": "imgui:603", "namespace": "ImGui", "ov_cimguiname": "igDragInt3", "ret": "bool", @@ -19064,7 +19749,7 @@ "v_speed": "1.0f" }, "funcname": "DragInt4", - "location": "imgui:581", + "location": "imgui:604", "namespace": "ImGui", "ov_cimguiname": "igDragInt4", "ret": "bool", @@ -19125,7 +19810,7 @@ "v_speed": "1.0f" }, "funcname": "DragIntRange2", - "location": "imgui:582", + "location": "imgui:605", "namespace": "ImGui", "ov_cimguiname": "igDragIntRange2", "ret": "bool", @@ -19181,7 +19866,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalar", - "location": "imgui:583", + "location": "imgui:606", "namespace": "ImGui", "ov_cimguiname": "igDragScalar", "ret": "bool", @@ -19241,7 +19926,7 @@ "v_speed": "1.0f" }, "funcname": "DragScalarN", - "location": "imgui:584", + "location": "imgui:607", "namespace": "ImGui", "ov_cimguiname": "igDragScalarN", "ret": "bool", @@ -19264,7 +19949,7 @@ "comment": "// add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into.", "defaults": {}, "funcname": "Dummy", - "location": "imgui:483", + "location": "imgui:503", "namespace": "ImGui", "ov_cimguiname": "igDummy", "ret": "void", @@ -19281,7 +19966,7 @@ "cimguiname": "igEnd", "defaults": {}, "funcname": "End", - "location": "imgui:347", + "location": "imgui:372", "namespace": "ImGui", "ov_cimguiname": "igEnd", "ret": "void", @@ -19289,6 +19974,32 @@ "stname": "" } ], + "igEndBoxSelect": [ + { + "args": "(const ImRect scope_rect,ImGuiMultiSelectFlags ms_flags)", + "argsT": [ + { + "name": "scope_rect", + "type": "const ImRect" + }, + { + "name": "ms_flags", + "type": "ImGuiMultiSelectFlags" + } + ], + "argsoriginal": "(const ImRect& scope_rect,ImGuiMultiSelectFlags ms_flags)", + "call_args": "(scope_rect,ms_flags)", + "cimguiname": "igEndBoxSelect", + "defaults": {}, + "funcname": "EndBoxSelect", + "location": "imgui_internal:3718", + "namespace": "ImGui", + "ov_cimguiname": "igEndBoxSelect", + "ret": "void", + "signature": "(const ImRect,ImGuiMultiSelectFlags)", + "stname": "" + } + ], "igEndChild": [ { "args": "()", @@ -19298,7 +20009,7 @@ "cimguiname": "igEndChild", "defaults": {}, "funcname": "EndChild", - "location": "imgui:369", + "location": "imgui:394", "namespace": "ImGui", "ov_cimguiname": "igEndChild", "ret": "void", @@ -19316,7 +20027,7 @@ "comment": "// close columns", "defaults": {}, "funcname": "EndColumns", - "location": "imgui_internal:3590", + "location": "imgui_internal:3731", "namespace": "ImGui", "ov_cimguiname": "igEndColumns", "ret": "void", @@ -19334,7 +20045,7 @@ "comment": "// only call EndCombo() if BeginCombo() returns true!", "defaults": {}, "funcname": "EndCombo", - "location": "imgui:556", + "location": "imgui:579", "namespace": "ImGui", "ov_cimguiname": "igEndCombo", "ret": "void", @@ -19351,7 +20062,7 @@ "cimguiname": "igEndComboPreview", "defaults": {}, "funcname": "EndComboPreview", - "location": "imgui_internal:3393", + "location": "imgui_internal:3524", "namespace": "ImGui", "ov_cimguiname": "igEndComboPreview", "ret": "void", @@ -19368,7 +20079,7 @@ "cimguiname": "igEndDisabled", "defaults": {}, "funcname": "EndDisabled", - "location": "imgui:882", + "location": "imgui:921", "namespace": "ImGui", "ov_cimguiname": "igEndDisabled", "ret": "void", @@ -19376,6 +20087,23 @@ "stname": "" } ], + "igEndDisabledOverrideReenable": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igEndDisabledOverrideReenable", + "defaults": {}, + "funcname": "EndDisabledOverrideReenable", + "location": "imgui_internal:3487", + "namespace": "ImGui", + "ov_cimguiname": "igEndDisabledOverrideReenable", + "ret": "void", + "signature": "()", + "stname": "" + } + ], "igEndDragDropSource": [ { "args": "()", @@ -19386,7 +20114,7 @@ "comment": "// only call EndDragDropSource() if BeginDragDropSource() returns true!", "defaults": {}, "funcname": "EndDragDropSource", - "location": "imgui:871", + "location": "imgui:909", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropSource", "ret": "void", @@ -19404,7 +20132,7 @@ "comment": "// only call EndDragDropTarget() if BeginDragDropTarget() returns true!", "defaults": {}, "funcname": "EndDragDropTarget", - "location": "imgui:874", + "location": "imgui:912", "namespace": "ImGui", "ov_cimguiname": "igEndDragDropTarget", "ret": "void", @@ -19422,7 +20150,7 @@ "comment": "// ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without Render()... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all!", "defaults": {}, "funcname": "EndFrame", - "location": "imgui:313", + "location": "imgui:338", "namespace": "ImGui", "ov_cimguiname": "igEndFrame", "ret": "void", @@ -19440,7 +20168,7 @@ "comment": "// unlock horizontal starting position + capture the whole group bounding box into one \"item\" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)", "defaults": {}, "funcname": "EndGroup", - "location": "imgui:487", + "location": "imgui:507", "namespace": "ImGui", "ov_cimguiname": "igEndGroup", "ret": "void", @@ -19458,7 +20186,7 @@ "comment": "// only call EndListBox() if BeginListBox() returned true!", "defaults": {}, "funcname": "EndListBox", - "location": "imgui:668", + "location": "imgui:704", "namespace": "ImGui", "ov_cimguiname": "igEndListBox", "ret": "void", @@ -19476,7 +20204,7 @@ "comment": "// only call EndMainMenuBar() if BeginMainMenuBar() returns true!", "defaults": {}, "funcname": "EndMainMenuBar", - "location": "imgui:694", + "location": "imgui:730", "namespace": "ImGui", "ov_cimguiname": "igEndMainMenuBar", "ret": "void", @@ -19494,7 +20222,7 @@ "comment": "// only call EndMenu() if BeginMenu() returns true!", "defaults": {}, "funcname": "EndMenu", - "location": "imgui:696", + "location": "imgui:732", "namespace": "ImGui", "ov_cimguiname": "igEndMenu", "ret": "void", @@ -19512,7 +20240,7 @@ "comment": "// only call EndMenuBar() if BeginMenuBar() returns true!", "defaults": {}, "funcname": "EndMenuBar", - "location": "imgui:692", + "location": "imgui:728", "namespace": "ImGui", "ov_cimguiname": "igEndMenuBar", "ret": "void", @@ -19520,6 +20248,23 @@ "stname": "" } ], + "igEndMultiSelect": [ + { + "args": "()", + "argsT": [], + "argsoriginal": "()", + "call_args": "()", + "cimguiname": "igEndMultiSelect", + "defaults": {}, + "funcname": "EndMultiSelect", + "location": "imgui:693", + "namespace": "ImGui", + "ov_cimguiname": "igEndMultiSelect", + "ret": "ImGuiMultiSelectIO*", + "signature": "()", + "stname": "" + } + ], "igEndPopup": [ { "args": "()", @@ -19530,7 +20275,7 @@ "comment": "// only call EndPopup() if BeginPopupXXX() returns true!", "defaults": {}, "funcname": "EndPopup", - "location": "imgui:728", + "location": "imgui:765", "namespace": "ImGui", "ov_cimguiname": "igEndPopup", "ret": "void", @@ -19548,7 +20293,7 @@ "comment": "// only call EndTabBar() if BeginTabBar() returns true!", "defaults": {}, "funcname": "EndTabBar", - "location": "imgui:828", + "location": "imgui:866", "namespace": "ImGui", "ov_cimguiname": "igEndTabBar", "ret": "void", @@ -19566,7 +20311,7 @@ "comment": "// only call EndTabItem() if BeginTabItem() returns true!", "defaults": {}, "funcname": "EndTabItem", - "location": "imgui:830", + "location": "imgui:868", "namespace": "ImGui", "ov_cimguiname": "igEndTabItem", "ret": "void", @@ -19584,7 +20329,7 @@ "comment": "// only call EndTable() if BeginTable() returns true!", "defaults": {}, "funcname": "EndTable", - "location": "imgui:780", + "location": "imgui:817", "namespace": "ImGui", "ov_cimguiname": "igEndTable", "ret": "void", @@ -19602,7 +20347,7 @@ "comment": "// only call EndTooltip() if BeginTooltip()/BeginItemTooltip() returns true!", "defaults": {}, "funcname": "EndTooltip", - "location": "imgui:704", + "location": "imgui:741", "namespace": "ImGui", "ov_cimguiname": "igEndTooltip", "ret": "void", @@ -19630,7 +20375,7 @@ "user_data": "NULL" }, "funcname": "ErrorCheckEndFrameRecover", - "location": "imgui_internal:3784", + "location": "imgui_internal:3923", "namespace": "ImGui", "ov_cimguiname": "igErrorCheckEndFrameRecover", "ret": "void", @@ -19658,7 +20403,7 @@ "user_data": "NULL" }, "funcname": "ErrorCheckEndWindowRecover", - "location": "imgui_internal:3785", + "location": "imgui_internal:3924", "namespace": "ImGui", "ov_cimguiname": "igErrorCheckEndWindowRecover", "ret": "void", @@ -19675,7 +20420,7 @@ "cimguiname": "igErrorCheckUsingSetCursorPosToExtendParentBoundaries", "defaults": {}, "funcname": "ErrorCheckUsingSetCursorPosToExtendParentBoundaries", - "location": "imgui_internal:3786", + "location": "imgui_internal:3925", "namespace": "ImGui", "ov_cimguiname": "igErrorCheckUsingSetCursorPosToExtendParentBoundaries", "ret": "void", @@ -19701,7 +20446,7 @@ "cimguiname": "igFindBestWindowPosForPopup", "defaults": {}, "funcname": "FindBestWindowPosForPopup", - "location": "imgui_internal:3382", + "location": "imgui_internal:3509", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igFindBestWindowPosForPopup", @@ -19748,7 +20493,7 @@ "cimguiname": "igFindBestWindowPosForPopupEx", "defaults": {}, "funcname": "FindBestWindowPosForPopupEx", - "location": "imgui_internal:3383", + "location": "imgui_internal:3510", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igFindBestWindowPosForPopupEx", @@ -19771,7 +20516,7 @@ "cimguiname": "igFindBlockingModal", "defaults": {}, "funcname": "FindBlockingModal", - "location": "imgui_internal:3381", + "location": "imgui_internal:3508", "namespace": "ImGui", "ov_cimguiname": "igFindBlockingModal", "ret": "ImGuiWindow*", @@ -19793,7 +20538,7 @@ "cimguiname": "igFindBottomMostVisibleWindowWithinBeginStack", "defaults": {}, "funcname": "FindBottomMostVisibleWindowWithinBeginStack", - "location": "imgui_internal:3260", + "location": "imgui_internal:3385", "namespace": "ImGui", "ov_cimguiname": "igFindBottomMostVisibleWindowWithinBeginStack", "ret": "ImGuiWindow*", @@ -19815,7 +20560,7 @@ "cimguiname": "igFindHoveredViewportFromPlatformWindowStack", "defaults": {}, "funcname": "FindHoveredViewportFromPlatformWindowStack", - "location": "imgui_internal:3292", + "location": "imgui_internal:3421", "namespace": "ImGui", "ov_cimguiname": "igFindHoveredViewportFromPlatformWindowStack", "ret": "ImGuiViewportP*", @@ -19823,6 +20568,40 @@ "stname": "" } ], + "igFindHoveredWindowEx": [ + { + "args": "(const ImVec2 pos,bool find_first_and_in_any_viewport,ImGuiWindow** out_hovered_window,ImGuiWindow** out_hovered_window_under_moving_window)", + "argsT": [ + { + "name": "pos", + "type": "const ImVec2" + }, + { + "name": "find_first_and_in_any_viewport", + "type": "bool" + }, + { + "name": "out_hovered_window", + "type": "ImGuiWindow**" + }, + { + "name": "out_hovered_window_under_moving_window", + "type": "ImGuiWindow**" + } + ], + "argsoriginal": "(const ImVec2& pos,bool find_first_and_in_any_viewport,ImGuiWindow** out_hovered_window,ImGuiWindow** out_hovered_window_under_moving_window)", + "call_args": "(pos,find_first_and_in_any_viewport,out_hovered_window,out_hovered_window_under_moving_window)", + "cimguiname": "igFindHoveredWindowEx", + "defaults": {}, + "funcname": "FindHoveredWindowEx", + "location": "imgui_internal:3403", + "namespace": "ImGui", + "ov_cimguiname": "igFindHoveredWindowEx", + "ret": "void", + "signature": "(const ImVec2,bool,ImGuiWindow**,ImGuiWindow**)", + "stname": "" + } + ], "igFindOrCreateColumns": [ { "args": "(ImGuiWindow* window,ImGuiID id)", @@ -19841,7 +20620,7 @@ "cimguiname": "igFindOrCreateColumns", "defaults": {}, "funcname": "FindOrCreateColumns", - "location": "imgui_internal:3595", + "location": "imgui_internal:3736", "namespace": "ImGui", "ov_cimguiname": "igFindOrCreateColumns", "ret": "ImGuiOldColumns*", @@ -19870,7 +20649,7 @@ "text_end": "NULL" }, "funcname": "FindRenderedTextEnd", - "location": "imgui_internal:3690", + "location": "imgui_internal:3830", "namespace": "ImGui", "ov_cimguiname": "igFindRenderedTextEnd", "ret": "const char*", @@ -19892,7 +20671,7 @@ "cimguiname": "igFindSettingsHandler", "defaults": {}, "funcname": "FindSettingsHandler", - "location": "imgui_internal:3300", + "location": "imgui_internal:3429", "namespace": "ImGui", "ov_cimguiname": "igFindSettingsHandler", "ret": "ImGuiSettingsHandler*", @@ -19915,7 +20694,7 @@ "comment": "// this is a helper for backends.", "defaults": {}, "funcname": "FindViewportByID", - "location": "imgui:1020", + "location": "imgui:1086", "namespace": "ImGui", "ov_cimguiname": "igFindViewportByID", "ret": "ImGuiViewport*", @@ -19938,7 +20717,7 @@ "comment": "// this is a helper for backends. the type platform_handle is decided by the backend (e.g. HWND, MyWindow*, GLFWwindow* etc.)", "defaults": {}, "funcname": "FindViewportByPlatformHandle", - "location": "imgui:1021", + "location": "imgui:1087", "namespace": "ImGui", "ov_cimguiname": "igFindViewportByPlatformHandle", "ret": "ImGuiViewport*", @@ -19960,7 +20739,7 @@ "cimguiname": "igFindWindowByID", "defaults": {}, "funcname": "FindWindowByID", - "location": "imgui_internal:3234", + "location": "imgui_internal:3357", "namespace": "ImGui", "ov_cimguiname": "igFindWindowByID", "ret": "ImGuiWindow*", @@ -19982,7 +20761,7 @@ "cimguiname": "igFindWindowByName", "defaults": {}, "funcname": "FindWindowByName", - "location": "imgui_internal:3235", + "location": "imgui_internal:3358", "namespace": "ImGui", "ov_cimguiname": "igFindWindowByName", "ret": "ImGuiWindow*", @@ -20004,7 +20783,7 @@ "cimguiname": "igFindWindowDisplayIndex", "defaults": {}, "funcname": "FindWindowDisplayIndex", - "location": "imgui_internal:3259", + "location": "imgui_internal:3384", "namespace": "ImGui", "ov_cimguiname": "igFindWindowDisplayIndex", "ret": "int", @@ -20026,7 +20805,7 @@ "cimguiname": "igFindWindowSettingsByID", "defaults": {}, "funcname": "FindWindowSettingsByID", - "location": "imgui_internal:3304", + "location": "imgui_internal:3433", "namespace": "ImGui", "ov_cimguiname": "igFindWindowSettingsByID", "ret": "ImGuiWindowSettings*", @@ -20048,7 +20827,7 @@ "cimguiname": "igFindWindowSettingsByWindow", "defaults": {}, "funcname": "FindWindowSettingsByWindow", - "location": "imgui_internal:3305", + "location": "imgui_internal:3434", "namespace": "ImGui", "ov_cimguiname": "igFindWindowSettingsByWindow", "ret": "ImGuiWindowSettings*", @@ -20058,27 +20837,23 @@ ], "igFixupKeyChord": [ { - "args": "(ImGuiContext* ctx,ImGuiKeyChord key_chord)", + "args": "(ImGuiKeyChord key_chord)", "argsT": [ - { - "name": "ctx", - "type": "ImGuiContext*" - }, { "name": "key_chord", "type": "ImGuiKeyChord" } ], - "argsoriginal": "(ImGuiContext* ctx,ImGuiKeyChord key_chord)", - "call_args": "(ctx,key_chord)", + "argsoriginal": "(ImGuiKeyChord key_chord)", + "call_args": "(key_chord)", "cimguiname": "igFixupKeyChord", "defaults": {}, "funcname": "FixupKeyChord", - "location": "imgui_internal:3430", + "location": "imgui_internal:3561", "namespace": "ImGui", "ov_cimguiname": "igFixupKeyChord", "ret": "ImGuiKeyChord", - "signature": "(ImGuiContext*,ImGuiKeyChord)", + "signature": "(ImGuiKeyChord)", "stname": "" } ], @@ -20092,7 +20867,7 @@ "comment": "// Focus last item (no selection/activation).", "defaults": {}, "funcname": "FocusItem", - "location": "imgui_internal:3417", + "location": "imgui_internal:3548", "namespace": "ImGui", "ov_cimguiname": "igFocusItem", "ret": "void", @@ -20126,7 +20901,7 @@ "cimguiname": "igFocusTopMostWindowUnderOne", "defaults": {}, "funcname": "FocusTopMostWindowUnderOne", - "location": "imgui_internal:3254", + "location": "imgui_internal:3379", "namespace": "ImGui", "ov_cimguiname": "igFocusTopMostWindowUnderOne", "ret": "void", @@ -20154,7 +20929,7 @@ "flags": "0" }, "funcname": "FocusWindow", - "location": "imgui_internal:3253", + "location": "imgui_internal:3378", "namespace": "ImGui", "ov_cimguiname": "igFocusWindow", "ret": "void", @@ -20176,7 +20951,7 @@ "cimguiname": "igGcAwakeTransientWindowBuffers", "defaults": {}, "funcname": "GcAwakeTransientWindowBuffers", - "location": "imgui_internal:3776", + "location": "imgui_internal:3919", "namespace": "ImGui", "ov_cimguiname": "igGcAwakeTransientWindowBuffers", "ret": "void", @@ -20193,7 +20968,7 @@ "cimguiname": "igGcCompactTransientMiscBuffers", "defaults": {}, "funcname": "GcCompactTransientMiscBuffers", - "location": "imgui_internal:3774", + "location": "imgui_internal:3917", "namespace": "ImGui", "ov_cimguiname": "igGcCompactTransientMiscBuffers", "ret": "void", @@ -20215,7 +20990,7 @@ "cimguiname": "igGcCompactTransientWindowBuffers", "defaults": {}, "funcname": "GcCompactTransientWindowBuffers", - "location": "imgui_internal:3775", + "location": "imgui_internal:3918", "namespace": "ImGui", "ov_cimguiname": "igGcCompactTransientWindowBuffers", "ret": "void", @@ -20232,7 +21007,7 @@ "cimguiname": "igGetActiveID", "defaults": {}, "funcname": "GetActiveID", - "location": "imgui_internal:3329", + "location": "imgui_internal:3458", "namespace": "ImGui", "ov_cimguiname": "igGetActiveID", "ret": "ImGuiID", @@ -20262,7 +21037,7 @@ "cimguiname": "igGetAllocatorFunctions", "defaults": {}, "funcname": "GetAllocatorFunctions", - "location": "imgui:1009", + "location": "imgui:1076", "namespace": "ImGui", "ov_cimguiname": "igGetAllocatorFunctions", "ret": "void", @@ -20271,22 +21046,6 @@ } ], "igGetBackgroundDrawList": [ - { - "args": "()", - "argsT": [], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetBackgroundDrawList", - "comment": "// get background draw list for the viewport associated to the current window. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents.", - "defaults": {}, - "funcname": "GetBackgroundDrawList", - "location": "imgui:925", - "namespace": "ImGui", - "ov_cimguiname": "igGetBackgroundDrawList_Nil", - "ret": "ImDrawList*", - "signature": "()", - "stname": "" - }, { "args": "(ImGuiViewport* viewport)", "argsT": [ @@ -20295,20 +21054,44 @@ "type": "ImGuiViewport*" } ], - "argsoriginal": "(ImGuiViewport* viewport)", + "argsoriginal": "(ImGuiViewport* viewport=((void*)0))", "call_args": "(viewport)", "cimguiname": "igGetBackgroundDrawList", - "comment": "// get background draw list for the given viewport. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents.", - "defaults": {}, + "comment": "// get background draw list for the given viewport or viewport associated to the current window. this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents.", + "defaults": { + "viewport": "NULL" + }, "funcname": "GetBackgroundDrawList", - "location": "imgui:927", + "location": "imgui:964", "namespace": "ImGui", - "ov_cimguiname": "igGetBackgroundDrawList_ViewportPtr", + "ov_cimguiname": "igGetBackgroundDrawList", "ret": "ImDrawList*", "signature": "(ImGuiViewport*)", "stname": "" } ], + "igGetBoxSelectState": [ + { + "args": "(ImGuiID id)", + "argsT": [ + { + "name": "id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiID id)", + "call_args": "(id)", + "cimguiname": "igGetBoxSelectState", + "defaults": {}, + "funcname": "GetBoxSelectState", + "location": "imgui_internal:3725", + "namespace": "ImGui", + "ov_cimguiname": "igGetBoxSelectState", + "ret": "ImGuiBoxSelectState*", + "signature": "(ImGuiID)", + "stname": "" + } + ], "igGetClipboardText": [ { "args": "()", @@ -20318,7 +21101,7 @@ "cimguiname": "igGetClipboardText", "defaults": {}, "funcname": "GetClipboardText", - "location": "imgui:985", + "location": "imgui:1048", "namespace": "ImGui", "ov_cimguiname": "igGetClipboardText", "ret": "const char*", @@ -20347,7 +21130,7 @@ "alpha_mul": "1.0f" }, "funcname": "GetColorU32", - "location": "imgui:455", + "location": "imgui:472", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32_Col", "ret": "ImU32", @@ -20368,7 +21151,7 @@ "comment": "// retrieve given color with style alpha applied, packed as a 32-bit value suitable for ImDrawList", "defaults": {}, "funcname": "GetColorU32", - "location": "imgui:456", + "location": "imgui:473", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32_Vec4", "ret": "ImU32", @@ -20395,7 +21178,7 @@ "alpha_mul": "1.0f" }, "funcname": "GetColorU32", - "location": "imgui:457", + "location": "imgui:474", "namespace": "ImGui", "ov_cimguiname": "igGetColorU32_U32", "ret": "ImU32", @@ -20413,7 +21196,7 @@ "comment": "// get current column index", "defaults": {}, "funcname": "GetColumnIndex", - "location": "imgui:818", + "location": "imgui:856", "namespace": "ImGui", "ov_cimguiname": "igGetColumnIndex", "ret": "int", @@ -20439,7 +21222,7 @@ "cimguiname": "igGetColumnNormFromOffset", "defaults": {}, "funcname": "GetColumnNormFromOffset", - "location": "imgui_internal:3597", + "location": "imgui_internal:3738", "namespace": "ImGui", "ov_cimguiname": "igGetColumnNormFromOffset", "ret": "float", @@ -20464,7 +21247,7 @@ "column_index": "-1" }, "funcname": "GetColumnOffset", - "location": "imgui:821", + "location": "imgui:859", "namespace": "ImGui", "ov_cimguiname": "igGetColumnOffset", "ret": "float", @@ -20490,7 +21273,7 @@ "cimguiname": "igGetColumnOffsetFromNorm", "defaults": {}, "funcname": "GetColumnOffsetFromNorm", - "location": "imgui_internal:3596", + "location": "imgui_internal:3737", "namespace": "ImGui", "ov_cimguiname": "igGetColumnOffsetFromNorm", "ret": "float", @@ -20515,7 +21298,7 @@ "column_index": "-1" }, "funcname": "GetColumnWidth", - "location": "imgui:819", + "location": "imgui:857", "namespace": "ImGui", "ov_cimguiname": "igGetColumnWidth", "ret": "float", @@ -20532,7 +21315,7 @@ "cimguiname": "igGetColumnsCount", "defaults": {}, "funcname": "GetColumnsCount", - "location": "imgui:823", + "location": "imgui:861", "namespace": "ImGui", "ov_cimguiname": "igGetColumnsCount", "ret": "int", @@ -20558,7 +21341,7 @@ "cimguiname": "igGetColumnsID", "defaults": {}, "funcname": "GetColumnsID", - "location": "imgui_internal:3594", + "location": "imgui_internal:3735", "namespace": "ImGui", "ov_cimguiname": "igGetColumnsID", "ret": "ImGuiID", @@ -20578,10 +21361,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetContentRegionAvail", - "comment": "// == GetContentRegionMax() - GetCursorPos()", + "comment": "// available space from current position. THIS IS YOUR BEST FRIEND.", "defaults": {}, "funcname": "GetContentRegionAvail", - "location": "imgui:409", + "location": "imgui:489", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetContentRegionAvail", @@ -20590,53 +21373,6 @@ "stname": "" } ], - "igGetContentRegionMax": [ - { - "args": "(ImVec2 *pOut)", - "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetContentRegionMax", - "comment": "// current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates", - "defaults": {}, - "funcname": "GetContentRegionMax", - "location": "imgui:410", - "namespace": "ImGui", - "nonUDT": 1, - "ov_cimguiname": "igGetContentRegionMax", - "ret": "void", - "signature": "()", - "stname": "" - } - ], - "igGetContentRegionMaxAbs": [ - { - "args": "(ImVec2 *pOut)", - "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetContentRegionMaxAbs", - "defaults": {}, - "funcname": "GetContentRegionMaxAbs", - "location": "imgui_internal:3354", - "namespace": "ImGui", - "nonUDT": 1, - "ov_cimguiname": "igGetContentRegionMaxAbs", - "ret": "void", - "signature": "()", - "stname": "" - } - ], "igGetCurrentContext": [ { "args": "()", @@ -20646,7 +21382,7 @@ "cimguiname": "igGetCurrentContext", "defaults": {}, "funcname": "GetCurrentContext", - "location": "imgui:306", + "location": "imgui:330", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentContext", "ret": "ImGuiContext*", @@ -20664,7 +21400,7 @@ "comment": "// Focus scope we are outputting into, set by PushFocusScope()", "defaults": {}, "funcname": "GetCurrentFocusScope", - "location": "imgui_internal:3572", + "location": "imgui_internal:3701", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentFocusScope", "ret": "ImGuiID", @@ -20681,7 +21417,7 @@ "cimguiname": "igGetCurrentTabBar", "defaults": {}, "funcname": "GetCurrentTabBar", - "location": "imgui_internal:3657", + "location": "imgui_internal:3797", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentTabBar", "ret": "ImGuiTabBar*", @@ -20698,7 +21434,7 @@ "cimguiname": "igGetCurrentTable", "defaults": {}, "funcname": "GetCurrentTable", - "location": "imgui_internal:3612", + "location": "imgui_internal:3752", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentTable", "ret": "ImGuiTable*", @@ -20715,7 +21451,7 @@ "cimguiname": "igGetCurrentWindow", "defaults": {}, "funcname": "GetCurrentWindow", - "location": "imgui_internal:3233", + "location": "imgui_internal:3356", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentWindow", "ret": "ImGuiWindow*", @@ -20732,7 +21468,7 @@ "cimguiname": "igGetCurrentWindowRead", "defaults": {}, "funcname": "GetCurrentWindowRead", - "location": "imgui_internal:3232", + "location": "imgui_internal:3355", "namespace": "ImGui", "ov_cimguiname": "igGetCurrentWindowRead", "ret": "ImGuiWindow*", @@ -20752,10 +21488,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetCursorPos", - "comment": "// [window-local] cursor position in window coordinates (relative to window position)", + "comment": "// [window-local] cursor position in window-local coordinates. This is not your best friend.", "defaults": {}, "funcname": "GetCursorPos", - "location": "imgui:470", + "location": "imgui:490", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorPos", @@ -20774,7 +21510,7 @@ "comment": "// [window-local] \"", "defaults": {}, "funcname": "GetCursorPosX", - "location": "imgui:471", + "location": "imgui:491", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosX", "ret": "float", @@ -20792,7 +21528,7 @@ "comment": "// [window-local] \"", "defaults": {}, "funcname": "GetCursorPosY", - "location": "imgui:472", + "location": "imgui:492", "namespace": "ImGui", "ov_cimguiname": "igGetCursorPosY", "ret": "float", @@ -20812,10 +21548,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetCursorScreenPos", - "comment": "// cursor position in absolute coordinates (prefer using this, also more useful to work with ImDrawList API).", + "comment": "// cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND (prefer using this rather than GetCursorPos(), also more useful to work with ImDrawList API).", "defaults": {}, "funcname": "GetCursorScreenPos", - "location": "imgui:468", + "location": "imgui:487", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorScreenPos", @@ -20836,10 +21572,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetCursorStartPos", - "comment": "// [window-local] initial cursor position, in window coordinates", + "comment": "// [window-local] initial cursor position, in window-local coordinates. Call GetCursorScreenPos() after Begin() to get the absolute coordinates version.", "defaults": {}, "funcname": "GetCursorStartPos", - "location": "imgui:476", + "location": "imgui:496", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetCursorStartPos", @@ -20857,7 +21593,7 @@ "cimguiname": "igGetDefaultFont", "defaults": {}, "funcname": "GetDefaultFont", - "location": "imgui_internal:3264", + "location": "imgui_internal:3392", "namespace": "ImGui", "ov_cimguiname": "igGetDefaultFont", "ret": "ImFont*", @@ -20875,7 +21611,7 @@ "comment": "// peek directly into the current payload from anywhere. returns NULL when drag and drop is finished or inactive. use ImGuiPayload::IsDataType() to test for the payload type.", "defaults": {}, "funcname": "GetDragDropPayload", - "location": "imgui:875", + "location": "imgui:913", "namespace": "ImGui", "ov_cimguiname": "igGetDragDropPayload", "ret": "const ImGuiPayload*", @@ -20893,7 +21629,7 @@ "comment": "// valid after Render() and until the next call to NewFrame(). this is what you have to render.", "defaults": {}, "funcname": "GetDrawData", - "location": "imgui:315", + "location": "imgui:340", "namespace": "ImGui", "ov_cimguiname": "igGetDrawData", "ret": "ImDrawData*", @@ -20911,7 +21647,7 @@ "comment": "// you may use this when creating your own ImDrawList instances.", "defaults": {}, "funcname": "GetDrawListSharedData", - "location": "imgui:935", + "location": "imgui:972", "namespace": "ImGui", "ov_cimguiname": "igGetDrawListSharedData", "ret": "ImDrawListSharedData*", @@ -20928,7 +21664,7 @@ "cimguiname": "igGetFocusID", "defaults": {}, "funcname": "GetFocusID", - "location": "imgui_internal:3330", + "location": "imgui_internal:3459", "namespace": "ImGui", "ov_cimguiname": "igGetFocusID", "ret": "ImGuiID", @@ -20946,7 +21682,7 @@ "comment": "// get current font", "defaults": {}, "funcname": "GetFont", - "location": "imgui:452", + "location": "imgui:469", "namespace": "ImGui", "ov_cimguiname": "igGetFont", "ret": "ImFont*", @@ -20964,7 +21700,7 @@ "comment": "// get current font size (= height in pixels) of current font with current scale applied", "defaults": {}, "funcname": "GetFontSize", - "location": "imgui:453", + "location": "imgui:470", "namespace": "ImGui", "ov_cimguiname": "igGetFontSize", "ret": "float", @@ -20984,10 +21720,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetFontTexUvWhitePixel", - "comment": "// get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API", + "comment": "// get UV coordinate for a white pixel, useful to draw custom shapes via the ImDrawList API", "defaults": {}, "funcname": "GetFontTexUvWhitePixel", - "location": "imgui:454", + "location": "imgui:471", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetFontTexUvWhitePixel", @@ -20997,22 +21733,6 @@ } ], "igGetForegroundDrawList": [ - { - "args": "()", - "argsT": [], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetForegroundDrawList", - "comment": "// get foreground draw list for the viewport associated to the current window. this draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents.", - "defaults": {}, - "funcname": "GetForegroundDrawList", - "location": "imgui:926", - "namespace": "ImGui", - "ov_cimguiname": "igGetForegroundDrawList_Nil", - "ret": "ImDrawList*", - "signature": "()", - "stname": "" - }, { "args": "(ImGuiViewport* viewport)", "argsT": [ @@ -21021,13 +21741,15 @@ "type": "ImGuiViewport*" } ], - "argsoriginal": "(ImGuiViewport* viewport)", + "argsoriginal": "(ImGuiViewport* viewport=((void*)0))", "call_args": "(viewport)", "cimguiname": "igGetForegroundDrawList", - "comment": "// get foreground draw list for the given viewport. this draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents.", - "defaults": {}, + "comment": "// get foreground draw list for the given viewport or viewport associated to the current window. this draw list will be the top-most rendered one. Useful to quickly draw shapes/text over dear imgui contents.", + "defaults": { + "viewport": "NULL" + }, "funcname": "GetForegroundDrawList", - "location": "imgui:928", + "location": "imgui:965", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawList_ViewportPtr", "ret": "ImDrawList*", @@ -21047,7 +21769,7 @@ "cimguiname": "igGetForegroundDrawList", "defaults": {}, "funcname": "GetForegroundDrawList", - "location": "imgui_internal:3265", + "location": "imgui_internal:3393", "namespace": "ImGui", "ov_cimguiname": "igGetForegroundDrawList_WindowPtr", "ret": "ImDrawList*", @@ -21065,7 +21787,7 @@ "comment": "// get global imgui frame count. incremented by 1 every frame.", "defaults": {}, "funcname": "GetFrameCount", - "location": "imgui:934", + "location": "imgui:971", "namespace": "ImGui", "ov_cimguiname": "igGetFrameCount", "ret": "int", @@ -21083,7 +21805,7 @@ "comment": "// ~ FontSize + style.FramePadding.y * 2", "defaults": {}, "funcname": "GetFrameHeight", - "location": "imgui:491", + "location": "imgui:511", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeight", "ret": "float", @@ -21101,7 +21823,7 @@ "comment": "// ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets)", "defaults": {}, "funcname": "GetFrameHeightWithSpacing", - "location": "imgui:492", + "location": "imgui:512", "namespace": "ImGui", "ov_cimguiname": "igGetFrameHeightWithSpacing", "ret": "float", @@ -21118,7 +21840,7 @@ "cimguiname": "igGetHoveredID", "defaults": {}, "funcname": "GetHoveredID", - "location": "imgui_internal:3334", + "location": "imgui_internal:3463", "namespace": "ImGui", "ov_cimguiname": "igGetHoveredID", "ret": "ImGuiID", @@ -21141,7 +21863,7 @@ "comment": "// calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself", "defaults": {}, "funcname": "GetID", - "location": "imgui:510", + "location": "imgui:530", "namespace": "ImGui", "ov_cimguiname": "igGetID_Str", "ret": "ImGuiID", @@ -21165,7 +21887,7 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:511", + "location": "imgui:531", "namespace": "ImGui", "ov_cimguiname": "igGetID_StrStr", "ret": "ImGuiID", @@ -21185,12 +21907,32 @@ "cimguiname": "igGetID", "defaults": {}, "funcname": "GetID", - "location": "imgui:512", + "location": "imgui:532", "namespace": "ImGui", "ov_cimguiname": "igGetID_Ptr", "ret": "ImGuiID", "signature": "(const void*)", "stname": "" + }, + { + "args": "(int int_id)", + "argsT": [ + { + "name": "int_id", + "type": "int" + } + ], + "argsoriginal": "(int int_id)", + "call_args": "(int_id)", + "cimguiname": "igGetID", + "defaults": {}, + "funcname": "GetID", + "location": "imgui:533", + "namespace": "ImGui", + "ov_cimguiname": "igGetID_Int", + "ret": "ImGuiID", + "signature": "(int)", + "stname": "" } ], "igGetIDWithSeed": [ @@ -21215,7 +21957,7 @@ "cimguiname": "igGetIDWithSeed", "defaults": {}, "funcname": "GetIDWithSeed", - "location": "imgui_internal:3339", + "location": "imgui_internal:3468", "namespace": "ImGui", "ov_cimguiname": "igGetIDWithSeed_Str", "ret": "ImGuiID", @@ -21239,7 +21981,7 @@ "cimguiname": "igGetIDWithSeed", "defaults": {}, "funcname": "GetIDWithSeed", - "location": "imgui_internal:3340", + "location": "imgui_internal:3469", "namespace": "ImGui", "ov_cimguiname": "igGetIDWithSeed_Int", "ret": "ImGuiID", @@ -21254,10 +21996,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetIO", - "comment": "// access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)", + "comment": "// access the ImGuiIO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags)", "defaults": {}, "funcname": "GetIO", - "location": "imgui:310", + "location": "imgui:334", "namespace": "ImGui", "ov_cimguiname": "igGetIO", "ret": "ImGuiIO*", @@ -21281,7 +22023,7 @@ "comment": "// Get input text state if active", "defaults": {}, "funcname": "GetInputTextState", - "location": "imgui_internal:3758", + "location": "imgui_internal:3900", "namespace": "ImGui", "ov_cimguiname": "igGetInputTextState", "ret": "ImGuiInputTextState*", @@ -21298,7 +22040,7 @@ "cimguiname": "igGetItemFlags", "defaults": {}, "funcname": "GetItemFlags", - "location": "imgui_internal:3328", + "location": "imgui_internal:3457", "namespace": "ImGui", "ov_cimguiname": "igGetItemFlags", "ret": "ImGuiItemFlags", @@ -21316,7 +22058,7 @@ "comment": "// get ID of last item (~~ often same ImGui::GetID(label) beforehand)", "defaults": {}, "funcname": "GetItemID", - "location": "imgui:913", + "location": "imgui:952", "namespace": "ImGui", "ov_cimguiname": "igGetItemID", "ret": "ImGuiID", @@ -21339,7 +22081,7 @@ "comment": "// get lower-right bounding rectangle of the last item (screen space)", "defaults": {}, "funcname": "GetItemRectMax", - "location": "imgui:915", + "location": "imgui:954", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMax", @@ -21363,7 +22105,7 @@ "comment": "// get upper-left bounding rectangle of the last item (screen space)", "defaults": {}, "funcname": "GetItemRectMin", - "location": "imgui:914", + "location": "imgui:953", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectMin", @@ -21387,7 +22129,7 @@ "comment": "// get size of last item", "defaults": {}, "funcname": "GetItemRectSize", - "location": "imgui:916", + "location": "imgui:955", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetItemRectSize", @@ -21405,7 +22147,7 @@ "cimguiname": "igGetItemStatusFlags", "defaults": {}, "funcname": "GetItemStatusFlags", - "location": "imgui_internal:3327", + "location": "imgui_internal:3456", "namespace": "ImGui", "ov_cimguiname": "igGetItemStatusFlags", "ret": "ImGuiItemStatusFlags", @@ -21427,7 +22169,7 @@ "cimguiname": "igGetKeyChordName", "defaults": {}, "funcname": "GetKeyChordName", - "location": "imgui_internal:3444", + "location": "imgui_internal:3573", "namespace": "ImGui", "ov_cimguiname": "igGetKeyChordName", "ret": "const char*", @@ -21453,7 +22195,7 @@ "cimguiname": "igGetKeyData", "defaults": {}, "funcname": "GetKeyData", - "location": "imgui_internal:3442", + "location": "imgui_internal:3571", "namespace": "ImGui", "ov_cimguiname": "igGetKeyData_ContextPtr", "ret": "ImGuiKeyData*", @@ -21473,7 +22215,7 @@ "cimguiname": "igGetKeyData", "defaults": {}, "funcname": "GetKeyData", - "location": "imgui_internal:3443", + "location": "imgui_internal:3572", "namespace": "ImGui", "ov_cimguiname": "igGetKeyData_Key", "ret": "ImGuiKeyData*", @@ -21481,28 +22223,6 @@ "stname": "" } ], - "igGetKeyIndex": [ - { - "args": "(ImGuiKey key)", - "argsT": [ - { - "name": "key", - "type": "ImGuiKey" - } - ], - "argsoriginal": "(ImGuiKey key)", - "call_args": "(key)", - "cimguiname": "igGetKeyIndex", - "defaults": {}, - "funcname": "GetKeyIndex", - "location": "imgui:3435", - "namespace": "ImGui", - "ov_cimguiname": "igGetKeyIndex", - "ret": "ImGuiKey", - "signature": "(ImGuiKey)", - "stname": "" - } - ], "igGetKeyMagnitude2d": [ { "args": "(ImVec2 *pOut,ImGuiKey key_left,ImGuiKey key_right,ImGuiKey key_up,ImGuiKey key_down)", @@ -21533,7 +22253,7 @@ "cimguiname": "igGetKeyMagnitude2d", "defaults": {}, "funcname": "GetKeyMagnitude2d", - "location": "imgui_internal:3447", + "location": "imgui_internal:3576", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetKeyMagnitude2d", @@ -21557,7 +22277,7 @@ "comment": "// [DEBUG] returns English name of the key. Those names a provided for debugging purpose and are not meant to be saved persistently not compared.", "defaults": {}, "funcname": "GetKeyName", - "location": "imgui:959", + "location": "imgui:996", "namespace": "ImGui", "ov_cimguiname": "igGetKeyName", "ret": "const char*", @@ -21579,7 +22299,7 @@ "cimguiname": "igGetKeyOwner", "defaults": {}, "funcname": "GetKeyOwner", - "location": "imgui_internal:3466", + "location": "imgui_internal:3595", "namespace": "ImGui", "ov_cimguiname": "igGetKeyOwner", "ret": "ImGuiID", @@ -21605,7 +22325,7 @@ "cimguiname": "igGetKeyOwnerData", "defaults": {}, "funcname": "GetKeyOwnerData", - "location": "imgui_internal:3471", + "location": "imgui_internal:3600", "namespace": "ImGui", "ov_cimguiname": "igGetKeyOwnerData", "ret": "ImGuiKeyOwnerData*", @@ -21636,7 +22356,7 @@ "comment": "// uses provided repeat rate/delay. return a count, most often 0 or 1 but might be >1 if RepeatRate is small enough that DeltaTime > RepeatRate", "defaults": {}, "funcname": "GetKeyPressedAmount", - "location": "imgui:958", + "location": "imgui:995", "namespace": "ImGui", "ov_cimguiname": "igGetKeyPressedAmount", "ret": "int", @@ -21654,7 +22374,7 @@ "comment": "// return primary/default viewport. This can never be NULL.", "defaults": {}, "funcname": "GetMainViewport", - "location": "imgui:922", + "location": "imgui:961", "namespace": "ImGui", "ov_cimguiname": "igGetMainViewport", "ret": "ImGuiViewport*", @@ -21677,7 +22397,7 @@ "comment": "// return the number of successive mouse-clicks at the time where a click happen (otherwise 0).", "defaults": {}, "funcname": "GetMouseClickedCount", - "location": "imgui:970", + "location": "imgui:1033", "namespace": "ImGui", "ov_cimguiname": "igGetMouseClickedCount", "ret": "int", @@ -21695,7 +22415,7 @@ "comment": "// get desired mouse cursor shape. Important: reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you", "defaults": {}, "funcname": "GetMouseCursor", - "location": "imgui:979", + "location": "imgui:1042", "namespace": "ImGui", "ov_cimguiname": "igGetMouseCursor", "ret": "ImGuiMouseCursor", @@ -21723,13 +22443,13 @@ "argsoriginal": "(ImGuiMouseButton button=0,float lock_threshold=-1.0f)", "call_args": "(button,lock_threshold)", "cimguiname": "igGetMouseDragDelta", - "comment": "// return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold)", + "comment": "// return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)", "defaults": { "button": "0", "lock_threshold": "-1.0f" }, "funcname": "GetMouseDragDelta", - "location": "imgui:977", + "location": "imgui:1040", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMouseDragDelta", @@ -21753,7 +22473,7 @@ "comment": "// shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls", "defaults": {}, "funcname": "GetMousePos", - "location": "imgui:974", + "location": "imgui:1037", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePos", @@ -21777,7 +22497,7 @@ "comment": "// retrieve mouse position at the time of opening popup we have BeginPopup() into (helper to avoid user backing that value themselves)", "defaults": {}, "funcname": "GetMousePosOnOpeningCurrentPopup", - "location": "imgui:975", + "location": "imgui:1038", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetMousePosOnOpeningCurrentPopup", @@ -21786,6 +22506,28 @@ "stname": "" } ], + "igGetMultiSelectState": [ + { + "args": "(ImGuiID id)", + "argsT": [ + { + "name": "id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiID id)", + "call_args": "(id)", + "cimguiname": "igGetMultiSelectState", + "defaults": {}, + "funcname": "GetMultiSelectState", + "location": "imgui_internal:3726", + "namespace": "ImGui", + "ov_cimguiname": "igGetMultiSelectState", + "ret": "ImGuiMultiSelectState*", + "signature": "(ImGuiID)", + "stname": "" + } + ], "igGetNavTweakPressedAmount": [ { "args": "(ImGuiAxis axis)", @@ -21800,7 +22542,7 @@ "cimguiname": "igGetNavTweakPressedAmount", "defaults": {}, "funcname": "GetNavTweakPressedAmount", - "location": "imgui_internal:3448", + "location": "imgui_internal:3577", "namespace": "ImGui", "ov_cimguiname": "igGetNavTweakPressedAmount", "ret": "float", @@ -21815,10 +22557,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetPlatformIO", - "comment": "// platform/renderer functions, for backend to setup + viewports list.", + "comment": "// access the ImGuiPlatformIO structure (mostly hooks/functions to connect to platform/renderer and OS Clipboard, IME etc.)", "defaults": {}, "funcname": "GetPlatformIO", - "location": "imgui:1016", + "location": "imgui:335", "namespace": "ImGui", "ov_cimguiname": "igGetPlatformIO", "ret": "ImGuiPlatformIO*", @@ -21845,7 +22587,7 @@ "cimguiname": "igGetPopupAllowedExtentRect", "defaults": {}, "funcname": "GetPopupAllowedExtentRect", - "location": "imgui_internal:3378", + "location": "imgui_internal:3505", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetPopupAllowedExtentRect", @@ -21864,7 +22606,7 @@ "comment": "// get maximum scrolling amount ~~ ContentSize.x - WindowSize.x - DecorationsSize.x", "defaults": {}, "funcname": "GetScrollMaxX", - "location": "imgui:421", + "location": "imgui:438", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxX", "ret": "float", @@ -21882,7 +22624,7 @@ "comment": "// get maximum scrolling amount ~~ ContentSize.y - WindowSize.y - DecorationsSize.y", "defaults": {}, "funcname": "GetScrollMaxY", - "location": "imgui:422", + "location": "imgui:439", "namespace": "ImGui", "ov_cimguiname": "igGetScrollMaxY", "ret": "float", @@ -21900,7 +22642,7 @@ "comment": "// get scrolling amount [0 .. GetScrollMaxX()]", "defaults": {}, "funcname": "GetScrollX", - "location": "imgui:417", + "location": "imgui:434", "namespace": "ImGui", "ov_cimguiname": "igGetScrollX", "ret": "float", @@ -21918,7 +22660,7 @@ "comment": "// get scrolling amount [0 .. GetScrollMaxY()]", "defaults": {}, "funcname": "GetScrollY", - "location": "imgui:418", + "location": "imgui:435", "namespace": "ImGui", "ov_cimguiname": "igGetScrollY", "ret": "float", @@ -21940,7 +22682,7 @@ "cimguiname": "igGetShortcutRoutingData", "defaults": {}, "funcname": "GetShortcutRoutingData", - "location": "imgui_internal:3505", + "location": "imgui_internal:3634", "namespace": "ImGui", "ov_cimguiname": "igGetShortcutRoutingData", "ret": "ImGuiKeyRoutingData*", @@ -21957,7 +22699,7 @@ "cimguiname": "igGetStateStorage", "defaults": {}, "funcname": "GetStateStorage", - "location": "imgui:938", + "location": "imgui:975", "namespace": "ImGui", "ov_cimguiname": "igGetStateStorage", "ret": "ImGuiStorage*", @@ -21975,7 +22717,7 @@ "comment": "// access the Style structure (colors, sizes). Always use PushStyleColor(), PushStyleVar() to modify style mid-frame!", "defaults": {}, "funcname": "GetStyle", - "location": "imgui:311", + "location": "imgui:336", "namespace": "ImGui", "ov_cimguiname": "igGetStyle", "ret": "ImGuiStyle*", @@ -21999,7 +22741,7 @@ "comment": "// get a string corresponding to the enum value (for display, saving, etc.).", "defaults": {}, "funcname": "GetStyleColorName", - "location": "imgui:936", + "location": "imgui:973", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorName", "ret": "const char*", @@ -22022,7 +22764,7 @@ "comment": "// retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in.", "defaults": {}, "funcname": "GetStyleColorVec4", - "location": "imgui:458", + "location": "imgui:475", "namespace": "ImGui", "ov_cimguiname": "igGetStyleColorVec4", "ret": "const ImVec4*", @@ -22045,7 +22787,7 @@ "cimguiname": "igGetStyleVarInfo", "defaults": {}, "funcname": "GetStyleVarInfo", - "location": "imgui_internal:3360", + "location": "imgui_internal:3485", "namespace": "ImGui", "ov_cimguiname": "igGetStyleVarInfo", "ret": "const ImGuiDataVarInfo*", @@ -22063,7 +22805,7 @@ "comment": "// ~ FontSize", "defaults": {}, "funcname": "GetTextLineHeight", - "location": "imgui:489", + "location": "imgui:509", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeight", "ret": "float", @@ -22081,7 +22823,7 @@ "comment": "// ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text)", "defaults": {}, "funcname": "GetTextLineHeightWithSpacing", - "location": "imgui:490", + "location": "imgui:510", "namespace": "ImGui", "ov_cimguiname": "igGetTextLineHeightWithSpacing", "ret": "float", @@ -22099,7 +22841,7 @@ "comment": "// get global imgui time. incremented by io.DeltaTime every frame.", "defaults": {}, "funcname": "GetTime", - "location": "imgui:933", + "location": "imgui:970", "namespace": "ImGui", "ov_cimguiname": "igGetTime", "ret": "double", @@ -22116,7 +22858,7 @@ "cimguiname": "igGetTopMostAndVisiblePopupModal", "defaults": {}, "funcname": "GetTopMostAndVisiblePopupModal", - "location": "imgui_internal:3380", + "location": "imgui_internal:3507", "namespace": "ImGui", "ov_cimguiname": "igGetTopMostAndVisiblePopupModal", "ret": "ImGuiWindow*", @@ -22133,7 +22875,7 @@ "cimguiname": "igGetTopMostPopupModal", "defaults": {}, "funcname": "GetTopMostPopupModal", - "location": "imgui_internal:3379", + "location": "imgui_internal:3506", "namespace": "ImGui", "ov_cimguiname": "igGetTopMostPopupModal", "ret": "ImGuiWindow*", @@ -22151,7 +22893,7 @@ "comment": "// horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode", "defaults": {}, "funcname": "GetTreeNodeToLabelSpacing", - "location": "imgui:650", + "location": "imgui:673", "namespace": "ImGui", "ov_cimguiname": "igGetTreeNodeToLabelSpacing", "ret": "float", @@ -22181,7 +22923,7 @@ "cimguiname": "igGetTypematicRepeatRate", "defaults": {}, "funcname": "GetTypematicRepeatRate", - "location": "imgui_internal:3450", + "location": "imgui_internal:3579", "namespace": "ImGui", "ov_cimguiname": "igGetTypematicRepeatRate", "ret": "void", @@ -22205,7 +22947,7 @@ "flags": "ImGuiTypingSelectFlags_None" }, "funcname": "GetTypingSelectRequest", - "location": "imgui_internal:3582", + "location": "imgui_internal:3711", "namespace": "ImGui", "ov_cimguiname": "igGetTypingSelectRequest", "ret": "ImGuiTypingSelectRequest*", @@ -22223,7 +22965,7 @@ "comment": "// get the compiled version string e.g. \"1.80 WIP\" (essentially the value for IMGUI_VERSION from the compiled version of imgui.cpp)", "defaults": {}, "funcname": "GetVersion", - "location": "imgui:327", + "location": "imgui:352", "namespace": "ImGui", "ov_cimguiname": "igGetVersion", "ret": "const char*", @@ -22245,7 +22987,7 @@ "cimguiname": "igGetViewportPlatformMonitor", "defaults": {}, "funcname": "GetViewportPlatformMonitor", - "location": "imgui_internal:3291", + "location": "imgui_internal:3420", "namespace": "ImGui", "ov_cimguiname": "igGetViewportPlatformMonitor", "ret": "const ImGuiPlatformMonitor*", @@ -22267,7 +23009,7 @@ "cimguiname": "igGetWindowAlwaysWantOwnTabBar", "defaults": {}, "funcname": "GetWindowAlwaysWantOwnTabBar", - "location": "imgui_internal:3532", + "location": "imgui_internal:3661", "namespace": "ImGui", "ov_cimguiname": "igGetWindowAlwaysWantOwnTabBar", "ret": "bool", @@ -22275,54 +23017,6 @@ "stname": "" } ], - "igGetWindowContentRegionMax": [ - { - "args": "(ImVec2 *pOut)", - "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetWindowContentRegionMax", - "comment": "// content boundaries max for the full window (roughly (0,0)+Size-Scroll) where Size can be overridden with SetNextWindowContentSize(), in window coordinates", - "defaults": {}, - "funcname": "GetWindowContentRegionMax", - "location": "imgui:412", - "namespace": "ImGui", - "nonUDT": 1, - "ov_cimguiname": "igGetWindowContentRegionMax", - "ret": "void", - "signature": "()", - "stname": "" - } - ], - "igGetWindowContentRegionMin": [ - { - "args": "(ImVec2 *pOut)", - "argsT": [ - { - "name": "pOut", - "type": "ImVec2*" - } - ], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igGetWindowContentRegionMin", - "comment": "// content boundaries min for the full window (roughly (0,0)-Scroll), in window coordinates", - "defaults": {}, - "funcname": "GetWindowContentRegionMin", - "location": "imgui:411", - "namespace": "ImGui", - "nonUDT": 1, - "ov_cimguiname": "igGetWindowContentRegionMin", - "ret": "void", - "signature": "()", - "stname": "" - } - ], "igGetWindowDockID": [ { "args": "()", @@ -22332,7 +23026,7 @@ "cimguiname": "igGetWindowDockID", "defaults": {}, "funcname": "GetWindowDockID", - "location": "imgui:851", + "location": "imgui:889", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDockID", "ret": "ImGuiID", @@ -22349,7 +23043,7 @@ "cimguiname": "igGetWindowDockNode", "defaults": {}, "funcname": "GetWindowDockNode", - "location": "imgui_internal:3531", + "location": "imgui_internal:3660", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDockNode", "ret": "ImGuiDockNode*", @@ -22367,7 +23061,7 @@ "comment": "// get DPI scale currently associated to the current window's viewport.", "defaults": {}, "funcname": "GetWindowDpiScale", - "location": "imgui:378", + "location": "imgui:403", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDpiScale", "ret": "float", @@ -22385,7 +23079,7 @@ "comment": "// get draw list associated to the current window, to append your own drawing primitives", "defaults": {}, "funcname": "GetWindowDrawList", - "location": "imgui:377", + "location": "imgui:402", "namespace": "ImGui", "ov_cimguiname": "igGetWindowDrawList", "ret": "ImDrawList*", @@ -22400,10 +23094,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetWindowHeight", - "comment": "// get current window height (shortcut for GetWindowSize().y)", + "comment": "// get current window height (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().y.", "defaults": {}, "funcname": "GetWindowHeight", - "location": "imgui:382", + "location": "imgui:407", "namespace": "ImGui", "ov_cimguiname": "igGetWindowHeight", "ret": "float", @@ -22423,10 +23117,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetWindowPos", - "comment": "// get current window position in screen space (note: it is unlikely you need to use this. Consider using current layout pos instead, GetCursorScreenPos())", + "comment": "// get current window position in screen space (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead)", "defaults": {}, "funcname": "GetWindowPos", - "location": "imgui:379", + "location": "imgui:404", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowPos", @@ -22453,7 +23147,7 @@ "cimguiname": "igGetWindowResizeBorderID", "defaults": {}, "funcname": "GetWindowResizeBorderID", - "location": "imgui_internal:3721", + "location": "imgui_internal:3861", "namespace": "ImGui", "ov_cimguiname": "igGetWindowResizeBorderID", "ret": "ImGuiID", @@ -22480,7 +23174,7 @@ "comment": "// 0..3: corners", "defaults": {}, "funcname": "GetWindowResizeCornerID", - "location": "imgui_internal:3720", + "location": "imgui_internal:3860", "namespace": "ImGui", "ov_cimguiname": "igGetWindowResizeCornerID", "ret": "ImGuiID", @@ -22506,7 +23200,7 @@ "cimguiname": "igGetWindowScrollbarID", "defaults": {}, "funcname": "GetWindowScrollbarID", - "location": "imgui_internal:3719", + "location": "imgui_internal:3859", "namespace": "ImGui", "ov_cimguiname": "igGetWindowScrollbarID", "ret": "ImGuiID", @@ -22536,7 +23230,7 @@ "cimguiname": "igGetWindowScrollbarRect", "defaults": {}, "funcname": "GetWindowScrollbarRect", - "location": "imgui_internal:3718", + "location": "imgui_internal:3858", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowScrollbarRect", @@ -22557,10 +23251,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetWindowSize", - "comment": "// get current window size (note: it is unlikely you need to use this. Consider using GetCursorScreenPos() and e.g. GetContentRegionAvail() instead)", + "comment": "// get current window size (IT IS UNLIKELY YOU EVER NEED TO USE THIS. Consider always using GetCursorScreenPos() and GetContentRegionAvail() instead)", "defaults": {}, "funcname": "GetWindowSize", - "location": "imgui:380", + "location": "imgui:405", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igGetWindowSize", @@ -22579,7 +23273,7 @@ "comment": "// get viewport currently associated to the current window.", "defaults": {}, "funcname": "GetWindowViewport", - "location": "imgui:383", + "location": "imgui:408", "namespace": "ImGui", "ov_cimguiname": "igGetWindowViewport", "ret": "ImGuiViewport*", @@ -22594,10 +23288,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igGetWindowWidth", - "comment": "// get current window width (shortcut for GetWindowSize().x)", + "comment": "// get current window width (IT IS UNLIKELY YOU EVER NEED TO USE THIS). Shortcut for GetWindowSize().x.", "defaults": {}, "funcname": "GetWindowWidth", - "location": "imgui:381", + "location": "imgui:406", "namespace": "ImGui", "ov_cimguiname": "igGetWindowWidth", "ret": "float", @@ -22619,7 +23313,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:457", + "location": "imgui_internal:450", "ov_cimguiname": "igImAbs_Int", "ret": "int", "signature": "(int)", @@ -22638,7 +23332,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:458", + "location": "imgui_internal:451", "ov_cimguiname": "igImAbs_Float", "ret": "float", "signature": "(float)", @@ -22657,7 +23351,7 @@ "cimguiname": "igImAbs", "defaults": {}, "funcname": "ImAbs", - "location": "imgui_internal:459", + "location": "imgui_internal:452", "ov_cimguiname": "igImAbs_double", "ret": "double", "signature": "(double)", @@ -22682,7 +23376,7 @@ "cimguiname": "igImAlphaBlendColors", "defaults": {}, "funcname": "ImAlphaBlendColors", - "location": "imgui_internal:370", + "location": "imgui_internal:361", "ov_cimguiname": "igImAlphaBlendColors", "ret": "ImU32", "signature": "(ImU32,ImU32)", @@ -22723,7 +23417,7 @@ "cimguiname": "igImBezierCubicCalc", "defaults": {}, "funcname": "ImBezierCubicCalc", - "location": "imgui_internal:503", + "location": "imgui_internal:497", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicCalc", "ret": "void", @@ -22770,7 +23464,7 @@ "comment": "// For curves with explicit number of segments", "defaults": {}, "funcname": "ImBezierCubicClosestPoint", - "location": "imgui_internal:504", + "location": "imgui_internal:498", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicClosestPoint", "ret": "void", @@ -22817,7 +23511,7 @@ "comment": "// For auto-tessellated curves you can use tess_tol = style.CurveTessellationTol", "defaults": {}, "funcname": "ImBezierCubicClosestPointCasteljau", - "location": "imgui_internal:505", + "location": "imgui_internal:499", "nonUDT": 1, "ov_cimguiname": "igImBezierCubicClosestPointCasteljau", "ret": "void", @@ -22855,7 +23549,7 @@ "cimguiname": "igImBezierQuadraticCalc", "defaults": {}, "funcname": "ImBezierQuadraticCalc", - "location": "imgui_internal:506", + "location": "imgui_internal:500", "nonUDT": 1, "ov_cimguiname": "igImBezierQuadraticCalc", "ret": "void", @@ -22881,7 +23575,7 @@ "cimguiname": "igImBitArrayClearAllBits", "defaults": {}, "funcname": "ImBitArrayClearAllBits", - "location": "imgui_internal:575", + "location": "imgui_internal:570", "ov_cimguiname": "igImBitArrayClearAllBits", "ret": "void", "signature": "(ImU32*,int)", @@ -22906,7 +23600,7 @@ "cimguiname": "igImBitArrayClearBit", "defaults": {}, "funcname": "ImBitArrayClearBit", - "location": "imgui_internal:577", + "location": "imgui_internal:572", "ov_cimguiname": "igImBitArrayClearBit", "ret": "void", "signature": "(ImU32*,int)", @@ -22927,7 +23621,7 @@ "cimguiname": "igImBitArrayGetStorageSizeInBytes", "defaults": {}, "funcname": "ImBitArrayGetStorageSizeInBytes", - "location": "imgui_internal:574", + "location": "imgui_internal:569", "ov_cimguiname": "igImBitArrayGetStorageSizeInBytes", "ret": "size_t", "signature": "(int)", @@ -22952,7 +23646,7 @@ "cimguiname": "igImBitArraySetBit", "defaults": {}, "funcname": "ImBitArraySetBit", - "location": "imgui_internal:578", + "location": "imgui_internal:573", "ov_cimguiname": "igImBitArraySetBit", "ret": "void", "signature": "(ImU32*,int)", @@ -22981,7 +23675,7 @@ "cimguiname": "igImBitArraySetBitRange", "defaults": {}, "funcname": "ImBitArraySetBitRange", - "location": "imgui_internal:579", + "location": "imgui_internal:574", "ov_cimguiname": "igImBitArraySetBitRange", "ret": "void", "signature": "(ImU32*,int,int)", @@ -23006,7 +23700,7 @@ "cimguiname": "igImBitArrayTestBit", "defaults": {}, "funcname": "ImBitArrayTestBit", - "location": "imgui_internal:576", + "location": "imgui_internal:571", "ov_cimguiname": "igImBitArrayTestBit", "ret": "bool", "signature": "(const ImU32*,int)", @@ -23027,7 +23721,7 @@ "cimguiname": "igImCharIsBlankA", "defaults": {}, "funcname": "ImCharIsBlankA", - "location": "imgui_internal:392", + "location": "imgui_internal:383", "ov_cimguiname": "igImCharIsBlankA", "ret": "bool", "signature": "(char)", @@ -23048,16 +23742,37 @@ "cimguiname": "igImCharIsBlankW", "defaults": {}, "funcname": "ImCharIsBlankW", - "location": "imgui_internal:393", + "location": "imgui_internal:384", "ov_cimguiname": "igImCharIsBlankW", "ret": "bool", "signature": "(unsigned int)", "stname": "" } ], + "igImCharIsXdigitA": [ + { + "args": "(char c)", + "argsT": [ + { + "name": "c", + "type": "char" + } + ], + "argsoriginal": "(char c)", + "call_args": "(c)", + "cimguiname": "igImCharIsXdigitA", + "defaults": {}, + "funcname": "ImCharIsXdigitA", + "location": "imgui_internal:385", + "ov_cimguiname": "igImCharIsXdigitA", + "ret": "bool", + "signature": "(char)", + "stname": "" + } + ], "igImClamp": [ { - "args": "(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,ImVec2 mx)", + "args": "(ImVec2 *pOut,const ImVec2 v,const ImVec2 mn,const ImVec2 mx)", "argsT": [ { "name": "pOut", @@ -23073,19 +23788,19 @@ }, { "name": "mx", - "type": "ImVec2" + "type": "const ImVec2" } ], - "argsoriginal": "(const ImVec2& v,const ImVec2& mn,ImVec2 mx)", + "argsoriginal": "(const ImVec2& v,const ImVec2&mn,const ImVec2&mx)", "call_args": "(v,mn,mx)", "cimguiname": "igImClamp", "defaults": {}, "funcname": "ImClamp", - "location": "imgui_internal:481", + "location": "imgui_internal:474", "nonUDT": 1, "ov_cimguiname": "igImClamp", "ret": "void", - "signature": "(const ImVec2,const ImVec2,ImVec2)", + "signature": "(const ImVec2,const ImVec2,const ImVec2)", "stname": "" } ], @@ -23107,7 +23822,7 @@ "cimguiname": "igImDot", "defaults": {}, "funcname": "ImDot", - "location": "imgui_internal:494", + "location": "imgui_internal:487", "ov_cimguiname": "igImDot", "ret": "float", "signature": "(const ImVec2,const ImVec2)", @@ -23136,7 +23851,7 @@ "cimguiname": "igImExponentialMovingAverage", "defaults": {}, "funcname": "ImExponentialMovingAverage", - "location": "imgui_internal:499", + "location": "imgui_internal:493", "ov_cimguiname": "igImExponentialMovingAverage", "ret": "float", "signature": "(float,float,int)", @@ -23157,7 +23872,7 @@ "cimguiname": "igImFileClose", "defaults": {}, "funcname": "ImFileClose", - "location": "imgui_internal:431", + "location": "imgui_internal:424", "ov_cimguiname": "igImFileClose", "ret": "bool", "signature": "(ImFileHandle)", @@ -23178,7 +23893,7 @@ "cimguiname": "igImFileGetSize", "defaults": {}, "funcname": "ImFileGetSize", - "location": "imgui_internal:432", + "location": "imgui_internal:425", "ov_cimguiname": "igImFileGetSize", "ret": "ImU64", "signature": "(ImFileHandle)", @@ -23214,7 +23929,7 @@ "padding_bytes": "0" }, "funcname": "ImFileLoadToMemory", - "location": "imgui_internal:438", + "location": "imgui_internal:431", "ov_cimguiname": "igImFileLoadToMemory", "ret": "void*", "signature": "(const char*,const char*,size_t*,int)", @@ -23239,7 +23954,7 @@ "cimguiname": "igImFileOpen", "defaults": {}, "funcname": "ImFileOpen", - "location": "imgui_internal:430", + "location": "imgui_internal:423", "ov_cimguiname": "igImFileOpen", "ret": "ImFileHandle", "signature": "(const char*,const char*)", @@ -23272,7 +23987,7 @@ "cimguiname": "igImFileRead", "defaults": {}, "funcname": "ImFileRead", - "location": "imgui_internal:433", + "location": "imgui_internal:426", "ov_cimguiname": "igImFileRead", "ret": "ImU64", "signature": "(void*,ImU64,ImU64,ImFileHandle)", @@ -23305,7 +24020,7 @@ "cimguiname": "igImFileWrite", "defaults": {}, "funcname": "ImFileWrite", - "location": "imgui_internal:434", + "location": "imgui_internal:427", "ov_cimguiname": "igImFileWrite", "ret": "ImU64", "signature": "(const void*,ImU64,ImU64,ImFileHandle)", @@ -23327,7 +24042,7 @@ "comment": "// Decent replacement for floorf()", "defaults": {}, "funcname": "ImFloor", - "location": "imgui_internal:491", + "location": "imgui_internal:484", "ov_cimguiname": "igImFloor_Float", "ret": "float", "signature": "(float)", @@ -23350,7 +24065,7 @@ "cimguiname": "igImFloor", "defaults": {}, "funcname": "ImFloor", - "location": "imgui_internal:492", + "location": "imgui_internal:485", "nonUDT": 1, "ov_cimguiname": "igImFloor_Vec2", "ret": "void", @@ -23372,7 +24087,7 @@ "cimguiname": "igImFontAtlasBuildFinish", "defaults": {}, "funcname": "ImFontAtlasBuildFinish", - "location": "imgui_internal:3855", + "location": "imgui_internal:3996", "ov_cimguiname": "igImFontAtlasBuildFinish", "ret": "void", "signature": "(ImFontAtlas*)", @@ -23393,7 +24108,7 @@ "cimguiname": "igImFontAtlasBuildInit", "defaults": {}, "funcname": "ImFontAtlasBuildInit", - "location": "imgui_internal:3852", + "location": "imgui_internal:3993", "ov_cimguiname": "igImFontAtlasBuildInit", "ret": "void", "signature": "(ImFontAtlas*)", @@ -23418,7 +24133,7 @@ "cimguiname": "igImFontAtlasBuildMultiplyCalcLookupTable", "defaults": {}, "funcname": "ImFontAtlasBuildMultiplyCalcLookupTable", - "location": "imgui_internal:3858", + "location": "imgui_internal:3999", "ov_cimguiname": "igImFontAtlasBuildMultiplyCalcLookupTable", "ret": "void", "signature": "(unsigned char[256],float)", @@ -23463,7 +24178,7 @@ "cimguiname": "igImFontAtlasBuildMultiplyRectAlpha8", "defaults": {}, "funcname": "ImFontAtlasBuildMultiplyRectAlpha8", - "location": "imgui_internal:3859", + "location": "imgui_internal:4000", "ov_cimguiname": "igImFontAtlasBuildMultiplyRectAlpha8", "ret": "void", "signature": "(const unsigned char[256],unsigned char*,int,int,int,int,int)", @@ -23488,7 +24203,7 @@ "cimguiname": "igImFontAtlasBuildPackCustomRects", "defaults": {}, "funcname": "ImFontAtlasBuildPackCustomRects", - "location": "imgui_internal:3854", + "location": "imgui_internal:3995", "ov_cimguiname": "igImFontAtlasBuildPackCustomRects", "ret": "void", "signature": "(ImFontAtlas*,void*)", @@ -23537,7 +24252,7 @@ "cimguiname": "igImFontAtlasBuildRender32bppRectFromString", "defaults": {}, "funcname": "ImFontAtlasBuildRender32bppRectFromString", - "location": "imgui_internal:3857", + "location": "imgui_internal:3998", "ov_cimguiname": "igImFontAtlasBuildRender32bppRectFromString", "ret": "void", "signature": "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned int)", @@ -23586,7 +24301,7 @@ "cimguiname": "igImFontAtlasBuildRender8bppRectFromString", "defaults": {}, "funcname": "ImFontAtlasBuildRender8bppRectFromString", - "location": "imgui_internal:3856", + "location": "imgui_internal:3997", "ov_cimguiname": "igImFontAtlasBuildRender8bppRectFromString", "ret": "void", "signature": "(ImFontAtlas*,int,int,int,int,const char*,char,unsigned char)", @@ -23623,7 +24338,7 @@ "cimguiname": "igImFontAtlasBuildSetupFont", "defaults": {}, "funcname": "ImFontAtlasBuildSetupFont", - "location": "imgui_internal:3853", + "location": "imgui_internal:3994", "ov_cimguiname": "igImFontAtlasBuildSetupFont", "ret": "void", "signature": "(ImFontAtlas*,ImFont*,ImFontConfig*,float,float)", @@ -23639,7 +24354,7 @@ "cimguiname": "igImFontAtlasGetBuilderForStbTruetype", "defaults": {}, "funcname": "ImFontAtlasGetBuilderForStbTruetype", - "location": "imgui_internal:3849", + "location": "imgui_internal:3990", "ov_cimguiname": "igImFontAtlasGetBuilderForStbTruetype", "ret": "const ImFontBuilderIO*", "signature": "()", @@ -23660,7 +24375,7 @@ "cimguiname": "igImFontAtlasUpdateConfigDataPointers", "defaults": {}, "funcname": "ImFontAtlasUpdateConfigDataPointers", - "location": "imgui_internal:3851", + "location": "imgui_internal:3992", "ov_cimguiname": "igImFontAtlasUpdateConfigDataPointers", "ret": "void", "signature": "(ImFontAtlas*)", @@ -23694,7 +24409,7 @@ "defaults": {}, "funcname": "ImFormatString", "isvararg": "...)", - "location": "imgui_internal:397", + "location": "imgui_internal:389", "ov_cimguiname": "igImFormatString", "ret": "int", "signature": "(char*,size_t,const char*,...)", @@ -23728,7 +24443,7 @@ "defaults": {}, "funcname": "ImFormatStringToTempBuffer", "isvararg": "...)", - "location": "imgui_internal:399", + "location": "imgui_internal:391", "ov_cimguiname": "igImFormatStringToTempBuffer", "ret": "void", "signature": "(const char**,const char**,const char*,...)", @@ -23761,7 +24476,7 @@ "cimguiname": "igImFormatStringToTempBufferV", "defaults": {}, "funcname": "ImFormatStringToTempBufferV", - "location": "imgui_internal:400", + "location": "imgui_internal:392", "ov_cimguiname": "igImFormatStringToTempBufferV", "ret": "void", "signature": "(const char**,const char**,const char*,va_list)", @@ -23794,7 +24509,7 @@ "cimguiname": "igImFormatStringV", "defaults": {}, "funcname": "ImFormatStringV", - "location": "imgui_internal:398", + "location": "imgui_internal:390", "ov_cimguiname": "igImFormatStringV", "ret": "int", "signature": "(char*,size_t,const char*,va_list)", @@ -23825,7 +24540,7 @@ "seed": "0" }, "funcname": "ImHashData", - "location": "imgui_internal:361", + "location": "imgui_internal:352", "ov_cimguiname": "igImHashData", "ret": "ImGuiID", "signature": "(const void*,size_t,ImGuiID)", @@ -23857,7 +24572,7 @@ "seed": "0" }, "funcname": "ImHashStr", - "location": "imgui_internal:362", + "location": "imgui_internal:353", "ov_cimguiname": "igImHashStr", "ret": "ImGuiID", "signature": "(const char*,size_t,ImGuiID)", @@ -23882,7 +24597,7 @@ "cimguiname": "igImInvLength", "defaults": {}, "funcname": "ImInvLength", - "location": "imgui_internal:488", + "location": "imgui_internal:481", "ov_cimguiname": "igImInvLength", "ret": "float", "signature": "(const ImVec2,float)", @@ -23903,7 +24618,7 @@ "cimguiname": "igImIsFloatAboveGuaranteedIntegerPrecision", "defaults": {}, "funcname": "ImIsFloatAboveGuaranteedIntegerPrecision", - "location": "imgui_internal:498", + "location": "imgui_internal:492", "ov_cimguiname": "igImIsFloatAboveGuaranteedIntegerPrecision", "ret": "bool", "signature": "(float)", @@ -23924,7 +24639,7 @@ "cimguiname": "igImIsPowerOfTwo", "defaults": {}, "funcname": "ImIsPowerOfTwo", - "location": "imgui_internal:373", + "location": "imgui_internal:364", "ov_cimguiname": "igImIsPowerOfTwo_Int", "ret": "bool", "signature": "(int)", @@ -23943,7 +24658,7 @@ "cimguiname": "igImIsPowerOfTwo", "defaults": {}, "funcname": "ImIsPowerOfTwo", - "location": "imgui_internal:374", + "location": "imgui_internal:365", "ov_cimguiname": "igImIsPowerOfTwo_U64", "ret": "bool", "signature": "(ImU64)", @@ -23964,7 +24679,7 @@ "cimguiname": "igImLengthSqr", "defaults": {}, "funcname": "ImLengthSqr", - "location": "imgui_internal:486", + "location": "imgui_internal:479", "ov_cimguiname": "igImLengthSqr_Vec2", "ret": "float", "signature": "(const ImVec2)", @@ -23983,7 +24698,7 @@ "cimguiname": "igImLengthSqr", "defaults": {}, "funcname": "ImLengthSqr", - "location": "imgui_internal:487", + "location": "imgui_internal:480", "ov_cimguiname": "igImLengthSqr_Vec4", "ret": "float", "signature": "(const ImVec4)", @@ -24016,7 +24731,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:482", + "location": "imgui_internal:475", "nonUDT": 1, "ov_cimguiname": "igImLerp_Vec2Float", "ret": "void", @@ -24048,7 +24763,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:483", + "location": "imgui_internal:476", "nonUDT": 1, "ov_cimguiname": "igImLerp_Vec2Vec2", "ret": "void", @@ -24080,7 +24795,7 @@ "cimguiname": "igImLerp", "defaults": {}, "funcname": "ImLerp", - "location": "imgui_internal:484", + "location": "imgui_internal:477", "nonUDT": 1, "ov_cimguiname": "igImLerp_Vec4", "ret": "void", @@ -24114,7 +24829,7 @@ "cimguiname": "igImLineClosestPoint", "defaults": {}, "funcname": "ImLineClosestPoint", - "location": "imgui_internal:507", + "location": "imgui_internal:501", "nonUDT": 1, "ov_cimguiname": "igImLineClosestPoint", "ret": "void", @@ -24122,6 +24837,43 @@ "stname": "" } ], + "igImLinearRemapClamp": [ + { + "args": "(float s0,float s1,float d0,float d1,float x)", + "argsT": [ + { + "name": "s0", + "type": "float" + }, + { + "name": "s1", + "type": "float" + }, + { + "name": "d0", + "type": "float" + }, + { + "name": "d1", + "type": "float" + }, + { + "name": "x", + "type": "float" + } + ], + "argsoriginal": "(float s0,float s1,float d0,float d1,float x)", + "call_args": "(s0,s1,d0,d1,x)", + "cimguiname": "igImLinearRemapClamp", + "defaults": {}, + "funcname": "ImLinearRemapClamp", + "location": "imgui_internal:490", + "ov_cimguiname": "igImLinearRemapClamp", + "ret": "float", + "signature": "(float,float,float,float,float)", + "stname": "" + } + ], "igImLinearSweep": [ { "args": "(float current,float target,float speed)", @@ -24144,7 +24896,7 @@ "cimguiname": "igImLinearSweep", "defaults": {}, "funcname": "ImLinearSweep", - "location": "imgui_internal:496", + "location": "imgui_internal:489", "ov_cimguiname": "igImLinearSweep", "ret": "float", "signature": "(float,float,float)", @@ -24166,7 +24918,7 @@ "comment": "// DragBehaviorT/SliderBehaviorT uses ImLog with either float/double and need the precision", "defaults": {}, "funcname": "ImLog", - "location": "imgui_internal:455", + "location": "imgui_internal:448", "ov_cimguiname": "igImLog_Float", "ret": "float", "signature": "(float)", @@ -24185,13 +24937,42 @@ "cimguiname": "igImLog", "defaults": {}, "funcname": "ImLog", - "location": "imgui_internal:456", + "location": "imgui_internal:449", "ov_cimguiname": "igImLog_double", "ret": "double", "signature": "(double)", "stname": "" } ], + "igImLowerBound": [ + { + "args": "(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key)", + "argsT": [ + { + "name": "in_begin", + "type": "ImGuiStoragePair*" + }, + { + "name": "in_end", + "type": "ImGuiStoragePair*" + }, + { + "name": "key", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiStoragePair* in_begin,ImGuiStoragePair* in_end,ImGuiID key)", + "call_args": "(in_begin,in_end,key)", + "cimguiname": "igImLowerBound", + "defaults": {}, + "funcname": "ImLowerBound", + "location": "imgui_internal:740", + "ov_cimguiname": "igImLowerBound", + "ret": "ImGuiStoragePair*", + "signature": "(ImGuiStoragePair*,ImGuiStoragePair*,ImGuiID)", + "stname": "" + } + ], "igImMax": [ { "args": "(ImVec2 *pOut,const ImVec2 lhs,const ImVec2 rhs)", @@ -24214,7 +24995,7 @@ "cimguiname": "igImMax", "defaults": {}, "funcname": "ImMax", - "location": "imgui_internal:480", + "location": "imgui_internal:473", "nonUDT": 1, "ov_cimguiname": "igImMax", "ret": "void", @@ -24244,7 +25025,7 @@ "cimguiname": "igImMin", "defaults": {}, "funcname": "ImMin", - "location": "imgui_internal:479", + "location": "imgui_internal:472", "nonUDT": 1, "ov_cimguiname": "igImMin", "ret": "void", @@ -24270,7 +25051,7 @@ "cimguiname": "igImModPositive", "defaults": {}, "funcname": "ImModPositive", - "location": "imgui_internal:493", + "location": "imgui_internal:486", "ov_cimguiname": "igImModPositive", "ret": "int", "signature": "(int,int)", @@ -24299,7 +25080,7 @@ "cimguiname": "igImMul", "defaults": {}, "funcname": "ImMul", - "location": "imgui_internal:497", + "location": "imgui_internal:491", "nonUDT": 1, "ov_cimguiname": "igImMul", "ret": "void", @@ -24321,7 +25102,7 @@ "cimguiname": "igImParseFormatFindEnd", "defaults": {}, "funcname": "ImParseFormatFindEnd", - "location": "imgui_internal:402", + "location": "imgui_internal:394", "ov_cimguiname": "igImParseFormatFindEnd", "ret": "const char*", "signature": "(const char*)", @@ -24342,7 +25123,7 @@ "cimguiname": "igImParseFormatFindStart", "defaults": {}, "funcname": "ImParseFormatFindStart", - "location": "imgui_internal:401", + "location": "imgui_internal:393", "ov_cimguiname": "igImParseFormatFindStart", "ret": "const char*", "signature": "(const char*)", @@ -24367,7 +25148,7 @@ "cimguiname": "igImParseFormatPrecision", "defaults": {}, "funcname": "ImParseFormatPrecision", - "location": "imgui_internal:406", + "location": "imgui_internal:398", "ov_cimguiname": "igImParseFormatPrecision", "ret": "int", "signature": "(const char*,int)", @@ -24396,7 +25177,7 @@ "cimguiname": "igImParseFormatSanitizeForPrinting", "defaults": {}, "funcname": "ImParseFormatSanitizeForPrinting", - "location": "imgui_internal:404", + "location": "imgui_internal:396", "ov_cimguiname": "igImParseFormatSanitizeForPrinting", "ret": "void", "signature": "(const char*,char*,size_t)", @@ -24425,7 +25206,7 @@ "cimguiname": "igImParseFormatSanitizeForScanning", "defaults": {}, "funcname": "ImParseFormatSanitizeForScanning", - "location": "imgui_internal:405", + "location": "imgui_internal:397", "ov_cimguiname": "igImParseFormatSanitizeForScanning", "ret": "const char*", "signature": "(const char*,char*,size_t)", @@ -24454,7 +25235,7 @@ "cimguiname": "igImParseFormatTrimDecorations", "defaults": {}, "funcname": "ImParseFormatTrimDecorations", - "location": "imgui_internal:403", + "location": "imgui_internal:395", "ov_cimguiname": "igImParseFormatTrimDecorations", "ret": "const char*", "signature": "(const char*,char*,size_t)", @@ -24480,7 +25261,7 @@ "comment": "// DragBehaviorT/SliderBehaviorT uses ImPow with either float/double and need the precision", "defaults": {}, "funcname": "ImPow", - "location": "imgui_internal:453", + "location": "imgui_internal:446", "ov_cimguiname": "igImPow_Float", "ret": "float", "signature": "(float,float)", @@ -24503,7 +25284,7 @@ "cimguiname": "igImPow", "defaults": {}, "funcname": "ImPow", - "location": "imgui_internal:454", + "location": "imgui_internal:447", "ov_cimguiname": "igImPow_double", "ret": "double", "signature": "(double,double)", @@ -24538,7 +25319,7 @@ "cimguiname": "igImQsort", "defaults": {}, "funcname": "ImQsort", - "location": "imgui_internal:366", + "location": "imgui_internal:357", "ov_cimguiname": "igImQsort", "ret": "void", "signature": "(void*,size_t,size_t,int(*)(void const*,void const*))", @@ -24571,7 +25352,7 @@ "cimguiname": "igImRotate", "defaults": {}, "funcname": "ImRotate", - "location": "imgui_internal:495", + "location": "imgui_internal:488", "nonUDT": 1, "ov_cimguiname": "igImRotate", "ret": "void", @@ -24593,7 +25374,7 @@ "cimguiname": "igImRsqrt", "defaults": {}, "funcname": "ImRsqrt", - "location": "imgui_internal:463", + "location": "imgui_internal:456", "ov_cimguiname": "igImRsqrt_Float", "ret": "float", "signature": "(float)", @@ -24612,7 +25393,7 @@ "cimguiname": "igImRsqrt", "defaults": {}, "funcname": "ImRsqrt", - "location": "imgui_internal:467", + "location": "imgui_internal:460", "ov_cimguiname": "igImRsqrt_double", "ret": "double", "signature": "(double)", @@ -24633,7 +25414,7 @@ "cimguiname": "igImSaturate", "defaults": {}, "funcname": "ImSaturate", - "location": "imgui_internal:485", + "location": "imgui_internal:478", "ov_cimguiname": "igImSaturate", "ret": "float", "signature": "(float)", @@ -24655,7 +25436,7 @@ "comment": "// Sign operator - returns -1, 0 or 1 based on sign of argument", "defaults": {}, "funcname": "ImSign", - "location": "imgui_internal:460", + "location": "imgui_internal:453", "ov_cimguiname": "igImSign_Float", "ret": "float", "signature": "(float)", @@ -24674,7 +25455,7 @@ "cimguiname": "igImSign", "defaults": {}, "funcname": "ImSign", - "location": "imgui_internal:461", + "location": "imgui_internal:454", "ov_cimguiname": "igImSign_double", "ret": "double", "signature": "(double)", @@ -24696,7 +25477,7 @@ "comment": "// Find first non-blank character.", "defaults": {}, "funcname": "ImStrSkipBlank", - "location": "imgui_internal:387", + "location": "imgui_internal:378", "ov_cimguiname": "igImStrSkipBlank", "ret": "const char*", "signature": "(const char*)", @@ -24718,36 +25499,36 @@ "comment": "// Remove leading and trailing blanks from a buffer.", "defaults": {}, "funcname": "ImStrTrimBlanks", - "location": "imgui_internal:386", + "location": "imgui_internal:377", "ov_cimguiname": "igImStrTrimBlanks", "ret": "void", "signature": "(char*)", "stname": "" } ], - "igImStrbolW": [ + "igImStrbol": [ { - "args": "(const ImWchar* buf_mid_line,const ImWchar* buf_begin)", + "args": "(const char* buf_mid_line,const char* buf_begin)", "argsT": [ { "name": "buf_mid_line", - "type": "const ImWchar*" + "type": "const char*" }, { "name": "buf_begin", - "type": "const ImWchar*" + "type": "const char*" } ], - "argsoriginal": "(const ImWchar* buf_mid_line,const ImWchar* buf_begin)", + "argsoriginal": "(const char* buf_mid_line,const char* buf_begin)", "call_args": "(buf_mid_line,buf_begin)", - "cimguiname": "igImStrbolW", - "comment": "// Find beginning-of-line (ImWchar string)", + "cimguiname": "igImStrbol", + "comment": "// Find beginning-of-line", "defaults": {}, - "funcname": "ImStrbolW", - "location": "imgui_internal:389", - "ov_cimguiname": "igImStrbolW", - "ret": "const ImWchar*", - "signature": "(const ImWchar*,const ImWchar*)", + "funcname": "ImStrbol", + "location": "imgui_internal:380", + "ov_cimguiname": "igImStrbol", + "ret": "const char*", + "signature": "(const char*,const char*)", "stname": "" } ], @@ -24774,7 +25555,7 @@ "comment": "// Find first occurrence of 'c' in string range.", "defaults": {}, "funcname": "ImStrchrRange", - "location": "imgui_internal:383", + "location": "imgui_internal:374", "ov_cimguiname": "igImStrchrRange", "ret": "const char*", "signature": "(const char*,const char*,char)", @@ -24796,7 +25577,7 @@ "comment": "// Duplicate a string.", "defaults": {}, "funcname": "ImStrdup", - "location": "imgui_internal:381", + "location": "imgui_internal:372", "ov_cimguiname": "igImStrdup", "ret": "char*", "signature": "(const char*)", @@ -24826,7 +25607,7 @@ "comment": "// Copy in provided buffer, recreate buffer if needed.", "defaults": {}, "funcname": "ImStrdupcpy", - "location": "imgui_internal:382", + "location": "imgui_internal:373", "ov_cimguiname": "igImStrdupcpy", "ret": "char*", "signature": "(char*,size_t*,const char*)", @@ -24852,7 +25633,7 @@ "comment": "// End end-of-line", "defaults": {}, "funcname": "ImStreolRange", - "location": "imgui_internal:384", + "location": "imgui_internal:375", "ov_cimguiname": "igImStreolRange", "ret": "const char*", "signature": "(const char*,const char*)", @@ -24878,7 +25659,7 @@ "comment": "// Case insensitive compare.", "defaults": {}, "funcname": "ImStricmp", - "location": "imgui_internal:378", + "location": "imgui_internal:369", "ov_cimguiname": "igImStricmp", "ret": "int", "signature": "(const char*,const char*)", @@ -24912,7 +25693,7 @@ "comment": "// Find a substring in a string range.", "defaults": {}, "funcname": "ImStristr", - "location": "imgui_internal:385", + "location": "imgui_internal:376", "ov_cimguiname": "igImStristr", "ret": "const char*", "signature": "(const char*,const char*,const char*,const char*)", @@ -24934,7 +25715,7 @@ "comment": "// Computer string length (ImWchar string)", "defaults": {}, "funcname": "ImStrlenW", - "location": "imgui_internal:388", + "location": "imgui_internal:379", "ov_cimguiname": "igImStrlenW", "ret": "int", "signature": "(const ImWchar*)", @@ -24964,7 +25745,7 @@ "comment": "// Copy to a certain count and always zero terminate (strncpy doesn't).", "defaults": {}, "funcname": "ImStrncpy", - "location": "imgui_internal:380", + "location": "imgui_internal:371", "ov_cimguiname": "igImStrncpy", "ret": "void", "signature": "(char*,const char*,size_t)", @@ -24994,7 +25775,7 @@ "comment": "// Case insensitive compare to a certain count.", "defaults": {}, "funcname": "ImStrnicmp", - "location": "imgui_internal:379", + "location": "imgui_internal:370", "ov_cimguiname": "igImStrnicmp", "ret": "int", "signature": "(const char*,const char*,size_t)", @@ -25024,7 +25805,7 @@ "comment": "// read one character. return input UTF-8 bytes count", "defaults": {}, "funcname": "ImTextCharFromUtf8", - "location": "imgui_internal:411", + "location": "imgui_internal:403", "ov_cimguiname": "igImTextCharFromUtf8", "ret": "int", "signature": "(unsigned int*,const char*,const char*)", @@ -25050,7 +25831,7 @@ "comment": "// return out_buf", "defaults": {}, "funcname": "ImTextCharToUtf8", - "location": "imgui_internal:409", + "location": "imgui_internal:401", "ov_cimguiname": "igImTextCharToUtf8", "ret": "const char*", "signature": "(char[5],unsigned int)", @@ -25076,13 +25857,39 @@ "comment": "// return number of UTF-8 code-points (NOT bytes count)", "defaults": {}, "funcname": "ImTextCountCharsFromUtf8", - "location": "imgui_internal:413", + "location": "imgui_internal:405", "ov_cimguiname": "igImTextCountCharsFromUtf8", "ret": "int", "signature": "(const char*,const char*)", "stname": "" } ], + "igImTextCountLines": [ + { + "args": "(const char* in_text,const char* in_text_end)", + "argsT": [ + { + "name": "in_text", + "type": "const char*" + }, + { + "name": "in_text_end", + "type": "const char*" + } + ], + "argsoriginal": "(const char* in_text,const char* in_text_end)", + "call_args": "(in_text,in_text_end)", + "cimguiname": "igImTextCountLines", + "comment": "// return number of lines taken by text. trailing carriage return doesn't count as an extra line.", + "defaults": {}, + "funcname": "ImTextCountLines", + "location": "imgui_internal:409", + "ov_cimguiname": "igImTextCountLines", + "ret": "int", + "signature": "(const char*,const char*)", + "stname": "" + } + ], "igImTextCountUtf8BytesFromChar": [ { "args": "(const char* in_text,const char* in_text_end)", @@ -25102,7 +25909,7 @@ "comment": "// return number of bytes to express one char in UTF-8", "defaults": {}, "funcname": "ImTextCountUtf8BytesFromChar", - "location": "imgui_internal:414", + "location": "imgui_internal:406", "ov_cimguiname": "igImTextCountUtf8BytesFromChar", "ret": "int", "signature": "(const char*,const char*)", @@ -25128,7 +25935,7 @@ "comment": "// return number of bytes to express string in UTF-8", "defaults": {}, "funcname": "ImTextCountUtf8BytesFromStr", - "location": "imgui_internal:415", + "location": "imgui_internal:407", "ov_cimguiname": "igImTextCountUtf8BytesFromStr", "ret": "int", "signature": "(const ImWchar*,const ImWchar*)", @@ -25154,7 +25961,7 @@ "comment": "// return previous UTF-8 code-point.", "defaults": {}, "funcname": "ImTextFindPreviousUtf8Codepoint", - "location": "imgui_internal:416", + "location": "imgui_internal:408", "ov_cimguiname": "igImTextFindPreviousUtf8Codepoint", "ret": "const char*", "signature": "(const char*,const char*)", @@ -25194,7 +26001,7 @@ "in_remaining": "NULL" }, "funcname": "ImTextStrFromUtf8", - "location": "imgui_internal:412", + "location": "imgui_internal:404", "ov_cimguiname": "igImTextStrFromUtf8", "ret": "int", "signature": "(ImWchar*,int,const char*,const char*,const char**)", @@ -25228,7 +26035,7 @@ "comment": "// return output UTF-8 bytes count", "defaults": {}, "funcname": "ImTextStrToUtf8", - "location": "imgui_internal:410", + "location": "imgui_internal:402", "ov_cimguiname": "igImTextStrToUtf8", "ret": "int", "signature": "(char*,int,const ImWchar*,const ImWchar*)", @@ -25249,7 +26056,7 @@ "cimguiname": "igImToUpper", "defaults": {}, "funcname": "ImToUpper", - "location": "imgui_internal:391", + "location": "imgui_internal:382", "ov_cimguiname": "igImToUpper", "ret": "char", "signature": "(char)", @@ -25278,7 +26085,7 @@ "cimguiname": "igImTriangleArea", "defaults": {}, "funcname": "ImTriangleArea", - "location": "imgui_internal:511", + "location": "imgui_internal:505", "ov_cimguiname": "igImTriangleArea", "ret": "float", "signature": "(const ImVec2,const ImVec2,const ImVec2)", @@ -25326,7 +26133,7 @@ "cimguiname": "igImTriangleBarycentricCoords", "defaults": {}, "funcname": "ImTriangleBarycentricCoords", - "location": "imgui_internal:510", + "location": "imgui_internal:504", "ov_cimguiname": "igImTriangleBarycentricCoords", "ret": "void", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2,float*,float*,float*)", @@ -25363,7 +26170,7 @@ "cimguiname": "igImTriangleClosestPoint", "defaults": {}, "funcname": "ImTriangleClosestPoint", - "location": "imgui_internal:509", + "location": "imgui_internal:503", "nonUDT": 1, "ov_cimguiname": "igImTriangleClosestPoint", "ret": "void", @@ -25397,13 +26204,42 @@ "cimguiname": "igImTriangleContainsPoint", "defaults": {}, "funcname": "ImTriangleContainsPoint", - "location": "imgui_internal:508", + "location": "imgui_internal:502", "ov_cimguiname": "igImTriangleContainsPoint", "ret": "bool", "signature": "(const ImVec2,const ImVec2,const ImVec2,const ImVec2)", "stname": "" } ], + "igImTriangleIsClockwise": [ + { + "args": "(const ImVec2 a,const ImVec2 b,const ImVec2 c)", + "argsT": [ + { + "name": "a", + "type": "const ImVec2" + }, + { + "name": "b", + "type": "const ImVec2" + }, + { + "name": "c", + "type": "const ImVec2" + } + ], + "argsoriginal": "(const ImVec2& a,const ImVec2& b,const ImVec2& c)", + "call_args": "(a,b,c)", + "cimguiname": "igImTriangleIsClockwise", + "defaults": {}, + "funcname": "ImTriangleIsClockwise", + "location": "imgui_internal:506", + "ov_cimguiname": "igImTriangleIsClockwise", + "ret": "bool", + "signature": "(const ImVec2,const ImVec2,const ImVec2)", + "stname": "" + } + ], "igImTrunc": [ { "args": "(float f)", @@ -25418,7 +26254,7 @@ "cimguiname": "igImTrunc", "defaults": {}, "funcname": "ImTrunc", - "location": "imgui_internal:489", + "location": "imgui_internal:482", "ov_cimguiname": "igImTrunc_Float", "ret": "float", "signature": "(float)", @@ -25441,7 +26277,7 @@ "cimguiname": "igImTrunc", "defaults": {}, "funcname": "ImTrunc", - "location": "imgui_internal:490", + "location": "imgui_internal:483", "nonUDT": 1, "ov_cimguiname": "igImTrunc_Vec2", "ret": "void", @@ -25463,7 +26299,7 @@ "cimguiname": "igImUpperPowerOfTwo", "defaults": {}, "funcname": "ImUpperPowerOfTwo", - "location": "imgui_internal:375", + "location": "imgui_internal:366", "ov_cimguiname": "igImUpperPowerOfTwo", "ret": "int", "signature": "(int)", @@ -25509,7 +26345,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "Image", - "location": "imgui:549", + "location": "imgui:572", "namespace": "ImGui", "ov_cimguiname": "igImage", "ret": "void", @@ -25560,7 +26396,7 @@ "uv1": "ImVec2(1,1)" }, "funcname": "ImageButton", - "location": "imgui:550", + "location": "imgui:573", "namespace": "ImGui", "ov_cimguiname": "igImageButton", "ret": "bool", @@ -25612,7 +26448,7 @@ "flags": "0" }, "funcname": "ImageButtonEx", - "location": "imgui_internal:3707", + "location": "imgui_internal:3847", "namespace": "ImGui", "ov_cimguiname": "igImageButtonEx", "ret": "bool", @@ -25637,7 +26473,7 @@ "indent_w": "0.0f" }, "funcname": "Indent", - "location": "imgui:484", + "location": "imgui:504", "namespace": "ImGui", "ov_cimguiname": "igIndent", "ret": "void", @@ -25654,7 +26490,7 @@ "cimguiname": "igInitialize", "defaults": {}, "funcname": "Initialize", - "location": "imgui_internal:3269", + "location": "imgui_internal:3397", "namespace": "ImGui", "ov_cimguiname": "igInitialize", "ret": "void", @@ -25701,7 +26537,7 @@ "step_fast": "0.0" }, "funcname": "InputDouble", - "location": "imgui:621", + "location": "imgui:644", "namespace": "ImGui", "ov_cimguiname": "igInputDouble", "ret": "bool", @@ -25748,7 +26584,7 @@ "step_fast": "0.0f" }, "funcname": "InputFloat", - "location": "imgui:613", + "location": "imgui:636", "namespace": "ImGui", "ov_cimguiname": "igInputFloat", "ret": "bool", @@ -25785,7 +26621,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat2", - "location": "imgui:614", + "location": "imgui:637", "namespace": "ImGui", "ov_cimguiname": "igInputFloat2", "ret": "bool", @@ -25822,7 +26658,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat3", - "location": "imgui:615", + "location": "imgui:638", "namespace": "ImGui", "ov_cimguiname": "igInputFloat3", "ret": "bool", @@ -25859,7 +26695,7 @@ "format": "\"%.3f\"" }, "funcname": "InputFloat4", - "location": "imgui:616", + "location": "imgui:639", "namespace": "ImGui", "ov_cimguiname": "igInputFloat4", "ret": "bool", @@ -25901,7 +26737,7 @@ "step_fast": "100" }, "funcname": "InputInt", - "location": "imgui:617", + "location": "imgui:640", "namespace": "ImGui", "ov_cimguiname": "igInputInt", "ret": "bool", @@ -25933,7 +26769,7 @@ "flags": "0" }, "funcname": "InputInt2", - "location": "imgui:618", + "location": "imgui:641", "namespace": "ImGui", "ov_cimguiname": "igInputInt2", "ret": "bool", @@ -25965,7 +26801,7 @@ "flags": "0" }, "funcname": "InputInt3", - "location": "imgui:619", + "location": "imgui:642", "namespace": "ImGui", "ov_cimguiname": "igInputInt3", "ret": "bool", @@ -25997,7 +26833,7 @@ "flags": "0" }, "funcname": "InputInt4", - "location": "imgui:620", + "location": "imgui:643", "namespace": "ImGui", "ov_cimguiname": "igInputInt4", "ret": "bool", @@ -26048,7 +26884,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalar", - "location": "imgui:622", + "location": "imgui:645", "namespace": "ImGui", "ov_cimguiname": "igInputScalar", "ret": "bool", @@ -26103,7 +26939,7 @@ "p_step_fast": "NULL" }, "funcname": "InputScalarN", - "location": "imgui:623", + "location": "imgui:646", "namespace": "ImGui", "ov_cimguiname": "igInputScalarN", "ret": "bool", @@ -26149,7 +26985,7 @@ "user_data": "NULL" }, "funcname": "InputText", - "location": "imgui:610", + "location": "imgui:633", "namespace": "ImGui", "ov_cimguiname": "igInputText", "ret": "bool", @@ -26171,7 +27007,7 @@ "cimguiname": "igInputTextDeactivateHook", "defaults": {}, "funcname": "InputTextDeactivateHook", - "location": "imgui_internal:3754", + "location": "imgui_internal:3896", "namespace": "ImGui", "ov_cimguiname": "igInputTextDeactivateHook", "ret": "void", @@ -26224,7 +27060,7 @@ "user_data": "NULL" }, "funcname": "InputTextEx", - "location": "imgui_internal:3753", + "location": "imgui_internal:3895", "namespace": "ImGui", "ov_cimguiname": "igInputTextEx", "ret": "bool", @@ -26275,7 +27111,7 @@ "user_data": "NULL" }, "funcname": "InputTextMultiline", - "location": "imgui:611", + "location": "imgui:634", "namespace": "ImGui", "ov_cimguiname": "igInputTextMultiline", "ret": "bool", @@ -26325,7 +27161,7 @@ "user_data": "NULL" }, "funcname": "InputTextWithHint", - "location": "imgui:612", + "location": "imgui:635", "namespace": "ImGui", "ov_cimguiname": "igInputTextWithHint", "ret": "bool", @@ -26358,7 +27194,7 @@ "flags": "0" }, "funcname": "InvisibleButton", - "location": "imgui:535", + "location": "imgui:556", "namespace": "ImGui", "ov_cimguiname": "igInvisibleButton", "ret": "bool", @@ -26380,7 +27216,7 @@ "cimguiname": "igIsActiveIdUsingNavDir", "defaults": {}, "funcname": "IsActiveIdUsingNavDir", - "location": "imgui_internal:3453", + "location": "imgui_internal:3582", "namespace": "ImGui", "ov_cimguiname": "igIsActiveIdUsingNavDir", "ret": "bool", @@ -26402,7 +27238,7 @@ "cimguiname": "igIsAliasKey", "defaults": {}, "funcname": "IsAliasKey", - "location": "imgui_internal:3428", + "location": "imgui_internal:3559", "namespace": "ImGui", "ov_cimguiname": "igIsAliasKey", "ret": "bool", @@ -26420,7 +27256,7 @@ "comment": "// is any item active?", "defaults": {}, "funcname": "IsAnyItemActive", - "location": "imgui:911", + "location": "imgui:950", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemActive", "ret": "bool", @@ -26438,7 +27274,7 @@ "comment": "// is any item focused?", "defaults": {}, "funcname": "IsAnyItemFocused", - "location": "imgui:912", + "location": "imgui:951", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemFocused", "ret": "bool", @@ -26456,7 +27292,7 @@ "comment": "// is any item hovered?", "defaults": {}, "funcname": "IsAnyItemHovered", - "location": "imgui:910", + "location": "imgui:949", "namespace": "ImGui", "ov_cimguiname": "igIsAnyItemHovered", "ret": "bool", @@ -26474,7 +27310,7 @@ "comment": "// [WILL OBSOLETE] is any mouse button held? This was designed for backends, but prefer having backend maintain a mask of held mouse buttons, because upcoming input queue system will make this invalid.", "defaults": {}, "funcname": "IsAnyMouseDown", - "location": "imgui:973", + "location": "imgui:1036", "namespace": "ImGui", "ov_cimguiname": "igIsAnyMouseDown", "ret": "bool", @@ -26500,7 +27336,7 @@ "cimguiname": "igIsClippedEx", "defaults": {}, "funcname": "IsClippedEx", - "location": "imgui_internal:3348", + "location": "imgui_internal:3477", "namespace": "ImGui", "ov_cimguiname": "igIsClippedEx", "ret": "bool", @@ -26517,7 +27353,7 @@ "cimguiname": "igIsDragDropActive", "defaults": {}, "funcname": "IsDragDropActive", - "location": "imgui_internal:3575", + "location": "imgui_internal:3704", "namespace": "ImGui", "ov_cimguiname": "igIsDragDropActive", "ret": "bool", @@ -26534,7 +27370,7 @@ "cimguiname": "igIsDragDropPayloadBeingAccepted", "defaults": {}, "funcname": "IsDragDropPayloadBeingAccepted", - "location": "imgui_internal:3578", + "location": "imgui_internal:3707", "namespace": "ImGui", "ov_cimguiname": "igIsDragDropPayloadBeingAccepted", "ret": "bool", @@ -26556,7 +27392,7 @@ "cimguiname": "igIsGamepadKey", "defaults": {}, "funcname": "IsGamepadKey", - "location": "imgui_internal:3426", + "location": "imgui_internal:3557", "namespace": "ImGui", "ov_cimguiname": "igIsGamepadKey", "ret": "bool", @@ -26574,7 +27410,7 @@ "comment": "// was the last item just made active (item was previously inactive).", "defaults": {}, "funcname": "IsItemActivated", - "location": "imgui:906", + "location": "imgui:945", "namespace": "ImGui", "ov_cimguiname": "igIsItemActivated", "ret": "bool", @@ -26592,7 +27428,7 @@ "comment": "// is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false)", "defaults": {}, "funcname": "IsItemActive", - "location": "imgui:901", + "location": "imgui:940", "namespace": "ImGui", "ov_cimguiname": "igIsItemActive", "ret": "bool", @@ -26617,7 +27453,7 @@ "mouse_button": "0" }, "funcname": "IsItemClicked", - "location": "imgui:903", + "location": "imgui:942", "namespace": "ImGui", "ov_cimguiname": "igIsItemClicked", "ret": "bool", @@ -26635,7 +27471,7 @@ "comment": "// was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that require continuous editing.", "defaults": {}, "funcname": "IsItemDeactivated", - "location": "imgui:907", + "location": "imgui:946", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivated", "ret": "bool", @@ -26653,7 +27489,7 @@ "comment": "// was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that require continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item).", "defaults": {}, "funcname": "IsItemDeactivatedAfterEdit", - "location": "imgui:908", + "location": "imgui:947", "namespace": "ImGui", "ov_cimguiname": "igIsItemDeactivatedAfterEdit", "ret": "bool", @@ -26671,7 +27507,7 @@ "comment": "// did the last item modify its underlying value this frame? or was pressed? This is generally the same as the \"bool\" return value of many widgets.", "defaults": {}, "funcname": "IsItemEdited", - "location": "imgui:905", + "location": "imgui:944", "namespace": "ImGui", "ov_cimguiname": "igIsItemEdited", "ret": "bool", @@ -26689,7 +27525,7 @@ "comment": "// is the last item focused for keyboard/gamepad navigation?", "defaults": {}, "funcname": "IsItemFocused", - "location": "imgui:902", + "location": "imgui:941", "namespace": "ImGui", "ov_cimguiname": "igIsItemFocused", "ret": "bool", @@ -26714,7 +27550,7 @@ "flags": "0" }, "funcname": "IsItemHovered", - "location": "imgui:900", + "location": "imgui:939", "namespace": "ImGui", "ov_cimguiname": "igIsItemHovered", "ret": "bool", @@ -26732,7 +27568,7 @@ "comment": "// was the last item open state toggled? set by TreeNode().", "defaults": {}, "funcname": "IsItemToggledOpen", - "location": "imgui:909", + "location": "imgui:948", "namespace": "ImGui", "ov_cimguiname": "igIsItemToggledOpen", "ret": "bool", @@ -26747,10 +27583,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igIsItemToggledSelection", - "comment": "// Was the last item selection toggled? (after Selectable(), TreeNode() etc. We only returns toggle _event_ in order to handle clipping correctly)", + "comment": "// Was the last item selection state toggled? Useful if you need the per-item information _before_ reaching EndMultiSelect(). We only returns toggle _event_ in order to handle clipping correctly.", "defaults": {}, "funcname": "IsItemToggledSelection", - "location": "imgui_internal:3353", + "location": "imgui:695", "namespace": "ImGui", "ov_cimguiname": "igIsItemToggledSelection", "ret": "bool", @@ -26768,7 +27604,7 @@ "comment": "// is the last item visible? (items may be out of sight because of clipping/scrolling)", "defaults": {}, "funcname": "IsItemVisible", - "location": "imgui:904", + "location": "imgui:943", "namespace": "ImGui", "ov_cimguiname": "igIsItemVisible", "ret": "bool", @@ -26791,7 +27627,7 @@ "comment": "// was key chord (mods + key) pressed, e.g. you can pass 'ImGuiMod_Ctrl | ImGuiKey_S' as a key-chord. This doesn't do any routing or focus check, please consider using Shortcut() function instead.", "defaults": {}, "funcname": "IsKeyChordPressed", - "location": "imgui:957", + "location": "imgui:994", "namespace": "ImGui", "ov_cimguiname": "igIsKeyChordPressed_Nil", "ret": "bool", @@ -26799,33 +27635,33 @@ "stname": "" }, { - "args": "(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags)", + "args": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id)", "argsT": [ { "name": "key_chord", "type": "ImGuiKeyChord" }, - { - "name": "owner_id", - "type": "ImGuiID" - }, { "name": "flags", "type": "ImGuiInputFlags" + }, + { + "name": "owner_id", + "type": "ImGuiID" } ], - "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags=0)", - "call_args": "(key_chord,owner_id,flags)", + "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id=0)", + "call_args": "(key_chord,flags,owner_id)", "cimguiname": "igIsKeyChordPressed", "defaults": { - "flags": "0" + "owner_id": "0" }, "funcname": "IsKeyChordPressed", - "location": "imgui_internal:3500", + "location": "imgui_internal:3611", "namespace": "ImGui", - "ov_cimguiname": "igIsKeyChordPressed_ID", + "ov_cimguiname": "igIsKeyChordPressed_InputFlags", "ret": "bool", - "signature": "(ImGuiKeyChord,ImGuiID,ImGuiInputFlags)", + "signature": "(ImGuiKeyChord,ImGuiInputFlags,ImGuiID)", "stname": "" } ], @@ -26844,7 +27680,7 @@ "comment": "// is key being held.", "defaults": {}, "funcname": "IsKeyDown", - "location": "imgui:954", + "location": "imgui:991", "namespace": "ImGui", "ov_cimguiname": "igIsKeyDown_Nil", "ret": "bool", @@ -26868,7 +27704,7 @@ "cimguiname": "igIsKeyDown", "defaults": {}, "funcname": "IsKeyDown", - "location": "imgui_internal:3479", + "location": "imgui_internal:3608", "namespace": "ImGui", "ov_cimguiname": "igIsKeyDown_ID", "ret": "bool", @@ -26897,7 +27733,7 @@ "repeat": "true" }, "funcname": "IsKeyPressed", - "location": "imgui:955", + "location": "imgui:992", "namespace": "ImGui", "ov_cimguiname": "igIsKeyPressed_Bool", "ret": "bool", @@ -26905,34 +27741,34 @@ "stname": "" }, { - "args": "(ImGuiKey key,ImGuiID owner_id,ImGuiInputFlags flags)", + "args": "(ImGuiKey key,ImGuiInputFlags flags,ImGuiID owner_id)", "argsT": [ { "name": "key", "type": "ImGuiKey" }, - { - "name": "owner_id", - "type": "ImGuiID" - }, { "name": "flags", "type": "ImGuiInputFlags" + }, + { + "name": "owner_id", + "type": "ImGuiID" } ], - "argsoriginal": "(ImGuiKey key,ImGuiID owner_id,ImGuiInputFlags flags=0)", - "call_args": "(key,owner_id,flags)", + "argsoriginal": "(ImGuiKey key,ImGuiInputFlags flags,ImGuiID owner_id=0)", + "call_args": "(key,flags,owner_id)", "cimguiname": "igIsKeyPressed", "comment": "// Important: when transitioning from old to new IsKeyPressed(): old API has \"bool repeat = true\", so would default to repeat. New API requiress explicit ImGuiInputFlags_Repeat.", "defaults": { - "flags": "0" + "owner_id": "0" }, "funcname": "IsKeyPressed", - "location": "imgui_internal:3480", + "location": "imgui_internal:3609", "namespace": "ImGui", - "ov_cimguiname": "igIsKeyPressed_ID", + "ov_cimguiname": "igIsKeyPressed_InputFlags", "ret": "bool", - "signature": "(ImGuiKey,ImGuiID,ImGuiInputFlags)", + "signature": "(ImGuiKey,ImGuiInputFlags,ImGuiID)", "stname": "" } ], @@ -26951,7 +27787,7 @@ "comment": "// was key released (went from Down to !Down)?", "defaults": {}, "funcname": "IsKeyReleased", - "location": "imgui:956", + "location": "imgui:993", "namespace": "ImGui", "ov_cimguiname": "igIsKeyReleased_Nil", "ret": "bool", @@ -26975,7 +27811,7 @@ "cimguiname": "igIsKeyReleased", "defaults": {}, "funcname": "IsKeyReleased", - "location": "imgui_internal:3481", + "location": "imgui_internal:3610", "namespace": "ImGui", "ov_cimguiname": "igIsKeyReleased_ID", "ret": "bool", @@ -26997,7 +27833,7 @@ "cimguiname": "igIsKeyboardKey", "defaults": {}, "funcname": "IsKeyboardKey", - "location": "imgui_internal:3425", + "location": "imgui_internal:3556", "namespace": "ImGui", "ov_cimguiname": "igIsKeyboardKey", "ret": "bool", @@ -27005,7 +27841,7 @@ "stname": "" } ], - "igIsLegacyKey": [ + "igIsLRModKey": [ { "args": "(ImGuiKey key)", "argsT": [ @@ -27016,18 +27852,18 @@ ], "argsoriginal": "(ImGuiKey key)", "call_args": "(key)", - "cimguiname": "igIsLegacyKey", + "cimguiname": "igIsLRModKey", "defaults": {}, - "funcname": "IsLegacyKey", - "location": "imgui_internal:3424", + "funcname": "IsLRModKey", + "location": "imgui_internal:3560", "namespace": "ImGui", - "ov_cimguiname": "igIsLegacyKey", + "ov_cimguiname": "igIsLRModKey", "ret": "bool", "signature": "(ImGuiKey)", "stname": "" } ], - "igIsModKey": [ + "igIsLegacyKey": [ { "args": "(ImGuiKey key)", "argsT": [ @@ -27038,12 +27874,12 @@ ], "argsoriginal": "(ImGuiKey key)", "call_args": "(key)", - "cimguiname": "igIsModKey", + "cimguiname": "igIsLegacyKey", "defaults": {}, - "funcname": "IsModKey", - "location": "imgui_internal:3429", + "funcname": "IsLegacyKey", + "location": "imgui_internal:3555", "namespace": "ImGui", - "ov_cimguiname": "igIsModKey", + "ov_cimguiname": "igIsLegacyKey", "ret": "bool", "signature": "(ImGuiKey)", "stname": "" @@ -27070,7 +27906,7 @@ "repeat": "false" }, "funcname": "IsMouseClicked", - "location": "imgui:967", + "location": "imgui:1030", "namespace": "ImGui", "ov_cimguiname": "igIsMouseClicked_Bool", "ret": "bool", @@ -27078,33 +27914,33 @@ "stname": "" }, { - "args": "(ImGuiMouseButton button,ImGuiID owner_id,ImGuiInputFlags flags)", + "args": "(ImGuiMouseButton button,ImGuiInputFlags flags,ImGuiID owner_id)", "argsT": [ { "name": "button", "type": "ImGuiMouseButton" }, - { - "name": "owner_id", - "type": "ImGuiID" - }, { "name": "flags", "type": "ImGuiInputFlags" + }, + { + "name": "owner_id", + "type": "ImGuiID" } ], - "argsoriginal": "(ImGuiMouseButton button,ImGuiID owner_id,ImGuiInputFlags flags=0)", - "call_args": "(button,owner_id,flags)", + "argsoriginal": "(ImGuiMouseButton button,ImGuiInputFlags flags,ImGuiID owner_id=0)", + "call_args": "(button,flags,owner_id)", "cimguiname": "igIsMouseClicked", "defaults": { - "flags": "0" + "owner_id": "0" }, "funcname": "IsMouseClicked", - "location": "imgui_internal:3483", + "location": "imgui_internal:3613", "namespace": "ImGui", - "ov_cimguiname": "igIsMouseClicked_ID", + "ov_cimguiname": "igIsMouseClicked_InputFlags", "ret": "bool", - "signature": "(ImGuiMouseButton,ImGuiID,ImGuiInputFlags)", + "signature": "(ImGuiMouseButton,ImGuiInputFlags,ImGuiID)", "stname": "" } ], @@ -27123,7 +27959,7 @@ "comment": "// did mouse button double-clicked? Same as GetMouseClickedCount() == 2. (note that a double-click will also report IsMouseClicked() == true)", "defaults": {}, "funcname": "IsMouseDoubleClicked", - "location": "imgui:969", + "location": "imgui:1032", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDoubleClicked_Nil", "ret": "bool", @@ -27147,7 +27983,7 @@ "cimguiname": "igIsMouseDoubleClicked", "defaults": {}, "funcname": "IsMouseDoubleClicked", - "location": "imgui_internal:3485", + "location": "imgui_internal:3615", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDoubleClicked_ID", "ret": "bool", @@ -27170,7 +28006,7 @@ "comment": "// is mouse button held?", "defaults": {}, "funcname": "IsMouseDown", - "location": "imgui:966", + "location": "imgui:1029", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDown_Nil", "ret": "bool", @@ -27194,7 +28030,7 @@ "cimguiname": "igIsMouseDown", "defaults": {}, "funcname": "IsMouseDown", - "location": "imgui_internal:3482", + "location": "imgui_internal:3612", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDown_ID", "ret": "bool", @@ -27222,7 +28058,7 @@ "lock_threshold": "-1.0f" }, "funcname": "IsMouseDragPastThreshold", - "location": "imgui_internal:3446", + "location": "imgui_internal:3575", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDragPastThreshold", "ret": "bool", @@ -27246,12 +28082,12 @@ "argsoriginal": "(ImGuiMouseButton button,float lock_threshold=-1.0f)", "call_args": "(button,lock_threshold)", "cimguiname": "igIsMouseDragging", - "comment": "// is mouse dragging? (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold)", + "comment": "// is mouse dragging? (uses io.MouseDraggingThreshold if lock_threshold < 0.0f)", "defaults": { "lock_threshold": "-1.0f" }, "funcname": "IsMouseDragging", - "location": "imgui:976", + "location": "imgui:1039", "namespace": "ImGui", "ov_cimguiname": "igIsMouseDragging", "ret": "bool", @@ -27284,7 +28120,7 @@ "clip": "true" }, "funcname": "IsMouseHoveringRect", - "location": "imgui:971", + "location": "imgui:1034", "namespace": "ImGui", "ov_cimguiname": "igIsMouseHoveringRect", "ret": "bool", @@ -27306,7 +28142,7 @@ "cimguiname": "igIsMouseKey", "defaults": {}, "funcname": "IsMouseKey", - "location": "imgui_internal:3427", + "location": "imgui_internal:3558", "namespace": "ImGui", "ov_cimguiname": "igIsMouseKey", "ret": "bool", @@ -27331,7 +28167,7 @@ "mouse_pos": "NULL" }, "funcname": "IsMousePosValid", - "location": "imgui:972", + "location": "imgui:1035", "namespace": "ImGui", "ov_cimguiname": "igIsMousePosValid", "ret": "bool", @@ -27354,7 +28190,7 @@ "comment": "// did mouse button released? (went from Down to !Down)", "defaults": {}, "funcname": "IsMouseReleased", - "location": "imgui:968", + "location": "imgui:1031", "namespace": "ImGui", "ov_cimguiname": "igIsMouseReleased_Nil", "ret": "bool", @@ -27378,7 +28214,7 @@ "cimguiname": "igIsMouseReleased", "defaults": {}, "funcname": "IsMouseReleased", - "location": "imgui_internal:3484", + "location": "imgui_internal:3614", "namespace": "ImGui", "ov_cimguiname": "igIsMouseReleased_ID", "ret": "bool", @@ -27400,7 +28236,7 @@ "cimguiname": "igIsNamedKey", "defaults": {}, "funcname": "IsNamedKey", - "location": "imgui_internal:3422", + "location": "imgui_internal:3553", "namespace": "ImGui", "ov_cimguiname": "igIsNamedKey", "ret": "bool", @@ -27408,7 +28244,7 @@ "stname": "" } ], - "igIsNamedKeyOrModKey": [ + "igIsNamedKeyOrMod": [ { "args": "(ImGuiKey key)", "argsT": [ @@ -27419,12 +28255,12 @@ ], "argsoriginal": "(ImGuiKey key)", "call_args": "(key)", - "cimguiname": "igIsNamedKeyOrModKey", + "cimguiname": "igIsNamedKeyOrMod", "defaults": {}, - "funcname": "IsNamedKeyOrModKey", - "location": "imgui_internal:3423", + "funcname": "IsNamedKeyOrMod", + "location": "imgui_internal:3554", "namespace": "ImGui", - "ov_cimguiname": "igIsNamedKeyOrModKey", + "ov_cimguiname": "igIsNamedKeyOrMod", "ret": "bool", "signature": "(ImGuiKey)", "stname": "" @@ -27451,7 +28287,7 @@ "flags": "0" }, "funcname": "IsPopupOpen", - "location": "imgui:756", + "location": "imgui:793", "namespace": "ImGui", "ov_cimguiname": "igIsPopupOpen_Str", "ret": "bool", @@ -27475,7 +28311,7 @@ "cimguiname": "igIsPopupOpen", "defaults": {}, "funcname": "IsPopupOpen", - "location": "imgui_internal:3374", + "location": "imgui_internal:3504", "namespace": "ImGui", "ov_cimguiname": "igIsPopupOpen_ID", "ret": "bool", @@ -27498,7 +28334,7 @@ "comment": "// test if rectangle (of given size, starting from cursor position) is visible / not clipped.", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:931", + "location": "imgui:968", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisible_Nil", "ret": "bool", @@ -27523,7 +28359,7 @@ "comment": "// test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side.", "defaults": {}, "funcname": "IsRectVisible", - "location": "imgui:932", + "location": "imgui:969", "namespace": "ImGui", "ov_cimguiname": "igIsRectVisible_Vec2", "ret": "bool", @@ -27549,7 +28385,7 @@ "cimguiname": "igIsWindowAbove", "defaults": {}, "funcname": "IsWindowAbove", - "location": "imgui_internal:3240", + "location": "imgui_internal:3364", "namespace": "ImGui", "ov_cimguiname": "igIsWindowAbove", "ret": "bool", @@ -27566,7 +28402,7 @@ "cimguiname": "igIsWindowAppearing", "defaults": {}, "funcname": "IsWindowAppearing", - "location": "imgui:373", + "location": "imgui:398", "namespace": "ImGui", "ov_cimguiname": "igIsWindowAppearing", "ret": "bool", @@ -27600,7 +28436,7 @@ "cimguiname": "igIsWindowChildOf", "defaults": {}, "funcname": "IsWindowChildOf", - "location": "imgui_internal:3238", + "location": "imgui_internal:3362", "namespace": "ImGui", "ov_cimguiname": "igIsWindowChildOf", "ret": "bool", @@ -27617,7 +28453,7 @@ "cimguiname": "igIsWindowCollapsed", "defaults": {}, "funcname": "IsWindowCollapsed", - "location": "imgui:374", + "location": "imgui:399", "namespace": "ImGui", "ov_cimguiname": "igIsWindowCollapsed", "ret": "bool", @@ -27645,7 +28481,7 @@ "flags": "0" }, "funcname": "IsWindowContentHoverable", - "location": "imgui_internal:3347", + "location": "imgui_internal:3476", "namespace": "ImGui", "ov_cimguiname": "igIsWindowContentHoverable", "ret": "bool", @@ -27663,7 +28499,7 @@ "comment": "// is current window docked into another window?", "defaults": {}, "funcname": "IsWindowDocked", - "location": "imgui:852", + "location": "imgui:890", "namespace": "ImGui", "ov_cimguiname": "igIsWindowDocked", "ret": "bool", @@ -27688,7 +28524,7 @@ "flags": "0" }, "funcname": "IsWindowFocused", - "location": "imgui:375", + "location": "imgui:400", "namespace": "ImGui", "ov_cimguiname": "igIsWindowFocused", "ret": "bool", @@ -27713,7 +28549,7 @@ "flags": "0" }, "funcname": "IsWindowHovered", - "location": "imgui:376", + "location": "imgui:401", "namespace": "ImGui", "ov_cimguiname": "igIsWindowHovered", "ret": "bool", @@ -27735,7 +28571,7 @@ "cimguiname": "igIsWindowNavFocusable", "defaults": {}, "funcname": "IsWindowNavFocusable", - "location": "imgui_internal:3241", + "location": "imgui_internal:3365", "namespace": "ImGui", "ov_cimguiname": "igIsWindowNavFocusable", "ret": "bool", @@ -27761,7 +28597,7 @@ "cimguiname": "igIsWindowWithinBeginStackOf", "defaults": {}, "funcname": "IsWindowWithinBeginStackOf", - "location": "imgui_internal:3239", + "location": "imgui_internal:3363", "namespace": "ImGui", "ov_cimguiname": "igIsWindowWithinBeginStackOf", "ret": "bool", @@ -27798,7 +28634,7 @@ "nav_bb": "NULL" }, "funcname": "ItemAdd", - "location": "imgui_internal:3345", + "location": "imgui_internal:3474", "namespace": "ImGui", "ov_cimguiname": "igItemAdd", "ret": "bool", @@ -27828,7 +28664,7 @@ "cimguiname": "igItemHoverable", "defaults": {}, "funcname": "ItemHoverable", - "location": "imgui_internal:3346", + "location": "imgui_internal:3475", "namespace": "ImGui", "ov_cimguiname": "igItemHoverable", "ret": "bool", @@ -27856,7 +28692,7 @@ "text_baseline_y": "-1.0f" }, "funcname": "ItemSize", - "location": "imgui_internal:3343", + "location": "imgui_internal:3472", "namespace": "ImGui", "ov_cimguiname": "igItemSize_Vec2", "ret": "void", @@ -27883,7 +28719,7 @@ "text_baseline_y": "-1.0f" }, "funcname": "ItemSize", - "location": "imgui_internal:3344", + "location": "imgui_internal:3473", "namespace": "ImGui", "ov_cimguiname": "igItemSize_Rect", "ret": "void", @@ -27905,7 +28741,7 @@ "cimguiname": "igKeepAliveID", "defaults": {}, "funcname": "KeepAliveID", - "location": "imgui_internal:3336", + "location": "imgui_internal:3465", "namespace": "ImGui", "ov_cimguiname": "igKeepAliveID", "ret": "void", @@ -27937,7 +28773,7 @@ "defaults": {}, "funcname": "LabelText", "isvararg": "...)", - "location": "imgui:524", + "location": "imgui:545", "namespace": "ImGui", "ov_cimguiname": "igLabelText", "ret": "void", @@ -27967,7 +28803,7 @@ "cimguiname": "igLabelTextV", "defaults": {}, "funcname": "LabelTextV", - "location": "imgui:525", + "location": "imgui:546", "namespace": "ImGui", "ov_cimguiname": "igLabelTextV", "ret": "void", @@ -28007,7 +28843,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:669", + "location": "imgui:705", "namespace": "ImGui", "ov_cimguiname": "igListBox_Str_arr", "ret": "bool", @@ -28051,7 +28887,7 @@ "height_in_items": "-1" }, "funcname": "ListBox", - "location": "imgui:670", + "location": "imgui:706", "namespace": "ImGui", "ov_cimguiname": "igListBox_FnStrPtr", "ret": "bool", @@ -28074,7 +28910,7 @@ "comment": "// call after CreateContext() and before the first call to NewFrame(). NewFrame() automatically calls LoadIniSettingsFromDisk(io.IniFilename).", "defaults": {}, "funcname": "LoadIniSettingsFromDisk", - "location": "imgui:992", + "location": "imgui:1055", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromDisk", "ret": "void", @@ -28103,7 +28939,7 @@ "ini_size": "0" }, "funcname": "LoadIniSettingsFromMemory", - "location": "imgui:993", + "location": "imgui:1056", "namespace": "ImGui", "ov_cimguiname": "igLoadIniSettingsFromMemory", "ret": "void", @@ -28125,7 +28961,7 @@ "cimguiname": "igLocalizeGetMsg", "defaults": {}, "funcname": "LocalizeGetMsg", - "location": "imgui_internal:3310", + "location": "imgui_internal:3439", "namespace": "ImGui", "ov_cimguiname": "igLocalizeGetMsg", "ret": "const char*", @@ -28151,7 +28987,7 @@ "cimguiname": "igLocalizeRegisterEntries", "defaults": {}, "funcname": "LocalizeRegisterEntries", - "location": "imgui_internal:3309", + "location": "imgui_internal:3438", "namespace": "ImGui", "ov_cimguiname": "igLocalizeRegisterEntries", "ret": "void", @@ -28178,7 +29014,7 @@ "comment": "// -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name.", "defaults": {}, "funcname": "LogBegin", - "location": "imgui_internal:3363", + "location": "imgui_internal:3490", "namespace": "ImGui", "ov_cimguiname": "igLogBegin", "ret": "void", @@ -28196,7 +29032,7 @@ "comment": "// helper to display buttons for logging to tty/file/clipboard", "defaults": {}, "funcname": "LogButtons", - "location": "imgui:860", + "location": "imgui:898", "namespace": "ImGui", "ov_cimguiname": "igLogButtons", "ret": "void", @@ -28214,7 +29050,7 @@ "comment": "// stop logging (close file, etc.)", "defaults": {}, "funcname": "LogFinish", - "location": "imgui:859", + "location": "imgui:897", "namespace": "ImGui", "ov_cimguiname": "igLogFinish", "ret": "void", @@ -28246,7 +29082,7 @@ "text_end": "NULL" }, "funcname": "LogRenderedText", - "location": "imgui_internal:3365", + "location": "imgui_internal:3492", "namespace": "ImGui", "ov_cimguiname": "igLogRenderedText", "ret": "void", @@ -28272,7 +29108,7 @@ "cimguiname": "igLogSetNextTextDecoration", "defaults": {}, "funcname": "LogSetNextTextDecoration", - "location": "imgui_internal:3366", + "location": "imgui_internal:3493", "namespace": "ImGui", "ov_cimguiname": "igLogSetNextTextDecoration", "ret": "void", @@ -28300,7 +29136,7 @@ "defaults": {}, "funcname": "LogText", "isvararg": "...)", - "location": "imgui:861", + "location": "imgui:899", "manual": true, "namespace": "ImGui", "ov_cimguiname": "igLogText", @@ -28327,7 +29163,7 @@ "cimguiname": "igLogTextV", "defaults": {}, "funcname": "LogTextV", - "location": "imgui:862", + "location": "imgui:900", "namespace": "ImGui", "ov_cimguiname": "igLogTextV", "ret": "void", @@ -28352,7 +29188,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToBuffer", - "location": "imgui_internal:3364", + "location": "imgui_internal:3491", "namespace": "ImGui", "ov_cimguiname": "igLogToBuffer", "ret": "void", @@ -28377,7 +29213,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToClipboard", - "location": "imgui:858", + "location": "imgui:896", "namespace": "ImGui", "ov_cimguiname": "igLogToClipboard", "ret": "void", @@ -28407,7 +29243,7 @@ "filename": "NULL" }, "funcname": "LogToFile", - "location": "imgui:857", + "location": "imgui:895", "namespace": "ImGui", "ov_cimguiname": "igLogToFile", "ret": "void", @@ -28432,7 +29268,7 @@ "auto_open_depth": "-1" }, "funcname": "LogToTTY", - "location": "imgui:856", + "location": "imgui:894", "namespace": "ImGui", "ov_cimguiname": "igLogToTTY", "ret": "void", @@ -28449,7 +29285,7 @@ "cimguiname": "igMarkIniSettingsDirty", "defaults": {}, "funcname": "MarkIniSettingsDirty", - "location": "imgui_internal:3295", + "location": "imgui_internal:3424", "namespace": "ImGui", "ov_cimguiname": "igMarkIniSettingsDirty_Nil", "ret": "void", @@ -28469,7 +29305,7 @@ "cimguiname": "igMarkIniSettingsDirty", "defaults": {}, "funcname": "MarkIniSettingsDirty", - "location": "imgui_internal:3296", + "location": "imgui_internal:3425", "namespace": "ImGui", "ov_cimguiname": "igMarkIniSettingsDirty_WindowPtr", "ret": "void", @@ -28492,7 +29328,7 @@ "comment": "// Mark data associated to given item as \"edited\", used by IsItemDeactivatedAfterEdit() function.", "defaults": {}, "funcname": "MarkItemEdited", - "location": "imgui_internal:3337", + "location": "imgui_internal:3466", "namespace": "ImGui", "ov_cimguiname": "igMarkItemEdited", "ret": "void", @@ -28514,7 +29350,7 @@ "cimguiname": "igMemAlloc", "defaults": {}, "funcname": "MemAlloc", - "location": "imgui:1010", + "location": "imgui:1077", "namespace": "ImGui", "ov_cimguiname": "igMemAlloc", "ret": "void*", @@ -28536,7 +29372,7 @@ "cimguiname": "igMemFree", "defaults": {}, "funcname": "MemFree", - "location": "imgui:1011", + "location": "imgui:1078", "namespace": "ImGui", "ov_cimguiname": "igMemFree", "ret": "void", @@ -28575,7 +29411,7 @@ "shortcut": "NULL" }, "funcname": "MenuItem", - "location": "imgui:697", + "location": "imgui:733", "namespace": "ImGui", "ov_cimguiname": "igMenuItem_Bool", "ret": "bool", @@ -28610,7 +29446,7 @@ "enabled": "true" }, "funcname": "MenuItem", - "location": "imgui:698", + "location": "imgui:734", "namespace": "ImGui", "ov_cimguiname": "igMenuItem_BoolPtr", "ret": "bool", @@ -28652,7 +29488,7 @@ "shortcut": "NULL" }, "funcname": "MenuItemEx", - "location": "imgui_internal:3388", + "location": "imgui_internal:3519", "namespace": "ImGui", "ov_cimguiname": "igMenuItemEx", "ret": "bool", @@ -28674,7 +29510,7 @@ "cimguiname": "igMouseButtonToKey", "defaults": {}, "funcname": "MouseButtonToKey", - "location": "imgui_internal:3445", + "location": "imgui_internal:3574", "namespace": "ImGui", "ov_cimguiname": "igMouseButtonToKey", "ret": "ImGuiKey", @@ -28682,6 +29518,130 @@ "stname": "" } ], + "igMultiSelectAddSetAll": [ + { + "args": "(ImGuiMultiSelectTempData* ms,bool selected)", + "argsT": [ + { + "name": "ms", + "type": "ImGuiMultiSelectTempData*" + }, + { + "name": "selected", + "type": "bool" + } + ], + "argsoriginal": "(ImGuiMultiSelectTempData* ms,bool selected)", + "call_args": "(ms,selected)", + "cimguiname": "igMultiSelectAddSetAll", + "defaults": {}, + "funcname": "MultiSelectAddSetAll", + "location": "imgui_internal:3723", + "namespace": "ImGui", + "ov_cimguiname": "igMultiSelectAddSetAll", + "ret": "void", + "signature": "(ImGuiMultiSelectTempData*,bool)", + "stname": "" + } + ], + "igMultiSelectAddSetRange": [ + { + "args": "(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item)", + "argsT": [ + { + "name": "ms", + "type": "ImGuiMultiSelectTempData*" + }, + { + "name": "selected", + "type": "bool" + }, + { + "name": "range_dir", + "type": "int" + }, + { + "name": "first_item", + "type": "ImGuiSelectionUserData" + }, + { + "name": "last_item", + "type": "ImGuiSelectionUserData" + } + ], + "argsoriginal": "(ImGuiMultiSelectTempData* ms,bool selected,int range_dir,ImGuiSelectionUserData first_item,ImGuiSelectionUserData last_item)", + "call_args": "(ms,selected,range_dir,first_item,last_item)", + "cimguiname": "igMultiSelectAddSetRange", + "defaults": {}, + "funcname": "MultiSelectAddSetRange", + "location": "imgui_internal:3724", + "namespace": "ImGui", + "ov_cimguiname": "igMultiSelectAddSetRange", + "ret": "void", + "signature": "(ImGuiMultiSelectTempData*,bool,int,ImGuiSelectionUserData,ImGuiSelectionUserData)", + "stname": "" + } + ], + "igMultiSelectItemFooter": [ + { + "args": "(ImGuiID id,bool* p_selected,bool* p_pressed)", + "argsT": [ + { + "name": "id", + "type": "ImGuiID" + }, + { + "name": "p_selected", + "type": "bool*" + }, + { + "name": "p_pressed", + "type": "bool*" + } + ], + "argsoriginal": "(ImGuiID id,bool* p_selected,bool* p_pressed)", + "call_args": "(id,p_selected,p_pressed)", + "cimguiname": "igMultiSelectItemFooter", + "defaults": {}, + "funcname": "MultiSelectItemFooter", + "location": "imgui_internal:3722", + "namespace": "ImGui", + "ov_cimguiname": "igMultiSelectItemFooter", + "ret": "void", + "signature": "(ImGuiID,bool*,bool*)", + "stname": "" + } + ], + "igMultiSelectItemHeader": [ + { + "args": "(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags)", + "argsT": [ + { + "name": "id", + "type": "ImGuiID" + }, + { + "name": "p_selected", + "type": "bool*" + }, + { + "name": "p_button_flags", + "type": "ImGuiButtonFlags*" + } + ], + "argsoriginal": "(ImGuiID id,bool* p_selected,ImGuiButtonFlags* p_button_flags)", + "call_args": "(id,p_selected,p_button_flags)", + "cimguiname": "igMultiSelectItemHeader", + "defaults": {}, + "funcname": "MultiSelectItemHeader", + "location": "imgui_internal:3721", + "namespace": "ImGui", + "ov_cimguiname": "igMultiSelectItemHeader", + "ret": "void", + "signature": "(ImGuiID,bool*,ImGuiButtonFlags*)", + "stname": "" + } + ], "igNavClearPreferredPosForAxis": [ { "args": "(ImGuiAxis axis)", @@ -28696,7 +29656,7 @@ "cimguiname": "igNavClearPreferredPosForAxis", "defaults": {}, "funcname": "NavClearPreferredPosForAxis", - "location": "imgui_internal:3407", + "location": "imgui_internal:3538", "namespace": "ImGui", "ov_cimguiname": "igNavClearPreferredPosForAxis", "ret": "void", @@ -28718,7 +29678,7 @@ "cimguiname": "igNavHighlightActivated", "defaults": {}, "funcname": "NavHighlightActivated", - "location": "imgui_internal:3406", + "location": "imgui_internal:3537", "namespace": "ImGui", "ov_cimguiname": "igNavHighlightActivated", "ret": "void", @@ -28735,7 +29695,7 @@ "cimguiname": "igNavInitRequestApplyResult", "defaults": {}, "funcname": "NavInitRequestApplyResult", - "location": "imgui_internal:3397", + "location": "imgui_internal:3528", "namespace": "ImGui", "ov_cimguiname": "igNavInitRequestApplyResult", "ret": "void", @@ -28761,7 +29721,7 @@ "cimguiname": "igNavInitWindow", "defaults": {}, "funcname": "NavInitWindow", - "location": "imgui_internal:3396", + "location": "imgui_internal:3527", "namespace": "ImGui", "ov_cimguiname": "igNavInitWindow", "ret": "void", @@ -28778,7 +29738,7 @@ "cimguiname": "igNavMoveRequestApplyResult", "defaults": {}, "funcname": "NavMoveRequestApplyResult", - "location": "imgui_internal:3404", + "location": "imgui_internal:3535", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestApplyResult", "ret": "void", @@ -28795,7 +29755,7 @@ "cimguiname": "igNavMoveRequestButNoResultYet", "defaults": {}, "funcname": "NavMoveRequestButNoResultYet", - "location": "imgui_internal:3398", + "location": "imgui_internal:3529", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestButNoResultYet", "ret": "bool", @@ -28812,7 +29772,7 @@ "cimguiname": "igNavMoveRequestCancel", "defaults": {}, "funcname": "NavMoveRequestCancel", - "location": "imgui_internal:3403", + "location": "imgui_internal:3534", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestCancel", "ret": "void", @@ -28846,7 +29806,7 @@ "cimguiname": "igNavMoveRequestForward", "defaults": {}, "funcname": "NavMoveRequestForward", - "location": "imgui_internal:3400", + "location": "imgui_internal:3531", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestForward", "ret": "void", @@ -28868,7 +29828,7 @@ "cimguiname": "igNavMoveRequestResolveWithLastItem", "defaults": {}, "funcname": "NavMoveRequestResolveWithLastItem", - "location": "imgui_internal:3401", + "location": "imgui_internal:3532", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestResolveWithLastItem", "ret": "void", @@ -28878,7 +29838,7 @@ ], "igNavMoveRequestResolveWithPastTreeNode": [ { - "args": "(ImGuiNavItemData* result,ImGuiNavTreeNodeData* tree_node_data)", + "args": "(ImGuiNavItemData* result,ImGuiTreeNodeStackData* tree_node_data)", "argsT": [ { "name": "result", @@ -28886,19 +29846,19 @@ }, { "name": "tree_node_data", - "type": "ImGuiNavTreeNodeData*" + "type": "ImGuiTreeNodeStackData*" } ], - "argsoriginal": "(ImGuiNavItemData* result,ImGuiNavTreeNodeData* tree_node_data)", + "argsoriginal": "(ImGuiNavItemData* result,ImGuiTreeNodeStackData* tree_node_data)", "call_args": "(result,tree_node_data)", "cimguiname": "igNavMoveRequestResolveWithPastTreeNode", "defaults": {}, "funcname": "NavMoveRequestResolveWithPastTreeNode", - "location": "imgui_internal:3402", + "location": "imgui_internal:3533", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestResolveWithPastTreeNode", "ret": "void", - "signature": "(ImGuiNavItemData*,ImGuiNavTreeNodeData*)", + "signature": "(ImGuiNavItemData*,ImGuiTreeNodeStackData*)", "stname": "" } ], @@ -28928,7 +29888,7 @@ "cimguiname": "igNavMoveRequestSubmit", "defaults": {}, "funcname": "NavMoveRequestSubmit", - "location": "imgui_internal:3399", + "location": "imgui_internal:3530", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestSubmit", "ret": "void", @@ -28954,7 +29914,7 @@ "cimguiname": "igNavMoveRequestTryWrapping", "defaults": {}, "funcname": "NavMoveRequestTryWrapping", - "location": "imgui_internal:3405", + "location": "imgui_internal:3536", "namespace": "ImGui", "ov_cimguiname": "igNavMoveRequestTryWrapping", "ret": "void", @@ -28971,7 +29931,7 @@ "cimguiname": "igNavRestoreHighlightAfterMove", "defaults": {}, "funcname": "NavRestoreHighlightAfterMove", - "location": "imgui_internal:3408", + "location": "imgui_internal:3539", "namespace": "ImGui", "ov_cimguiname": "igNavRestoreHighlightAfterMove", "ret": "void", @@ -28988,7 +29948,7 @@ "cimguiname": "igNavUpdateCurrentWindowIsScrollPushableX", "defaults": {}, "funcname": "NavUpdateCurrentWindowIsScrollPushableX", - "location": "imgui_internal:3409", + "location": "imgui_internal:3540", "namespace": "ImGui", "ov_cimguiname": "igNavUpdateCurrentWindowIsScrollPushableX", "ret": "void", @@ -29006,7 +29966,7 @@ "comment": "// start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame().", "defaults": {}, "funcname": "NewFrame", - "location": "imgui:312", + "location": "imgui:337", "namespace": "ImGui", "ov_cimguiname": "igNewFrame", "ret": "void", @@ -29024,7 +29984,7 @@ "comment": "// undo a SameLine() or force a new line when in a horizontal-layout context.", "defaults": {}, "funcname": "NewLine", - "location": "imgui:481", + "location": "imgui:501", "namespace": "ImGui", "ov_cimguiname": "igNewLine", "ret": "void", @@ -29042,7 +30002,7 @@ "comment": "// next column, defaults to current row or next row if the current row is finished", "defaults": {}, "funcname": "NextColumn", - "location": "imgui:817", + "location": "imgui:855", "namespace": "ImGui", "ov_cimguiname": "igNextColumn", "ret": "void", @@ -29071,7 +30031,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:738", + "location": "imgui:775", "namespace": "ImGui", "ov_cimguiname": "igOpenPopup_Str", "ret": "void", @@ -29098,7 +30058,7 @@ "popup_flags": "0" }, "funcname": "OpenPopup", - "location": "imgui:739", + "location": "imgui:776", "namespace": "ImGui", "ov_cimguiname": "igOpenPopup_ID", "ret": "void", @@ -29126,7 +30086,7 @@ "popup_flags": "ImGuiPopupFlags_None" }, "funcname": "OpenPopupEx", - "location": "imgui_internal:3370", + "location": "imgui_internal:3500", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupEx", "ret": "void", @@ -29156,7 +30116,7 @@ "str_id": "NULL" }, "funcname": "OpenPopupOnItemClick", - "location": "imgui:740", + "location": "imgui:777", "namespace": "ImGui", "ov_cimguiname": "igOpenPopupOnItemClick", "ret": "void", @@ -29216,7 +30176,7 @@ "cimguiname": "igPlotEx", "defaults": {}, "funcname": "PlotEx", - "location": "imgui_internal:3766", + "location": "imgui_internal:3909", "namespace": "ImGui", "ov_cimguiname": "igPlotEx", "ret": "int", @@ -29277,7 +30237,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:676", + "location": "imgui:712", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogram_FloatPtr", "ret": "void", @@ -29337,7 +30297,7 @@ "values_offset": "0" }, "funcname": "PlotHistogram", - "location": "imgui:677", + "location": "imgui:713", "namespace": "ImGui", "ov_cimguiname": "igPlotHistogram_FnFloatPtr", "ret": "void", @@ -29398,7 +30358,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:674", + "location": "imgui:710", "namespace": "ImGui", "ov_cimguiname": "igPlotLines_FloatPtr", "ret": "void", @@ -29458,7 +30418,7 @@ "values_offset": "0" }, "funcname": "PlotLines", - "location": "imgui:675", + "location": "imgui:711", "namespace": "ImGui", "ov_cimguiname": "igPlotLines_FnFloatPtr", "ret": "void", @@ -29466,23 +30426,6 @@ "stname": "" } ], - "igPopButtonRepeat": [ - { - "args": "()", - "argsT": [], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igPopButtonRepeat", - "defaults": {}, - "funcname": "PopButtonRepeat", - "location": "imgui:440", - "namespace": "ImGui", - "ov_cimguiname": "igPopButtonRepeat", - "ret": "void", - "signature": "()", - "stname": "" - } - ], "igPopClipRect": [ { "args": "()", @@ -29492,7 +30435,7 @@ "cimguiname": "igPopClipRect", "defaults": {}, "funcname": "PopClipRect", - "location": "imgui:887", + "location": "imgui:926", "namespace": "ImGui", "ov_cimguiname": "igPopClipRect", "ret": "void", @@ -29509,7 +30452,7 @@ "cimguiname": "igPopColumnsBackground", "defaults": {}, "funcname": "PopColumnsBackground", - "location": "imgui_internal:3593", + "location": "imgui_internal:3734", "namespace": "ImGui", "ov_cimguiname": "igPopColumnsBackground", "ret": "void", @@ -29526,7 +30469,7 @@ "cimguiname": "igPopFocusScope", "defaults": {}, "funcname": "PopFocusScope", - "location": "imgui_internal:3571", + "location": "imgui_internal:3700", "namespace": "ImGui", "ov_cimguiname": "igPopFocusScope", "ret": "void", @@ -29543,7 +30486,7 @@ "cimguiname": "igPopFont", "defaults": {}, "funcname": "PopFont", - "location": "imgui:430", + "location": "imgui:447", "namespace": "ImGui", "ov_cimguiname": "igPopFont", "ret": "void", @@ -29561,7 +30504,7 @@ "comment": "// pop from the ID stack.", "defaults": {}, "funcname": "PopID", - "location": "imgui:509", + "location": "imgui:529", "namespace": "ImGui", "ov_cimguiname": "igPopID", "ret": "void", @@ -29578,7 +30521,7 @@ "cimguiname": "igPopItemFlag", "defaults": {}, "funcname": "PopItemFlag", - "location": "imgui_internal:3359", + "location": "imgui:457", "namespace": "ImGui", "ov_cimguiname": "igPopItemFlag", "ret": "void", @@ -29595,7 +30538,7 @@ "cimguiname": "igPopItemWidth", "defaults": {}, "funcname": "PopItemWidth", - "location": "imgui:444", + "location": "imgui:461", "namespace": "ImGui", "ov_cimguiname": "igPopItemWidth", "ret": "void", @@ -29619,7 +30562,7 @@ "count": "1" }, "funcname": "PopStyleColor", - "location": "imgui:433", + "location": "imgui:450", "namespace": "ImGui", "ov_cimguiname": "igPopStyleColor", "ret": "void", @@ -29643,7 +30586,7 @@ "count": "1" }, "funcname": "PopStyleVar", - "location": "imgui:436", + "location": "imgui:455", "namespace": "ImGui", "ov_cimguiname": "igPopStyleVar", "ret": "void", @@ -29651,23 +30594,6 @@ "stname": "" } ], - "igPopTabStop": [ - { - "args": "()", - "argsT": [], - "argsoriginal": "()", - "call_args": "()", - "cimguiname": "igPopTabStop", - "defaults": {}, - "funcname": "PopTabStop", - "location": "imgui:438", - "namespace": "ImGui", - "ov_cimguiname": "igPopTabStop", - "ret": "void", - "signature": "()", - "stname": "" - } - ], "igPopTextWrapPos": [ { "args": "()", @@ -29677,7 +30603,7 @@ "cimguiname": "igPopTextWrapPos", "defaults": {}, "funcname": "PopTextWrapPos", - "location": "imgui:448", + "location": "imgui:465", "namespace": "ImGui", "ov_cimguiname": "igPopTextWrapPos", "ret": "void", @@ -29710,7 +30636,7 @@ "size_arg": "ImVec2(-FLT_MIN,0)" }, "funcname": "ProgressBar", - "location": "imgui:542", + "location": "imgui:563", "namespace": "ImGui", "ov_cimguiname": "igProgressBar", "ret": "void", @@ -29718,29 +30644,6 @@ "stname": "" } ], - "igPushButtonRepeat": [ - { - "args": "(bool repeat)", - "argsT": [ - { - "name": "repeat", - "type": "bool" - } - ], - "argsoriginal": "(bool repeat)", - "call_args": "(repeat)", - "cimguiname": "igPushButtonRepeat", - "comment": "// in 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame.", - "defaults": {}, - "funcname": "PushButtonRepeat", - "location": "imgui:439", - "namespace": "ImGui", - "ov_cimguiname": "igPushButtonRepeat", - "ret": "void", - "signature": "(bool)", - "stname": "" - } - ], "igPushClipRect": [ { "args": "(const ImVec2 clip_rect_min,const ImVec2 clip_rect_max,bool intersect_with_current_clip_rect)", @@ -29763,7 +30666,7 @@ "cimguiname": "igPushClipRect", "defaults": {}, "funcname": "PushClipRect", - "location": "imgui:886", + "location": "imgui:925", "namespace": "ImGui", "ov_cimguiname": "igPushClipRect", "ret": "void", @@ -29785,7 +30688,7 @@ "cimguiname": "igPushColumnClipRect", "defaults": {}, "funcname": "PushColumnClipRect", - "location": "imgui_internal:3591", + "location": "imgui_internal:3732", "namespace": "ImGui", "ov_cimguiname": "igPushColumnClipRect", "ret": "void", @@ -29802,7 +30705,7 @@ "cimguiname": "igPushColumnsBackground", "defaults": {}, "funcname": "PushColumnsBackground", - "location": "imgui_internal:3592", + "location": "imgui_internal:3733", "namespace": "ImGui", "ov_cimguiname": "igPushColumnsBackground", "ret": "void", @@ -29824,7 +30727,7 @@ "cimguiname": "igPushFocusScope", "defaults": {}, "funcname": "PushFocusScope", - "location": "imgui_internal:3570", + "location": "imgui_internal:3699", "namespace": "ImGui", "ov_cimguiname": "igPushFocusScope", "ret": "void", @@ -29847,7 +30750,7 @@ "comment": "// use NULL as a shortcut to push default font", "defaults": {}, "funcname": "PushFont", - "location": "imgui:429", + "location": "imgui:446", "namespace": "ImGui", "ov_cimguiname": "igPushFont", "ret": "void", @@ -29870,7 +30773,7 @@ "comment": "// push string into the ID stack (will hash string).", "defaults": {}, "funcname": "PushID", - "location": "imgui:505", + "location": "imgui:525", "namespace": "ImGui", "ov_cimguiname": "igPushID_Str", "ret": "void", @@ -29895,7 +30798,7 @@ "comment": "// push string into the ID stack (will hash string).", "defaults": {}, "funcname": "PushID", - "location": "imgui:506", + "location": "imgui:526", "namespace": "ImGui", "ov_cimguiname": "igPushID_StrStr", "ret": "void", @@ -29916,7 +30819,7 @@ "comment": "// push pointer into the ID stack (will hash pointer).", "defaults": {}, "funcname": "PushID", - "location": "imgui:507", + "location": "imgui:527", "namespace": "ImGui", "ov_cimguiname": "igPushID_Ptr", "ret": "void", @@ -29937,7 +30840,7 @@ "comment": "// push integer into the ID stack (will hash integer).", "defaults": {}, "funcname": "PushID", - "location": "imgui:508", + "location": "imgui:528", "namespace": "ImGui", "ov_cimguiname": "igPushID_Int", "ret": "void", @@ -29961,9 +30864,10 @@ "argsoriginal": "(ImGuiItemFlags option,bool enabled)", "call_args": "(option,enabled)", "cimguiname": "igPushItemFlag", + "comment": "// modify specified shared item flag, e.g. PushItemFlag(ImGuiItemFlags_NoTabStop, true)", "defaults": {}, "funcname": "PushItemFlag", - "location": "imgui_internal:3358", + "location": "imgui:456", "namespace": "ImGui", "ov_cimguiname": "igPushItemFlag", "ret": "void", @@ -29986,7 +30890,7 @@ "comment": "// push width of items for common large \"item+label\" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side).", "defaults": {}, "funcname": "PushItemWidth", - "location": "imgui:443", + "location": "imgui:460", "namespace": "ImGui", "ov_cimguiname": "igPushItemWidth", "ret": "void", @@ -30012,7 +30916,7 @@ "cimguiname": "igPushMultiItemsWidths", "defaults": {}, "funcname": "PushMultiItemsWidths", - "location": "imgui_internal:3352", + "location": "imgui_internal:3481", "namespace": "ImGui", "ov_cimguiname": "igPushMultiItemsWidths", "ret": "void", @@ -30035,7 +30939,7 @@ "comment": "// Push given value as-is at the top of the ID stack (whereas PushID combines old and new hashes)", "defaults": {}, "funcname": "PushOverrideID", - "location": "imgui_internal:3338", + "location": "imgui_internal:3467", "namespace": "ImGui", "ov_cimguiname": "igPushOverrideID", "ret": "void", @@ -30062,7 +30966,7 @@ "comment": "// modify a style color. always use this if you modify the style after NewFrame().", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:431", + "location": "imgui:448", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColor_U32", "ret": "void", @@ -30086,7 +30990,7 @@ "cimguiname": "igPushStyleColor", "defaults": {}, "funcname": "PushStyleColor", - "location": "imgui:432", + "location": "imgui:449", "namespace": "ImGui", "ov_cimguiname": "igPushStyleColor_Vec4", "ret": "void", @@ -30110,10 +31014,10 @@ "argsoriginal": "(ImGuiStyleVar idx,float val)", "call_args": "(idx,val)", "cimguiname": "igPushStyleVar", - "comment": "// modify a style float variable. always use this if you modify the style after NewFrame().", + "comment": "// modify a style float variable. always use this if you modify the style after NewFrame()!", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:434", + "location": "imgui:451", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVar_Float", "ret": "void", @@ -30135,10 +31039,10 @@ "argsoriginal": "(ImGuiStyleVar idx,const ImVec2& val)", "call_args": "(idx,val)", "cimguiname": "igPushStyleVar", - "comment": "// modify a style ImVec2 variable. always use this if you modify the style after NewFrame().", + "comment": "// modify a style ImVec2 variable. \"", "defaults": {}, "funcname": "PushStyleVar", - "location": "imgui:435", + "location": "imgui:452", "namespace": "ImGui", "ov_cimguiname": "igPushStyleVar_Vec2", "ret": "void", @@ -30146,26 +31050,57 @@ "stname": "" } ], - "igPushTabStop": [ + "igPushStyleVarX": [ { - "args": "(bool tab_stop)", + "args": "(ImGuiStyleVar idx,float val_x)", "argsT": [ { - "name": "tab_stop", - "type": "bool" + "name": "idx", + "type": "ImGuiStyleVar" + }, + { + "name": "val_x", + "type": "float" } ], - "argsoriginal": "(bool tab_stop)", - "call_args": "(tab_stop)", - "cimguiname": "igPushTabStop", - "comment": "// == tab stop enable. Allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets", + "argsoriginal": "(ImGuiStyleVar idx,float val_x)", + "call_args": "(idx,val_x)", + "cimguiname": "igPushStyleVarX", + "comment": "// modify X component of a style ImVec2 variable. \"", "defaults": {}, - "funcname": "PushTabStop", - "location": "imgui:437", + "funcname": "PushStyleVarX", + "location": "imgui:453", "namespace": "ImGui", - "ov_cimguiname": "igPushTabStop", + "ov_cimguiname": "igPushStyleVarX", "ret": "void", - "signature": "(bool)", + "signature": "(ImGuiStyleVar,float)", + "stname": "" + } + ], + "igPushStyleVarY": [ + { + "args": "(ImGuiStyleVar idx,float val_y)", + "argsT": [ + { + "name": "idx", + "type": "ImGuiStyleVar" + }, + { + "name": "val_y", + "type": "float" + } + ], + "argsoriginal": "(ImGuiStyleVar idx,float val_y)", + "call_args": "(idx,val_y)", + "cimguiname": "igPushStyleVarY", + "comment": "// modify Y component of a style ImVec2 variable. \"", + "defaults": {}, + "funcname": "PushStyleVarY", + "location": "imgui:454", + "namespace": "ImGui", + "ov_cimguiname": "igPushStyleVarY", + "ret": "void", + "signature": "(ImGuiStyleVar,float)", "stname": "" } ], @@ -30186,7 +31121,7 @@ "wrap_local_pos_x": "0.0f" }, "funcname": "PushTextWrapPos", - "location": "imgui:447", + "location": "imgui:464", "namespace": "ImGui", "ov_cimguiname": "igPushTextWrapPos", "ret": "void", @@ -30213,7 +31148,7 @@ "comment": "// use with e.g. if (RadioButton(\"one\", my_value==1)) my_value = 1; ", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:540", + "location": "imgui:561", "namespace": "ImGui", "ov_cimguiname": "igRadioButton_Bool", "ret": "bool", @@ -30242,7 +31177,7 @@ "comment": "// shortcut to handle the above pattern when value is an integer", "defaults": {}, "funcname": "RadioButton", - "location": "imgui:541", + "location": "imgui:562", "namespace": "ImGui", "ov_cimguiname": "igRadioButton_IntPtr", "ret": "bool", @@ -30268,7 +31203,7 @@ "cimguiname": "igRemoveContextHook", "defaults": {}, "funcname": "RemoveContextHook", - "location": "imgui_internal:3282", + "location": "imgui_internal:3411", "namespace": "ImGui", "ov_cimguiname": "igRemoveContextHook", "ret": "void", @@ -30290,7 +31225,7 @@ "cimguiname": "igRemoveSettingsHandler", "defaults": {}, "funcname": "RemoveSettingsHandler", - "location": "imgui_internal:3299", + "location": "imgui_internal:3428", "namespace": "ImGui", "ov_cimguiname": "igRemoveSettingsHandler", "ret": "void", @@ -30308,7 +31243,7 @@ "comment": "// ends the Dear ImGui frame, finalize the draw data. You can then get call GetDrawData().", "defaults": {}, "funcname": "Render", - "location": "imgui:314", + "location": "imgui:339", "namespace": "ImGui", "ov_cimguiname": "igRender", "ret": "void", @@ -30348,7 +31283,7 @@ "scale": "1.0f" }, "funcname": "RenderArrow", - "location": "imgui_internal:3694", + "location": "imgui_internal:3834", "namespace": "ImGui", "ov_cimguiname": "igRenderArrow", "ret": "void", @@ -30382,7 +31317,7 @@ "cimguiname": "igRenderArrowDockMenu", "defaults": {}, "funcname": "RenderArrowDockMenu", - "location": "imgui_internal:3698", + "location": "imgui_internal:3838", "namespace": "ImGui", "ov_cimguiname": "igRenderArrowDockMenu", "ret": "void", @@ -30420,7 +31355,7 @@ "cimguiname": "igRenderArrowPointingAt", "defaults": {}, "funcname": "RenderArrowPointingAt", - "location": "imgui_internal:3697", + "location": "imgui_internal:3837", "namespace": "ImGui", "ov_cimguiname": "igRenderArrowPointingAt", "ret": "void", @@ -30450,7 +31385,7 @@ "cimguiname": "igRenderBullet", "defaults": {}, "funcname": "RenderBullet", - "location": "imgui_internal:3695", + "location": "imgui_internal:3835", "namespace": "ImGui", "ov_cimguiname": "igRenderBullet", "ret": "void", @@ -30484,7 +31419,7 @@ "cimguiname": "igRenderCheckMark", "defaults": {}, "funcname": "RenderCheckMark", - "location": "imgui_internal:3696", + "location": "imgui_internal:3836", "namespace": "ImGui", "ov_cimguiname": "igRenderCheckMark", "ret": "void", @@ -30537,7 +31472,7 @@ "rounding": "0.0f" }, "funcname": "RenderColorRectWithAlphaCheckerboard", - "location": "imgui_internal:3688", + "location": "imgui_internal:3828", "namespace": "ImGui", "ov_cimguiname": "igRenderColorRectWithAlphaCheckerboard", "ret": "void", @@ -30563,7 +31498,7 @@ "cimguiname": "igRenderDragDropTargetRect", "defaults": {}, "funcname": "RenderDragDropTargetRect", - "location": "imgui_internal:3579", + "location": "imgui_internal:3708", "namespace": "ImGui", "ov_cimguiname": "igRenderDragDropTargetRect", "ret": "void", @@ -30573,7 +31508,7 @@ ], "igRenderFrame": [ { - "args": "(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool border,float rounding)", + "args": "(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool borders,float rounding)", "argsT": [ { "name": "p_min", @@ -30588,7 +31523,7 @@ "type": "ImU32" }, { - "name": "border", + "name": "borders", "type": "bool" }, { @@ -30596,15 +31531,15 @@ "type": "float" } ], - "argsoriginal": "(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool border=true,float rounding=0.0f)", - "call_args": "(p_min,p_max,fill_col,border,rounding)", + "argsoriginal": "(ImVec2 p_min,ImVec2 p_max,ImU32 fill_col,bool borders=true,float rounding=0.0f)", + "call_args": "(p_min,p_max,fill_col,borders,rounding)", "cimguiname": "igRenderFrame", "defaults": { - "border": "true", + "borders": "true", "rounding": "0.0f" }, "funcname": "RenderFrame", - "location": "imgui_internal:3686", + "location": "imgui_internal:3826", "namespace": "ImGui", "ov_cimguiname": "igRenderFrame", "ret": "void", @@ -30636,7 +31571,7 @@ "rounding": "0.0f" }, "funcname": "RenderFrameBorder", - "location": "imgui_internal:3687", + "location": "imgui_internal:3827", "namespace": "ImGui", "ov_cimguiname": "igRenderFrameBorder", "ret": "void", @@ -30678,7 +31613,7 @@ "cimguiname": "igRenderMouseCursor", "defaults": {}, "funcname": "RenderMouseCursor", - "location": "imgui_internal:3691", + "location": "imgui_internal:3831", "namespace": "ImGui", "ov_cimguiname": "igRenderMouseCursor", "ret": "void", @@ -30711,7 +31646,7 @@ "flags": "ImGuiNavHighlightFlags_None" }, "funcname": "RenderNavHighlight", - "location": "imgui_internal:3689", + "location": "imgui_internal:3829", "namespace": "ImGui", "ov_cimguiname": "igRenderNavHighlight", "ret": "void", @@ -30741,7 +31676,7 @@ "renderer_render_arg": "NULL" }, "funcname": "RenderPlatformWindowsDefault", - "location": "imgui:1018", + "location": "imgui:1084", "namespace": "ImGui", "ov_cimguiname": "igRenderPlatformWindowsDefault", "ret": "void", @@ -30783,7 +31718,7 @@ "cimguiname": "igRenderRectFilledRangeH", "defaults": {}, "funcname": "RenderRectFilledRangeH", - "location": "imgui_internal:3699", + "location": "imgui_internal:3839", "namespace": "ImGui", "ov_cimguiname": "igRenderRectFilledRangeH", "ret": "void", @@ -30821,7 +31756,7 @@ "cimguiname": "igRenderRectFilledWithHole", "defaults": {}, "funcname": "RenderRectFilledWithHole", - "location": "imgui_internal:3700", + "location": "imgui_internal:3840", "namespace": "ImGui", "ov_cimguiname": "igRenderRectFilledWithHole", "ret": "void", @@ -30858,7 +31793,7 @@ "text_end": "NULL" }, "funcname": "RenderText", - "location": "imgui_internal:3681", + "location": "imgui_internal:3821", "namespace": "ImGui", "ov_cimguiname": "igRenderText", "ret": "void", @@ -30907,7 +31842,7 @@ "clip_rect": "NULL" }, "funcname": "RenderTextClipped", - "location": "imgui_internal:3683", + "location": "imgui_internal:3823", "namespace": "ImGui", "ov_cimguiname": "igRenderTextClipped", "ret": "void", @@ -30960,7 +31895,7 @@ "clip_rect": "NULL" }, "funcname": "RenderTextClippedEx", - "location": "imgui_internal:3684", + "location": "imgui_internal:3824", "namespace": "ImGui", "ov_cimguiname": "igRenderTextClippedEx", "ret": "void", @@ -31010,7 +31945,7 @@ "cimguiname": "igRenderTextEllipsis", "defaults": {}, "funcname": "RenderTextEllipsis", - "location": "imgui_internal:3685", + "location": "imgui_internal:3825", "namespace": "ImGui", "ov_cimguiname": "igRenderTextEllipsis", "ret": "void", @@ -31044,7 +31979,7 @@ "cimguiname": "igRenderTextWrapped", "defaults": {}, "funcname": "RenderTextWrapped", - "location": "imgui_internal:3682", + "location": "imgui_internal:3822", "namespace": "ImGui", "ov_cimguiname": "igRenderTextWrapped", "ret": "void", @@ -31069,7 +32004,7 @@ "button": "0" }, "funcname": "ResetMouseDragDelta", - "location": "imgui:978", + "location": "imgui:1041", "namespace": "ImGui", "ov_cimguiname": "igResetMouseDragDelta", "ret": "void", @@ -31099,7 +32034,7 @@ "spacing": "-1.0f" }, "funcname": "SameLine", - "location": "imgui:480", + "location": "imgui:500", "namespace": "ImGui", "ov_cimguiname": "igSameLine", "ret": "void", @@ -31122,7 +32057,7 @@ "comment": "// this is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext).", "defaults": {}, "funcname": "SaveIniSettingsToDisk", - "location": "imgui:994", + "location": "imgui:1057", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToDisk", "ret": "void", @@ -31147,7 +32082,7 @@ "out_ini_size": "NULL" }, "funcname": "SaveIniSettingsToMemory", - "location": "imgui:995", + "location": "imgui:1058", "namespace": "ImGui", "ov_cimguiname": "igSaveIniSettingsToMemory", "ret": "const char*", @@ -31173,7 +32108,7 @@ "cimguiname": "igScaleWindowsInViewport", "defaults": {}, "funcname": "ScaleWindowsInViewport", - "location": "imgui_internal:3287", + "location": "imgui_internal:3416", "namespace": "ImGui", "ov_cimguiname": "igScaleWindowsInViewport", "ret": "void", @@ -31199,7 +32134,7 @@ "cimguiname": "igScrollToBringRectIntoView", "defaults": {}, "funcname": "ScrollToBringRectIntoView", - "location": "imgui_internal:3323", + "location": "imgui_internal:3452", "namespace": "ImGui", "ov_cimguiname": "igScrollToBringRectIntoView", "ret": "void", @@ -31223,7 +32158,7 @@ "flags": "0" }, "funcname": "ScrollToItem", - "location": "imgui_internal:3319", + "location": "imgui_internal:3448", "namespace": "ImGui", "ov_cimguiname": "igScrollToItem", "ret": "void", @@ -31255,7 +32190,7 @@ "flags": "0" }, "funcname": "ScrollToRect", - "location": "imgui_internal:3320", + "location": "imgui_internal:3449", "namespace": "ImGui", "ov_cimguiname": "igScrollToRect", "ret": "void", @@ -31291,7 +32226,7 @@ "flags": "0" }, "funcname": "ScrollToRectEx", - "location": "imgui_internal:3321", + "location": "imgui_internal:3450", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igScrollToRectEx", @@ -31314,7 +32249,7 @@ "cimguiname": "igScrollbar", "defaults": {}, "funcname": "Scrollbar", - "location": "imgui_internal:3716", + "location": "imgui_internal:3856", "namespace": "ImGui", "ov_cimguiname": "igScrollbar", "ret": "void", @@ -31360,7 +32295,7 @@ "cimguiname": "igScrollbarEx", "defaults": {}, "funcname": "ScrollbarEx", - "location": "imgui_internal:3717", + "location": "imgui_internal:3857", "namespace": "ImGui", "ov_cimguiname": "igScrollbarEx", "ret": "bool", @@ -31399,7 +32334,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:658", + "location": "imgui:682", "namespace": "ImGui", "ov_cimguiname": "igSelectable_Bool", "ret": "bool", @@ -31435,7 +32370,7 @@ "size": "ImVec2(0,0)" }, "funcname": "Selectable", - "location": "imgui:659", + "location": "imgui:683", "namespace": "ImGui", "ov_cimguiname": "igSelectable_BoolPtr", "ret": "bool", @@ -31453,7 +32388,7 @@ "comment": "// separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator.", "defaults": {}, "funcname": "Separator", - "location": "imgui:479", + "location": "imgui:499", "namespace": "ImGui", "ov_cimguiname": "igSeparator", "ret": "void", @@ -31481,7 +32416,7 @@ "thickness": "1.0f" }, "funcname": "SeparatorEx", - "location": "imgui_internal:3708", + "location": "imgui_internal:3848", "namespace": "ImGui", "ov_cimguiname": "igSeparatorEx", "ret": "void", @@ -31504,7 +32439,7 @@ "comment": "// currently: formatted text with an horizontal line", "defaults": {}, "funcname": "SeparatorText", - "location": "imgui:528", + "location": "imgui:549", "namespace": "ImGui", "ov_cimguiname": "igSeparatorText", "ret": "void", @@ -31538,7 +32473,7 @@ "cimguiname": "igSeparatorTextEx", "defaults": {}, "funcname": "SeparatorTextEx", - "location": "imgui_internal:3709", + "location": "imgui_internal:3849", "namespace": "ImGui", "ov_cimguiname": "igSeparatorTextEx", "ret": "void", @@ -31564,7 +32499,7 @@ "cimguiname": "igSetActiveID", "defaults": {}, "funcname": "SetActiveID", - "location": "imgui_internal:3331", + "location": "imgui_internal:3460", "namespace": "ImGui", "ov_cimguiname": "igSetActiveID", "ret": "void", @@ -31581,7 +32516,7 @@ "cimguiname": "igSetActiveIdUsingAllKeyboardKeys", "defaults": {}, "funcname": "SetActiveIdUsingAllKeyboardKeys", - "location": "imgui_internal:3452", + "location": "imgui_internal:3581", "namespace": "ImGui", "ov_cimguiname": "igSetActiveIdUsingAllKeyboardKeys", "ret": "void", @@ -31613,7 +32548,7 @@ "user_data": "NULL" }, "funcname": "SetAllocatorFunctions", - "location": "imgui:1008", + "location": "imgui:1075", "namespace": "ImGui", "ov_cimguiname": "igSetAllocatorFunctions", "ret": "void", @@ -31635,7 +32570,7 @@ "cimguiname": "igSetClipboardText", "defaults": {}, "funcname": "SetClipboardText", - "location": "imgui:986", + "location": "imgui:1049", "namespace": "ImGui", "ov_cimguiname": "igSetClipboardText", "ret": "void", @@ -31658,7 +32593,7 @@ "comment": "// initialize current options (generally on application startup) if you want to select a default format, picker type, etc. User will be able to change many settings, unless you pass the _NoOptions flag to your calls.", "defaults": {}, "funcname": "SetColorEditOptions", - "location": "imgui:633", + "location": "imgui:656", "namespace": "ImGui", "ov_cimguiname": "igSetColorEditOptions", "ret": "void", @@ -31685,7 +32620,7 @@ "comment": "// set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column", "defaults": {}, "funcname": "SetColumnOffset", - "location": "imgui:822", + "location": "imgui:860", "namespace": "ImGui", "ov_cimguiname": "igSetColumnOffset", "ret": "void", @@ -31712,7 +32647,7 @@ "comment": "// set column width (in pixels). pass -1 to use current column", "defaults": {}, "funcname": "SetColumnWidth", - "location": "imgui:820", + "location": "imgui:858", "namespace": "ImGui", "ov_cimguiname": "igSetColumnWidth", "ret": "void", @@ -31734,7 +32669,7 @@ "cimguiname": "igSetCurrentContext", "defaults": {}, "funcname": "SetCurrentContext", - "location": "imgui:307", + "location": "imgui:331", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentContext", "ret": "void", @@ -31756,7 +32691,7 @@ "cimguiname": "igSetCurrentFont", "defaults": {}, "funcname": "SetCurrentFont", - "location": "imgui_internal:3263", + "location": "imgui_internal:3391", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentFont", "ret": "void", @@ -31782,7 +32717,7 @@ "cimguiname": "igSetCurrentViewport", "defaults": {}, "funcname": "SetCurrentViewport", - "location": "imgui_internal:3290", + "location": "imgui_internal:3419", "namespace": "ImGui", "ov_cimguiname": "igSetCurrentViewport", "ret": "void", @@ -31805,7 +32740,7 @@ "comment": "// [window-local] \"", "defaults": {}, "funcname": "SetCursorPos", - "location": "imgui:473", + "location": "imgui:493", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPos", "ret": "void", @@ -31828,7 +32763,7 @@ "comment": "// [window-local] \"", "defaults": {}, "funcname": "SetCursorPosX", - "location": "imgui:474", + "location": "imgui:494", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosX", "ret": "void", @@ -31851,7 +32786,7 @@ "comment": "// [window-local] \"", "defaults": {}, "funcname": "SetCursorPosY", - "location": "imgui:475", + "location": "imgui:495", "namespace": "ImGui", "ov_cimguiname": "igSetCursorPosY", "ret": "void", @@ -31871,10 +32806,10 @@ "argsoriginal": "(const ImVec2& pos)", "call_args": "(pos)", "cimguiname": "igSetCursorScreenPos", - "comment": "// cursor position in absolute coordinates", + "comment": "// cursor position, absolute coordinates. THIS IS YOUR BEST FRIEND.", "defaults": {}, "funcname": "SetCursorScreenPos", - "location": "imgui:469", + "location": "imgui:488", "namespace": "ImGui", "ov_cimguiname": "igSetCursorScreenPos", "ret": "void", @@ -31911,7 +32846,7 @@ "cond": "0" }, "funcname": "SetDragDropPayload", - "location": "imgui:870", + "location": "imgui:908", "namespace": "ImGui", "ov_cimguiname": "igSetDragDropPayload", "ret": "bool", @@ -31937,7 +32872,7 @@ "cimguiname": "igSetFocusID", "defaults": {}, "funcname": "SetFocusID", - "location": "imgui_internal:3332", + "location": "imgui_internal:3461", "namespace": "ImGui", "ov_cimguiname": "igSetFocusID", "ret": "void", @@ -31959,7 +32894,7 @@ "cimguiname": "igSetHoveredID", "defaults": {}, "funcname": "SetHoveredID", - "location": "imgui_internal:3335", + "location": "imgui_internal:3464", "namespace": "ImGui", "ov_cimguiname": "igSetHoveredID", "ret": "void", @@ -31977,7 +32912,7 @@ "comment": "// make last item the default focused item of a window.", "defaults": {}, "funcname": "SetItemDefaultFocus", - "location": "imgui:891", + "location": "imgui:930", "namespace": "ImGui", "ov_cimguiname": "igSetItemDefaultFocus", "ret": "void", @@ -31986,6 +32921,27 @@ } ], "igSetItemKeyOwner": [ + { + "args": "(ImGuiKey key)", + "argsT": [ + { + "name": "key", + "type": "ImGuiKey" + } + ], + "argsoriginal": "(ImGuiKey key)", + "call_args": "(key)", + "cimguiname": "igSetItemKeyOwner", + "comment": "// Set key owner to last item ID if it is hovered or active. Equivalent to 'if (IsItemHovered() || IsItemActive()) SetKeyOwner(key, GetItemID());'.", + "defaults": {}, + "funcname": "SetItemKeyOwner", + "location": "imgui:1023", + "namespace": "ImGui", + "ov_cimguiname": "igSetItemKeyOwner_Nil", + "ret": "void", + "signature": "(ImGuiKey)", + "stname": "" + }, { "args": "(ImGuiKey key,ImGuiInputFlags flags)", "argsT": [ @@ -31998,17 +32954,15 @@ "type": "ImGuiInputFlags" } ], - "argsoriginal": "(ImGuiKey key,ImGuiInputFlags flags=0)", + "argsoriginal": "(ImGuiKey key,ImGuiInputFlags flags)", "call_args": "(key,flags)", "cimguiname": "igSetItemKeyOwner", "comment": "// Set key owner to last item if it is hovered or active. Equivalent to 'if (IsItemHovered() || IsItemActive()) SetKeyOwner(key, GetItemID());'.", - "defaults": { - "flags": "0" - }, + "defaults": {}, "funcname": "SetItemKeyOwner", - "location": "imgui_internal:3469", + "location": "imgui_internal:3598", "namespace": "ImGui", - "ov_cimguiname": "igSetItemKeyOwner", + "ov_cimguiname": "igSetItemKeyOwner_InputFlags", "ret": "void", "signature": "(ImGuiKey,ImGuiInputFlags)", "stname": "" @@ -32030,11 +32984,11 @@ "argsoriginal": "(const char* fmt,...)", "call_args": "(fmt,...)", "cimguiname": "igSetItemTooltip", - "comment": "// set a text-only tooltip if preceeding item was hovered. override any previous call to SetTooltip().", + "comment": "// set a text-only tooltip if preceding item was hovered. override any previous call to SetTooltip().", "defaults": {}, "funcname": "SetItemTooltip", "isvararg": "...)", - "location": "imgui:713", + "location": "imgui:750", "namespace": "ImGui", "ov_cimguiname": "igSetItemTooltip", "ret": "void", @@ -32060,7 +33014,7 @@ "cimguiname": "igSetItemTooltipV", "defaults": {}, "funcname": "SetItemTooltipV", - "location": "imgui:714", + "location": "imgui:751", "namespace": "ImGui", "ov_cimguiname": "igSetItemTooltipV", "ret": "void", @@ -32092,7 +33046,7 @@ "flags": "0" }, "funcname": "SetKeyOwner", - "location": "imgui_internal:3467", + "location": "imgui_internal:3596", "namespace": "ImGui", "ov_cimguiname": "igSetKeyOwner", "ret": "void", @@ -32124,7 +33078,7 @@ "flags": "0" }, "funcname": "SetKeyOwnersForKeyChord", - "location": "imgui_internal:3468", + "location": "imgui_internal:3597", "namespace": "ImGui", "ov_cimguiname": "igSetKeyOwnersForKeyChord", "ret": "void", @@ -32149,7 +33103,7 @@ "offset": "0" }, "funcname": "SetKeyboardFocusHere", - "location": "imgui:892", + "location": "imgui:931", "namespace": "ImGui", "ov_cimguiname": "igSetKeyboardFocusHere", "ret": "void", @@ -32183,7 +33137,7 @@ "cimguiname": "igSetLastItemData", "defaults": {}, "funcname": "SetLastItemData", - "location": "imgui_internal:3349", + "location": "imgui_internal:3478", "namespace": "ImGui", "ov_cimguiname": "igSetLastItemData", "ret": "void", @@ -32206,7 +33160,7 @@ "comment": "// set desired mouse cursor shape", "defaults": {}, "funcname": "SetMouseCursor", - "location": "imgui:980", + "location": "imgui:1043", "namespace": "ImGui", "ov_cimguiname": "igSetMouseCursor", "ret": "void", @@ -32228,7 +33182,7 @@ "cimguiname": "igSetNavFocusScope", "defaults": {}, "funcname": "SetNavFocusScope", - "location": "imgui_internal:3412", + "location": "imgui_internal:3543", "namespace": "ImGui", "ov_cimguiname": "igSetNavFocusScope", "ret": "void", @@ -32262,7 +33216,7 @@ "cimguiname": "igSetNavID", "defaults": {}, "funcname": "SetNavID", - "location": "imgui_internal:3411", + "location": "imgui_internal:3542", "namespace": "ImGui", "ov_cimguiname": "igSetNavID", "ret": "void", @@ -32284,7 +33238,7 @@ "cimguiname": "igSetNavWindow", "defaults": {}, "funcname": "SetNavWindow", - "location": "imgui_internal:3410", + "location": "imgui_internal:3541", "namespace": "ImGui", "ov_cimguiname": "igSetNavWindow", "ret": "void", @@ -32307,7 +33261,7 @@ "comment": "// Override io.WantCaptureKeyboard flag next frame (said flag is left for your application to handle, typically when true it instructs your app to ignore inputs). e.g. force capture keyboard when your widget is being hovered. This is equivalent to setting \"io.WantCaptureKeyboard = want_capture_keyboard\"; after the next NewFrame() call.", "defaults": {}, "funcname": "SetNextFrameWantCaptureKeyboard", - "location": "imgui:960", + "location": "imgui:997", "namespace": "ImGui", "ov_cimguiname": "igSetNextFrameWantCaptureKeyboard", "ret": "void", @@ -32330,7 +33284,7 @@ "comment": "// Override io.WantCaptureMouse flag next frame (said flag is left for your application to handle, typical when true it instucts your app to ignore inputs). This is equivalent to setting \"io.WantCaptureMouse = want_capture_mouse;\" after the next NewFrame() call.", "defaults": {}, "funcname": "SetNextFrameWantCaptureMouse", - "location": "imgui:981", + "location": "imgui:1044", "namespace": "ImGui", "ov_cimguiname": "igSetNextFrameWantCaptureMouse", "ret": "void", @@ -32348,7 +33302,7 @@ "comment": "// allow next item to be overlapped by a subsequent item. Useful with invisible buttons, selectable, treenode covering an area where subsequent items may need to be added. Note that both Selectable() and TreeNode() have dedicated flags doing this.", "defaults": {}, "funcname": "SetNextItemAllowOverlap", - "location": "imgui:895", + "location": "imgui:934", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemAllowOverlap", "ret": "void", @@ -32377,7 +33331,7 @@ "cond": "0" }, "funcname": "SetNextItemOpen", - "location": "imgui:653", + "location": "imgui:676", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemOpen", "ret": "void", @@ -32385,6 +33339,32 @@ "stname": "" } ], + "igSetNextItemRefVal": [ + { + "args": "(ImGuiDataType data_type,void* p_data)", + "argsT": [ + { + "name": "data_type", + "type": "ImGuiDataType" + }, + { + "name": "p_data", + "type": "void*" + } + ], + "argsoriginal": "(ImGuiDataType data_type,void* p_data)", + "call_args": "(data_type,p_data)", + "cimguiname": "igSetNextItemRefVal", + "defaults": {}, + "funcname": "SetNextItemRefVal", + "location": "imgui_internal:3901", + "namespace": "ImGui", + "ov_cimguiname": "igSetNextItemRefVal", + "ret": "void", + "signature": "(ImGuiDataType,void*)", + "stname": "" + } + ], "igSetNextItemSelectionUserData": [ { "args": "(ImGuiSelectionUserData selection_user_data)", @@ -32399,7 +33379,7 @@ "cimguiname": "igSetNextItemSelectionUserData", "defaults": {}, "funcname": "SetNextItemSelectionUserData", - "location": "imgui_internal:3732", + "location": "imgui:694", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemSelectionUserData", "ret": "void", @@ -32409,23 +33389,52 @@ ], "igSetNextItemShortcut": [ { - "args": "(ImGuiKeyChord key_chord)", + "args": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags)", "argsT": [ { "name": "key_chord", "type": "ImGuiKeyChord" + }, + { + "name": "flags", + "type": "ImGuiInputFlags" } ], - "argsoriginal": "(ImGuiKeyChord key_chord)", - "call_args": "(key_chord)", + "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags=0)", + "call_args": "(key_chord,flags)", "cimguiname": "igSetNextItemShortcut", - "defaults": {}, + "defaults": { + "flags": "0" + }, "funcname": "SetNextItemShortcut", - "location": "imgui_internal:3501", + "location": "imgui:1015", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemShortcut", "ret": "void", - "signature": "(ImGuiKeyChord)", + "signature": "(ImGuiKeyChord,ImGuiInputFlags)", + "stname": "" + } + ], + "igSetNextItemStorageID": [ + { + "args": "(ImGuiID storage_id)", + "argsT": [ + { + "name": "storage_id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiID storage_id)", + "call_args": "(storage_id)", + "cimguiname": "igSetNextItemStorageID", + "comment": "// set id to use for open/close storage (default to same as item id).", + "defaults": {}, + "funcname": "SetNextItemStorageID", + "location": "imgui:677", + "namespace": "ImGui", + "ov_cimguiname": "igSetNextItemStorageID", + "ret": "void", + "signature": "(ImGuiID)", "stname": "" } ], @@ -32444,7 +33453,7 @@ "comment": "// set width of the _next_ common large \"item+label\" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -FLT_MIN always align width to the right side)", "defaults": {}, "funcname": "SetNextItemWidth", - "location": "imgui:445", + "location": "imgui:462", "namespace": "ImGui", "ov_cimguiname": "igSetNextItemWidth", "ret": "void", @@ -32467,7 +33476,7 @@ "comment": "// set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg/ChildBg/PopupBg. you may also use ImGuiWindowFlags_NoBackground.", "defaults": {}, "funcname": "SetNextWindowBgAlpha", - "location": "imgui:394", + "location": "imgui:419", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowBgAlpha", "ret": "void", @@ -32490,7 +33499,7 @@ "comment": "// set next window class (control docking compatibility + provide hints to platform backend via custom viewport flags and platform parent/child relationship)", "defaults": {}, "funcname": "SetNextWindowClass", - "location": "imgui:850", + "location": "imgui:888", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowClass", "ret": "void", @@ -32519,7 +33528,7 @@ "cond": "0" }, "funcname": "SetNextWindowCollapsed", - "location": "imgui:391", + "location": "imgui:416", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowCollapsed", "ret": "void", @@ -32542,7 +33551,7 @@ "comment": "// set next window content size (~ scrollable client area, which enforce the range of scrollbars). Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin()", "defaults": {}, "funcname": "SetNextWindowContentSize", - "location": "imgui:390", + "location": "imgui:415", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowContentSize", "ret": "void", @@ -32571,7 +33580,7 @@ "cond": "0" }, "funcname": "SetNextWindowDockID", - "location": "imgui:849", + "location": "imgui:887", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowDockID", "ret": "void", @@ -32589,7 +33598,7 @@ "comment": "// set next window to be focused / top-most. call before Begin()", "defaults": {}, "funcname": "SetNextWindowFocus", - "location": "imgui:392", + "location": "imgui:417", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowFocus", "ret": "void", @@ -32623,7 +33632,7 @@ "pivot": "ImVec2(0,0)" }, "funcname": "SetNextWindowPos", - "location": "imgui:387", + "location": "imgui:412", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowPos", "ret": "void", @@ -32631,6 +33640,28 @@ "stname": "" } ], + "igSetNextWindowRefreshPolicy": [ + { + "args": "(ImGuiWindowRefreshFlags flags)", + "argsT": [ + { + "name": "flags", + "type": "ImGuiWindowRefreshFlags" + } + ], + "argsoriginal": "(ImGuiWindowRefreshFlags flags)", + "call_args": "(flags)", + "cimguiname": "igSetNextWindowRefreshPolicy", + "defaults": {}, + "funcname": "SetNextWindowRefreshPolicy", + "location": "imgui_internal:3388", + "namespace": "ImGui", + "ov_cimguiname": "igSetNextWindowRefreshPolicy", + "ret": "void", + "signature": "(ImGuiWindowRefreshFlags)", + "stname": "" + } + ], "igSetNextWindowScroll": [ { "args": "(const ImVec2 scroll)", @@ -32646,7 +33677,7 @@ "comment": "// set next window scrolling value (use < 0.0f to not affect a given axis).", "defaults": {}, "funcname": "SetNextWindowScroll", - "location": "imgui:393", + "location": "imgui:418", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowScroll", "ret": "void", @@ -32675,7 +33706,7 @@ "cond": "0" }, "funcname": "SetNextWindowSize", - "location": "imgui:388", + "location": "imgui:413", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSize", "ret": "void", @@ -32713,7 +33744,7 @@ "custom_callback_data": "NULL" }, "funcname": "SetNextWindowSizeConstraints", - "location": "imgui:389", + "location": "imgui:414", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowSizeConstraints", "ret": "void", @@ -32736,7 +33767,7 @@ "comment": "// set next window viewport", "defaults": {}, "funcname": "SetNextWindowViewport", - "location": "imgui:395", + "location": "imgui:420", "namespace": "ImGui", "ov_cimguiname": "igSetNextWindowViewport", "ret": "void", @@ -32765,7 +33796,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollFromPosX", - "location": "imgui:425", + "location": "imgui:442", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosX_Float", "ret": "void", @@ -32793,7 +33824,7 @@ "cimguiname": "igSetScrollFromPosX", "defaults": {}, "funcname": "SetScrollFromPosX", - "location": "imgui_internal:3315", + "location": "imgui_internal:3444", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosX_WindowPtr", "ret": "void", @@ -32822,7 +33853,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollFromPosY", - "location": "imgui:426", + "location": "imgui:443", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosY_Float", "ret": "void", @@ -32850,7 +33881,7 @@ "cimguiname": "igSetScrollFromPosY", "defaults": {}, "funcname": "SetScrollFromPosY", - "location": "imgui_internal:3316", + "location": "imgui_internal:3445", "namespace": "ImGui", "ov_cimguiname": "igSetScrollFromPosY_WindowPtr", "ret": "void", @@ -32875,7 +33906,7 @@ "center_x_ratio": "0.5f" }, "funcname": "SetScrollHereX", - "location": "imgui:423", + "location": "imgui:440", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereX", "ret": "void", @@ -32900,7 +33931,7 @@ "center_y_ratio": "0.5f" }, "funcname": "SetScrollHereY", - "location": "imgui:424", + "location": "imgui:441", "namespace": "ImGui", "ov_cimguiname": "igSetScrollHereY", "ret": "void", @@ -32923,7 +33954,7 @@ "comment": "// set scrolling amount [0 .. GetScrollMaxX()]", "defaults": {}, "funcname": "SetScrollX", - "location": "imgui:419", + "location": "imgui:436", "namespace": "ImGui", "ov_cimguiname": "igSetScrollX_Float", "ret": "void", @@ -32947,7 +33978,7 @@ "cimguiname": "igSetScrollX", "defaults": {}, "funcname": "SetScrollX", - "location": "imgui_internal:3313", + "location": "imgui_internal:3442", "namespace": "ImGui", "ov_cimguiname": "igSetScrollX_WindowPtr", "ret": "void", @@ -32970,7 +34001,7 @@ "comment": "// set scrolling amount [0 .. GetScrollMaxY()]", "defaults": {}, "funcname": "SetScrollY", - "location": "imgui:420", + "location": "imgui:437", "namespace": "ImGui", "ov_cimguiname": "igSetScrollY_Float", "ret": "void", @@ -32994,7 +34025,7 @@ "cimguiname": "igSetScrollY", "defaults": {}, "funcname": "SetScrollY", - "location": "imgui_internal:3314", + "location": "imgui_internal:3443", "namespace": "ImGui", "ov_cimguiname": "igSetScrollY_WindowPtr", "ret": "void", @@ -33004,34 +34035,32 @@ ], "igSetShortcutRouting": [ { - "args": "(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags)", + "args": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id)", "argsT": [ { "name": "key_chord", "type": "ImGuiKeyChord" }, - { - "name": "owner_id", - "type": "ImGuiID" - }, { "name": "flags", "type": "ImGuiInputFlags" + }, + { + "name": "owner_id", + "type": "ImGuiID" } ], - "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags=0)", - "call_args": "(key_chord,owner_id,flags)", + "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id)", + "call_args": "(key_chord,flags,owner_id)", "cimguiname": "igSetShortcutRouting", "comment": "// owner_id needs to be explicit and cannot be 0", - "defaults": { - "flags": "0" - }, + "defaults": {}, "funcname": "SetShortcutRouting", - "location": "imgui_internal:3503", + "location": "imgui_internal:3632", "namespace": "ImGui", "ov_cimguiname": "igSetShortcutRouting", "ret": "bool", - "signature": "(ImGuiKeyChord,ImGuiID,ImGuiInputFlags)", + "signature": "(ImGuiKeyChord,ImGuiInputFlags,ImGuiID)", "stname": "" } ], @@ -33050,7 +34079,7 @@ "comment": "// replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it)", "defaults": {}, "funcname": "SetStateStorage", - "location": "imgui:937", + "location": "imgui:974", "namespace": "ImGui", "ov_cimguiname": "igSetStateStorage", "ret": "void", @@ -33073,7 +34102,7 @@ "comment": "// notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name.", "defaults": {}, "funcname": "SetTabItemClosed", - "location": "imgui:832", + "location": "imgui:870", "namespace": "ImGui", "ov_cimguiname": "igSetTabItemClosed", "ret": "void", @@ -33101,7 +34130,7 @@ "defaults": {}, "funcname": "SetTooltip", "isvararg": "...)", - "location": "imgui:705", + "location": "imgui:742", "namespace": "ImGui", "ov_cimguiname": "igSetTooltip", "ret": "void", @@ -33127,7 +34156,7 @@ "cimguiname": "igSetTooltipV", "defaults": {}, "funcname": "SetTooltipV", - "location": "imgui:706", + "location": "imgui:743", "namespace": "ImGui", "ov_cimguiname": "igSetTooltipV", "ret": "void", @@ -33153,7 +34182,7 @@ "cimguiname": "igSetWindowClipRectBeforeSetChannel", "defaults": {}, "funcname": "SetWindowClipRectBeforeSetChannel", - "location": "imgui_internal:3588", + "location": "imgui_internal:3729", "namespace": "ImGui", "ov_cimguiname": "igSetWindowClipRectBeforeSetChannel", "ret": "void", @@ -33182,7 +34211,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:398", + "location": "imgui:423", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsed_Bool", "ret": "void", @@ -33213,7 +34242,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui:403", + "location": "imgui:428", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsed_Str", "ret": "void", @@ -33243,7 +34272,7 @@ "cond": "0" }, "funcname": "SetWindowCollapsed", - "location": "imgui_internal:3244", + "location": "imgui_internal:3368", "namespace": "ImGui", "ov_cimguiname": "igSetWindowCollapsed_WindowPtr", "ret": "void", @@ -33273,7 +34302,7 @@ "cimguiname": "igSetWindowDock", "defaults": {}, "funcname": "SetWindowDock", - "location": "imgui_internal:3536", + "location": "imgui_internal:3665", "namespace": "ImGui", "ov_cimguiname": "igSetWindowDock", "ret": "void", @@ -33291,7 +34320,7 @@ "comment": "// (not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus().", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:399", + "location": "imgui:424", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocus_Nil", "ret": "void", @@ -33312,7 +34341,7 @@ "comment": "// set named window to be focused / top-most. use NULL to remove focus.", "defaults": {}, "funcname": "SetWindowFocus", - "location": "imgui:404", + "location": "imgui:429", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFocus_Str", "ret": "void", @@ -33335,7 +34364,7 @@ "comment": "// [OBSOLETE] set font scale. Adjust IO.FontGlobalScale if you want to scale all windows. This is an old API! For correct scaling, prefer to reload font + rebuild ImFontAtlas + call style.ScaleAllSizes().", "defaults": {}, "funcname": "SetWindowFontScale", - "location": "imgui:400", + "location": "imgui:425", "namespace": "ImGui", "ov_cimguiname": "igSetWindowFontScale", "ret": "void", @@ -33357,7 +34386,7 @@ "cimguiname": "igSetWindowHiddenAndSkipItemsForCurrentFrame", "defaults": {}, "funcname": "SetWindowHiddenAndSkipItemsForCurrentFrame", - "location": "imgui_internal:3246", + "location": "imgui_internal:3370", "namespace": "ImGui", "ov_cimguiname": "igSetWindowHiddenAndSkipItemsForCurrentFrame", "ret": "void", @@ -33387,7 +34416,7 @@ "cimguiname": "igSetWindowHitTestHole", "defaults": {}, "funcname": "SetWindowHitTestHole", - "location": "imgui_internal:3245", + "location": "imgui_internal:3369", "namespace": "ImGui", "ov_cimguiname": "igSetWindowHitTestHole", "ret": "void", @@ -33414,7 +34443,7 @@ "comment": "// You may also use SetNextWindowClass()'s FocusRouteParentWindowId field.", "defaults": {}, "funcname": "SetWindowParentWindowForFocusRoute", - "location": "imgui_internal:3247", + "location": "imgui_internal:3371", "namespace": "ImGui", "ov_cimguiname": "igSetWindowParentWindowForFocusRoute", "ret": "void", @@ -33443,7 +34472,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:396", + "location": "imgui:421", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPos_Vec2", "ret": "void", @@ -33474,7 +34503,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui:401", + "location": "imgui:426", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPos_Str", "ret": "void", @@ -33504,7 +34533,7 @@ "cond": "0" }, "funcname": "SetWindowPos", - "location": "imgui_internal:3242", + "location": "imgui_internal:3366", "namespace": "ImGui", "ov_cimguiname": "igSetWindowPos_WindowPtr", "ret": "void", @@ -33533,7 +34562,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:397", + "location": "imgui:422", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSize_Vec2", "ret": "void", @@ -33564,7 +34593,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui:402", + "location": "imgui:427", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSize_Str", "ret": "void", @@ -33594,7 +34623,7 @@ "cond": "0" }, "funcname": "SetWindowSize", - "location": "imgui_internal:3243", + "location": "imgui_internal:3367", "namespace": "ImGui", "ov_cimguiname": "igSetWindowSize_WindowPtr", "ret": "void", @@ -33620,7 +34649,7 @@ "cimguiname": "igSetWindowViewport", "defaults": {}, "funcname": "SetWindowViewport", - "location": "imgui_internal:3289", + "location": "imgui_internal:3418", "namespace": "ImGui", "ov_cimguiname": "igSetWindowViewport", "ret": "void", @@ -33666,7 +34695,7 @@ "cimguiname": "igShadeVertsLinearColorGradientKeepAlpha", "defaults": {}, "funcname": "ShadeVertsLinearColorGradientKeepAlpha", - "location": "imgui_internal:3769", + "location": "imgui_internal:3912", "namespace": "ImGui", "ov_cimguiname": "igShadeVertsLinearColorGradientKeepAlpha", "ret": "void", @@ -33716,7 +34745,7 @@ "cimguiname": "igShadeVertsLinearUV", "defaults": {}, "funcname": "ShadeVertsLinearUV", - "location": "imgui_internal:3770", + "location": "imgui_internal:3913", "namespace": "ImGui", "ov_cimguiname": "igShadeVertsLinearUV", "ret": "void", @@ -33762,7 +34791,7 @@ "cimguiname": "igShadeVertsTransformPos", "defaults": {}, "funcname": "ShadeVertsTransformPos", - "location": "imgui_internal:3771", + "location": "imgui_internal:3914", "namespace": "ImGui", "ov_cimguiname": "igShadeVertsTransformPos", "ret": "void", @@ -33772,34 +34801,57 @@ ], "igShortcut": [ { - "args": "(ImGuiKeyChord key_chord,ImGuiID owner_id,ImGuiInputFlags flags)", + "args": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags)", "argsT": [ { "name": "key_chord", "type": "ImGuiKeyChord" }, - { - "name": "owner_id", - "type": "ImGuiID" - }, { "name": "flags", "type": "ImGuiInputFlags" } ], - "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiID owner_id=0,ImGuiInputFlags flags=0)", - "call_args": "(key_chord,owner_id,flags)", + "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags=0)", + "call_args": "(key_chord,flags)", "cimguiname": "igShortcut", "defaults": { - "flags": "0", - "owner_id": "0" + "flags": "0" }, "funcname": "Shortcut", - "location": "imgui_internal:3502", + "location": "imgui:1014", "namespace": "ImGui", - "ov_cimguiname": "igShortcut", + "ov_cimguiname": "igShortcut_Nil", "ret": "bool", - "signature": "(ImGuiKeyChord,ImGuiID,ImGuiInputFlags)", + "signature": "(ImGuiKeyChord,ImGuiInputFlags)", + "stname": "" + }, + { + "args": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id)", + "argsT": [ + { + "name": "key_chord", + "type": "ImGuiKeyChord" + }, + { + "name": "flags", + "type": "ImGuiInputFlags" + }, + { + "name": "owner_id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiKeyChord key_chord,ImGuiInputFlags flags,ImGuiID owner_id)", + "call_args": "(key_chord,flags,owner_id)", + "cimguiname": "igShortcut", + "defaults": {}, + "funcname": "Shortcut", + "location": "imgui_internal:3631", + "namespace": "ImGui", + "ov_cimguiname": "igShortcut_ID", + "ret": "bool", + "signature": "(ImGuiKeyChord,ImGuiInputFlags,ImGuiID)", "stname": "" } ], @@ -33820,7 +34872,7 @@ "p_open": "NULL" }, "funcname": "ShowAboutWindow", - "location": "imgui:322", + "location": "imgui:347", "namespace": "ImGui", "ov_cimguiname": "igShowAboutWindow", "ret": "void", @@ -33845,7 +34897,7 @@ "p_open": "NULL" }, "funcname": "ShowDebugLogWindow", - "location": "imgui:320", + "location": "imgui:345", "namespace": "ImGui", "ov_cimguiname": "igShowDebugLogWindow", "ret": "void", @@ -33870,7 +34922,7 @@ "p_open": "NULL" }, "funcname": "ShowDemoWindow", - "location": "imgui:318", + "location": "imgui:343", "namespace": "ImGui", "ov_cimguiname": "igShowDemoWindow", "ret": "void", @@ -33892,7 +34944,7 @@ "cimguiname": "igShowFontAtlas", "defaults": {}, "funcname": "ShowFontAtlas", - "location": "imgui_internal:3796", + "location": "imgui_internal:3936", "namespace": "ImGui", "ov_cimguiname": "igShowFontAtlas", "ret": "void", @@ -33915,7 +34967,7 @@ "comment": "// add font selector block (not a window), essentially a combo listing the loaded fonts.", "defaults": {}, "funcname": "ShowFontSelector", - "location": "imgui:325", + "location": "imgui:350", "namespace": "ImGui", "ov_cimguiname": "igShowFontSelector", "ret": "void", @@ -33940,7 +34992,7 @@ "p_open": "NULL" }, "funcname": "ShowIDStackToolWindow", - "location": "imgui:321", + "location": "imgui:346", "namespace": "ImGui", "ov_cimguiname": "igShowIDStackToolWindow", "ret": "void", @@ -33965,7 +35017,7 @@ "p_open": "NULL" }, "funcname": "ShowMetricsWindow", - "location": "imgui:319", + "location": "imgui:344", "namespace": "ImGui", "ov_cimguiname": "igShowMetricsWindow", "ret": "void", @@ -33990,7 +35042,7 @@ "ref": "NULL" }, "funcname": "ShowStyleEditor", - "location": "imgui:323", + "location": "imgui:348", "namespace": "ImGui", "ov_cimguiname": "igShowStyleEditor", "ret": "void", @@ -34013,7 +35065,7 @@ "comment": "// add style selector block (not a window), essentially a combo listing the default styles.", "defaults": {}, "funcname": "ShowStyleSelector", - "location": "imgui:324", + "location": "imgui:349", "namespace": "ImGui", "ov_cimguiname": "igShowStyleSelector", "ret": "bool", @@ -34031,7 +35083,7 @@ "comment": "// add basic help/info block (not a window): how to manipulate ImGui as an end-user (mouse/keyboard controls).", "defaults": {}, "funcname": "ShowUserGuide", - "location": "imgui:326", + "location": "imgui:351", "namespace": "ImGui", "ov_cimguiname": "igShowUserGuide", "ret": "void", @@ -34061,7 +35113,7 @@ "cimguiname": "igShrinkWidths", "defaults": {}, "funcname": "ShrinkWidths", - "location": "imgui_internal:3355", + "location": "imgui_internal:3482", "namespace": "ImGui", "ov_cimguiname": "igShrinkWidths", "ret": "void", @@ -34079,7 +35131,7 @@ "comment": "// Since 1.60 this is a _private_ function. You can call DestroyContext() to destroy the context created by CreateContext().", "defaults": {}, "funcname": "Shutdown", - "location": "imgui_internal:3270", + "location": "imgui_internal:3398", "namespace": "ImGui", "ov_cimguiname": "igShutdown", "ret": "void", @@ -34126,7 +35178,7 @@ "v_degrees_min": "-360.0f" }, "funcname": "SliderAngle", - "location": "imgui:596", + "location": "imgui:619", "namespace": "ImGui", "ov_cimguiname": "igSliderAngle", "ret": "bool", @@ -34180,7 +35232,7 @@ "cimguiname": "igSliderBehavior", "defaults": {}, "funcname": "SliderBehavior", - "location": "imgui_internal:3726", + "location": "imgui_internal:3866", "namespace": "ImGui", "ov_cimguiname": "igSliderBehavior", "ret": "bool", @@ -34226,7 +35278,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat", - "location": "imgui:592", + "location": "imgui:615", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat", "ret": "bool", @@ -34271,7 +35323,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat2", - "location": "imgui:593", + "location": "imgui:616", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat2", "ret": "bool", @@ -34316,7 +35368,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat3", - "location": "imgui:594", + "location": "imgui:617", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat3", "ret": "bool", @@ -34361,7 +35413,7 @@ "format": "\"%.3f\"" }, "funcname": "SliderFloat4", - "location": "imgui:595", + "location": "imgui:618", "namespace": "ImGui", "ov_cimguiname": "igSliderFloat4", "ret": "bool", @@ -34406,7 +35458,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt", - "location": "imgui:597", + "location": "imgui:620", "namespace": "ImGui", "ov_cimguiname": "igSliderInt", "ret": "bool", @@ -34451,7 +35503,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt2", - "location": "imgui:598", + "location": "imgui:621", "namespace": "ImGui", "ov_cimguiname": "igSliderInt2", "ret": "bool", @@ -34496,7 +35548,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt3", - "location": "imgui:599", + "location": "imgui:622", "namespace": "ImGui", "ov_cimguiname": "igSliderInt3", "ret": "bool", @@ -34541,7 +35593,7 @@ "format": "\"%d\"" }, "funcname": "SliderInt4", - "location": "imgui:600", + "location": "imgui:623", "namespace": "ImGui", "ov_cimguiname": "igSliderInt4", "ret": "bool", @@ -34590,7 +35642,7 @@ "format": "NULL" }, "funcname": "SliderScalar", - "location": "imgui:601", + "location": "imgui:624", "namespace": "ImGui", "ov_cimguiname": "igSliderScalar", "ret": "bool", @@ -34643,7 +35695,7 @@ "format": "NULL" }, "funcname": "SliderScalarN", - "location": "imgui:602", + "location": "imgui:625", "namespace": "ImGui", "ov_cimguiname": "igSliderScalarN", "ret": "bool", @@ -34666,7 +35718,7 @@ "comment": "// button with (FramePadding.y == 0) to easily embed within text", "defaults": {}, "funcname": "SmallButton", - "location": "imgui:534", + "location": "imgui:555", "namespace": "ImGui", "ov_cimguiname": "igSmallButton", "ret": "bool", @@ -34684,7 +35736,7 @@ "comment": "// add vertical spacing.", "defaults": {}, "funcname": "Spacing", - "location": "imgui:482", + "location": "imgui:502", "namespace": "ImGui", "ov_cimguiname": "igSpacing", "ret": "void", @@ -34746,7 +35798,7 @@ "hover_visibility_delay": "0.0f" }, "funcname": "SplitterBehavior", - "location": "imgui_internal:3727", + "location": "imgui_internal:3867", "namespace": "ImGui", "ov_cimguiname": "igSplitterBehavior", "ret": "bool", @@ -34768,7 +35820,7 @@ "cimguiname": "igStartMouseMovingWindow", "defaults": {}, "funcname": "StartMouseMovingWindow", - "location": "imgui_internal:3275", + "location": "imgui_internal:3404", "namespace": "ImGui", "ov_cimguiname": "igStartMouseMovingWindow", "ret": "void", @@ -34798,7 +35850,7 @@ "cimguiname": "igStartMouseMovingWindowOrNode", "defaults": {}, "funcname": "StartMouseMovingWindowOrNode", - "location": "imgui_internal:3276", + "location": "imgui_internal:3405", "namespace": "ImGui", "ov_cimguiname": "igStartMouseMovingWindowOrNode", "ret": "void", @@ -34823,7 +35875,7 @@ "dst": "NULL" }, "funcname": "StyleColorsClassic", - "location": "imgui:332", + "location": "imgui:357", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsClassic", "ret": "void", @@ -34848,7 +35900,7 @@ "dst": "NULL" }, "funcname": "StyleColorsDark", - "location": "imgui:330", + "location": "imgui:355", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsDark", "ret": "void", @@ -34873,7 +35925,7 @@ "dst": "NULL" }, "funcname": "StyleColorsLight", - "location": "imgui:331", + "location": "imgui:356", "namespace": "ImGui", "ov_cimguiname": "igStyleColorsLight", "ret": "void", @@ -34903,7 +35955,7 @@ "cimguiname": "igTabBarAddTab", "defaults": {}, "funcname": "TabBarAddTab", - "location": "imgui_internal:3665", + "location": "imgui_internal:3805", "namespace": "ImGui", "ov_cimguiname": "igTabBarAddTab", "ret": "void", @@ -34929,7 +35981,7 @@ "cimguiname": "igTabBarCloseTab", "defaults": {}, "funcname": "TabBarCloseTab", - "location": "imgui_internal:3667", + "location": "imgui_internal:3807", "namespace": "ImGui", "ov_cimguiname": "igTabBarCloseTab", "ret": "void", @@ -34951,7 +36003,7 @@ "cimguiname": "igTabBarFindMostRecentlySelectedTabForActiveWindow", "defaults": {}, "funcname": "TabBarFindMostRecentlySelectedTabForActiveWindow", - "location": "imgui_internal:3661", + "location": "imgui_internal:3801", "namespace": "ImGui", "ov_cimguiname": "igTabBarFindMostRecentlySelectedTabForActiveWindow", "ret": "ImGuiTabItem*", @@ -34977,7 +36029,7 @@ "cimguiname": "igTabBarFindTabByID", "defaults": {}, "funcname": "TabBarFindTabByID", - "location": "imgui_internal:3659", + "location": "imgui_internal:3799", "namespace": "ImGui", "ov_cimguiname": "igTabBarFindTabByID", "ret": "ImGuiTabItem*", @@ -35003,7 +36055,7 @@ "cimguiname": "igTabBarFindTabByOrder", "defaults": {}, "funcname": "TabBarFindTabByOrder", - "location": "imgui_internal:3660", + "location": "imgui_internal:3800", "namespace": "ImGui", "ov_cimguiname": "igTabBarFindTabByOrder", "ret": "ImGuiTabItem*", @@ -35025,7 +36077,7 @@ "cimguiname": "igTabBarGetCurrentTab", "defaults": {}, "funcname": "TabBarGetCurrentTab", - "location": "imgui_internal:3662", + "location": "imgui_internal:3802", "namespace": "ImGui", "ov_cimguiname": "igTabBarGetCurrentTab", "ret": "ImGuiTabItem*", @@ -35051,7 +36103,7 @@ "cimguiname": "igTabBarGetTabName", "defaults": {}, "funcname": "TabBarGetTabName", - "location": "imgui_internal:3664", + "location": "imgui_internal:3804", "namespace": "ImGui", "ov_cimguiname": "igTabBarGetTabName", "ret": "const char*", @@ -35077,7 +36129,7 @@ "cimguiname": "igTabBarGetTabOrder", "defaults": {}, "funcname": "TabBarGetTabOrder", - "location": "imgui_internal:3663", + "location": "imgui_internal:3803", "namespace": "ImGui", "ov_cimguiname": "igTabBarGetTabOrder", "ret": "int", @@ -35099,7 +36151,7 @@ "cimguiname": "igTabBarProcessReorder", "defaults": {}, "funcname": "TabBarProcessReorder", - "location": "imgui_internal:3671", + "location": "imgui_internal:3811", "namespace": "ImGui", "ov_cimguiname": "igTabBarProcessReorder", "ret": "bool", @@ -35125,7 +36177,7 @@ "cimguiname": "igTabBarQueueFocus", "defaults": {}, "funcname": "TabBarQueueFocus", - "location": "imgui_internal:3668", + "location": "imgui_internal:3808", "namespace": "ImGui", "ov_cimguiname": "igTabBarQueueFocus", "ret": "void", @@ -35155,7 +36207,7 @@ "cimguiname": "igTabBarQueueReorder", "defaults": {}, "funcname": "TabBarQueueReorder", - "location": "imgui_internal:3669", + "location": "imgui_internal:3809", "namespace": "ImGui", "ov_cimguiname": "igTabBarQueueReorder", "ret": "void", @@ -35185,7 +36237,7 @@ "cimguiname": "igTabBarQueueReorderFromMousePos", "defaults": {}, "funcname": "TabBarQueueReorderFromMousePos", - "location": "imgui_internal:3670", + "location": "imgui_internal:3810", "namespace": "ImGui", "ov_cimguiname": "igTabBarQueueReorderFromMousePos", "ret": "void", @@ -35211,7 +36263,7 @@ "cimguiname": "igTabBarRemoveTab", "defaults": {}, "funcname": "TabBarRemoveTab", - "location": "imgui_internal:3666", + "location": "imgui_internal:3806", "namespace": "ImGui", "ov_cimguiname": "igTabBarRemoveTab", "ret": "void", @@ -35245,7 +36297,7 @@ "cimguiname": "igTabItemBackground", "defaults": {}, "funcname": "TabItemBackground", - "location": "imgui_internal:3675", + "location": "imgui_internal:3815", "namespace": "ImGui", "ov_cimguiname": "igTabItemBackground", "ret": "void", @@ -35274,7 +36326,7 @@ "flags": "0" }, "funcname": "TabItemButton", - "location": "imgui:831", + "location": "imgui:869", "namespace": "ImGui", "ov_cimguiname": "igTabItemButton", "ret": "bool", @@ -35304,7 +36356,7 @@ "cimguiname": "igTabItemCalcSize", "defaults": {}, "funcname": "TabItemCalcSize", - "location": "imgui_internal:3673", + "location": "imgui_internal:3813", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igTabItemCalcSize_Str", @@ -35329,7 +36381,7 @@ "cimguiname": "igTabItemCalcSize", "defaults": {}, "funcname": "TabItemCalcSize", - "location": "imgui_internal:3674", + "location": "imgui_internal:3814", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igTabItemCalcSize_WindowPtr", @@ -35368,7 +36420,7 @@ "cimguiname": "igTabItemEx", "defaults": {}, "funcname": "TabItemEx", - "location": "imgui_internal:3672", + "location": "imgui_internal:3812", "namespace": "ImGui", "ov_cimguiname": "igTabItemEx", "ret": "bool", @@ -35426,7 +36478,7 @@ "cimguiname": "igTabItemLabelAndCloseButton", "defaults": {}, "funcname": "TabItemLabelAndCloseButton", - "location": "imgui_internal:3676", + "location": "imgui_internal:3816", "namespace": "ImGui", "ov_cimguiname": "igTabItemLabelAndCloseButton", "ret": "void", @@ -35444,7 +36496,7 @@ "comment": "// submit a row with angled headers for every column with the ImGuiTableColumnFlags_AngledHeader flag. MUST BE FIRST ROW.", "defaults": {}, "funcname": "TableAngledHeadersRow", - "location": "imgui:797", + "location": "imgui:834", "namespace": "ImGui", "ov_cimguiname": "igTableAngledHeadersRow", "ret": "void", @@ -35454,8 +36506,12 @@ ], "igTableAngledHeadersRowEx": [ { - "args": "(float angle,float max_label_width)", + "args": "(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count)", "argsT": [ + { + "name": "row_id", + "type": "ImGuiID" + }, { "name": "angle", "type": "float" @@ -35463,20 +36519,26 @@ { "name": "max_label_width", "type": "float" + }, + { + "name": "data", + "type": "const ImGuiTableHeaderData*" + }, + { + "name": "data_count", + "type": "int" } ], - "argsoriginal": "(float angle,float max_label_width=0.0f)", - "call_args": "(angle,max_label_width)", + "argsoriginal": "(ImGuiID row_id,float angle,float max_label_width,const ImGuiTableHeaderData* data,int data_count)", + "call_args": "(row_id,angle,max_label_width,data,data_count)", "cimguiname": "igTableAngledHeadersRowEx", - "defaults": { - "max_label_width": "0.0f" - }, + "defaults": {}, "funcname": "TableAngledHeadersRowEx", - "location": "imgui_internal:3609", + "location": "imgui_internal:3749", "namespace": "ImGui", "ov_cimguiname": "igTableAngledHeadersRowEx", "ret": "void", - "signature": "(float,float)", + "signature": "(ImGuiID,float,float,const ImGuiTableHeaderData*,int)", "stname": "" } ], @@ -35494,7 +36556,7 @@ "cimguiname": "igTableBeginApplyRequests", "defaults": {}, "funcname": "TableBeginApplyRequests", - "location": "imgui_internal:3616", + "location": "imgui_internal:3756", "namespace": "ImGui", "ov_cimguiname": "igTableBeginApplyRequests", "ret": "void", @@ -35520,7 +36582,7 @@ "cimguiname": "igTableBeginCell", "defaults": {}, "funcname": "TableBeginCell", - "location": "imgui_internal:3634", + "location": "imgui_internal:3774", "namespace": "ImGui", "ov_cimguiname": "igTableBeginCell", "ret": "void", @@ -35542,7 +36604,7 @@ "cimguiname": "igTableBeginContextMenuPopup", "defaults": {}, "funcname": "TableBeginContextMenuPopup", - "location": "imgui_internal:3623", + "location": "imgui_internal:3763", "namespace": "ImGui", "ov_cimguiname": "igTableBeginContextMenuPopup", "ret": "bool", @@ -35568,7 +36630,7 @@ "cimguiname": "igTableBeginInitMemory", "defaults": {}, "funcname": "TableBeginInitMemory", - "location": "imgui_internal:3615", + "location": "imgui_internal:3755", "namespace": "ImGui", "ov_cimguiname": "igTableBeginInitMemory", "ret": "void", @@ -35590,7 +36652,7 @@ "cimguiname": "igTableBeginRow", "defaults": {}, "funcname": "TableBeginRow", - "location": "imgui_internal:3632", + "location": "imgui_internal:3772", "namespace": "ImGui", "ov_cimguiname": "igTableBeginRow", "ret": "void", @@ -35598,6 +36660,32 @@ "stname": "" } ], + "igTableCalcMaxColumnWidth": [ + { + "args": "(const ImGuiTable* table,int column_n)", + "argsT": [ + { + "name": "table", + "type": "const ImGuiTable*" + }, + { + "name": "column_n", + "type": "int" + } + ], + "argsoriginal": "(const ImGuiTable* table,int column_n)", + "call_args": "(table,column_n)", + "cimguiname": "igTableCalcMaxColumnWidth", + "defaults": {}, + "funcname": "TableCalcMaxColumnWidth", + "location": "imgui_internal:3779", + "namespace": "ImGui", + "ov_cimguiname": "igTableCalcMaxColumnWidth", + "ret": "float", + "signature": "(const ImGuiTable*,int)", + "stname": "" + } + ], "igTableDrawBorders": [ { "args": "(ImGuiTable* table)", @@ -35612,7 +36700,7 @@ "cimguiname": "igTableDrawBorders", "defaults": {}, "funcname": "TableDrawBorders", - "location": "imgui_internal:3621", + "location": "imgui_internal:3761", "namespace": "ImGui", "ov_cimguiname": "igTableDrawBorders", "ret": "void", @@ -35638,7 +36726,7 @@ "cimguiname": "igTableDrawDefaultContextMenu", "defaults": {}, "funcname": "TableDrawDefaultContextMenu", - "location": "imgui_internal:3622", + "location": "imgui_internal:3762", "namespace": "ImGui", "ov_cimguiname": "igTableDrawDefaultContextMenu", "ret": "void", @@ -35660,7 +36748,7 @@ "cimguiname": "igTableEndCell", "defaults": {}, "funcname": "TableEndCell", - "location": "imgui_internal:3635", + "location": "imgui_internal:3775", "namespace": "ImGui", "ov_cimguiname": "igTableEndCell", "ret": "void", @@ -35682,7 +36770,7 @@ "cimguiname": "igTableEndRow", "defaults": {}, "funcname": "TableEndRow", - "location": "imgui_internal:3633", + "location": "imgui_internal:3773", "namespace": "ImGui", "ov_cimguiname": "igTableEndRow", "ret": "void", @@ -35704,7 +36792,7 @@ "cimguiname": "igTableFindByID", "defaults": {}, "funcname": "TableFindByID", - "location": "imgui_internal:3613", + "location": "imgui_internal:3753", "namespace": "ImGui", "ov_cimguiname": "igTableFindByID", "ret": "ImGuiTable*", @@ -35730,7 +36818,7 @@ "cimguiname": "igTableFixColumnSortDirection", "defaults": {}, "funcname": "TableFixColumnSortDirection", - "location": "imgui_internal:3630", + "location": "imgui_internal:3770", "namespace": "ImGui", "ov_cimguiname": "igTableFixColumnSortDirection", "ret": "void", @@ -35747,7 +36835,7 @@ "cimguiname": "igTableGcCompactSettings", "defaults": {}, "funcname": "TableGcCompactSettings", - "location": "imgui_internal:3645", + "location": "imgui_internal:3785", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactSettings", "ret": "void", @@ -35769,7 +36857,7 @@ "cimguiname": "igTableGcCompactTransientBuffers", "defaults": {}, "funcname": "TableGcCompactTransientBuffers", - "location": "imgui_internal:3643", + "location": "imgui_internal:3783", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactTransientBuffers_TablePtr", "ret": "void", @@ -35789,7 +36877,7 @@ "cimguiname": "igTableGcCompactTransientBuffers", "defaults": {}, "funcname": "TableGcCompactTransientBuffers", - "location": "imgui_internal:3644", + "location": "imgui_internal:3784", "namespace": "ImGui", "ov_cimguiname": "igTableGcCompactTransientBuffers_TableTempDataPtr", "ret": "void", @@ -35811,7 +36899,7 @@ "cimguiname": "igTableGetBoundSettings", "defaults": {}, "funcname": "TableGetBoundSettings", - "location": "imgui_internal:3651", + "location": "imgui_internal:3791", "namespace": "ImGui", "ov_cimguiname": "igTableGetBoundSettings", "ret": "ImGuiTableSettings*", @@ -35841,7 +36929,7 @@ "cimguiname": "igTableGetCellBgRect", "defaults": {}, "funcname": "TableGetCellBgRect", - "location": "imgui_internal:3636", + "location": "imgui_internal:3776", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igTableGetCellBgRect", @@ -35860,7 +36948,7 @@ "comment": "// return number of columns (value passed to BeginTable)", "defaults": {}, "funcname": "TableGetColumnCount", - "location": "imgui:806", + "location": "imgui:843", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnCount", "ret": "int", @@ -35885,7 +36973,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnFlags", - "location": "imgui:810", + "location": "imgui:847", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnFlags", "ret": "ImGuiTableColumnFlags", @@ -35903,7 +36991,7 @@ "comment": "// return current column index.", "defaults": {}, "funcname": "TableGetColumnIndex", - "location": "imgui:807", + "location": "imgui:844", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnIndex", "ret": "int", @@ -35928,7 +37016,7 @@ "column_n": "-1" }, "funcname": "TableGetColumnName", - "location": "imgui:809", + "location": "imgui:846", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnName_Int", "ret": "const char*", @@ -35952,7 +37040,7 @@ "cimguiname": "igTableGetColumnName", "defaults": {}, "funcname": "TableGetColumnName", - "location": "imgui_internal:3637", + "location": "imgui_internal:3777", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnName_TablePtr", "ret": "const char*", @@ -35974,7 +37062,7 @@ "cimguiname": "igTableGetColumnNextSortDirection", "defaults": {}, "funcname": "TableGetColumnNextSortDirection", - "location": "imgui_internal:3629", + "location": "imgui_internal:3769", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnNextSortDirection", "ret": "ImGuiSortDirection", @@ -36006,7 +37094,7 @@ "instance_no": "0" }, "funcname": "TableGetColumnResizeID", - "location": "imgui_internal:3638", + "location": "imgui_internal:3778", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnResizeID", "ret": "ImGuiID", @@ -36032,7 +37120,7 @@ "cimguiname": "igTableGetColumnWidthAuto", "defaults": {}, "funcname": "TableGetColumnWidthAuto", - "location": "imgui_internal:3631", + "location": "imgui_internal:3771", "namespace": "ImGui", "ov_cimguiname": "igTableGetColumnWidthAuto", "ret": "float", @@ -36049,7 +37137,7 @@ "cimguiname": "igTableGetHeaderAngledMaxLabelWidth", "defaults": {}, "funcname": "TableGetHeaderAngledMaxLabelWidth", - "location": "imgui_internal:3606", + "location": "imgui_internal:3746", "namespace": "ImGui", "ov_cimguiname": "igTableGetHeaderAngledMaxLabelWidth", "ret": "float", @@ -36066,7 +37154,7 @@ "cimguiname": "igTableGetHeaderRowHeight", "defaults": {}, "funcname": "TableGetHeaderRowHeight", - "location": "imgui_internal:3605", + "location": "imgui_internal:3745", "namespace": "ImGui", "ov_cimguiname": "igTableGetHeaderRowHeight", "ret": "float", @@ -36081,10 +37169,10 @@ "argsoriginal": "()", "call_args": "()", "cimguiname": "igTableGetHoveredColumn", - "comment": "// May use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead. Return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered.", + "comment": "// return hovered column. return -1 when table is not hovered. return columns_count if the unused space at the right of visible columns is hovered. Can also use (TableGetColumnFlags() & ImGuiTableColumnFlags_IsHovered) instead.", "defaults": {}, "funcname": "TableGetHoveredColumn", - "location": "imgui_internal:3603", + "location": "imgui:849", "namespace": "ImGui", "ov_cimguiname": "igTableGetHoveredColumn", "ret": "int", @@ -36102,7 +37190,7 @@ "comment": "// Retrieve *PREVIOUS FRAME* hovered row. This difference with TableGetHoveredColumn() is the reason why this is not public yet.", "defaults": {}, "funcname": "TableGetHoveredRow", - "location": "imgui_internal:3604", + "location": "imgui_internal:3744", "namespace": "ImGui", "ov_cimguiname": "igTableGetHoveredRow", "ret": "int", @@ -36128,7 +37216,7 @@ "cimguiname": "igTableGetInstanceData", "defaults": {}, "funcname": "TableGetInstanceData", - "location": "imgui_internal:3625", + "location": "imgui_internal:3765", "namespace": "ImGui", "ov_cimguiname": "igTableGetInstanceData", "ret": "ImGuiTableInstanceData*", @@ -36154,7 +37242,7 @@ "cimguiname": "igTableGetInstanceID", "defaults": {}, "funcname": "TableGetInstanceID", - "location": "imgui_internal:3626", + "location": "imgui_internal:3766", "namespace": "ImGui", "ov_cimguiname": "igTableGetInstanceID", "ret": "ImGuiID", @@ -36162,32 +37250,6 @@ "stname": "" } ], - "igTableGetMaxColumnWidth": [ - { - "args": "(const ImGuiTable* table,int column_n)", - "argsT": [ - { - "name": "table", - "type": "const ImGuiTable*" - }, - { - "name": "column_n", - "type": "int" - } - ], - "argsoriginal": "(const ImGuiTable* table,int column_n)", - "call_args": "(table,column_n)", - "cimguiname": "igTableGetMaxColumnWidth", - "defaults": {}, - "funcname": "TableGetMaxColumnWidth", - "location": "imgui_internal:3639", - "namespace": "ImGui", - "ov_cimguiname": "igTableGetMaxColumnWidth", - "ret": "float", - "signature": "(const ImGuiTable*,int)", - "stname": "" - } - ], "igTableGetRowIndex": [ { "args": "()", @@ -36198,7 +37260,7 @@ "comment": "// return current row index.", "defaults": {}, "funcname": "TableGetRowIndex", - "location": "imgui:808", + "location": "imgui:845", "namespace": "ImGui", "ov_cimguiname": "igTableGetRowIndex", "ret": "int", @@ -36216,7 +37278,7 @@ "comment": "// get latest sort specs for the table (NULL if not sorting). Lifetime: don't hold on this pointer over multiple frames or past any subsequent call to BeginTable().", "defaults": {}, "funcname": "TableGetSortSpecs", - "location": "imgui:805", + "location": "imgui:842", "namespace": "ImGui", "ov_cimguiname": "igTableGetSortSpecs", "ret": "ImGuiTableSortSpecs*", @@ -36239,7 +37301,7 @@ "comment": "// submit one header cell manually (rarely used)", "defaults": {}, "funcname": "TableHeader", - "location": "imgui:795", + "location": "imgui:832", "namespace": "ImGui", "ov_cimguiname": "igTableHeader", "ret": "void", @@ -36257,7 +37319,7 @@ "comment": "// submit a row with headers cells based on data provided to TableSetupColumn() + submit context menu", "defaults": {}, "funcname": "TableHeadersRow", - "location": "imgui:796", + "location": "imgui:833", "namespace": "ImGui", "ov_cimguiname": "igTableHeadersRow", "ret": "void", @@ -36279,7 +37341,7 @@ "cimguiname": "igTableLoadSettings", "defaults": {}, "funcname": "TableLoadSettings", - "location": "imgui_internal:3648", + "location": "imgui_internal:3788", "namespace": "ImGui", "ov_cimguiname": "igTableLoadSettings", "ret": "void", @@ -36301,7 +37363,7 @@ "cimguiname": "igTableMergeDrawChannels", "defaults": {}, "funcname": "TableMergeDrawChannels", - "location": "imgui_internal:3624", + "location": "imgui_internal:3764", "namespace": "ImGui", "ov_cimguiname": "igTableMergeDrawChannels", "ret": "void", @@ -36319,7 +37381,7 @@ "comment": "// append into the next column (or first column of next row if currently in last column). Return true when column is visible.", "defaults": {}, "funcname": "TableNextColumn", - "location": "imgui:782", + "location": "imgui:819", "namespace": "ImGui", "ov_cimguiname": "igTableNextColumn", "ret": "bool", @@ -36349,7 +37411,7 @@ "row_flags": "0" }, "funcname": "TableNextRow", - "location": "imgui:781", + "location": "imgui:818", "namespace": "ImGui", "ov_cimguiname": "igTableNextRow", "ret": "void", @@ -36373,7 +37435,7 @@ "column_n": "-1" }, "funcname": "TableOpenContextMenu", - "location": "imgui_internal:3600", + "location": "imgui_internal:3741", "namespace": "ImGui", "ov_cimguiname": "igTableOpenContextMenu", "ret": "void", @@ -36390,7 +37452,7 @@ "cimguiname": "igTablePopBackgroundChannel", "defaults": {}, "funcname": "TablePopBackgroundChannel", - "location": "imgui_internal:3608", + "location": "imgui_internal:3748", "namespace": "ImGui", "ov_cimguiname": "igTablePopBackgroundChannel", "ret": "void", @@ -36407,7 +37469,7 @@ "cimguiname": "igTablePushBackgroundChannel", "defaults": {}, "funcname": "TablePushBackgroundChannel", - "location": "imgui_internal:3607", + "location": "imgui_internal:3747", "namespace": "ImGui", "ov_cimguiname": "igTablePushBackgroundChannel", "ret": "void", @@ -36429,7 +37491,7 @@ "cimguiname": "igTableRemove", "defaults": {}, "funcname": "TableRemove", - "location": "imgui_internal:3642", + "location": "imgui_internal:3782", "namespace": "ImGui", "ov_cimguiname": "igTableRemove", "ret": "void", @@ -36451,7 +37513,7 @@ "cimguiname": "igTableResetSettings", "defaults": {}, "funcname": "TableResetSettings", - "location": "imgui_internal:3650", + "location": "imgui_internal:3790", "namespace": "ImGui", "ov_cimguiname": "igTableResetSettings", "ret": "void", @@ -36473,7 +37535,7 @@ "cimguiname": "igTableSaveSettings", "defaults": {}, "funcname": "TableSaveSettings", - "location": "imgui_internal:3649", + "location": "imgui_internal:3789", "namespace": "ImGui", "ov_cimguiname": "igTableSaveSettings", "ret": "void", @@ -36506,7 +37568,7 @@ "column_n": "-1" }, "funcname": "TableSetBgColor", - "location": "imgui:812", + "location": "imgui:850", "namespace": "ImGui", "ov_cimguiname": "igTableSetBgColor", "ret": "void", @@ -36533,7 +37595,7 @@ "comment": "// change user accessible enabled/disabled state of a column. Set to false to hide the column. User can use the context menu to change this themselves (right-click in headers, or right-click in columns body with ImGuiTableFlags_ContextMenuInBody)", "defaults": {}, "funcname": "TableSetColumnEnabled", - "location": "imgui:811", + "location": "imgui:848", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnEnabled", "ret": "void", @@ -36556,7 +37618,7 @@ "comment": "// append into the specified column. Return true when column is visible.", "defaults": {}, "funcname": "TableSetColumnIndex", - "location": "imgui:783", + "location": "imgui:820", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnIndex", "ret": "bool", @@ -36586,7 +37648,7 @@ "cimguiname": "igTableSetColumnSortDirection", "defaults": {}, "funcname": "TableSetColumnSortDirection", - "location": "imgui_internal:3602", + "location": "imgui_internal:3743", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnSortDirection", "ret": "void", @@ -36612,7 +37674,7 @@ "cimguiname": "igTableSetColumnWidth", "defaults": {}, "funcname": "TableSetColumnWidth", - "location": "imgui_internal:3601", + "location": "imgui_internal:3742", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidth", "ret": "void", @@ -36634,7 +37696,7 @@ "cimguiname": "igTableSetColumnWidthAutoAll", "defaults": {}, "funcname": "TableSetColumnWidthAutoAll", - "location": "imgui_internal:3641", + "location": "imgui_internal:3781", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidthAutoAll", "ret": "void", @@ -36660,7 +37722,7 @@ "cimguiname": "igTableSetColumnWidthAutoSingle", "defaults": {}, "funcname": "TableSetColumnWidthAutoSingle", - "location": "imgui_internal:3640", + "location": "imgui_internal:3780", "namespace": "ImGui", "ov_cimguiname": "igTableSetColumnWidthAutoSingle", "ret": "void", @@ -36677,7 +37739,7 @@ "cimguiname": "igTableSettingsAddSettingsHandler", "defaults": {}, "funcname": "TableSettingsAddSettingsHandler", - "location": "imgui_internal:3652", + "location": "imgui_internal:3792", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsAddSettingsHandler", "ret": "void", @@ -36703,7 +37765,7 @@ "cimguiname": "igTableSettingsCreate", "defaults": {}, "funcname": "TableSettingsCreate", - "location": "imgui_internal:3653", + "location": "imgui_internal:3793", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsCreate", "ret": "ImGuiTableSettings*", @@ -36725,7 +37787,7 @@ "cimguiname": "igTableSettingsFindByID", "defaults": {}, "funcname": "TableSettingsFindByID", - "location": "imgui_internal:3654", + "location": "imgui_internal:3794", "namespace": "ImGui", "ov_cimguiname": "igTableSettingsFindByID", "ret": "ImGuiTableSettings*", @@ -36763,7 +37825,7 @@ "user_id": "0" }, "funcname": "TableSetupColumn", - "location": "imgui:793", + "location": "imgui:830", "namespace": "ImGui", "ov_cimguiname": "igTableSetupColumn", "ret": "void", @@ -36785,7 +37847,7 @@ "cimguiname": "igTableSetupDrawChannels", "defaults": {}, "funcname": "TableSetupDrawChannels", - "location": "imgui_internal:3617", + "location": "imgui_internal:3757", "namespace": "ImGui", "ov_cimguiname": "igTableSetupDrawChannels", "ret": "void", @@ -36812,7 +37874,7 @@ "comment": "// lock columns/rows so they stay visible when scrolled.", "defaults": {}, "funcname": "TableSetupScrollFreeze", - "location": "imgui:794", + "location": "imgui:831", "namespace": "ImGui", "ov_cimguiname": "igTableSetupScrollFreeze", "ret": "void", @@ -36834,7 +37896,7 @@ "cimguiname": "igTableSortSpecsBuild", "defaults": {}, "funcname": "TableSortSpecsBuild", - "location": "imgui_internal:3628", + "location": "imgui_internal:3768", "namespace": "ImGui", "ov_cimguiname": "igTableSortSpecsBuild", "ret": "void", @@ -36856,7 +37918,7 @@ "cimguiname": "igTableSortSpecsSanitize", "defaults": {}, "funcname": "TableSortSpecsSanitize", - "location": "imgui_internal:3627", + "location": "imgui_internal:3767", "namespace": "ImGui", "ov_cimguiname": "igTableSortSpecsSanitize", "ret": "void", @@ -36878,7 +37940,7 @@ "cimguiname": "igTableUpdateBorders", "defaults": {}, "funcname": "TableUpdateBorders", - "location": "imgui_internal:3619", + "location": "imgui_internal:3759", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateBorders", "ret": "void", @@ -36900,7 +37962,7 @@ "cimguiname": "igTableUpdateColumnsWeightFromWidth", "defaults": {}, "funcname": "TableUpdateColumnsWeightFromWidth", - "location": "imgui_internal:3620", + "location": "imgui_internal:3760", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateColumnsWeightFromWidth", "ret": "void", @@ -36922,7 +37984,7 @@ "cimguiname": "igTableUpdateLayout", "defaults": {}, "funcname": "TableUpdateLayout", - "location": "imgui_internal:3618", + "location": "imgui_internal:3758", "namespace": "ImGui", "ov_cimguiname": "igTableUpdateLayout", "ret": "void", @@ -36944,7 +38006,7 @@ "cimguiname": "igTeleportMousePos", "defaults": {}, "funcname": "TeleportMousePos", - "location": "imgui_internal:3451", + "location": "imgui_internal:3580", "namespace": "ImGui", "ov_cimguiname": "igTeleportMousePos", "ret": "void", @@ -36966,7 +38028,7 @@ "cimguiname": "igTempInputIsActive", "defaults": {}, "funcname": "TempInputIsActive", - "location": "imgui_internal:3757", + "location": "imgui_internal:3899", "namespace": "ImGui", "ov_cimguiname": "igTempInputIsActive", "ret": "bool", @@ -37019,7 +38081,7 @@ "p_clamp_min": "NULL" }, "funcname": "TempInputScalar", - "location": "imgui_internal:3756", + "location": "imgui_internal:3898", "namespace": "ImGui", "ov_cimguiname": "igTempInputScalar", "ret": "bool", @@ -37061,7 +38123,7 @@ "cimguiname": "igTempInputText", "defaults": {}, "funcname": "TempInputText", - "location": "imgui_internal:3755", + "location": "imgui_internal:3897", "namespace": "ImGui", "ov_cimguiname": "igTempInputText", "ret": "bool", @@ -37088,7 +38150,7 @@ "comment": "// Test that key is either not owned, either owned by 'owner_id'", "defaults": {}, "funcname": "TestKeyOwner", - "location": "imgui_internal:3470", + "location": "imgui_internal:3599", "namespace": "ImGui", "ov_cimguiname": "igTestKeyOwner", "ret": "bool", @@ -37114,7 +38176,7 @@ "cimguiname": "igTestShortcutRouting", "defaults": {}, "funcname": "TestShortcutRouting", - "location": "imgui_internal:3504", + "location": "imgui_internal:3633", "namespace": "ImGui", "ov_cimguiname": "igTestShortcutRouting", "ret": "bool", @@ -37142,7 +38204,7 @@ "defaults": {}, "funcname": "Text", "isvararg": "...)", - "location": "imgui:516", + "location": "imgui:537", "namespace": "ImGui", "ov_cimguiname": "igText", "ret": "void", @@ -37174,7 +38236,7 @@ "defaults": {}, "funcname": "TextColored", "isvararg": "...)", - "location": "imgui:518", + "location": "imgui:539", "namespace": "ImGui", "ov_cimguiname": "igTextColored", "ret": "void", @@ -37204,7 +38266,7 @@ "cimguiname": "igTextColoredV", "defaults": {}, "funcname": "TextColoredV", - "location": "imgui:519", + "location": "imgui:540", "namespace": "ImGui", "ov_cimguiname": "igTextColoredV", "ret": "void", @@ -37232,7 +38294,7 @@ "defaults": {}, "funcname": "TextDisabled", "isvararg": "...)", - "location": "imgui:520", + "location": "imgui:541", "namespace": "ImGui", "ov_cimguiname": "igTextDisabled", "ret": "void", @@ -37258,7 +38320,7 @@ "cimguiname": "igTextDisabledV", "defaults": {}, "funcname": "TextDisabledV", - "location": "imgui:521", + "location": "imgui:542", "namespace": "ImGui", "ov_cimguiname": "igTextDisabledV", "ret": "void", @@ -37291,7 +38353,7 @@ "text_end": "NULL" }, "funcname": "TextEx", - "location": "imgui_internal:3704", + "location": "imgui_internal:3844", "namespace": "ImGui", "ov_cimguiname": "igTextEx", "ret": "void", @@ -37299,6 +38361,58 @@ "stname": "" } ], + "igTextLink": [ + { + "args": "(const char* label)", + "argsT": [ + { + "name": "label", + "type": "const char*" + } + ], + "argsoriginal": "(const char* label)", + "call_args": "(label)", + "cimguiname": "igTextLink", + "comment": "// hyperlink text button, return true when clicked", + "defaults": {}, + "funcname": "TextLink", + "location": "imgui:565", + "namespace": "ImGui", + "ov_cimguiname": "igTextLink", + "ret": "bool", + "signature": "(const char*)", + "stname": "" + } + ], + "igTextLinkOpenURL": [ + { + "args": "(const char* label,const char* url)", + "argsT": [ + { + "name": "label", + "type": "const char*" + }, + { + "name": "url", + "type": "const char*" + } + ], + "argsoriginal": "(const char* label,const char* url=((void*)0))", + "call_args": "(label,url)", + "cimguiname": "igTextLinkOpenURL", + "comment": "// hyperlink text button, automatically open file/url when clicked", + "defaults": { + "url": "NULL" + }, + "funcname": "TextLinkOpenURL", + "location": "imgui:566", + "namespace": "ImGui", + "ov_cimguiname": "igTextLinkOpenURL", + "ret": "void", + "signature": "(const char*,const char*)", + "stname": "" + } + ], "igTextUnformatted": [ { "args": "(const char* text,const char* text_end)", @@ -37320,7 +38434,7 @@ "text_end": "NULL" }, "funcname": "TextUnformatted", - "location": "imgui:515", + "location": "imgui:536", "namespace": "ImGui", "ov_cimguiname": "igTextUnformatted", "ret": "void", @@ -37346,7 +38460,7 @@ "cimguiname": "igTextV", "defaults": {}, "funcname": "TextV", - "location": "imgui:517", + "location": "imgui:538", "namespace": "ImGui", "ov_cimguiname": "igTextV", "ret": "void", @@ -37374,7 +38488,7 @@ "defaults": {}, "funcname": "TextWrapped", "isvararg": "...)", - "location": "imgui:522", + "location": "imgui:543", "namespace": "ImGui", "ov_cimguiname": "igTextWrapped", "ret": "void", @@ -37400,7 +38514,7 @@ "cimguiname": "igTextWrappedV", "defaults": {}, "funcname": "TextWrappedV", - "location": "imgui:523", + "location": "imgui:544", "namespace": "ImGui", "ov_cimguiname": "igTextWrappedV", "ret": "void", @@ -37410,7 +38524,7 @@ ], "igTranslateWindowsInViewport": [ { - "args": "(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos)", + "args": "(ImGuiViewportP* viewport,const ImVec2 old_pos,const ImVec2 new_pos,const ImVec2 old_size,const ImVec2 new_size)", "argsT": [ { "name": "viewport", @@ -37423,18 +38537,26 @@ { "name": "new_pos", "type": "const ImVec2" + }, + { + "name": "old_size", + "type": "const ImVec2" + }, + { + "name": "new_size", + "type": "const ImVec2" } ], - "argsoriginal": "(ImGuiViewportP* viewport,const ImVec2& old_pos,const ImVec2& new_pos)", - "call_args": "(viewport,old_pos,new_pos)", + "argsoriginal": "(ImGuiViewportP* viewport,const ImVec2& old_pos,const ImVec2& new_pos,const ImVec2& old_size,const ImVec2& new_size)", + "call_args": "(viewport,old_pos,new_pos,old_size,new_size)", "cimguiname": "igTranslateWindowsInViewport", "defaults": {}, "funcname": "TranslateWindowsInViewport", - "location": "imgui_internal:3286", + "location": "imgui_internal:3415", "namespace": "ImGui", "ov_cimguiname": "igTranslateWindowsInViewport", "ret": "void", - "signature": "(ImGuiViewportP*,const ImVec2,const ImVec2)", + "signature": "(ImGuiViewportP*,const ImVec2,const ImVec2,const ImVec2,const ImVec2)", "stname": "" } ], @@ -37452,7 +38574,7 @@ "cimguiname": "igTreeNode", "defaults": {}, "funcname": "TreeNode", - "location": "imgui:637", + "location": "imgui:660", "namespace": "ImGui", "ov_cimguiname": "igTreeNode_Str", "ret": "bool", @@ -37482,7 +38604,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:638", + "location": "imgui:661", "namespace": "ImGui", "ov_cimguiname": "igTreeNode_StrStr", "ret": "bool", @@ -37512,7 +38634,7 @@ "defaults": {}, "funcname": "TreeNode", "isvararg": "...)", - "location": "imgui:639", + "location": "imgui:662", "namespace": "ImGui", "ov_cimguiname": "igTreeNode_Ptr", "ret": "bool", @@ -37548,7 +38670,7 @@ "label_end": "NULL" }, "funcname": "TreeNodeBehavior", - "location": "imgui_internal:3728", + "location": "imgui_internal:3870", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeBehavior", "ret": "bool", @@ -37576,7 +38698,7 @@ "flags": "0" }, "funcname": "TreeNodeEx", - "location": "imgui:642", + "location": "imgui:665", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeEx_Str", "ret": "bool", @@ -37609,7 +38731,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:643", + "location": "imgui:666", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeEx_StrStr", "ret": "bool", @@ -37642,7 +38764,7 @@ "defaults": {}, "funcname": "TreeNodeEx", "isvararg": "...)", - "location": "imgui:644", + "location": "imgui:667", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeEx_Ptr", "ret": "bool", @@ -37676,7 +38798,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:645", + "location": "imgui:668", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExV_Str", "ret": "bool", @@ -37708,7 +38830,7 @@ "cimguiname": "igTreeNodeExV", "defaults": {}, "funcname": "TreeNodeExV", - "location": "imgui:646", + "location": "imgui:669", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeExV_Ptr", "ret": "bool", @@ -37716,12 +38838,34 @@ "stname": "" } ], + "igTreeNodeGetOpen": [ + { + "args": "(ImGuiID storage_id)", + "argsT": [ + { + "name": "storage_id", + "type": "ImGuiID" + } + ], + "argsoriginal": "(ImGuiID storage_id)", + "call_args": "(storage_id)", + "cimguiname": "igTreeNodeGetOpen", + "defaults": {}, + "funcname": "TreeNodeGetOpen", + "location": "imgui_internal:3872", + "namespace": "ImGui", + "ov_cimguiname": "igTreeNodeGetOpen", + "ret": "bool", + "signature": "(ImGuiID)", + "stname": "" + } + ], "igTreeNodeSetOpen": [ { - "args": "(ImGuiID id,bool open)", + "args": "(ImGuiID storage_id,bool open)", "argsT": [ { - "name": "id", + "name": "storage_id", "type": "ImGuiID" }, { @@ -37729,12 +38873,12 @@ "type": "bool" } ], - "argsoriginal": "(ImGuiID id,bool open)", - "call_args": "(id,open)", + "argsoriginal": "(ImGuiID storage_id,bool open)", + "call_args": "(storage_id,open)", "cimguiname": "igTreeNodeSetOpen", "defaults": {}, "funcname": "TreeNodeSetOpen", - "location": "imgui_internal:3730", + "location": "imgui_internal:3873", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeSetOpen", "ret": "void", @@ -37744,10 +38888,10 @@ ], "igTreeNodeUpdateNextOpen": [ { - "args": "(ImGuiID id,ImGuiTreeNodeFlags flags)", + "args": "(ImGuiID storage_id,ImGuiTreeNodeFlags flags)", "argsT": [ { - "name": "id", + "name": "storage_id", "type": "ImGuiID" }, { @@ -37755,13 +38899,13 @@ "type": "ImGuiTreeNodeFlags" } ], - "argsoriginal": "(ImGuiID id,ImGuiTreeNodeFlags flags)", - "call_args": "(id,flags)", + "argsoriginal": "(ImGuiID storage_id,ImGuiTreeNodeFlags flags)", + "call_args": "(storage_id,flags)", "cimguiname": "igTreeNodeUpdateNextOpen", "comment": "// Return open state. Consume previous SetNextItemOpen() data, if any. May return true when logging.", "defaults": {}, "funcname": "TreeNodeUpdateNextOpen", - "location": "imgui_internal:3731", + "location": "imgui_internal:3874", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeUpdateNextOpen", "ret": "bool", @@ -37791,7 +38935,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:640", + "location": "imgui:663", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeV_Str", "ret": "bool", @@ -37819,7 +38963,7 @@ "cimguiname": "igTreeNodeV", "defaults": {}, "funcname": "TreeNodeV", - "location": "imgui:641", + "location": "imgui:664", "namespace": "ImGui", "ov_cimguiname": "igTreeNodeV_Ptr", "ret": "bool", @@ -37837,7 +38981,7 @@ "comment": "// ~ Unindent()+PopID()", "defaults": {}, "funcname": "TreePop", - "location": "imgui:649", + "location": "imgui:672", "namespace": "ImGui", "ov_cimguiname": "igTreePop", "ret": "void", @@ -37860,7 +39004,7 @@ "comment": "// ~ Indent()+PushID(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired.", "defaults": {}, "funcname": "TreePush", - "location": "imgui:647", + "location": "imgui:670", "namespace": "ImGui", "ov_cimguiname": "igTreePush_Str", "ret": "void", @@ -37881,7 +39025,7 @@ "comment": "// \"", "defaults": {}, "funcname": "TreePush", - "location": "imgui:648", + "location": "imgui:671", "namespace": "ImGui", "ov_cimguiname": "igTreePush_Ptr", "ret": "void", @@ -37903,7 +39047,7 @@ "cimguiname": "igTreePushOverrideID", "defaults": {}, "funcname": "TreePushOverrideID", - "location": "imgui_internal:3729", + "location": "imgui_internal:3871", "namespace": "ImGui", "ov_cimguiname": "igTreePushOverrideID", "ret": "void", @@ -37939,7 +39083,7 @@ "cimguiname": "igTypingSelectFindBestLeadingMatch", "defaults": {}, "funcname": "TypingSelectFindBestLeadingMatch", - "location": "imgui_internal:3585", + "location": "imgui_internal:3714", "namespace": "ImGui", "ov_cimguiname": "igTypingSelectFindBestLeadingMatch", "ret": "int", @@ -37979,7 +39123,7 @@ "cimguiname": "igTypingSelectFindMatch", "defaults": {}, "funcname": "TypingSelectFindMatch", - "location": "imgui_internal:3583", + "location": "imgui_internal:3712", "namespace": "ImGui", "ov_cimguiname": "igTypingSelectFindMatch", "ret": "int", @@ -38019,7 +39163,7 @@ "cimguiname": "igTypingSelectFindNextSingleCharMatch", "defaults": {}, "funcname": "TypingSelectFindNextSingleCharMatch", - "location": "imgui_internal:3584", + "location": "imgui_internal:3713", "namespace": "ImGui", "ov_cimguiname": "igTypingSelectFindNextSingleCharMatch", "ret": "int", @@ -38044,7 +39188,7 @@ "indent_w": "0.0f" }, "funcname": "Unindent", - "location": "imgui:485", + "location": "imgui:505", "namespace": "ImGui", "ov_cimguiname": "igUnindent", "ret": "void", @@ -38061,7 +39205,7 @@ "cimguiname": "igUpdateHoveredWindowAndCaptureFlags", "defaults": {}, "funcname": "UpdateHoveredWindowAndCaptureFlags", - "location": "imgui_internal:3274", + "location": "imgui_internal:3402", "namespace": "ImGui", "ov_cimguiname": "igUpdateHoveredWindowAndCaptureFlags", "ret": "void", @@ -38083,7 +39227,7 @@ "cimguiname": "igUpdateInputEvents", "defaults": {}, "funcname": "UpdateInputEvents", - "location": "imgui_internal:3273", + "location": "imgui_internal:3401", "namespace": "ImGui", "ov_cimguiname": "igUpdateInputEvents", "ret": "void", @@ -38100,7 +39244,7 @@ "cimguiname": "igUpdateMouseMovingWindowEndFrame", "defaults": {}, "funcname": "UpdateMouseMovingWindowEndFrame", - "location": "imgui_internal:3278", + "location": "imgui_internal:3407", "namespace": "ImGui", "ov_cimguiname": "igUpdateMouseMovingWindowEndFrame", "ret": "void", @@ -38117,7 +39261,7 @@ "cimguiname": "igUpdateMouseMovingWindowNewFrame", "defaults": {}, "funcname": "UpdateMouseMovingWindowNewFrame", - "location": "imgui_internal:3277", + "location": "imgui_internal:3406", "namespace": "ImGui", "ov_cimguiname": "igUpdateMouseMovingWindowNewFrame", "ret": "void", @@ -38135,7 +39279,7 @@ "comment": "// call in main loop. will call CreateWindow/ResizeWindow/etc. platform functions for each secondary viewport, and DestroyWindow for each inactive viewport.", "defaults": {}, "funcname": "UpdatePlatformWindows", - "location": "imgui:1017", + "location": "imgui:1083", "namespace": "ImGui", "ov_cimguiname": "igUpdatePlatformWindows", "ret": "void", @@ -38165,7 +39309,7 @@ "cimguiname": "igUpdateWindowParentAndRootLinks", "defaults": {}, "funcname": "UpdateWindowParentAndRootLinks", - "location": "imgui_internal:3236", + "location": "imgui_internal:3359", "namespace": "ImGui", "ov_cimguiname": "igUpdateWindowParentAndRootLinks", "ret": "void", @@ -38173,6 +39317,28 @@ "stname": "" } ], + "igUpdateWindowSkipRefresh": [ + { + "args": "(ImGuiWindow* window)", + "argsT": [ + { + "name": "window", + "type": "ImGuiWindow*" + } + ], + "argsoriginal": "(ImGuiWindow* window)", + "call_args": "(window)", + "cimguiname": "igUpdateWindowSkipRefresh", + "defaults": {}, + "funcname": "UpdateWindowSkipRefresh", + "location": "imgui_internal:3360", + "namespace": "ImGui", + "ov_cimguiname": "igUpdateWindowSkipRefresh", + "ret": "void", + "signature": "(ImGuiWindow*)", + "stname": "" + } + ], "igVSliderFloat": [ { "args": "(const char* label,const ImVec2 size,float* v,float v_min,float v_max,const char* format,ImGuiSliderFlags flags)", @@ -38214,7 +39380,7 @@ "format": "\"%.3f\"" }, "funcname": "VSliderFloat", - "location": "imgui:603", + "location": "imgui:626", "namespace": "ImGui", "ov_cimguiname": "igVSliderFloat", "ret": "bool", @@ -38263,7 +39429,7 @@ "format": "\"%d\"" }, "funcname": "VSliderInt", - "location": "imgui:604", + "location": "imgui:627", "namespace": "ImGui", "ov_cimguiname": "igVSliderInt", "ret": "bool", @@ -38316,7 +39482,7 @@ "format": "NULL" }, "funcname": "VSliderScalar", - "location": "imgui:605", + "location": "imgui:628", "namespace": "ImGui", "ov_cimguiname": "igVSliderScalar", "ret": "bool", @@ -38342,7 +39508,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:681", + "location": "imgui:717", "namespace": "ImGui", "ov_cimguiname": "igValue_Bool", "ret": "void", @@ -38366,7 +39532,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:682", + "location": "imgui:718", "namespace": "ImGui", "ov_cimguiname": "igValue_Int", "ret": "void", @@ -38390,7 +39556,7 @@ "cimguiname": "igValue", "defaults": {}, "funcname": "Value", - "location": "imgui:683", + "location": "imgui:719", "namespace": "ImGui", "ov_cimguiname": "igValue_Uint", "ret": "void", @@ -38420,7 +39586,7 @@ "float_format": "NULL" }, "funcname": "Value", - "location": "imgui:684", + "location": "imgui:720", "namespace": "ImGui", "ov_cimguiname": "igValue_Float", "ret": "void", @@ -38428,6 +39594,37 @@ "stname": "" } ], + "igWindowPosAbsToRel": [ + { + "args": "(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p)", + "argsT": [ + { + "name": "pOut", + "type": "ImVec2*" + }, + { + "name": "window", + "type": "ImGuiWindow*" + }, + { + "name": "p", + "type": "const ImVec2" + } + ], + "argsoriginal": "(ImGuiWindow* window,const ImVec2& p)", + "call_args": "(window,p)", + "cimguiname": "igWindowPosAbsToRel", + "defaults": {}, + "funcname": "WindowPosAbsToRel", + "location": "imgui_internal:3374", + "namespace": "ImGui", + "nonUDT": 1, + "ov_cimguiname": "igWindowPosAbsToRel", + "ret": "void", + "signature": "(ImGuiWindow*,const ImVec2)", + "stname": "" + } + ], "igWindowPosRelToAbs": [ { "args": "(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p)", @@ -38450,7 +39647,7 @@ "cimguiname": "igWindowPosRelToAbs", "defaults": {}, "funcname": "WindowPosRelToAbs", - "location": "imgui_internal:3250", + "location": "imgui_internal:3375", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igWindowPosRelToAbs", @@ -38481,7 +39678,7 @@ "cimguiname": "igWindowRectAbsToRel", "defaults": {}, "funcname": "WindowRectAbsToRel", - "location": "imgui_internal:3248", + "location": "imgui_internal:3372", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igWindowRectAbsToRel", @@ -38512,7 +39709,7 @@ "cimguiname": "igWindowRectRelToAbs", "defaults": {}, "funcname": "WindowRectRelToAbs", - "location": "imgui_internal:3249", + "location": "imgui_internal:3373", "namespace": "ImGui", "nonUDT": 1, "ov_cimguiname": "igWindowRectRelToAbs", diff --git a/cimgui/cimgui_templates/impl_definitions.json b/cwrappers/cimgui_templates/impl_definitions.json similarity index 96% rename from cimgui/cimgui_templates/impl_definitions.json rename to cwrappers/cimgui_templates/impl_definitions.json index 958d12f97..ac713a3a3 100644 --- a/cimgui/cimgui_templates/impl_definitions.json +++ b/cwrappers/cimgui_templates/impl_definitions.json @@ -17,7 +17,7 @@ "cimguiname": "ImGui_ImplGlfw_CharCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_CharCallback", - "location": "imgui_impl_glfw:60", + "location": "imgui_impl_glfw:61", "ov_cimguiname": "ImGui_ImplGlfw_CharCallback", "ret": "void", "signature": "(GLFWwindow*,unsigned int)", @@ -42,7 +42,7 @@ "cimguiname": "ImGui_ImplGlfw_CursorEnterCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_CursorEnterCallback", - "location": "imgui_impl_glfw:55", + "location": "imgui_impl_glfw:56", "ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback", "ret": "void", "signature": "(GLFWwindow*,int)", @@ -71,7 +71,7 @@ "cimguiname": "ImGui_ImplGlfw_CursorPosCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_CursorPosCallback", - "location": "imgui_impl_glfw:56", + "location": "imgui_impl_glfw:57", "ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback", "ret": "void", "signature": "(GLFWwindow*,double,double)", @@ -167,7 +167,7 @@ "cimguiname": "ImGui_ImplGlfw_InstallCallbacks", "defaults": {}, "funcname": "ImGui_ImplGlfw_InstallCallbacks", - "location": "imgui_impl_glfw:46", + "location": "imgui_impl_glfw:47", "ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks", "ret": "void", "signature": "(GLFWwindow*)", @@ -204,7 +204,7 @@ "cimguiname": "ImGui_ImplGlfw_KeyCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_KeyCallback", - "location": "imgui_impl_glfw:59", + "location": "imgui_impl_glfw:60", "ov_cimguiname": "ImGui_ImplGlfw_KeyCallback", "ret": "void", "signature": "(GLFWwindow*,int,int,int,int)", @@ -229,7 +229,7 @@ "cimguiname": "ImGui_ImplGlfw_MonitorCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_MonitorCallback", - "location": "imgui_impl_glfw:61", + "location": "imgui_impl_glfw:62", "ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback", "ret": "void", "signature": "(GLFWmonitor*,int)", @@ -262,7 +262,7 @@ "cimguiname": "ImGui_ImplGlfw_MouseButtonCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_MouseButtonCallback", - "location": "imgui_impl_glfw:57", + "location": "imgui_impl_glfw:58", "ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback", "ret": "void", "signature": "(GLFWwindow*,int,int,int)", @@ -299,7 +299,7 @@ "cimguiname": "ImGui_ImplGlfw_RestoreCallbacks", "defaults": {}, "funcname": "ImGui_ImplGlfw_RestoreCallbacks", - "location": "imgui_impl_glfw:47", + "location": "imgui_impl_glfw:48", "ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks", "ret": "void", "signature": "(GLFWwindow*)", @@ -328,7 +328,7 @@ "cimguiname": "ImGui_ImplGlfw_ScrollCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_ScrollCallback", - "location": "imgui_impl_glfw:58", + "location": "imgui_impl_glfw:59", "ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback", "ret": "void", "signature": "(GLFWwindow*,double,double)", @@ -349,7 +349,7 @@ "cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", "defaults": {}, "funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", - "location": "imgui_impl_glfw:51", + "location": "imgui_impl_glfw:52", "ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows", "ret": "void", "signature": "(bool)", @@ -372,6 +372,27 @@ "stname": "" } ], + "ImGui_ImplGlfw_Sleep": [ + { + "args": "(int milliseconds)", + "argsT": [ + { + "name": "milliseconds", + "type": "int" + } + ], + "argsoriginal": "(int milliseconds)", + "call_args": "(milliseconds)", + "cimguiname": "ImGui_ImplGlfw_Sleep", + "defaults": {}, + "funcname": "ImGui_ImplGlfw_Sleep", + "location": "imgui_impl_glfw:65", + "ov_cimguiname": "ImGui_ImplGlfw_Sleep", + "ret": "void", + "signature": "(int)", + "stname": "" + } + ], "ImGui_ImplGlfw_WindowFocusCallback": [ { "args": "(GLFWwindow* window,int focused)", @@ -390,7 +411,7 @@ "cimguiname": "ImGui_ImplGlfw_WindowFocusCallback", "defaults": {}, "funcname": "ImGui_ImplGlfw_WindowFocusCallback", - "location": "imgui_impl_glfw:54", + "location": "imgui_impl_glfw:55", "ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback", "ret": "void", "signature": "(GLFWwindow*,int)", @@ -406,7 +427,7 @@ "cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects", - "location": "imgui_impl_opengl2:36", + "location": "imgui_impl_opengl2:37", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects", "ret": "bool", "signature": "()", @@ -422,7 +443,7 @@ "cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_CreateFontsTexture", - "location": "imgui_impl_opengl2:34", + "location": "imgui_impl_opengl2:35", "ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture", "ret": "bool", "signature": "()", @@ -438,7 +459,7 @@ "cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", - "location": "imgui_impl_opengl2:37", + "location": "imgui_impl_opengl2:38", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects", "ret": "void", "signature": "()", @@ -454,7 +475,7 @@ "cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture", - "location": "imgui_impl_opengl2:35", + "location": "imgui_impl_opengl2:36", "ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture", "ret": "void", "signature": "()", @@ -470,7 +491,7 @@ "cimguiname": "ImGui_ImplOpenGL2_Init", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_Init", - "location": "imgui_impl_opengl2:28", + "location": "imgui_impl_opengl2:29", "ov_cimguiname": "ImGui_ImplOpenGL2_Init", "ret": "bool", "signature": "()", @@ -486,7 +507,7 @@ "cimguiname": "ImGui_ImplOpenGL2_NewFrame", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_NewFrame", - "location": "imgui_impl_opengl2:30", + "location": "imgui_impl_opengl2:31", "ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame", "ret": "void", "signature": "()", @@ -507,7 +528,7 @@ "cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_RenderDrawData", - "location": "imgui_impl_opengl2:31", + "location": "imgui_impl_opengl2:32", "ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData", "ret": "void", "signature": "(ImDrawData*)", @@ -523,7 +544,7 @@ "cimguiname": "ImGui_ImplOpenGL2_Shutdown", "defaults": {}, "funcname": "ImGui_ImplOpenGL2_Shutdown", - "location": "imgui_impl_opengl2:29", + "location": "imgui_impl_opengl2:30", "ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown", "ret": "void", "signature": "()", @@ -684,7 +705,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForD3D", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForD3D", - "location": "imgui_impl_sdl2:35", + "location": "imgui_impl_sdl2:37", "ov_cimguiname": "ImGui_ImplSDL2_InitForD3D", "ret": "bool", "signature": "(SDL_Window*)", @@ -705,7 +726,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForMetal", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForMetal", - "location": "imgui_impl_sdl2:36", + "location": "imgui_impl_sdl2:38", "ov_cimguiname": "ImGui_ImplSDL2_InitForMetal", "ret": "bool", "signature": "(SDL_Window*)", @@ -730,7 +751,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForOpenGL", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForOpenGL", - "location": "imgui_impl_sdl2:33", + "location": "imgui_impl_sdl2:35", "ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL", "ret": "bool", "signature": "(SDL_Window*,void*)", @@ -751,7 +772,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForOther", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForOther", - "location": "imgui_impl_sdl2:38", + "location": "imgui_impl_sdl2:40", "ov_cimguiname": "ImGui_ImplSDL2_InitForOther", "ret": "bool", "signature": "(SDL_Window*)", @@ -776,7 +797,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForSDLRenderer", - "location": "imgui_impl_sdl2:37", + "location": "imgui_impl_sdl2:39", "ov_cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer", "ret": "bool", "signature": "(SDL_Window*,SDL_Renderer*)", @@ -797,7 +818,7 @@ "cimguiname": "ImGui_ImplSDL2_InitForVulkan", "defaults": {}, "funcname": "ImGui_ImplSDL2_InitForVulkan", - "location": "imgui_impl_sdl2:34", + "location": "imgui_impl_sdl2:36", "ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan", "ret": "bool", "signature": "(SDL_Window*)", @@ -813,7 +834,7 @@ "cimguiname": "ImGui_ImplSDL2_NewFrame", "defaults": {}, "funcname": "ImGui_ImplSDL2_NewFrame", - "location": "imgui_impl_sdl2:40", + "location": "imgui_impl_sdl2:42", "ov_cimguiname": "ImGui_ImplSDL2_NewFrame", "ret": "void", "signature": "()", @@ -834,7 +855,7 @@ "cimguiname": "ImGui_ImplSDL2_ProcessEvent", "defaults": {}, "funcname": "ImGui_ImplSDL2_ProcessEvent", - "location": "imgui_impl_sdl2:41", + "location": "imgui_impl_sdl2:43", "ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent", "ret": "bool", "signature": "(const SDL_Event*)", @@ -866,7 +887,7 @@ "manual_gamepads_count": "-1" }, "funcname": "ImGui_ImplSDL2_SetGamepadMode", - "location": "imgui_impl_sdl2:46", + "location": "imgui_impl_sdl2:48", "ov_cimguiname": "ImGui_ImplSDL2_SetGamepadMode", "ret": "void", "signature": "(ImGui_ImplSDL2_GamepadMode,struct _SDL_GameController**,int)", @@ -882,7 +903,7 @@ "cimguiname": "ImGui_ImplSDL2_Shutdown", "defaults": {}, "funcname": "ImGui_ImplSDL2_Shutdown", - "location": "imgui_impl_sdl2:39", + "location": "imgui_impl_sdl2:41", "ov_cimguiname": "ImGui_ImplSDL2_Shutdown", "ret": "void", "signature": "()", diff --git a/cimgui/cimgui_templates/structs_and_enums.json b/cwrappers/cimgui_templates/structs_and_enums.json similarity index 88% rename from cimgui/cimgui_templates/structs_and_enums.json rename to cwrappers/cimgui_templates/structs_and_enums.json index 00821811d..80f0de27f 100644 --- a/cimgui/cimgui_templates/structs_and_enums.json +++ b/cwrappers/cimgui_templates/structs_and_enums.json @@ -22,7 +22,7 @@ "above": "// Flags for InvisibleButton() [extended in imgui_internal.h]" }, "ImGuiChildFlags_": { - "above": "// Flags for ImGui::BeginChild()\n// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.\n// About using AutoResizeX/AutoResizeY flags:\n// - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see \"Demo->Child->Auto-resize with Constraints\").\n// - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.\n// - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.\n// While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional \"resizing after becoming visible again\" glitch.\n// - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.\n// HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping." + "above": "// Flags for ImGui::BeginChild()\n// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Borders to be backward compatible with old API using 'bool border = false'.\n// About using AutoResizeX/AutoResizeY flags:\n// - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see \"Demo->Child->Auto-resize with Constraints\").\n// - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.\n// - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.\n// While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional \"resizing after becoming visible again\" glitch.\n// - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.\n// HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping." }, "ImGuiCol_": { "above": "// Enumeration for PushStyleColor() / PopStyleColor()" @@ -51,7 +51,7 @@ "ImGuiDataType_": { "above": "// A primary data type" }, - "ImGuiDir_": { + "ImGuiDir": { "above": "// A cardinal direction" }, "ImGuiDockNodeFlagsPrivate_": { @@ -78,8 +78,11 @@ "ImGuiInputEventType": { "above": "// [Internal] Key ranges\n// [Internal] Named shortcuts for Navigation" }, + "ImGuiInputFlagsPrivate_": { + "above": "// Extend ImGuiInputFlags_\n// Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner()\n// Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)" + }, "ImGuiInputFlags_": { - "above": "// Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner()\n// Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)" + "above": "// Flags for Shortcut(), SetNextItemShortcut(),\n// (and for upcoming extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner() that are still in imgui_internal.h)\n// Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)" }, "ImGuiInputTextFlagsPrivate_": { "above": "// Extend ImGuiInputTextFlags_" @@ -87,8 +90,11 @@ "ImGuiInputTextFlags_": { "above": "// Flags for ImGui::InputText()\n// (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)" }, + "ImGuiItemFlagsPrivate_": { + "above": "// Extend ImGuiItemFlags\n// - input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags.\n// - output: stored in g.LastItemData.InFlags" + }, "ImGuiItemFlags_": { - "above": "// Flags used by upcoming items\n// - input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags.\n// - output: stored in g.LastItemData.InFlags\n// Current window shared by all windows.\n// This is going to be exposed in imgui.h when stabilized enough." + "above": "// Flags for ImGui::PushItemFlag()\n// (Those are shared by all items)" }, "ImGuiItemStatusFlags_": { "above": "// Status flags for an already submitted item\n// - output: stored in g.LastItemData.StatusFlags" @@ -111,6 +117,9 @@ "ImGuiMouseSource": { "above": "// Enumeration for AddMouseSourceEvent() actual source of Mouse Input data.\n// Historically we use \"Mouse\" terminology everywhere to indicate pointer data, e.g. MousePos, IsMousePressed(), io.AddMousePosEvent()\n// But that \"Mouse\" data can come from different source which occasionally may be useful for application to know about.\n// You can submit a change of pointer type using io.AddMouseSourceEvent()." }, + "ImGuiMultiSelectFlags_": { + "above": "// Flags for BeginMultiSelect()" + }, "ImGuiOldColumnFlags_": { "above": "// Flags for internal's BeginColumns(). This is an obsolete API. Prefer using BeginTable() nowadays!" }, @@ -126,17 +135,20 @@ "ImGuiSelectableFlags_": { "above": "// Flags for ImGui::Selectable()" }, + "ImGuiSelectionRequestType": { + "above": "// Selection request type" + }, "ImGuiSliderFlagsPrivate_": { "above": "// Extend ImGuiSliderFlags_" }, "ImGuiSliderFlags_": { "above": "// Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc.\n// We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them.\n// (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigDragClickToInputText)" }, - "ImGuiSortDirection_": { + "ImGuiSortDirection": { "above": "// A sorting direction" }, "ImGuiStyleVar_": { - "above": "// Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure.\n// - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code.\n// During initialization or between frames, feel free to just poke into ImGuiStyle directly.\n// - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description.\n// In Visual Studio IDE: CTRL+comma (\"Edit.GoToAll\") can follow symbols in comments, whereas CTRL+F12 (\"Edit.GoToImplementation\") cannot.\n// With Visual Assist installed: ALT+G (\"VAssistX.GoToImplementation\") can also follow symbols in comments.\n// - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type." + "above": "// Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure.\n// - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code.\n// During initialization or between frames, feel free to just poke into ImGuiStyle directly.\n// - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description.\n// - In Visual Studio: CTRL+comma (\"Edit.GoToAll\") can follow symbols inside comments, whereas CTRL+F12 (\"Edit.GoToImplementation\") cannot.\n// - In Visual Studio w/ Visual Assist installed: ALT+G (\"VAssistX.GoToImplementation\") can also follow symbols inside comments.\n// - In VS Code, CLion, etc.: CTRL+click can follow symbols inside comments.\n// - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type." }, "ImGuiTabBarFlagsPrivate_": { "above": "// Extend ImGuiTabBarFlags_" @@ -501,7 +513,7 @@ }, { "calc_value": 262144, - "comment": "// don't override navigation focus when activated (FIXME: this is essentially used everytime an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)", + "comment": "// don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)", "name": "ImGuiButtonFlags_NoNavFocus", "value": "1 << 18" }, @@ -560,13 +572,9 @@ }, { "calc_value": 7, + "comment": "// [Internal]", "name": "ImGuiButtonFlags_MouseButtonMask_", "value": "ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle" - }, - { - "calc_value": 1, - "name": "ImGuiButtonFlags_MouseButtonDefault_", - "value": "ImGuiButtonFlags_MouseButtonLeft" } ], "ImGuiChildFlags_": [ @@ -578,7 +586,7 @@ { "calc_value": 1, "comment": "// Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason)", - "name": "ImGuiChildFlags_Border", + "name": "ImGuiChildFlags_Borders", "value": "1 << 0" }, { @@ -622,6 +630,12 @@ "comment": "// Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.", "name": "ImGuiChildFlags_FrameStyle", "value": "1 << 7" + }, + { + "calc_value": 256, + "comment": "// [BETA] Share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.", + "name": "ImGuiChildFlags_NavFlattened", + "value": "1 << 8" } ], "ImGuiCol_": [ @@ -802,131 +816,153 @@ }, { "calc_value": 33, - "comment": "// TabItem in a TabBar", - "name": "ImGuiCol_Tab", + "comment": "// Tab background, when hovered", + "name": "ImGuiCol_TabHovered", "value": "33" }, { "calc_value": 34, - "name": "ImGuiCol_TabHovered", + "comment": "// Tab background, when tab-bar is focused & tab is unselected", + "name": "ImGuiCol_Tab", "value": "34" }, { "calc_value": 35, - "name": "ImGuiCol_TabActive", + "comment": "// Tab background, when tab-bar is focused & tab is selected", + "name": "ImGuiCol_TabSelected", "value": "35" }, { "calc_value": 36, - "name": "ImGuiCol_TabUnfocused", + "comment": "// Tab horizontal overline, when tab-bar is focused & tab is selected", + "name": "ImGuiCol_TabSelectedOverline", "value": "36" }, { "calc_value": 37, - "name": "ImGuiCol_TabUnfocusedActive", + "comment": "// Tab background, when tab-bar is unfocused & tab is unselected", + "name": "ImGuiCol_TabDimmed", "value": "37" }, { "calc_value": 38, - "comment": "// Preview overlay color when about to docking something", - "name": "ImGuiCol_DockingPreview", + "comment": "// Tab background, when tab-bar is unfocused & tab is selected", + "name": "ImGuiCol_TabDimmedSelected", "value": "38" }, { "calc_value": 39, - "comment": "// Background color for empty node (e.g. CentralNode with no window docked into it)", - "name": "ImGuiCol_DockingEmptyBg", + "comment": "//..horizontal overline, when tab-bar is unfocused & tab is selected", + "name": "ImGuiCol_TabDimmedSelectedOverline", "value": "39" }, { "calc_value": 40, - "name": "ImGuiCol_PlotLines", + "comment": "// Preview overlay color when about to docking something", + "name": "ImGuiCol_DockingPreview", "value": "40" }, { "calc_value": 41, - "name": "ImGuiCol_PlotLinesHovered", + "comment": "// Background color for empty node (e.g. CentralNode with no window docked into it)", + "name": "ImGuiCol_DockingEmptyBg", "value": "41" }, { "calc_value": 42, - "name": "ImGuiCol_PlotHistogram", + "name": "ImGuiCol_PlotLines", "value": "42" }, { "calc_value": 43, - "name": "ImGuiCol_PlotHistogramHovered", + "name": "ImGuiCol_PlotLinesHovered", "value": "43" }, { "calc_value": 44, - "comment": "// Table header background", - "name": "ImGuiCol_TableHeaderBg", + "name": "ImGuiCol_PlotHistogram", "value": "44" }, { "calc_value": 45, - "comment": "// Table outer and header borders (prefer using Alpha=1.0 here)", - "name": "ImGuiCol_TableBorderStrong", + "name": "ImGuiCol_PlotHistogramHovered", "value": "45" }, { "calc_value": 46, - "comment": "// Table inner borders (prefer using Alpha=1.0 here)", - "name": "ImGuiCol_TableBorderLight", + "comment": "// Table header background", + "name": "ImGuiCol_TableHeaderBg", "value": "46" }, { "calc_value": 47, - "comment": "// Table row background (even rows)", - "name": "ImGuiCol_TableRowBg", + "comment": "// Table outer and header borders (prefer using Alpha=1.0 here)", + "name": "ImGuiCol_TableBorderStrong", "value": "47" }, { "calc_value": 48, - "comment": "// Table row background (odd rows)", - "name": "ImGuiCol_TableRowBgAlt", + "comment": "// Table inner borders (prefer using Alpha=1.0 here)", + "name": "ImGuiCol_TableBorderLight", "value": "48" }, { "calc_value": 49, - "name": "ImGuiCol_TextSelectedBg", + "comment": "// Table row background (even rows)", + "name": "ImGuiCol_TableRowBg", "value": "49" }, { "calc_value": 50, - "comment": "// Rectangle highlighting a drop target", - "name": "ImGuiCol_DragDropTarget", + "comment": "// Table row background (odd rows)", + "name": "ImGuiCol_TableRowBgAlt", "value": "50" }, { "calc_value": 51, - "comment": "// Gamepad/keyboard: current highlighted item", - "name": "ImGuiCol_NavHighlight", + "comment": "// Hyperlink color", + "name": "ImGuiCol_TextLink", "value": "51" }, { "calc_value": 52, - "comment": "// Highlight window when using CTRL+TAB", - "name": "ImGuiCol_NavWindowingHighlight", + "name": "ImGuiCol_TextSelectedBg", "value": "52" }, { "calc_value": 53, - "comment": "// Darken/colorize entire screen behind the CTRL+TAB window list, when active", - "name": "ImGuiCol_NavWindowingDimBg", + "comment": "// Rectangle highlighting a drop target", + "name": "ImGuiCol_DragDropTarget", "value": "53" }, { "calc_value": 54, - "comment": "// Darken/colorize entire screen behind a modal window, when one is active", - "name": "ImGuiCol_ModalWindowDimBg", + "comment": "// Gamepad/keyboard: current highlighted item", + "name": "ImGuiCol_NavHighlight", "value": "54" }, { "calc_value": 55, - "name": "ImGuiCol_COUNT", + "comment": "// Highlight window when using CTRL+TAB", + "name": "ImGuiCol_NavWindowingHighlight", "value": "55" + }, + { + "calc_value": 56, + "comment": "// Darken/colorize entire screen behind the CTRL+TAB window list, when active", + "name": "ImGuiCol_NavWindowingDimBg", + "value": "56" + }, + { + "calc_value": 57, + "comment": "// Darken/colorize entire screen behind a modal window, when one is active", + "name": "ImGuiCol_ModalWindowDimBg", + "value": "57" + }, + { + "calc_value": 58, + "name": "ImGuiCol_COUNT", + "value": "58" } ], "ImGuiColorEditFlags_": [ @@ -1231,7 +1267,7 @@ }, { "calc_value": 16, - "comment": "// Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.", + "comment": "// Instruct dear imgui to disable mouse inputs and interactions.", "name": "ImGuiConfigFlags_NoMouse", "value": "1 << 4" }, @@ -1243,9 +1279,15 @@ }, { "calc_value": 64, + "comment": "// Instruct dear imgui to disable keyboard inputs and interactions. This is done by ignoring keyboard events and clearing existing states.", + "name": "ImGuiConfigFlags_NoKeyboard", + "value": "1 << 6" + }, + { + "calc_value": 128, "comment": "// Docking enable flags.", "name": "ImGuiConfigFlags_DockingEnable", - "value": "1 << 6" + "value": "1 << 7" }, { "calc_value": 1024, @@ -1339,17 +1381,17 @@ ], "ImGuiDataTypePrivate_": [ { - "calc_value": 11, + "calc_value": 12, "name": "ImGuiDataType_String", "value": "ImGuiDataType_COUNT + 1" }, { - "calc_value": 12, + "calc_value": 13, "name": "ImGuiDataType_Pointer", "value": "ImGuiDataType_COUNT + 1+1" }, { - "calc_value": 13, + "calc_value": 14, "name": "ImGuiDataType_ID", "value": "ImGuiDataType_COUNT + 1+1+1" } @@ -1417,8 +1459,14 @@ }, { "calc_value": 10, - "name": "ImGuiDataType_COUNT", + "comment": "// bool (provided for user convenience, not supported by scalar widgets)", + "name": "ImGuiDataType_Bool", "value": "10" + }, + { + "calc_value": 11, + "name": "ImGuiDataType_COUNT", + "value": "11" } ], "ImGuiDebugLogFlags_": [ @@ -1495,7 +1543,7 @@ "value": "1 << 21" } ], - "ImGuiDir_": [ + "ImGuiDir": [ { "calc_value": -1, "name": "ImGuiDir_None", @@ -1619,12 +1667,12 @@ { "calc_value": 196640, "name": "ImGuiDockNodeFlags_NoResizeFlagsMask_", - "value": "ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY" + "value": "(int)ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY" }, { "calc_value": 260208, "name": "ImGuiDockNodeFlags_LocalFlagsTransferMask_", - "value": "ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton" + "value": "(int)ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | (int)ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton" }, { "calc_value": 261152, @@ -1742,9 +1790,21 @@ { "calc_value": 32, "comment": "// Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)", - "name": "ImGuiDragDropFlags_SourceAutoExpirePayload", + "name": "ImGuiDragDropFlags_PayloadAutoExpire", "value": "1 << 5" }, + { + "calc_value": 64, + "comment": "// Hint to specify that the payload may not be copied outside current dear imgui context.", + "name": "ImGuiDragDropFlags_PayloadNoCrossContext", + "value": "1 << 6" + }, + { + "calc_value": 128, + "comment": "// Hint to specify that the payload may not be copied outside current process.", + "name": "ImGuiDragDropFlags_PayloadNoCrossProcess", + "value": "1 << 7" + }, { "calc_value": 1024, "comment": "// AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.", @@ -2020,18 +2080,7 @@ "value": "8" } ], - "ImGuiInputFlags_": [ - { - "calc_value": 0, - "name": "ImGuiInputFlags_None", - "value": "0" - }, - { - "calc_value": 1, - "comment": "// Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1.", - "name": "ImGuiInputFlags_Repeat", - "value": "1 << 0" - }, + "ImGuiInputFlagsPrivate_": [ { "calc_value": 2, "comment": "// Repeat rate: Regular (default)", @@ -2075,69 +2124,33 @@ "value": "1 << 7" }, { - "calc_value": 256, - "comment": "// Only set if item is hovered (default to both)", - "name": "ImGuiInputFlags_CondHovered", - "value": "1 << 8" - }, - { - "calc_value": 512, - "comment": "// Only set if item is active (default to both)", - "name": "ImGuiInputFlags_CondActive", - "value": "1 << 9" - }, - { - "calc_value": 768, - "name": "ImGuiInputFlags_CondDefault_", - "value": "ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive" - }, - { - "calc_value": 1024, + "calc_value": 1048576, "comment": "// Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame.", "name": "ImGuiInputFlags_LockThisFrame", - "value": "1 << 10" + "value": "1 << 20" }, { - "calc_value": 2048, + "calc_value": 2097152, "comment": "// Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when the key is released or at end of each frame if key is released.", "name": "ImGuiInputFlags_LockUntilRelease", - "value": "1 << 11" - }, - { - "calc_value": 4096, - "comment": "// (Default) Honor focus route: Accept inputs if window is in focus stack. Deep-most focused window takes inputs. ActiveId takes inputs over deep-most focused window.", - "name": "ImGuiInputFlags_RouteFocused", - "value": "1 << 12" - }, - { - "calc_value": 8192, - "comment": "// Register route globally (lowest priority: unless a focused window or active item registered the route) -> recommended Global priority IF you need a Global priority.", - "name": "ImGuiInputFlags_RouteGlobalLow", - "value": "1 << 13" - }, - { - "calc_value": 16384, - "comment": "// Register route globally (medium priority: unless an active item registered the route, e.g. CTRL+A registered by InputText will take priority over this).", - "name": "ImGuiInputFlags_RouteGlobal", - "value": "1 << 14" + "value": "1 << 21" }, { - "calc_value": 32768, - "comment": "// Register route globally (higher priority: unlikely you need to use that: will interfere with every active items, e.g. CTRL+A registered by InputText will be overriden by this)", - "name": "ImGuiInputFlags_RouteGlobalHigh", - "value": "1 << 15" + "calc_value": 4194304, + "comment": "// Only set if item is hovered (default to both)", + "name": "ImGuiInputFlags_CondHovered", + "value": "1 << 22" }, { - "calc_value": 65536, - "comment": "// Do not register route, poll keys directly.", - "name": "ImGuiInputFlags_RouteAlways", - "value": "1 << 16" + "calc_value": 8388608, + "comment": "// Only set if item is active (default to both)", + "name": "ImGuiInputFlags_CondActive", + "value": "1 << 23" }, { - "calc_value": 131072, - "comment": "// Global routes will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications.", - "name": "ImGuiInputFlags_RouteUnlessBgFocused", - "value": "1 << 17" + "calc_value": 12582912, + "name": "ImGuiInputFlags_CondDefault_", + "value": "ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive" }, { "calc_value": 14, @@ -2155,15 +2168,19 @@ "value": "ImGuiInputFlags_Repeat | ImGuiInputFlags_RepeatRateMask_ | ImGuiInputFlags_RepeatUntilMask_" }, { - "calc_value": 768, + "calc_value": 12582912, "name": "ImGuiInputFlags_CondMask_", "value": "ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive" }, { - "calc_value": 61440, - "comment": "// _Always not part of this!", - "name": "ImGuiInputFlags_RouteMask_", - "value": "ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteGlobalLow | ImGuiInputFlags_RouteGlobalHigh" + "calc_value": 15360, + "name": "ImGuiInputFlags_RouteTypeMask_", + "value": "ImGuiInputFlags_RouteActive | ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteAlways" + }, + { + "calc_value": 245760, + "name": "ImGuiInputFlags_RouteOptionsMask_", + "value": "ImGuiInputFlags_RouteOverFocused | ImGuiInputFlags_RouteOverActive | ImGuiInputFlags_RouteUnlessBgFocused | ImGuiInputFlags_RouteFromRootWindow" }, { "calc_value": 255, @@ -2176,21 +2193,93 @@ "value": "ImGuiInputFlags_Repeat" }, { - "calc_value": 258303, + "calc_value": 261375, "name": "ImGuiInputFlags_SupportedByShortcut", - "value": "ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteMask_ | ImGuiInputFlags_RouteAlways | ImGuiInputFlags_RouteUnlessBgFocused" + "value": "ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_" }, { - "calc_value": 3072, + "calc_value": 523519, + "name": "ImGuiInputFlags_SupportedBySetNextItemShortcut", + "value": "ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_ | ImGuiInputFlags_Tooltip" + }, + { + "calc_value": 3145728, "name": "ImGuiInputFlags_SupportedBySetKeyOwner", "value": "ImGuiInputFlags_LockThisFrame | ImGuiInputFlags_LockUntilRelease" }, { - "calc_value": 3840, + "calc_value": 15728640, "name": "ImGuiInputFlags_SupportedBySetItemKeyOwner", "value": "ImGuiInputFlags_SupportedBySetKeyOwner | ImGuiInputFlags_CondMask_" } ], + "ImGuiInputFlags_": [ + { + "calc_value": 0, + "name": "ImGuiInputFlags_None", + "value": "0" + }, + { + "calc_value": 1, + "comment": "// Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1.", + "name": "ImGuiInputFlags_Repeat", + "value": "1 << 0" + }, + { + "calc_value": 1024, + "comment": "// Route to active item only.", + "name": "ImGuiInputFlags_RouteActive", + "value": "1 << 10" + }, + { + "calc_value": 2048, + "comment": "// Route to windows in the focus stack (DEFAULT). Deep-most focused window takes inputs. Active item takes inputs over deep-most focused window.", + "name": "ImGuiInputFlags_RouteFocused", + "value": "1 << 11" + }, + { + "calc_value": 4096, + "comment": "// Global route (unless a focused window or active item registered the route).", + "name": "ImGuiInputFlags_RouteGlobal", + "value": "1 << 12" + }, + { + "calc_value": 8192, + "comment": "// Do not register route, poll keys directly.", + "name": "ImGuiInputFlags_RouteAlways", + "value": "1 << 13" + }, + { + "calc_value": 16384, + "comment": "// Option: global route: higher priority than focused route (unless active item in focused route).", + "name": "ImGuiInputFlags_RouteOverFocused", + "value": "1 << 14" + }, + { + "calc_value": 32768, + "comment": "// Option: global route: higher priority than active item. Unlikely you need to use that: will interfere with every active items, e.g. CTRL+A registered by InputText will be overridden by this. May not be fully honored as user/internal code is likely to always assume they can access keys when active.", + "name": "ImGuiInputFlags_RouteOverActive", + "value": "1 << 15" + }, + { + "calc_value": 65536, + "comment": "// Option: global route: will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications.", + "name": "ImGuiInputFlags_RouteUnlessBgFocused", + "value": "1 << 16" + }, + { + "calc_value": 131072, + "comment": "// Option: route evaluated from the point of view of root window rather than current window.", + "name": "ImGuiInputFlags_RouteFromRootWindow", + "value": "1 << 17" + }, + { + "calc_value": 262144, + "comment": "// Automatically display a tooltip when hovering item [BETA] Unsure of right api (opt-in/opt-out)", + "name": "ImGuiInputFlags_Tooltip", + "value": "1 << 18" + } + ], "ImGuiInputSource": [ { "calc_value": 0, @@ -2215,14 +2304,8 @@ }, { "calc_value": 4, - "comment": "// Currently only used by InputText()", - "name": "ImGuiInputSource_Clipboard", - "value": "4" - }, - { - "calc_value": 5, "name": "ImGuiInputSource_COUNT", - "value": "5" + "value": "4" } ], "ImGuiInputTextFlagsPrivate_": [ @@ -2243,6 +2326,12 @@ "comment": "// For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match.", "name": "ImGuiInputTextFlags_MergedItem", "value": "1 << 28" + }, + { + "calc_value": 536870912, + "comment": "// For internal use by InputScalar() and TempInputScalar()", + "name": "ImGuiInputTextFlags_LocalizeDecimalPoint", + "value": "1 << 29" } ], "ImGuiInputTextFlags_": [ @@ -2265,86 +2354,86 @@ }, { "calc_value": 4, - "comment": "// Turn a..z into A..Z", - "name": "ImGuiInputTextFlags_CharsUppercase", + "comment": "// Allow 0123456789.+-*/eE (Scientific notation input)", + "name": "ImGuiInputTextFlags_CharsScientific", "value": "1 << 2" }, { "calc_value": 8, - "comment": "// Filter out spaces, tabs", - "name": "ImGuiInputTextFlags_CharsNoBlank", - "value": "1 << 3" + "comment": "// Turn a..z into A..Z", + "name": "ImGuiInputTextFlags_CharsUppercase", + "value": "1 << 3" }, { "calc_value": 16, - "comment": "// Select entire text when first taking mouse focus", - "name": "ImGuiInputTextFlags_AutoSelectAll", + "comment": "// Filter out spaces, tabs", + "name": "ImGuiInputTextFlags_CharsNoBlank", "value": "1 << 4" }, { "calc_value": 32, - "comment": "// Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.", - "name": "ImGuiInputTextFlags_EnterReturnsTrue", + "comment": "// Pressing TAB input a '\\t' character into the text field", + "name": "ImGuiInputTextFlags_AllowTabInput", "value": "1 << 5" }, { "calc_value": 64, - "comment": "// Callback on pressing TAB (for completion handling)", - "name": "ImGuiInputTextFlags_CallbackCompletion", + "comment": "// Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.", + "name": "ImGuiInputTextFlags_EnterReturnsTrue", "value": "1 << 6" }, { "calc_value": 128, - "comment": "// Callback on pressing Up/Down arrows (for history handling)", - "name": "ImGuiInputTextFlags_CallbackHistory", + "comment": "// Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)", + "name": "ImGuiInputTextFlags_EscapeClearsAll", "value": "1 << 7" }, { "calc_value": 256, - "comment": "// Callback on each iteration. User code may query cursor position, modify text buffer.", - "name": "ImGuiInputTextFlags_CallbackAlways", + "comment": "// In multi-line mode, validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter).", + "name": "ImGuiInputTextFlags_CtrlEnterForNewLine", "value": "1 << 8" }, { "calc_value": 512, - "comment": "// Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.", - "name": "ImGuiInputTextFlags_CallbackCharFilter", + "comment": "// Read-only mode", + "name": "ImGuiInputTextFlags_ReadOnly", "value": "1 << 9" }, { "calc_value": 1024, - "comment": "// Pressing TAB input a '\\t' character into the text field", - "name": "ImGuiInputTextFlags_AllowTabInput", + "comment": "// Password mode, display all characters as '*', disable copy", + "name": "ImGuiInputTextFlags_Password", "value": "1 << 10" }, { "calc_value": 2048, - "comment": "// In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).", - "name": "ImGuiInputTextFlags_CtrlEnterForNewLine", + "comment": "// Overwrite mode", + "name": "ImGuiInputTextFlags_AlwaysOverwrite", "value": "1 << 11" }, { "calc_value": 4096, - "comment": "// Disable following the cursor horizontally", - "name": "ImGuiInputTextFlags_NoHorizontalScroll", + "comment": "// Select entire text when first taking mouse focus", + "name": "ImGuiInputTextFlags_AutoSelectAll", "value": "1 << 12" }, { "calc_value": 8192, - "comment": "// Overwrite mode", - "name": "ImGuiInputTextFlags_AlwaysOverwrite", + "comment": "// InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value.", + "name": "ImGuiInputTextFlags_ParseEmptyRefVal", "value": "1 << 13" }, { "calc_value": 16384, - "comment": "// Read-only mode", - "name": "ImGuiInputTextFlags_ReadOnly", + "comment": "// InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal.", + "name": "ImGuiInputTextFlags_DisplayEmptyRefVal", "value": "1 << 14" }, { "calc_value": 32768, - "comment": "// Password mode, display all characters as '*'", - "name": "ImGuiInputTextFlags_Password", + "comment": "// Disable following the cursor horizontally", + "name": "ImGuiInputTextFlags_NoHorizontalScroll", "value": "1 << 15" }, { @@ -2355,106 +2444,139 @@ }, { "calc_value": 131072, - "comment": "// Allow 0123456789.+-*/eE (Scientific notation input)", - "name": "ImGuiInputTextFlags_CharsScientific", + "comment": "// Callback on pressing TAB (for completion handling)", + "name": "ImGuiInputTextFlags_CallbackCompletion", "value": "1 << 17" }, { "calc_value": 262144, - "comment": "// Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)", - "name": "ImGuiInputTextFlags_CallbackResize", + "comment": "// Callback on pressing Up/Down arrows (for history handling)", + "name": "ImGuiInputTextFlags_CallbackHistory", "value": "1 << 18" }, { "calc_value": 524288, + "comment": "// Callback on each iteration. User code may query cursor position, modify text buffer.", + "name": "ImGuiInputTextFlags_CallbackAlways", + "value": "1 << 19" + }, + { + "calc_value": 1048576, + "comment": "// Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.", + "name": "ImGuiInputTextFlags_CallbackCharFilter", + "value": "1 << 20" + }, + { + "calc_value": 2097152, + "comment": "// Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)", + "name": "ImGuiInputTextFlags_CallbackResize", + "value": "1 << 21" + }, + { + "calc_value": 4194304, "comment": "// Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)", "name": "ImGuiInputTextFlags_CallbackEdit", - "value": "1 << 19" + "value": "1 << 22" + } + ], + "ImGuiItemFlagsPrivate_": [ + { + "calc_value": 1024, + "comment": "// false // Disable interactions (DOES NOT affect visuals, see BeginDisabled()/EndDisabled() for full disable feature, and github #211).", + "name": "ImGuiItemFlags_Disabled", + "value": "1 << 10" + }, + { + "calc_value": 2048, + "comment": "// false // [ALPHA] Allow hovering interactions but underlying value is not changed.", + "name": "ImGuiItemFlags_ReadOnly", + "value": "1 << 11" + }, + { + "calc_value": 4096, + "comment": "// false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)", + "name": "ImGuiItemFlags_MixedValue", + "value": "1 << 12" + }, + { + "calc_value": 8192, + "comment": "// false // Disable hoverable check in ItemHoverable()", + "name": "ImGuiItemFlags_NoWindowHoverableCheck", + "value": "1 << 13" + }, + { + "calc_value": 16384, + "comment": "// false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.", + "name": "ImGuiItemFlags_AllowOverlap", + "value": "1 << 14" }, { "calc_value": 1048576, - "comment": "// Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)", - "name": "ImGuiInputTextFlags_EscapeClearsAll", + "comment": "// false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.", + "name": "ImGuiItemFlags_Inputable", "value": "1 << 20" + }, + { + "calc_value": 2097152, + "comment": "// false // Set by SetNextItemSelectionUserData()", + "name": "ImGuiItemFlags_HasSelectionUserData", + "value": "1 << 21" + }, + { + "calc_value": 4194304, + "comment": "// false // Set by SetNextItemSelectionUserData()", + "name": "ImGuiItemFlags_IsMultiSelect", + "value": "1 << 22" + }, + { + "calc_value": 16, + "comment": "// Please don't change, use PushItemFlag() instead.", + "name": "ImGuiItemFlags_Default_", + "value": "ImGuiItemFlags_AutoClosePopups" } ], "ImGuiItemFlags_": [ { "calc_value": 0, + "comment": "// (Default)", "name": "ImGuiItemFlags_None", "value": "0" }, { "calc_value": 1, - "comment": "// false // Disable keyboard tabbing. This is a \"lighter\" version of ImGuiItemFlags_NoNav.", + "comment": "// false // Disable keyboard tabbing. This is a \"lighter\" version of ImGuiItemFlags_NoNav.", "name": "ImGuiItemFlags_NoTabStop", "value": "1 << 0" }, { "calc_value": 2, - "comment": "// false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.", - "name": "ImGuiItemFlags_ButtonRepeat", + "comment": "// false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls).", + "name": "ImGuiItemFlags_NoNav", "value": "1 << 1" }, { "calc_value": 4, - "comment": "// false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211", - "name": "ImGuiItemFlags_Disabled", + "comment": "// false // Disable item being a candidate for default focus (e.g. used by title bar items).", + "name": "ImGuiItemFlags_NoNavDefaultFocus", "value": "1 << 2" }, { "calc_value": 8, - "comment": "// false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls)", - "name": "ImGuiItemFlags_NoNav", + "comment": "// false // Any button-like behavior will have repeat mode enabled (based on io.KeyRepeatDelay and io.KeyRepeatRate values). Note that you can also call IsItemActive() after any button to tell if it is being held.", + "name": "ImGuiItemFlags_ButtonRepeat", "value": "1 << 3" }, { "calc_value": 16, - "comment": "// false // Disable item being a candidate for default focus (e.g. used by title bar items)", - "name": "ImGuiItemFlags_NoNavDefaultFocus", + "comment": "// true // MenuItem()/Selectable() automatically close their parent popup window.", + "name": "ImGuiItemFlags_AutoClosePopups", "value": "1 << 4" }, { "calc_value": 32, - "comment": "// false // Disable MenuItem/Selectable() automatically closing their popup window", - "name": "ImGuiItemFlags_SelectableDontClosePopup", + "comment": "// false // Allow submitting an item with the same identifier as an item already submitted this frame without triggering a warning tooltip if io.ConfigDebugHighlightIdConflicts is set.", + "name": "ImGuiItemFlags_AllowDuplicateId", "value": "1 << 5" - }, - { - "calc_value": 64, - "comment": "// false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)", - "name": "ImGuiItemFlags_MixedValue", - "value": "1 << 6" - }, - { - "calc_value": 128, - "comment": "// false // [ALPHA] Allow hovering interactions but underlying value is not changed.", - "name": "ImGuiItemFlags_ReadOnly", - "value": "1 << 7" - }, - { - "calc_value": 256, - "comment": "// false // Disable hoverable check in ItemHoverable()", - "name": "ImGuiItemFlags_NoWindowHoverableCheck", - "value": "1 << 8" - }, - { - "calc_value": 512, - "comment": "// false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.", - "name": "ImGuiItemFlags_AllowOverlap", - "value": "1 << 9" - }, - { - "calc_value": 1024, - "comment": "// false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.", - "name": "ImGuiItemFlags_Inputable", - "value": "1 << 10" - }, - { - "calc_value": 2048, - "comment": "// false // Set by SetNextItemSelectionUserData()", - "name": "ImGuiItemFlags_HasSelectionUserData", - "value": "1 << 11" } ], "ImGuiItemStatusFlags_": [ @@ -2519,9 +2641,15 @@ }, { "calc_value": 512, - "comment": "// g.LastItemData.ClipRect is valid", + "comment": "// g.LastItemData.ClipRect is valid.", "name": "ImGuiItemStatusFlags_HasClipRect", "value": "1 << 9" + }, + { + "calc_value": 1024, + "comment": "// g.LastItemData.Shortcut valid. Set by SetNextItemShortcut() -> ItemAdd().", + "name": "ImGuiItemStatusFlags_HasShortcut", + "value": "1 << 10" } ], "ImGuiKey": [ @@ -3349,7 +3477,7 @@ }, { "calc_value": 4096, - "comment": "// Ctrl", + "comment": "// Ctrl (non-macOS), Cmd (macOS)", "name": "ImGuiMod_Ctrl", "value": "1 << 12" }, @@ -3367,21 +3495,15 @@ }, { "calc_value": 32768, - "comment": "// Cmd/Super/Windows", + "comment": "// Windows/Super (non-macOS), Ctrl (macOS)", "name": "ImGuiMod_Super", "value": "1 << 15" }, { - "calc_value": 2048, - "comment": "// Alias for Ctrl (non-macOS) _or_ Super (macOS).", - "name": "ImGuiMod_Shortcut", - "value": "1 << 11" - }, - { - "calc_value": 63488, - "comment": "// 5-bits", + "calc_value": 61440, + "comment": "// 4-bits", "name": "ImGuiMod_Mask_", - "value": "0xF800" + "value": "0xF000" }, { "calc_value": 512, @@ -3466,23 +3588,33 @@ }, { "calc_value": 8, - "name": "ImGuiLocKey_DockingHideTabBar", + "name": "ImGuiLocKey_OpenLink_s", "value": "8" }, { "calc_value": 9, - "name": "ImGuiLocKey_DockingHoldShiftToDock", + "name": "ImGuiLocKey_CopyLink", "value": "9" }, { "calc_value": 10, - "name": "ImGuiLocKey_DockingDragToUndockOrMoveNode", + "name": "ImGuiLocKey_DockingHideTabBar", "value": "10" }, { "calc_value": 11, - "name": "ImGuiLocKey_COUNT", + "name": "ImGuiLocKey_DockingHoldShiftToDock", "value": "11" + }, + { + "calc_value": 12, + "name": "ImGuiLocKey_DockingDragToUndockOrMoveNode", + "value": "12" + }, + { + "calc_value": 13, + "name": "ImGuiLocKey_COUNT", + "value": "13" } ], "ImGuiLogType": [ @@ -3624,6 +3756,109 @@ "value": "3" } ], + "ImGuiMultiSelectFlags_": [ + { + "calc_value": 0, + "name": "ImGuiMultiSelectFlags_None", + "value": "0" + }, + { + "calc_value": 1, + "comment": "// Disable selecting more than one item. This is available to allow single-selection code to share same code/logic if desired. It essentially disables the main purpose of BeginMultiSelect() tho!", + "name": "ImGuiMultiSelectFlags_SingleSelect", + "value": "1 << 0" + }, + { + "calc_value": 2, + "comment": "// Disable CTRL+A shortcut to select all.", + "name": "ImGuiMultiSelectFlags_NoSelectAll", + "value": "1 << 1" + }, + { + "calc_value": 4, + "comment": "// Disable Shift+selection mouse/keyboard support (useful for unordered 2D selection). With BoxSelect is also ensure contiguous SetRange requests are not combined into one. This allows not handling interpolation in SetRange requests.", + "name": "ImGuiMultiSelectFlags_NoRangeSelect", + "value": "1 << 2" + }, + { + "calc_value": 8, + "comment": "// Disable selecting items when navigating (useful for e.g. supporting range-select in a list of checkboxes).", + "name": "ImGuiMultiSelectFlags_NoAutoSelect", + "value": "1 << 3" + }, + { + "calc_value": 16, + "comment": "// Disable clearing selection when navigating or selecting another one (generally used with ImGuiMultiSelectFlags_NoAutoSelect. useful for e.g. supporting range-select in a list of checkboxes).", + "name": "ImGuiMultiSelectFlags_NoAutoClear", + "value": "1 << 4" + }, + { + "calc_value": 32, + "comment": "// Disable clearing selection when clicking/selecting an already selected item.", + "name": "ImGuiMultiSelectFlags_NoAutoClearOnReselect", + "value": "1 << 5" + }, + { + "calc_value": 64, + "comment": "// Enable box-selection with same width and same x pos items (e.g. full row Selectable()). Box-selection works better with little bit of spacing between items hit-box in order to be able to aim at empty space.", + "name": "ImGuiMultiSelectFlags_BoxSelect1d", + "value": "1 << 6" + }, + { + "calc_value": 128, + "comment": "// Enable box-selection with varying width or varying x pos items support (e.g. different width labels, or 2D layout/grid). This is slower: alters clipping logic so that e.g. horizontal movements will update selection of normally clipped items.", + "name": "ImGuiMultiSelectFlags_BoxSelect2d", + "value": "1 << 7" + }, + { + "calc_value": 256, + "comment": "// Disable scrolling when box-selecting near edges of scope.", + "name": "ImGuiMultiSelectFlags_BoxSelectNoScroll", + "value": "1 << 8" + }, + { + "calc_value": 512, + "comment": "// Clear selection when pressing Escape while scope is focused.", + "name": "ImGuiMultiSelectFlags_ClearOnEscape", + "value": "1 << 9" + }, + { + "calc_value": 1024, + "comment": "// Clear selection when clicking on empty location within scope.", + "name": "ImGuiMultiSelectFlags_ClearOnClickVoid", + "value": "1 << 10" + }, + { + "calc_value": 2048, + "comment": "// Scope for _BoxSelect and _ClearOnClickVoid is whole window (Default). Use if BeginMultiSelect() covers a whole window or used a single time in same window.", + "name": "ImGuiMultiSelectFlags_ScopeWindow", + "value": "1 << 11" + }, + { + "calc_value": 4096, + "comment": "// Scope for _BoxSelect and _ClearOnClickVoid is rectangle encompassing BeginMultiSelect()/EndMultiSelect(). Use if BeginMultiSelect() is called multiple times in same window.", + "name": "ImGuiMultiSelectFlags_ScopeRect", + "value": "1 << 12" + }, + { + "calc_value": 8192, + "comment": "// Apply selection on mouse down when clicking on unselected item. (Default)", + "name": "ImGuiMultiSelectFlags_SelectOnClick", + "value": "1 << 13" + }, + { + "calc_value": 16384, + "comment": "// Apply selection on mouse release when clicking an unselected item. Allow dragging an unselected item without altering selection.", + "name": "ImGuiMultiSelectFlags_SelectOnClickRelease", + "value": "1 << 14" + }, + { + "calc_value": 65536, + "comment": "// [Temporary] Enable navigation wrapping on X axis. Provided as a convenience because we don't have a design for the general Nav API for this yet. When the more general feature be public we may obsolete this flag in favor of new one.", + "name": "ImGuiMultiSelectFlags_NavWrapX", + "value": "1 << 16" + } + ], "ImGuiNavHighlightFlags_": [ { "calc_value": 0, @@ -3765,6 +4000,12 @@ "comment": "// Do not alter the visible state of keyboard vs mouse nav highlight", "name": "ImGuiNavMoveFlags_NoSetNavHighlight", "value": "1 << 14" + }, + { + "calc_value": 32768, + "comment": "// (Experimental) Do not clear active id when applying move result", + "name": "ImGuiNavMoveFlags_NoClearActiveId", + "value": "1 << 15" } ], "ImGuiNextItemDataFlags_": [ @@ -3787,6 +4028,16 @@ "calc_value": 4, "name": "ImGuiNextItemDataFlags_HasShortcut", "value": "1 << 2" + }, + { + "calc_value": 8, + "name": "ImGuiNextItemDataFlags_HasRefVal", + "value": "1 << 3" + }, + { + "calc_value": 16, + "name": "ImGuiNextItemDataFlags_HasStorageID", + "value": "1 << 4" } ], "ImGuiNextWindowDataFlags_": [ @@ -3842,18 +4093,23 @@ }, { "calc_value": 512, - "name": "ImGuiNextWindowDataFlags_HasViewport", + "name": "ImGuiNextWindowDataFlags_HasRefreshPolicy", "value": "1 << 9" }, { "calc_value": 1024, - "name": "ImGuiNextWindowDataFlags_HasDock", + "name": "ImGuiNextWindowDataFlags_HasViewport", "value": "1 << 10" }, { "calc_value": 2048, - "name": "ImGuiNextWindowDataFlags_HasWindowClass", + "name": "ImGuiNextWindowDataFlags_HasDock", "value": "1 << 11" + }, + { + "calc_value": 4096, + "name": "ImGuiNextWindowDataFlags_HasWindowClass", + "value": "1 << 12" } ], "ImGuiOldColumnFlags_": [ @@ -4108,8 +4364,8 @@ }, { "calc_value": 1, - "comment": "// Clicking this doesn't close parent popup window", - "name": "ImGuiSelectableFlags_DontClosePopups", + "comment": "// Clicking this doesn't close parent popup window (overrides ImGuiItemFlags_AutoClosePopups)", + "name": "ImGuiSelectableFlags_NoAutoClosePopups", "value": "1 << 0" }, { @@ -4135,6 +4391,31 @@ "comment": "// (WIP) Hit testing to allow subsequent widgets to overlap this one", "name": "ImGuiSelectableFlags_AllowOverlap", "value": "1 << 4" + }, + { + "calc_value": 32, + "comment": "// Make the item be displayed as if it is hovered", + "name": "ImGuiSelectableFlags_Highlight", + "value": "1 << 5" + } + ], + "ImGuiSelectionRequestType": [ + { + "calc_value": 0, + "name": "ImGuiSelectionRequestType_None", + "value": "0" + }, + { + "calc_value": 1, + "comment": "// Request app to clear selection (if Selected==false) or select all items (if Selected==true). We cannot set RangeFirstItem/RangeLastItem as its contents is entirely up to user (not necessarily an index)", + "name": "ImGuiSelectionRequestType_SetAll", + "value": "1" + }, + { + "calc_value": 2, + "comment": "// Request app to select/unselect [RangeFirstItem..RangeLastItem] items (inclusive) based on value of Selected. Only EndMultiSelect() request this, app code can read after BeginMultiSelect() and it will always be false.", + "name": "ImGuiSelectionRequestType_SetRange", + "value": "2" } ], "ImGuiSeparatorFlags_": [ @@ -4195,16 +4476,22 @@ }, { "calc_value": 64, - "comment": "// Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)", + "comment": "// Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits).", "name": "ImGuiSliderFlags_NoRoundToFormat", "value": "1 << 6" }, { "calc_value": 128, - "comment": "// Disable CTRL+Click or Enter key allowing to input text directly into the widget", + "comment": "// Disable CTRL+Click or Enter key allowing to input text directly into the widget.", "name": "ImGuiSliderFlags_NoInput", "value": "1 << 7" }, + { + "calc_value": 256, + "comment": "// Enable wrapping around from max to min and from min to max (only supported by DragXXX() functions for now.", + "name": "ImGuiSliderFlags_WrapAround", + "value": "1 << 8" + }, { "calc_value": 1879048207, "comment": "// [Internal] We treat using those bits as being potentially a 'float power' argument from the previous API that has got miscast to this enum, and will trigger an assert if needed.", @@ -4212,7 +4499,7 @@ "value": "0x7000000F" } ], - "ImGuiSortDirection_": [ + "ImGuiSortDirection": [ { "calc_value": 0, "name": "ImGuiSortDirection_None", @@ -4372,50 +4659,74 @@ }, { "calc_value": 23, - "comment": "// float TabBarBorderSize", - "name": "ImGuiStyleVar_TabBarBorderSize", + "comment": "// float TabBorderSize", + "name": "ImGuiStyleVar_TabBorderSize", "value": "23" }, { "calc_value": 24, - "comment": "// ImVec2 ButtonTextAlign", - "name": "ImGuiStyleVar_ButtonTextAlign", + "comment": "// float TabBarBorderSize", + "name": "ImGuiStyleVar_TabBarBorderSize", "value": "24" }, { "calc_value": 25, - "comment": "// ImVec2 SelectableTextAlign", - "name": "ImGuiStyleVar_SelectableTextAlign", + "comment": "// float TabBarOverlineSize", + "name": "ImGuiStyleVar_TabBarOverlineSize", "value": "25" }, { "calc_value": 26, - "comment": "// float SeparatorTextBorderSize", - "name": "ImGuiStyleVar_SeparatorTextBorderSize", + "comment": "// float TableAngledHeadersAngle", + "name": "ImGuiStyleVar_TableAngledHeadersAngle", "value": "26" }, { "calc_value": 27, - "comment": "// ImVec2 SeparatorTextAlign", - "name": "ImGuiStyleVar_SeparatorTextAlign", + "comment": "// ImVec2 TableAngledHeadersTextAlign", + "name": "ImGuiStyleVar_TableAngledHeadersTextAlign", "value": "27" }, { "calc_value": 28, - "comment": "// ImVec2 SeparatorTextPadding", - "name": "ImGuiStyleVar_SeparatorTextPadding", + "comment": "// ImVec2 ButtonTextAlign", + "name": "ImGuiStyleVar_ButtonTextAlign", "value": "28" }, { "calc_value": 29, - "comment": "// float DockingSeparatorSize", - "name": "ImGuiStyleVar_DockingSeparatorSize", + "comment": "// ImVec2 SelectableTextAlign", + "name": "ImGuiStyleVar_SelectableTextAlign", "value": "29" }, { "calc_value": 30, - "name": "ImGuiStyleVar_COUNT", + "comment": "// float SeparatorTextBorderSize", + "name": "ImGuiStyleVar_SeparatorTextBorderSize", "value": "30" + }, + { + "calc_value": 31, + "comment": "// ImVec2 SeparatorTextAlign", + "name": "ImGuiStyleVar_SeparatorTextAlign", + "value": "31" + }, + { + "calc_value": 32, + "comment": "// ImVec2 SeparatorTextPadding", + "name": "ImGuiStyleVar_SeparatorTextPadding", + "value": "32" + }, + { + "calc_value": 33, + "comment": "// float DockingSeparatorSize", + "name": "ImGuiStyleVar_DockingSeparatorSize", + "value": "33" + }, + { + "calc_value": 34, + "name": "ImGuiStyleVar_COUNT", + "value": "34" } ], "ImGuiTabBarFlagsPrivate_": [ @@ -4481,23 +4792,29 @@ }, { "calc_value": 64, - "comment": "// Resize tabs when they don't fit", - "name": "ImGuiTabBarFlags_FittingPolicyResizeDown", + "comment": "// Draw selected overline markers over selected tab", + "name": "ImGuiTabBarFlags_DrawSelectedOverline", "value": "1 << 6" }, { "calc_value": 128, + "comment": "// Resize tabs when they don't fit", + "name": "ImGuiTabBarFlags_FittingPolicyResizeDown", + "value": "1 << 7" + }, + { + "calc_value": 256, "comment": "// Add scroll buttons when tabs don't fit", "name": "ImGuiTabBarFlags_FittingPolicyScroll", - "value": "1 << 7" + "value": "1 << 8" }, { - "calc_value": 192, + "calc_value": 384, "name": "ImGuiTabBarFlags_FittingPolicyMask_", "value": "ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll" }, { - "calc_value": 64, + "calc_value": 128, "name": "ImGuiTabBarFlags_FittingPolicyDefault_", "value": "ImGuiTabBarFlags_FittingPolicyResizeDown" } @@ -4693,7 +5010,7 @@ }, { "calc_value": 4096, - "comment": "// TableHeadersRow() will not submit horizontal label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers.", + "comment": "// TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call.", "name": "ImGuiTableColumnFlags_NoHeaderLabel", "value": "1 << 12" }, @@ -5041,15 +5358,21 @@ ], "ImGuiTreeNodeFlagsPrivate_": [ { - "calc_value": 1048576, + "calc_value": 268435456, + "comment": "// FIXME-WIP: Hard-coded for CollapsingHeader()", "name": "ImGuiTreeNodeFlags_ClipLabelForTrailingButton", - "value": "1 << 20" + "value": "1 << 28" }, { - "calc_value": 2097152, - "comment": "// (FIXME-WIP) Turn Down arrow into an Up arrow, but reversed trees (#6517)", + "calc_value": 536870912, + "comment": "// FIXME-WIP: Turn Down arrow into an Up arrow, but reversed trees (#6517)", "name": "ImGuiTreeNodeFlags_UpsideDownArrow", - "value": "1 << 21" + "value": "1 << 29" + }, + { + "calc_value": 192, + "name": "ImGuiTreeNodeFlags_OpenOnMask_", + "value": "ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_OpenOnArrow" } ], "ImGuiTreeNodeFlags_": [ @@ -5096,13 +5419,13 @@ }, { "calc_value": 64, - "comment": "// Need double-click to open node", + "comment": "// Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.", "name": "ImGuiTreeNodeFlags_OpenOnDoubleClick", "value": "1 << 6" }, { "calc_value": 128, - "comment": "// Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open.", + "comment": "// Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.", "name": "ImGuiTreeNodeFlags_OpenOnArrow", "value": "1 << 7" }, @@ -5120,33 +5443,39 @@ }, { "calc_value": 1024, - "comment": "// Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding().", + "comment": "// Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node.", "name": "ImGuiTreeNodeFlags_FramePadding", "value": "1 << 10" }, { "calc_value": 2048, - "comment": "// Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default.", + "comment": "// Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.", "name": "ImGuiTreeNodeFlags_SpanAvailWidth", "value": "1 << 11" }, { "calc_value": 4096, - "comment": "// Extend hit box to the left-most and right-most edges (bypass the indented area).", + "comment": "// Extend hit box to the left-most and right-most edges (cover the indent area).", "name": "ImGuiTreeNodeFlags_SpanFullWidth", "value": "1 << 12" }, { "calc_value": 8192, - "comment": "// Frame will span all columns of its container table (text will still fit in current column)", - "name": "ImGuiTreeNodeFlags_SpanAllColumns", + "comment": "// Narrow hit box + narrow hovering highlight, will only cover the label text.", + "name": "ImGuiTreeNodeFlags_SpanTextWidth", "value": "1 << 13" }, { "calc_value": 16384, + "comment": "// Frame will span all columns of its container table (text will still fit in current column)", + "name": "ImGuiTreeNodeFlags_SpanAllColumns", + "value": "1 << 14" + }, + { + "calc_value": 32768, "comment": "// (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop)", "name": "ImGuiTreeNodeFlags_NavLeftJumpsBackHere", - "value": "1 << 14" + "value": "1 << 15" }, { "calc_value": 26, @@ -5193,7 +5522,7 @@ }, { "calc_value": 4, - "comment": "// Platform Window: Was created/managed by the user application? (rather than our backend)", + "comment": "// Platform Window: Is created/managed by the user application? (rather than our backend)", "name": "ImGuiViewportFlags_OwnedByApp", "value": "1 << 2" }, @@ -5272,33 +5601,43 @@ }, { "calc_value": 1, - "name": "ImGuiWindowDockStyleCol_Tab", + "name": "ImGuiWindowDockStyleCol_TabHovered", "value": "1" }, { "calc_value": 2, - "name": "ImGuiWindowDockStyleCol_TabHovered", + "name": "ImGuiWindowDockStyleCol_TabFocused", "value": "2" }, { "calc_value": 3, - "name": "ImGuiWindowDockStyleCol_TabActive", + "name": "ImGuiWindowDockStyleCol_TabSelected", "value": "3" }, { "calc_value": 4, - "name": "ImGuiWindowDockStyleCol_TabUnfocused", + "name": "ImGuiWindowDockStyleCol_TabSelectedOverline", "value": "4" }, { "calc_value": 5, - "name": "ImGuiWindowDockStyleCol_TabUnfocusedActive", + "name": "ImGuiWindowDockStyleCol_TabDimmed", "value": "5" }, { "calc_value": 6, - "name": "ImGuiWindowDockStyleCol_COUNT", + "name": "ImGuiWindowDockStyleCol_TabDimmedSelected", "value": "6" + }, + { + "calc_value": 7, + "name": "ImGuiWindowDockStyleCol_TabDimmedSelectedOverline", + "value": "7" + }, + { + "calc_value": 8, + "name": "ImGuiWindowDockStyleCol_COUNT", + "value": "8" } ], "ImGuiWindowFlags_": [ @@ -5442,12 +5781,6 @@ "name": "ImGuiWindowFlags_NoInputs", "value": "ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus" }, - { - "calc_value": 8388608, - "comment": "// [BETA] On child window: share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows.", - "name": "ImGuiWindowFlags_NavFlattened", - "value": "1 << 23" - }, { "calc_value": 16777216, "comment": "// Don't use! For internal use by BeginChild()", @@ -5484,208 +5817,244 @@ "name": "ImGuiWindowFlags_DockNodeHost", "value": "1 << 29" } + ], + "ImGuiWindowRefreshFlags_": [ + { + "calc_value": 0, + "name": "ImGuiWindowRefreshFlags_None", + "value": "0" + }, + { + "calc_value": 1, + "comment": "// [EXPERIMENTAL] Try to keep existing contents, USER MUST NOT HONOR BEGIN() RETURNING FALSE AND NOT APPEND.", + "name": "ImGuiWindowRefreshFlags_TryToAvoidRefresh", + "value": "1 << 0" + }, + { + "calc_value": 2, + "comment": "// [EXPERIMENTAL] Always refresh on hover", + "name": "ImGuiWindowRefreshFlags_RefreshOnHover", + "value": "1 << 1" + }, + { + "calc_value": 4, + "comment": "// [EXPERIMENTAL] Always refresh on focus", + "name": "ImGuiWindowRefreshFlags_RefreshOnFocus", + "value": "1 << 2" + } ] }, "enumtypes": { + "ImGuiDir": "int", "ImGuiKey": "int", "ImGuiLocKey": "int", - "ImGuiMouseSource": "int" + "ImGuiMouseSource": "int", + "ImGuiSortDirection": "ImU8" }, "locations": { - "ImBitVector": "imgui_internal:612", - "ImColor": "imgui:2664", - "ImDrawChannel": "imgui:2754", - "ImDrawCmd": "imgui:2713", - "ImDrawCmdHeader": "imgui:2746", - "ImDrawData": "imgui:2949", - "ImDrawDataBuilder": "imgui_internal:798", - "ImDrawFlags_": "imgui:2780", - "ImDrawList": "imgui:2818", - "ImDrawListFlags_": "imgui:2800", - "ImDrawListSharedData": "imgui_internal:775", - "ImDrawListSplitter": "imgui:2763", - "ImDrawVert": "imgui:2731", - "ImFont": "imgui:3172", - "ImFontAtlas": "imgui:3068", - "ImFontAtlasCustomRect": "imgui:3030", - "ImFontAtlasFlags_": "imgui:3043", - "ImFontBuilderIO": "imgui_internal:3842", - "ImFontConfig": "imgui:2973", - "ImFontGlyph": "imgui:3003", - "ImFontGlyphRangesBuilder": "imgui:3015", + "ImBitVector": "imgui_internal:607", + "ImColor": "imgui:2845", + "ImDrawChannel": "imgui:3083", + "ImDrawCmd": "imgui:3042", + "ImDrawCmdHeader": "imgui:3075", + "ImDrawData": "imgui:3288", + "ImDrawDataBuilder": "imgui_internal:796", + "ImDrawFlags_": "imgui:3109", + "ImDrawList": "imgui:3147", + "ImDrawListFlags_": "imgui:3129", + "ImDrawListSharedData": "imgui_internal:772", + "ImDrawListSplitter": "imgui:3092", + "ImDrawVert": "imgui:3060", + "ImFont": "imgui:3511", + "ImFontAtlas": "imgui:3407", + "ImFontAtlasCustomRect": "imgui:3369", + "ImFontAtlasFlags_": "imgui:3382", + "ImFontBuilderIO": "imgui_internal:3983", + "ImFontConfig": "imgui:3312", + "ImFontGlyph": "imgui:3342", + "ImFontGlyphRangesBuilder": "imgui:3354", "ImGuiActivateFlags_": "imgui_internal:1550", - "ImGuiAxis": "imgui_internal:985", - "ImGuiBackendFlags_": "imgui:1547", - "ImGuiButtonFlagsPrivate_": "imgui_internal:879", - "ImGuiButtonFlags_": "imgui:1666", - "ImGuiChildFlags_": "imgui:1082", - "ImGuiCol_": "imgui:1562", - "ImGuiColorEditFlags_": "imgui:1679", - "ImGuiColorMod": "imgui_internal:999", - "ImGuiComboFlagsPrivate_": "imgui_internal:904", - "ImGuiComboFlags_": "imgui:1194", - "ImGuiComboPreviewData": "imgui_internal:1016", - "ImGuiCond_": "imgui:1780", - "ImGuiConfigFlags_": "imgui:1522", - "ImGuiContext": "imgui_internal:2105", - "ImGuiContextHook": "imgui_internal:2090", - "ImGuiContextHookType": "imgui_internal:2088", - "ImGuiDataAuthority_": "imgui_internal:1776", - "ImGuiDataTypeInfo": "imgui_internal:1281", - "ImGuiDataTypePrivate_": "imgui_internal:1290", - "ImGuiDataTypeTempStorage": "imgui_internal:1275", - "ImGuiDataType_": "imgui:1335", - "ImGuiDataVarInfo": "imgui_internal:1267", - "ImGuiDebugAllocEntry": "imgui_internal:2024", - "ImGuiDebugAllocInfo": "imgui_internal:2031", - "ImGuiDebugLogFlags_": "imgui_internal:2004", - "ImGuiDir_": "imgui:1351", - "ImGuiDockContext": "imgui_internal:1875", - "ImGuiDockNode": "imgui_internal:1792", - "ImGuiDockNodeFlagsPrivate_": "imgui_internal:1747", - "ImGuiDockNodeFlags_": "imgui:1294", - "ImGuiDockNodeState": "imgui_internal:1783", - "ImGuiDragDropFlags_": "imgui:1313", - "ImGuiFocusRequestFlags_": "imgui_internal:948", - "ImGuiFocusScopeData": "imgui_internal:1627", - "ImGuiFocusedFlags_": "imgui:1240", - "ImGuiGroupData": "imgui_internal:1029", - "ImGuiHoveredFlagsPrivate_": "imgui_internal:862", - "ImGuiHoveredFlags_": "imgui:1254", - "ImGuiIDStackTool": "imgui_internal:2071", - "ImGuiIO": "imgui:2136", - "ImGuiInputEvent": "imgui_internal:1385", - "ImGuiInputEventAppFocused": "imgui_internal:1383", - "ImGuiInputEventKey": "imgui_internal:1381", - "ImGuiInputEventMouseButton": "imgui_internal:1379", - "ImGuiInputEventMousePos": "imgui_internal:1377", - "ImGuiInputEventMouseViewport": "imgui_internal:1380", - "ImGuiInputEventMouseWheel": "imgui_internal:1378", - "ImGuiInputEventText": "imgui_internal:1382", - "ImGuiInputEventType": "imgui_internal:1352", - "ImGuiInputFlags_": "imgui_internal:1450", - "ImGuiInputSource": "imgui_internal:1365", - "ImGuiInputTextCallbackData": "imgui:2356", - "ImGuiInputTextDeactivatedState": "imgui_internal:1065", - "ImGuiInputTextFlagsPrivate_": "imgui_internal:870", - "ImGuiInputTextFlags_": "imgui:1097", - "ImGuiInputTextState": "imgui_internal:1075", - "ImGuiItemFlags_": "imgui_internal:815", - "ImGuiItemStatusFlags_": "imgui_internal:837", - "ImGuiKey": "imgui:1380", - "ImGuiKeyData": "imgui:2128", - "ImGuiKeyOwnerData": "imgui_internal:1438", - "ImGuiKeyRoutingData": "imgui_internal:1412", - "ImGuiKeyRoutingTable": "imgui_internal:1426", - "ImGuiLastItemData": "imgui_internal:1198", - "ImGuiLayoutType_": "imgui_internal:969", - "ImGuiListClipper": "imgui:2578", + "ImGuiAxis": "imgui_internal:1018", + "ImGuiBackendFlags_": "imgui:1679", + "ImGuiBoxSelectState": "imgui_internal:1733", + "ImGuiButtonFlagsPrivate_": "imgui_internal:911", + "ImGuiButtonFlags_": "imgui:1812", + "ImGuiChildFlags_": "imgui:1148", + "ImGuiCol_": "imgui:1694", + "ImGuiColorEditFlags_": "imgui:1823", + "ImGuiColorMod": "imgui_internal:1032", + "ImGuiComboFlagsPrivate_": "imgui_internal:936", + "ImGuiComboFlags_": "imgui:1291", + "ImGuiComboPreviewData": "imgui_internal:1049", + "ImGuiCond_": "imgui:1925", + "ImGuiConfigFlags_": "imgui:1653", + "ImGuiContext": "imgui_internal:2184", + "ImGuiContextHook": "imgui_internal:2169", + "ImGuiContextHookType": "imgui_internal:2167", + "ImGuiDataAuthority_": "imgui_internal:1844", + "ImGuiDataTypeInfo": "imgui_internal:822", + "ImGuiDataTypePrivate_": "imgui_internal:831", + "ImGuiDataTypeStorage": "imgui_internal:816", + "ImGuiDataType_": "imgui:1439", + "ImGuiDataVarInfo": "imgui_internal:808", + "ImGuiDebugAllocEntry": "imgui_internal:2103", + "ImGuiDebugAllocInfo": "imgui_internal:2110", + "ImGuiDebugLogFlags_": "imgui_internal:2083", + "ImGuiDir": "imgui:1456", + "ImGuiDockContext": "imgui_internal:1946", + "ImGuiDockNode": "imgui_internal:1860", + "ImGuiDockNodeFlagsPrivate_": "imgui_internal:1814", + "ImGuiDockNodeFlags_": "imgui:1392", + "ImGuiDockNodeState": "imgui_internal:1851", + "ImGuiDragDropFlags_": "imgui:1411", + "ImGuiFocusRequestFlags_": "imgui_internal:981", + "ImGuiFocusScopeData": "imgui_internal:1630", + "ImGuiFocusedFlags_": "imgui:1338", + "ImGuiGroupData": "imgui_internal:1062", + "ImGuiHoveredFlagsPrivate_": "imgui_internal:893", + "ImGuiHoveredFlags_": "imgui:1352", + "ImGuiIDStackTool": "imgui_internal:2150", + "ImGuiIO": "imgui:2298", + "ImGuiInputEvent": "imgui_internal:1410", + "ImGuiInputEventAppFocused": "imgui_internal:1408", + "ImGuiInputEventKey": "imgui_internal:1406", + "ImGuiInputEventMouseButton": "imgui_internal:1404", + "ImGuiInputEventMousePos": "imgui_internal:1402", + "ImGuiInputEventMouseViewport": "imgui_internal:1405", + "ImGuiInputEventMouseWheel": "imgui_internal:1403", + "ImGuiInputEventText": "imgui_internal:1407", + "ImGuiInputEventType": "imgui_internal:1378", + "ImGuiInputFlagsPrivate_": "imgui_internal:1477", + "ImGuiInputFlags_": "imgui:1618", + "ImGuiInputSource": "imgui_internal:1391", + "ImGuiInputTextCallbackData": "imgui:2524", + "ImGuiInputTextDeactivatedState": "imgui_internal:1098", + "ImGuiInputTextFlagsPrivate_": "imgui_internal:901", + "ImGuiInputTextFlags_": "imgui:1182", + "ImGuiInputTextState": "imgui_internal:1120", + "ImGuiItemFlagsPrivate_": "imgui_internal:845", + "ImGuiItemFlags_": "imgui:1169", + "ImGuiItemStatusFlags_": "imgui_internal:867", + "ImGuiKey": "imgui:1485", + "ImGuiKeyData": "imgui:2290", + "ImGuiKeyOwnerData": "imgui_internal:1464", + "ImGuiKeyRoutingData": "imgui_internal:1438", + "ImGuiKeyRoutingTable": "imgui_internal:1452", + "ImGuiLastItemData": "imgui_internal:1254", + "ImGuiLayoutType_": "imgui_internal:1002", + "ImGuiListClipper": "imgui:2753", "ImGuiListClipperData": "imgui_internal:1534", "ImGuiListClipperRange": "imgui_internal:1521", - "ImGuiLocEntry": "imgui_internal:1993", - "ImGuiLocKey": "imgui_internal:1977", - "ImGuiLogType": "imgui_internal:975", - "ImGuiMenuColumns": "imgui_internal:1047", - "ImGuiMetricsConfig": "imgui_internal:2041", - "ImGuiMouseButton_": "imgui:1740", - "ImGuiMouseCursor_": "imgui:1750", - "ImGuiMouseSource": "imgui:1769", + "ImGuiLocEntry": "imgui_internal:2072", + "ImGuiLocKey": "imgui_internal:2054", + "ImGuiLogType": "imgui_internal:1008", + "ImGuiMenuColumns": "imgui_internal:1080", + "ImGuiMetricsConfig": "imgui_internal:2120", + "ImGuiMouseButton_": "imgui:1885", + "ImGuiMouseCursor_": "imgui:1895", + "ImGuiMouseSource": "imgui:1914", + "ImGuiMultiSelectFlags_": "imgui:2903", + "ImGuiMultiSelectIO": "imgui:2930", + "ImGuiMultiSelectState": "imgui_internal:1790", + "ImGuiMultiSelectTempData": "imgui_internal:1765", "ImGuiNavHighlightFlags_": "imgui_internal:1575", - "ImGuiNavItemData": "imgui_internal:1611", - "ImGuiNavLayer": "imgui_internal:1604", + "ImGuiNavItemData": "imgui_internal:1613", + "ImGuiNavLayer": "imgui_internal:1605", "ImGuiNavMoveFlags_": "imgui_internal:1583", - "ImGuiNavTreeNodeData": "imgui_internal:1215", - "ImGuiNextItemData": "imgui_internal:1182", - "ImGuiNextItemDataFlags_": "imgui_internal:1174", - "ImGuiNextWindowData": "imgui_internal:1142", - "ImGuiNextWindowDataFlags_": "imgui_internal:1124", - "ImGuiOldColumnData": "imgui_internal:1695", - "ImGuiOldColumnFlags_": "imgui_internal:1675", - "ImGuiOldColumns": "imgui_internal:1705", - "ImGuiOnceUponAFrame": "imgui:2454", - "ImGuiPayload": "imgui:2419", - "ImGuiPlatformIO": "imgui:3342", - "ImGuiPlatformImeData": "imgui:3415", - "ImGuiPlatformMonitor": "imgui:3405", - "ImGuiPlotType": "imgui_internal:992", - "ImGuiPopupData": "imgui_internal:1309", - "ImGuiPopupFlags_": "imgui:1161", - "ImGuiPopupPositionPolicy": "imgui_internal:1301", - "ImGuiPtrOrIndex": "imgui_internal:1254", + "ImGuiNextItemData": "imgui_internal:1234", + "ImGuiNextItemDataFlags_": "imgui_internal:1224", + "ImGuiNextWindowData": "imgui_internal:1195", + "ImGuiNextWindowDataFlags_": "imgui_internal:1176", + "ImGuiOldColumnData": "imgui_internal:1698", + "ImGuiOldColumnFlags_": "imgui_internal:1678", + "ImGuiOldColumns": "imgui_internal:1708", + "ImGuiOnceUponAFrame": "imgui:2624", + "ImGuiPayload": "imgui:2589", + "ImGuiPlatformIO": "imgui:3682", + "ImGuiPlatformImeData": "imgui:3781", + "ImGuiPlatformMonitor": "imgui:3771", + "ImGuiPlotType": "imgui_internal:1025", + "ImGuiPopupData": "imgui_internal:1335", + "ImGuiPopupFlags_": "imgui:1256", + "ImGuiPopupPositionPolicy": "imgui_internal:1327", + "ImGuiPtrOrIndex": "imgui_internal:1314", "ImGuiScrollFlags_": "imgui_internal:1561", - "ImGuiSelectableFlagsPrivate_": "imgui_internal:917", - "ImGuiSelectableFlags_": "imgui:1179", - "ImGuiSeparatorFlags_": "imgui_internal:937", - "ImGuiSettingsHandler": "imgui_internal:1957", - "ImGuiShrinkWidthItem": "imgui_internal:1247", - "ImGuiSizeCallbackData": "imgui:2388", - "ImGuiSliderFlagsPrivate_": "imgui_internal:910", - "ImGuiSliderFlags_": "imgui:1725", - "ImGuiSortDirection_": "imgui:1362", - "ImGuiStackLevelInfo": "imgui_internal:2059", - "ImGuiStackSizes": "imgui_internal:1222", - "ImGuiStorage": "imgui:2516", - "ImGuiStoragePair": "imgui:2519", - "ImGuiStyle": "imgui:2057", - "ImGuiStyleMod": "imgui_internal:1006", - "ImGuiStyleVar_": "imgui:1629", - "ImGuiTabBar": "imgui_internal:2903", - "ImGuiTabBarFlagsPrivate_": "imgui_internal:2866", - "ImGuiTabBarFlags_": "imgui:1209", - "ImGuiTabItem": "imgui_internal:2883", - "ImGuiTabItemFlagsPrivate_": "imgui_internal:2874", - "ImGuiTabItemFlags_": "imgui:1225", - "ImGuiTable": "imgui_internal:3038", - "ImGuiTableBgTarget_": "imgui:1921", - "ImGuiTableCellData": "imgui_internal:3016", - "ImGuiTableColumn": "imgui_internal:2957", - "ImGuiTableColumnFlags_": "imgui:1868", - "ImGuiTableColumnSettings": "imgui_internal:3183", - "ImGuiTableColumnSortSpecs": "imgui:1943", - "ImGuiTableFlags_": "imgui:1815", - "ImGuiTableInstanceData": "imgui_internal:3024", - "ImGuiTableRowFlags_": "imgui:1906", - "ImGuiTableSettings": "imgui_internal:3207", - "ImGuiTableSortSpecs": "imgui:1933", - "ImGuiTableTempData": "imgui_internal:3161", - "ImGuiTextBuffer": "imgui:2489", - "ImGuiTextFilter": "imgui:2462", - "ImGuiTextFlags_": "imgui_internal:955", - "ImGuiTextIndex": "imgui_internal:732", - "ImGuiTextRange": "imgui:2472", - "ImGuiTooltipFlags_": "imgui_internal:961", - "ImGuiTreeNodeFlagsPrivate_": "imgui_internal:931", - "ImGuiTreeNodeFlags_": "imgui:1127", - "ImGuiTypingSelectFlags_": "imgui_internal:1638", - "ImGuiTypingSelectRequest": "imgui_internal:1646", - "ImGuiTypingSelectState": "imgui_internal:1657", - "ImGuiViewport": "imgui:3258", - "ImGuiViewportFlags_": "imgui:3230", - "ImGuiViewportP": "imgui_internal:1892", - "ImGuiWindow": "imgui_internal:2715", - "ImGuiWindowClass": "imgui:2403", - "ImGuiWindowDockStyle": "imgui_internal:1870", - "ImGuiWindowDockStyleCol": "imgui_internal:1859", - "ImGuiWindowFlags_": "imgui:1031", - "ImGuiWindowSettings": "imgui_internal:1938", - "ImGuiWindowStackData": "imgui_internal:1240", - "ImGuiWindowTempData": "imgui_internal:2665", - "ImRect": "imgui_internal:534", - "ImVec1": "imgui_internal:516", - "ImVec2": "imgui:269", - "ImVec2ih": "imgui_internal:524", - "ImVec4": "imgui:282", - "STB_TexteditState": "imstb_textedit:321", - "StbTexteditRow": "imstb_textedit:368", - "StbUndoRecord": "imstb_textedit:303", - "StbUndoState": "imstb_textedit:312" + "ImGuiSelectableFlagsPrivate_": "imgui_internal:949", + "ImGuiSelectableFlags_": "imgui:1274", + "ImGuiSelectionBasicStorage": "imgui:2976", + "ImGuiSelectionExternalStorage": "imgui:2999", + "ImGuiSelectionRequest": "imgui:2950", + "ImGuiSelectionRequestType": "imgui:2942", + "ImGuiSeparatorFlags_": "imgui_internal:970", + "ImGuiSettingsHandler": "imgui_internal:2034", + "ImGuiShrinkWidthItem": "imgui_internal:1307", + "ImGuiSizeCallbackData": "imgui:2558", + "ImGuiSliderFlagsPrivate_": "imgui_internal:942", + "ImGuiSliderFlags_": "imgui:1869", + "ImGuiSortDirection": "imgui:1467", + "ImGuiStackLevelInfo": "imgui_internal:2138", + "ImGuiStackSizes": "imgui_internal:1281", + "ImGuiStorage": "imgui:2696", + "ImGuiStoragePair": "imgui:2679", + "ImGuiStyle": "imgui:2212", + "ImGuiStyleMod": "imgui_internal:1039", + "ImGuiStyleVar_": "imgui:1771", + "ImGuiTabBar": "imgui_internal:3013", + "ImGuiTabBarFlagsPrivate_": "imgui_internal:2976", + "ImGuiTabBarFlags_": "imgui:1306", + "ImGuiTabItem": "imgui_internal:2993", + "ImGuiTabItemFlagsPrivate_": "imgui_internal:2984", + "ImGuiTabItemFlags_": "imgui:1323", + "ImGuiTable": "imgui_internal:3159", + "ImGuiTableBgTarget_": "imgui:2066", + "ImGuiTableCellData": "imgui_internal:3127", + "ImGuiTableColumn": "imgui_internal:3067", + "ImGuiTableColumnFlags_": "imgui:2013", + "ImGuiTableColumnSettings": "imgui_internal:3306", + "ImGuiTableColumnSortSpecs": "imgui:2088", + "ImGuiTableFlags_": "imgui:1960", + "ImGuiTableHeaderData": "imgui_internal:3136", + "ImGuiTableInstanceData": "imgui_internal:3146", + "ImGuiTableRowFlags_": "imgui:2051", + "ImGuiTableSettings": "imgui_internal:3330", + "ImGuiTableSortSpecs": "imgui:2078", + "ImGuiTableTempData": "imgui_internal:3283", + "ImGuiTextBuffer": "imgui:2659", + "ImGuiTextFilter": "imgui:2632", + "ImGuiTextFlags_": "imgui_internal:988", + "ImGuiTextIndex": "imgui_internal:727", + "ImGuiTextRange": "imgui:2642", + "ImGuiTooltipFlags_": "imgui_internal:994", + "ImGuiTreeNodeFlagsPrivate_": "imgui_internal:963", + "ImGuiTreeNodeFlags_": "imgui:1221", + "ImGuiTreeNodeStackData": "imgui_internal:1273", + "ImGuiTypingSelectFlags_": "imgui_internal:1641", + "ImGuiTypingSelectRequest": "imgui_internal:1649", + "ImGuiTypingSelectState": "imgui_internal:1660", + "ImGuiViewport": "imgui:3597", + "ImGuiViewportFlags_": "imgui:3569", + "ImGuiViewportP": "imgui_internal:1963", + "ImGuiWindow": "imgui_internal:2824", + "ImGuiWindowClass": "imgui:2573", + "ImGuiWindowDockStyle": "imgui_internal:1941", + "ImGuiWindowDockStyleCol": "imgui_internal:1927", + "ImGuiWindowFlags_": "imgui:1097", + "ImGuiWindowRefreshFlags_": "imgui_internal:1167", + "ImGuiWindowSettings": "imgui_internal:2015", + "ImGuiWindowStackData": "imgui_internal:1299", + "ImGuiWindowTempData": "imgui_internal:2774", + "ImRect": "imgui_internal:529", + "ImVec1": "imgui_internal:511", + "ImVec2": "imgui:293", + "ImVec2ih": "imgui_internal:519", + "ImVec4": "imgui:306" }, "struct_comments": { "ImBitVector": { "above": "// Helper: ImBitVector\n// Store 1-bit per value." }, "ImColor": { - "above": "// Helpers: ImVec2/ImVec4 operators\n// - It is important that we are keeping those disabled by default so they don't leak in user space.\n// - This is in order to allow user enabling implicit cast operators between ImVec2/ImVec4 and their own types (using IM_VEC2_CLASS_EXTRA in imconfig.h)\n// - You can use '#define IMGUI_DEFINE_MATH_OPERATORS' to import our operators, provided as a courtesy.\n// Helpers macros to generate 32-bit encoded colors\n// User can declare their own format by #defining the 5 _SHIFT/_MASK macros in their imconfig file.\n// Helper: ImColor() implicitly converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)\n// Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API.\n// **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class. MAY OBSOLETE.\n// **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. Explicitly cast to ImU32 or ImVec4 if needed." + "above": "// Helpers: ImVec2/ImVec4 operators\n// - It is important that we are keeping those disabled by default so they don't leak in user space.\n// - This is in order to allow user enabling implicit cast operators between ImVec2/ImVec4 and their own types (using IM_VEC2_CLASS_EXTRA in imconfig.h)\n// - Add '#define IMGUI_DEFINE_MATH_OPERATORS' before including this file (or in imconfig.h) to access courtesy maths operators for ImVec2 and ImVec4.\n// Helpers macros to generate 32-bit encoded colors\n// User can declare their own format by #defining the 5 _SHIFT/_MASK macros in their imconfig file.\n// Helper: ImColor() implicitly converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)\n// Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API.\n// **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class. MAY OBSOLETE.\n// **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. Explicitly cast to ImU32 or ImVec4 if needed." }, "ImDrawChannel": { "above": "// [Internal] For use by ImDrawListSplitter" @@ -5738,6 +6107,9 @@ "ImGuiDockNode": { "above": "// sizeof() 156~192" }, + "ImGuiFocusScopeData": { + "above": "// Storage for PushFocusScope()" + }, "ImGuiGroupData": { "above": "// Stacked storage data for BeginGroup()/EndGroup()" }, @@ -5754,7 +6126,7 @@ "above": "// Internal temporary state for deactivating InputText() instances." }, "ImGuiInputTextState": { - "above": "\n// Internal state of the currently focused/edited text input box\n// For a given item ID, access with ImGui::GetInputTextState()" + "above": "// Internal state of the currently focused/edited text input box\n// For a given item ID, access with ImGui::GetInputTextState()" }, "ImGuiKeyData": { "above": "// [Internal] Storage used by IsKeyDown(), IsKeyPressed() etc functions.\n// If prior to 1.87 you used io.KeysDownDuration[] (which was marked as internal), you should use GetKeyData(key)->DownDuration and *NOT* io.KeysData[key]->DownDuration." @@ -5783,8 +6155,17 @@ "ImGuiMenuColumns": { "above": "// Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper." }, - "ImGuiNavTreeNodeData": { - "above": "// Store data emitted by TreeNode() for usage by TreePop() to implement ImGuiTreeNodeFlags_NavLeftJumpsBackHere.\n// This is the minimum amount of data that we need to perform the equivalent of NavApplyItemToResult() and which we can't infer in TreePop()\n// Only stored when the node is a potential candidate for landing on a Left arrow jump." + "ImGuiMultiSelectIO": { + "above": "// Main IO structure returned by BeginMultiSelect()/EndMultiSelect().\n// This mainly contains a list of selection requests.\n// - Use 'Demo->Tools->Debug Log->Selection' to see requests as they happen.\n// - Some fields are only useful if your list is dynamic and allows deletion (getting post-deletion focus/state right is shown in the demo)\n// - Below: who reads/writes each fields? 'r'=read, 'w'=write, 'ms'=multi-select code, 'app'=application/user code." + }, + "ImGuiMultiSelectState": { + "above": "// Persistent storage for multi-select (as long as selection is alive)" + }, + "ImGuiMultiSelectTempData": { + "above": "// Temporary storage for multi-select" + }, + "ImGuiNavItemData": { + "above": "// Storage for navigation query/results" }, "ImGuiNextWindowData": { "above": "// Storage for SetNexWindow** functions" @@ -5796,10 +6177,10 @@ "above": "// Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload()" }, "ImGuiPlatformIO": { - "above": "// (Optional) Access via ImGui::GetPlatformIO()" + "above": "// Access via ImGui::GetPlatformIO()" }, "ImGuiPlatformImeData": { - "above": "// (Optional) Support for IME (Input Method Editor) via the io.SetPlatformImeDataFn() function." + "above": "// (Optional) Support for IME (Input Method Editor) via the platform_io.Platform_SetImeDataFn() function." }, "ImGuiPlatformMonitor": { "above": "// (Optional) This is required when enabling multi-viewport. Represent the bounds of each connected monitor/display and their DPI.\n// We use this information for multiple DPI support + clamping the position of popups and tooltips so they don't straddle multiple monitors." @@ -5807,6 +6188,15 @@ "ImGuiPopupData": { "above": "// Storage for popup stacks (g.OpenPopupStack and g.BeginPopupStack)" }, + "ImGuiSelectionBasicStorage": { + "above": "// Optional helper to store multi-selection state + apply multi-selection requests.\n// - Used by our demos and provided as a convenience to easily implement basic multi-selection.\n// - Iterate selection with 'void* it = NULL; ImGuiID id; while (selection.GetNextSelectedItem(&it, &id)) ... '\n// Or you can check 'if (Contains(id)) ... ' for each possible object if their number is not too high to iterate.\n// - USING THIS IS NOT MANDATORY. This is only a helper and not a required API.\n// To store a multi-selection, in your application you could:\n// - Use this helper as a convenience. We use our simple key->value ImGuiStorage as a std::set replacement.\n// - Use your own external storage: e.g. std::set, std::vector, interval trees, intrusively stored selection etc.\n// In ImGuiSelectionBasicStorage we:\n// - always use indices in the multi-selection API (passed to SetNextItemSelectionUserData(), retrieved in ImGuiMultiSelectIO)\n// - use the AdapterIndexToStorageId() indirection layer to abstract how persistent selection data is derived from an index.\n// - use decently optimized logic to allow queries and insertion of very large selection sets.\n// - do not preserve selection order.\n// Many combinations are possible depending on how you prefer to store your items and how you prefer to store your selection.\n// Large applications are likely to eventually want to get rid of this indirection layer and do their own thing.\n// See https://github.com/ocornut/imgui/wiki/Multi-Select for details and pseudo-code using this helper." + }, + "ImGuiSelectionExternalStorage": { + "above": "// Optional helper to apply multi-selection requests to existing randomly accessible storage.\n// Convenient if you want to quickly wire multi-select API on e.g. an array of bool or items storing their own selection state." + }, + "ImGuiSelectionRequest": { + "above": "// Selection request item" + }, "ImGuiSizeCallbackData": { "above": "// Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin().\n// NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough." }, @@ -5814,7 +6204,7 @@ "above": "// Helper: Key->Value storage\n// Typically you don't have to worry about this since a storage is held within each Window.\n// We use it to e.g. store collapse state for a tree (Int 0/1)\n// This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame)\n// You can use it as custom user storage for temporary values. Declare your own storage if, for example:\n// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state).\n// - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient)\n// Types are NOT stored, so it is up to you to make sure your Key don't collide with different types." }, "ImGuiStoragePair": { - "above": "\n // [Internal]" + "above": "// [Internal] Key+Value for ImGuiStorage" }, "ImGuiStyleMod": { "above": "// Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable." @@ -5826,10 +6216,10 @@ "above": "// Storage for one active tab item (sizeof() 48 bytes)" }, "ImGuiTable": { - "above": "// FIXME-TABLE: more transient data could be stored in a stacked ImGuiTableTempData: e.g. SortSpecs, incoming RowData\n// sizeof() ~ 580 bytes + heap allocs described in TableBeginInitMemory()" + "above": "// sizeof() ~ 592 bytes + heap allocs described in TableBeginInitMemory()" }, "ImGuiTableCellData": { - "above": "// Transient cell data stored per row.\n// sizeof() ~ 6" + "above": "// Transient cell data stored per row.\n// sizeof() ~ 6 bytes" }, "ImGuiTableColumn": { "above": "// [Internal] sizeof() ~ 112\n// We use the terminology \"Enabled\" to refer to a column that is not Hidden by user/api.\n// We use the terminology \"Clipped\" to refer to a column that is out of sight because of scrolling/clipping.\n// This is in contrast with some user-facing api such as IsItemVisible() / IsRectVisible() which use \"Visible\" to mean \"not clipped\"." @@ -5840,6 +6230,9 @@ "ImGuiTableColumnSortSpecs": { "above": "// Sorting specification for one column of a table (sizeof == 12 bytes)" }, + "ImGuiTableHeaderData": { + "above": "// Parameters for TableAngledHeadersRowEx()\n// This may end up being refactored for more general purpose.\n// sizeof() ~ 12 bytes" + }, "ImGuiTableInstanceData": { "above": "// Per-instance data that needs preserving across frames (seemingly most others do not need to be preserved aside from debug needs. Does that means they could be moved to ImGuiTableTempData?)\n// sizeof() ~ 24 bytes" }, @@ -5850,7 +6243,7 @@ "above": "// Sorting specifications for a table (often handling sort specs for a single column, occasionally more)\n// Obtained by calling TableGetSortSpecs().\n// When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time.\n// Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!" }, "ImGuiTableTempData": { - "above": "// Transient data that are only needed between BeginTable() and EndTable(), those buffers are shared (1 per level of stacked table).\n// - Accessing those requires chasing an extra pointer so for very frequently used data we leave them in the main table structure.\n// - We also leave out of this structure data that tend to be particularly useful for debugging/metrics.\n// sizeof() ~ 120 bytes." + "above": "// Transient data that are only needed between BeginTable() and EndTable(), those buffers are shared (1 per level of stacked table).\n// - Accessing those requires chasing an extra pointer so for very frequently used data we leave them in the main table structure.\n// - We also leave out of this structure data that tend to be particularly useful for debugging/metrics.\n// FIXME-TABLE: more transient data could be stored in a stacked ImGuiTableTempData: e.g. SortSpecs.\n// sizeof() ~ 136 bytes." }, "ImGuiTextBuffer": { "above": "// Helper: Growable text buffer for logging/accumulating text\n// (this could be called 'ImGuiTextBuilder' / 'ImGuiStringBuilder')" @@ -5859,11 +6252,14 @@ "above": "// Helper: Parse and apply text filters. In format \"aaaaa[,bbbb][,ccccc]\"" }, "ImGuiTextIndex": { - "above": "// Helper: ImGuiTextIndex<>\n// Maintain a line index for a text buffer. This is a strong candidate to be moved into the public API." + "above": "// Helper: ImGuiTextIndex\n// Maintain a line index for a text buffer. This is a strong candidate to be moved into the public API." }, "ImGuiTextRange": { "above": " // [Internal]" }, + "ImGuiTreeNodeStackData": { + "above": "// Store data emitted by TreeNode() for usage by TreePop()\n// - To implement ImGuiTreeNodeFlags_NavLeftJumpsBackHere: store the minimum amount of data\n// which we can't infer in TreePop(), to perform the equivalent of NavApplyItemToResult().\n// Only stored when the node is a potential candidate for landing on a Left arrow jump." + }, "ImGuiTypingSelectRequest": { "above": "// Returned by GetTypingSelectRequest(), designed to eventually be public." }, @@ -5882,6 +6278,9 @@ "ImGuiWindowClass": { "above": "// [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions.\n// Important: the content of this class is still highly WIP and likely to change and be refactored\n// before we stabilize Docking features. Please be mindful if using this.\n// Provide hints:\n// - To the platform backend via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.)\n// - To the platform backend for OS level parent/child relationships of viewport.\n// - To the docking system for various options and filtering." }, + "ImGuiWindowDockStyle": { + "above": "// We don't store style.Alpha: dock_node->LastBgColor embeds it and otherwise it would only affect the docking tab, which intuitively I would say we don't want to." + }, "ImGuiWindowSettings": { "above": "// Windows data saved in imgui.ini file\n// Because we never destroy or rename ImGuiWindowSettings, we can store the names in a separate buffer easily.\n// (this is designed to be stored in a ImChunkStream buffer, with the variable-length Name following our structure)" }, @@ -5899,12 +6298,6 @@ }, "ImVec4": { "above": "// ImVec4: 4D vector used to store clipping rectangles, colors etc. [Compile-time configurable type]" - }, - "StbTexteditRow": { - "above": "// result of layout query" - }, - "StbUndoRecord": { - "above": "////////////////////////////////////////////////////////////////////////\n//\n// STB_TexteditState\n//\n// Definition of STB_TexteditState which you should store\n// per-textfield; it includes cursor position, selection state,\n// and undo state.\n//" } }, "structs": { @@ -6128,13 +6521,6 @@ "name": "_Data", "type": "ImDrawListSharedData*" }, - { - "comment": { - "sameline": "// Pointer to owner window's name for debugging" - }, - "name": "_OwnerName", - "type": "const char*" - }, { "comment": { "sameline": "// [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much)" @@ -6149,22 +6535,6 @@ "name": "_IdxWritePtr", "type": "ImDrawIdx*" }, - { - "comment": { - "sameline": "// [Internal]" - }, - "name": "_ClipRectStack", - "template_type": "ImVec4", - "type": "ImVector_ImVec4" - }, - { - "comment": { - "sameline": "// [Internal]" - }, - "name": "_TextureIdStack", - "template_type": "ImTextureID", - "type": "ImVector_ImTextureID" - }, { "comment": { "sameline": "// [Internal] current path building" @@ -6187,12 +6557,35 @@ "name": "_Splitter", "type": "ImDrawListSplitter" }, + { + "comment": { + "sameline": "// [Internal]" + }, + "name": "_ClipRectStack", + "template_type": "ImVec4", + "type": "ImVector_ImVec4" + }, + { + "comment": { + "sameline": "// [Internal]" + }, + "name": "_TextureIdStack", + "template_type": "ImTextureID", + "type": "ImVector_ImTextureID" + }, { "comment": { "sameline": "// [Internal] anti-alias fringe is scaled by this value, this helps to keep things sharp while zooming at vertex buffer content" }, "name": "_FringeScale", "type": "float" + }, + { + "comment": { + "sameline": "// Pointer to owner window's name for debugging" + }, + "name": "_OwnerName", + "type": "const char*" } ], "ImDrawListSharedData": [ @@ -6217,6 +6610,13 @@ "name": "FontSize", "type": "float" }, + { + "comment": { + "sameline": "// Current/default font scale (== FontSize / Font->FontSize)" + }, + "name": "FontScale", + "type": "float" + }, { "comment": { "sameline": "// Tessellation tolerance when using PathBezierCurveTo()" @@ -6327,7 +6727,7 @@ { "comment": { "above": "\n // Members: Hot ~20/24 bytes (for CalcTextSize)", - "sameline": "// 12-16 // out // // Sparse. Glyphs->AdvanceX in a directly indexable way (cache-friendly for CalcTextSize functions which only this this info, and are often bottleneck in large UI)." + "sameline": "// 12-16 // out // // Sparse. Glyphs->AdvanceX in a directly indexable way (cache-friendly for CalcTextSize functions which only this info, and are often bottleneck in large UI)." }, "name": "IndexAdvanceX", "template_type": "float", @@ -6444,14 +6844,14 @@ }, { "comment": { - "sameline": "// 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]" + "sameline": "// 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] (unscaled)" }, "name": "Ascent", "type": "float" }, { "comment": { - "sameline": "// 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize]" + "sameline": "// 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] (unscaled)" }, "name": "Descent", "type": "float" @@ -6939,45 +7339,136 @@ "type": "ImVector_ImU32" } ], - "ImGuiColorMod": [ - { - "name": "Col", - "type": "ImGuiCol" - }, - { - "name": "BackupValue", - "type": "ImVec4" - } - ], - "ImGuiComboPreviewData": [ + "ImGuiBoxSelectState": [ { - "name": "PreviewRect", - "type": "ImRect" + "comment": { + "above": "\n // Active box-selection data (persistent, 1 active at a time)" + }, + "name": "ID", + "type": "ImGuiID" }, { - "name": "BackupCursorPos", - "type": "ImVec2" + "name": "IsActive", + "type": "bool" }, { - "name": "BackupCursorMaxPos", - "type": "ImVec2" + "name": "IsStarting", + "type": "bool" }, { - "name": "BackupCursorPosPrevLine", - "type": "ImVec2" + "comment": { + "sameline": "// Starting click was not from an item." + }, + "name": "IsStartedFromVoid", + "type": "bool" }, { - "name": "BackupPrevLineTextBaseOffset", - "type": "float" + "name": "IsStartedSetNavIdOnce", + "type": "bool" }, { - "name": "BackupLayout", - "type": "ImGuiLayoutType" - } - ], - "ImGuiContext": [ - { - "name": "Initialized", + "name": "RequestClear", + "type": "bool" + }, + { + "bitfield": "16", + "comment": { + "sameline": "// Latched key-mods for box-select logic." + }, + "name": "KeyMods", + "type": "ImGuiKeyChord" + }, + { + "comment": { + "sameline": "// Start position in window-contents relative space (to support scrolling)" + }, + "name": "StartPosRel", + "type": "ImVec2" + }, + { + "comment": { + "sameline": "// End position in window-contents relative space" + }, + "name": "EndPosRel", + "type": "ImVec2" + }, + { + "comment": { + "sameline": "// Scrolling accumulator (to behave at high-frame spaces)" + }, + "name": "ScrollAccum", + "type": "ImVec2" + }, + { + "name": "Window", + "type": "ImGuiWindow*" + }, + { + "comment": { + "above": " // Temporary/Transient data", + "sameline": "// (Temp/Transient, here in hot area). Set/cleared by the BeginMultiSelect()/EndMultiSelect() owning active box-select." + }, + "name": "UnclipMode", + "type": "bool" + }, + { + "comment": { + "sameline": "// Rectangle where ItemAdd() clipping may be temporarily disabled. Need support by multi-select supporting widgets." + }, + "name": "UnclipRect", + "type": "ImRect" + }, + { + "comment": { + "sameline": "// Selection rectangle in absolute coordinates (derived every frame from BoxSelectStartPosRel and MousePos)" + }, + "name": "BoxSelectRectPrev", + "type": "ImRect" + }, + { + "name": "BoxSelectRectCurr", + "type": "ImRect" + } + ], + "ImGuiColorMod": [ + { + "name": "Col", + "type": "ImGuiCol" + }, + { + "name": "BackupValue", + "type": "ImVec4" + } + ], + "ImGuiComboPreviewData": [ + { + "name": "PreviewRect", + "type": "ImRect" + }, + { + "name": "BackupCursorPos", + "type": "ImVec2" + }, + { + "name": "BackupCursorMaxPos", + "type": "ImVec2" + }, + { + "name": "BackupCursorPosPrevLine", + "type": "ImVec2" + }, + { + "name": "BackupPrevLineTextBaseOffset", + "type": "float" + }, + { + "name": "BackupLayout", + "type": "ImGuiLayoutType" + } + ], + "ImGuiContext": [ + { + "name": "Initialized", "type": "bool" }, { @@ -7031,6 +7522,20 @@ "name": "FontBaseSize", "type": "float" }, + { + "comment": { + "sameline": "// == FontSize / Font->FontSize" + }, + "name": "FontScale", + "type": "float" + }, + { + "comment": { + "sameline": "// Current window/viewport DpiScale == CurrentViewport->DpiScale" + }, + "name": "CurrentDpiScale", + "type": "float" + }, { "name": "DrawListSharedData", "type": "ImDrawListSharedData" @@ -7097,6 +7602,14 @@ "name": "TestEngine", "type": "void*" }, + { + "comment": { + "sameline": "// Storage for a context name (to facilitate debugging multi-context setups)" + }, + "name": "ContextName[16]", + "size": 16, + "type": "char" + }, { "comment": { "above": " // Inputs", @@ -7168,7 +7681,7 @@ }, { "comment": { - "sameline": "// Padding around resizable windows for which hovering on counts as hovering the window == ImMax(style.TouchExtraPadding, WINDOWS_HOVER_PADDING)" + "sameline": "// Padding around resizable windows for which hovering on counts as hovering the window == ImMax(style.TouchExtraPadding, WINDOWS_HOVER_PADDING)." }, "name": "WindowsHoverPadding", "type": "ImVec2" @@ -7201,6 +7714,13 @@ "name": "HoveredWindowUnderMovingWindow", "type": "ImGuiWindow*" }, + { + "comment": { + "sameline": "// Window the mouse is hovering. Filled even with _NoMouse. This is currently useful for multi-context compositors." + }, + "name": "HoveredWindowBeforeClear", + "type": "ImGuiWindow*" + }, { "comment": { "sameline": "// Track the window we clicked on (in order to preserve focus). The actual window that is moved is generally MovingWindow->RootWindowDockTree." @@ -7245,6 +7765,13 @@ { "comment": { "above": " // Item/widgets state and tracking information", + "sameline": "// Set when we detect multiple items with the same identifier" + }, + "name": "DebugDrawIdConflicts", + "type": "ImGuiID" + }, + { + "comment": { "sameline": "// Will call core hooks: DebugHookIdInfo() from GetID functions, used by ID Stack Tool [next HoveredId/ActiveId to not pull in an extra cache-line]" }, "name": "DebugHookIdInfo", @@ -7261,16 +7788,12 @@ "name": "HoveredIdPreviousFrame", "type": "ImGuiID" }, - { - "name": "HoveredIdAllowOverlap", - "type": "bool" - }, { "comment": { - "sameline": "// At least one widget passed the rect test, but has been discarded by disabled flag or popup inhibit. May be true even if HoveredId == 0." + "sameline": "// Count numbers of items using the same ID as last frame's hovered id" }, - "name": "HoveredIdDisabled", - "type": "bool" + "name": "HoveredIdPreviousFrameItemCount", + "type": "int" }, { "comment": { @@ -7286,6 +7809,24 @@ "name": "HoveredIdNotActiveTimer", "type": "float" }, + { + "name": "HoveredIdAllowOverlap", + "type": "bool" + }, + { + "comment": { + "sameline": "// At least one widget passed the rect test, but has been discarded by disabled flag or popup inhibit. May be true even if HoveredId == 0." + }, + "name": "HoveredIdIsDisabled", + "type": "bool" + }, + { + "comment": { + "sameline": "// Disable ItemAdd() clipping, essentially a memory-locality friendly copy of LogEnabled" + }, + "name": "ItemUnclipByLog", + "type": "bool" + }, { "comment": { "sameline": "// Active widget" @@ -7402,7 +7943,7 @@ }, { "comment": { - "above": " // [EXPERIMENTAL] Key/Input Ownership + Shortcut Routing system\n // - The idea is that instead of \"eating\" a given key, we can link to an owner.\n // - Input query can then read input by specifying ImGuiKeyOwner_Any (== 0), ImGuiKeyOwner_None (== -1) or a custom ID.\n // - Routing is requested ahead of time for a given chord (Key + Mods) and granted in NewFrame().", + "above": " // Key/Input Ownership + Shortcut Routing system\n // - The idea is that instead of \"eating\" a given key, we can link to an owner.\n // - Input query can then read input by specifying ImGuiKeyOwner_Any (== 0), ImGuiKeyOwner_NoOwner (== -1) or a custom ID.\n // - Routing is requested ahead of time for a given chord (Key + Mods) and granted in NewFrame().", "sameline": "// Record the last time key mods changed (affect repeat delay when using shortcut logic)" }, "name": "LastKeyModsChangeTime", @@ -7447,7 +7988,7 @@ }, { "comment": { - "sameline": "// Active widget will want to read all keyboard keys inputs. (FIXME: This is a shortcut for not taking ownership of 100+ keys but perhaps best to not have the inconsistency)" + "sameline": "// Active widget will want to read all keyboard keys inputs. (this is a shortcut for not taking ownership of 100+ keys, frequently used by drag operations)" }, "name": "ActiveIdUsingAllKeyboardKeys", "type": "bool" @@ -7580,11 +8121,11 @@ }, { "comment": { - "sameline": "// Stack for TreeNode() when a NavLeft requested is emitted." + "sameline": "// Stack for TreeNode()" }, - "name": "NavTreeNodeStack", - "template_type": "ImGuiNavTreeNodeData", - "type": "ImVector_ImGuiNavTreeNodeData" + "name": "TreeNodeStack", + "template_type": "ImGuiTreeNodeStackData", + "type": "ImVector_ImGuiTreeNodeStackData" }, { "comment": { @@ -7595,13 +8136,6 @@ "template_type": "ImGuiViewportP*", "type": "ImVector_ImGuiViewportPPtr" }, - { - "comment": { - "sameline": "// == CurrentViewport->DpiScale" - }, - "name": "CurrentDpiScale", - "type": "float" - }, { "comment": { "sameline": "// We track changes of viewport (happening in Begin) so we can call Platform_OnChangedViewport()" @@ -7683,11 +8217,10 @@ }, { "comment": { - "sameline": "// Reversed copy focus scope stack for NavId (should contains NavFocusScopeId). This essentially follow the window->ParentWindowForFocusRoute chain." + "sameline": "// Focused layer (main scrolling layer, or menu/title bar layer)" }, - "name": "NavFocusRoute", - "template_type": "ImGuiFocusScopeData", - "type": "ImVector_ImGuiFocusScopeData" + "name": "NavLayer", + "type": "ImGuiNavLayer" }, { "comment": { @@ -7714,31 +8247,21 @@ "name": "NavActivateFlags", "type": "ImGuiActivateFlags" }, - { - "name": "NavHighlightActivatedId", - "type": "ImGuiID" - }, - { - "name": "NavHighlightActivatedTimer", - "type": "float" - }, { "comment": { - "sameline": "// Just navigated to this id (result of a successfully MoveRequest)." + "sameline": "// Reversed copy focus scope stack for NavId (should contains NavFocusScopeId). This essentially follow the window->ParentWindowForFocusRoute chain." }, - "name": "NavJustMovedToId", - "type": "ImGuiID" + "name": "NavFocusRoute", + "template_type": "ImGuiFocusScopeData", + "type": "ImVector_ImGuiFocusScopeData" }, { - "comment": { - "sameline": "// Just navigated to this focus scope id (result of a successfully MoveRequest)." - }, - "name": "NavJustMovedToFocusScopeId", + "name": "NavHighlightActivatedId", "type": "ImGuiID" }, { - "name": "NavJustMovedToKeyMods", - "type": "ImGuiKeyChord" + "name": "NavHighlightActivatedTimer", + "type": "float" }, { "comment": { @@ -7758,13 +8281,6 @@ "name": "NavInputSource", "type": "ImGuiInputSource" }, - { - "comment": { - "sameline": "// Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later." - }, - "name": "NavLayer", - "type": "ImGuiNavLayer" - }, { "comment": { "sameline": "// Last valid data passed to SetNextItemSelectionUser(), or -1. For current window. Not reset when focusing an item that doesn't have selection data." @@ -7937,17 +8453,57 @@ "name": "NavTabbingResultFirst", "type": "ImGuiNavItemData" }, + { + "comment": { + "above": " // Navigation: record of last move request", + "sameline": "// Just navigated from this focus scope id (result of a successfully MoveRequest)." + }, + "name": "NavJustMovedFromFocusScopeId", + "type": "ImGuiID" + }, + { + "comment": { + "sameline": "// Just navigated to this id (result of a successfully MoveRequest)." + }, + "name": "NavJustMovedToId", + "type": "ImGuiID" + }, + { + "comment": { + "sameline": "// Just navigated to this focus scope id (result of a successfully MoveRequest)." + }, + "name": "NavJustMovedToFocusScopeId", + "type": "ImGuiID" + }, + { + "name": "NavJustMovedToKeyMods", + "type": "ImGuiKeyChord" + }, + { + "comment": { + "sameline": "// Copy of ImGuiNavMoveFlags_IsTabbing. Maybe we should store whole flags." + }, + "name": "NavJustMovedToIsTabbing", + "type": "bool" + }, + { + "comment": { + "sameline": "// Copy of move result's InFlags & ImGuiItemFlags_HasSelectionUserData). Maybe we should just store ImGuiNavItemData." + }, + "name": "NavJustMovedToHasSelectionData", + "type": "bool" + }, { "comment": { "above": " // Navigation: Windowing (CTRL+TAB for list, or Menu button + keys or directional pads to move/resize)", - "sameline": "// = ImGuiMod_Ctrl | ImGuiKey_Tab, for reconfiguration (see #4828)" + "sameline": "// = ImGuiMod_Ctrl | ImGuiKey_Tab (or ImGuiMod_Super | ImGuiKey_Tab on OS X). For reconfiguration (see #4828)" }, "name": "ConfigNavWindowingKeyNext", "type": "ImGuiKeyChord" }, { "comment": { - "sameline": "// = ImGuiMod_Ctrl | ImGuiMod_Shift | ImGuiKey_Tab" + "sameline": "// = ImGuiMod_Ctrl | ImGuiMod_Shift | ImGuiKey_Tab (or ImGuiMod_Super | ImGuiMod_Shift | ImGuiKey_Tab on OS X)" }, "name": "ConfigNavWindowingKeyPrev", "type": "ImGuiKeyChord" @@ -8199,6 +8755,34 @@ "template_type": "ImGuiShrinkWidthItem", "type": "ImVector_ImGuiShrinkWidthItem" }, + { + "comment": { + "above": " // Multi-Select state" + }, + "name": "BoxSelectState", + "type": "ImGuiBoxSelectState" + }, + { + "name": "CurrentMultiSelect", + "type": "ImGuiMultiSelectTempData*" + }, + { + "comment": { + "sameline": "// Temporary multi-select data size (because we leave previous instances undestructed, we generally don't use MultiSelectTempData.Size)" + }, + "name": "MultiSelectTempDataStacked", + "type": "int" + }, + { + "name": "MultiSelectTempData", + "template_type": "ImGuiMultiSelectTempData", + "type": "ImVector_ImGuiMultiSelectTempData" + }, + { + "name": "MultiSelectStorage", + "template_type": "ImGuiMultiSelectState", + "type": "ImPool_ImGuiMultiSelectState" + }, { "comment": { "above": " // Hover Delay system" @@ -8278,6 +8862,13 @@ "name": "TempInputId", "type": "ImGuiID" }, + { + "comment": { + "sameline": "// 0 for all data types" + }, + "name": "DataTypeZeroValue", + "type": "ImGuiDataTypeStorage" + }, { "name": "BeginMenuDepth", "type": "int" @@ -8350,6 +8941,20 @@ "name": "WindowResizeRelativeMode", "type": "bool" }, + { + "comment": { + "sameline": "// 0: relative, -1/+1: prev/next page." + }, + "name": "ScrollbarSeekMode", + "type": "short" + }, + { + "comment": { + "sameline": "// Distance between mouse and center of grab box, normalized in parent space. Use storage?" + }, + "name": "ScrollbarClickDeltaToGrabCenter", + "type": "float" + }, { "name": "SliderGrabClickOffset", "type": "float" @@ -8386,13 +8991,6 @@ "name": "DragSpeedDefaultRatio", "type": "float" }, - { - "comment": { - "sameline": "// Distance between mouse and center of grab box, normalized in parent space. Use storage?" - }, - "name": "ScrollbarClickDeltaToGrabCenter", - "type": "float" - }, { "comment": { "sameline": "// Backup for style.Alpha for BeginDisabled()" @@ -8445,7 +9043,7 @@ }, { "comment": { - "sameline": "// Previous frame data (when changing we will call io.SetPlatformImeDataFn" + "sameline": "// Previous frame data. When changed we call the platform_io.Platform_SetImeDataFn() handler." }, "name": "PlatformImeDataPrev", "type": "ImGuiPlatformImeData" @@ -8530,7 +9128,7 @@ "above": " // Localization" }, "name": "LocalizationTable[ImGuiLocKey_COUNT]", - "size": 11, + "size": 13, "type": "const char*" }, { @@ -8797,10 +9395,10 @@ "type": "const char*" } ], - "ImGuiDataTypeTempStorage": [ + "ImGuiDataTypeStorage": [ { "comment": { - "sameline": "// Can fit any data up to ImGuiDataType_COUNT" + "sameline": "// Opaque storage to fit any data up to ImGuiDataType_COUNT" }, "name": "Data[8]", "size": 8, @@ -9312,6 +9910,7 @@ }, { "comment": { + "above": " // Font system", "sameline": "// // Font atlas: load, rasterize and pack one or more fonts into a single texture." }, "name": "Fonts", @@ -9405,7 +10004,7 @@ }, { "comment": { - "above": " // Miscellaneous options", + "above": " // Miscellaneous options\n // (you can visualize and interact with all options in 'Demo->Configuration')", "sameline": "// = false // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by backend implementations." }, "name": "MouseDrawCursor", @@ -9413,11 +10012,18 @@ }, { "comment": { - "sameline": "// = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl." + "sameline": "// = defined(__APPLE__) // Swap Cmd<>Ctrl keys + OS X style text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl." }, "name": "ConfigMacOSXBehaviors", "type": "bool" }, + { + "comment": { + "sameline": "// = false // Swap Activate<>Cancel (A<>B) buttons, matching typical \"Nintendo/Japanese style\" gamepad layout." + }, + "name": "ConfigNavSwapGamepadButtons", + "type": "bool" + }, { "comment": { "sameline": "// = true // Enable input queue trickling: some types of events submitted during the same frame (e.g. button down + up) will be spread over multiple frames, improving interactions with low framerates." @@ -9513,10 +10119,18 @@ }, { "comment": { - "above": " // Tools to test correct Begin/End and BeginChild/EndChild behaviors.\n // - Presently Begin()/End() and BeginChild()/EndChild() needs to ALWAYS be called in tandem, regardless of return value of BeginXXX()\n // - This is inconsistent with other BeginXXX functions and create confusion for many users.\n // - We expect to update the API eventually. In the meanwhile we provide tools to facilitate checking user-code behavior.", - "sameline": "// = false // First-time calls to Begin()/BeginChild() will return false. NEEDS TO BE SET AT APPLICATION BOOT TIME if you don't want to miss windows." + "above": " // Tools to detect code submitting items with conflicting/duplicate IDs\n // - Code should use PushID()/PopID() in loops, or append \"##xx\" to same-label identifiers.\n // - Empty label e.g. Button(\"\") == same ID as parent widget/node. Use Button(\"##xx\") instead!\n // - See FAQ https://github.com/ocornut/imgui/blob/master/docs/FAQ.md#q-about-the-id-stack-system", + "sameline": "// = true // Highlight and show an error message when multiple items have conflicting identifiers." }, - "name": "ConfigDebugBeginReturnValueOnce", + "name": "ConfigDebugHighlightIdConflicts", + "type": "bool" + }, + { + "comment": { + "above": " // Tools to test correct Begin/End and BeginChild/EndChild behaviors.\n // - Presently Begin()/End() and BeginChild()/EndChild() needs to ALWAYS be called in tandem, regardless of return value of BeginXXX()\n // - This is inconsistent with other BeginXXX functions and create confusion for many users.\n // - We expect to update the API eventually. In the meanwhile we provide tools to facilitate checking user-code behavior.", + "sameline": "// = false // First-time calls to Begin()/BeginChild() will return false. NEEDS TO BE SET AT APPLICATION BOOT TIME if you don't want to miss windows." + }, + "name": "ConfigDebugBeginReturnValueOnce", "type": "bool" }, { @@ -9529,7 +10143,7 @@ { "comment": { "above": " // Option to deactivate io.AddFocusEvent(false) handling.\n // - May facilitate interactions with a debugger when focus loss leads to clearing inputs data.\n // - Backends may have other side-effects on focus loss, so this will reduce side-effects but not necessary remove all of them.", - "sameline": "// = false // Ignore io.AddFocusEvent(false), consequently not calling io.ClearInputKeys() in input processing." + "sameline": "// = false // Ignore io.AddFocusEvent(false), consequently not calling io.ClearInputKeys()/io.ClearInputMouse() in input processing." }, "name": "ConfigDebugIgnoreFocusLoss", "type": "bool" @@ -9578,36 +10192,6 @@ "name": "BackendLanguageUserData", "type": "void*" }, - { - "comment": { - "above": " // Optional: Access OS clipboard\n // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)" - }, - "name": "GetClipboardTextFn", - "type": "const char*(*)(void* user_data)" - }, - { - "name": "SetClipboardTextFn", - "type": "void(*)(void* user_data,const char* text)" - }, - { - "name": "ClipboardUserData", - "type": "void*" - }, - { - "comment": { - "above": " // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows)\n // (default to use native imm32 api on Windows)" - }, - "name": "SetPlatformImeDataFn", - "type": "void(*)(ImGuiViewport* viewport,ImGuiPlatformImeData* data)" - }, - { - "comment": { - "above": " // Optional: Platform locale", - "sameline": "// '.' // [Experimental] Configure decimal point e.g. '.' or ',' useful for some languages (e.g. German), generally pulled from *localeconv()->decimal_point" - }, - "name": "PlatformLocaleDecimalPoint", - "type": "ImWchar" - }, { "comment": { "sameline": "// Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application (either way, always pass on mouse inputs to imgui). (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.)." @@ -9781,7 +10365,7 @@ { "comment": { "above": " // Other state maintained from data above + IO function calls", - "sameline": "// Key mods flags (any of ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Alt/ImGuiMod_Super flags, same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags. DOES NOT CONTAINS ImGuiMod_Shortcut which is pretranslated). Read-only, updated by NewFrame()" + "sameline": "// Key mods flags (any of ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Alt/ImGuiMod_Super flags, same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags. Read-only, updated by NewFrame()" }, "name": "KeyMods", "type": "ImGuiKeyChord" @@ -9887,6 +10471,13 @@ "name": "MouseWheelRequestAxisSwap", "type": "bool" }, + { + "comment": { + "sameline": "// (OSX) Set to true when the current click was a ctrl-click that spawned a simulated right click" + }, + "name": "MouseCtrlLeftAsRightClick", + "type": "bool" + }, { "comment": { "sameline": "// Duration the mouse button has been down (0.0f == just clicked)" @@ -10103,7 +10694,7 @@ }, { "comment": { - "above": " // Arguments for the different callback events\n // - To modify the text buffer in a callback, prefer using the InsertChars() / DeleteChars() function. InsertChars() will take care of calling the resize callback if necessary.\n // - If you know your edits are not going to resize the underlying buffer allocation, you may modify the contents of 'Buf[]' directly. You need to update 'BufTextLen' accordingly (0 <= BufTextLen < BufSize) and set 'BufDirty'' to true so InputText can update its internal state.", + "above": " // Arguments for the different callback events\n // - During Resize callback, Buf will be same as your input buffer.\n // - However, during Completion/History/Always callback, Buf always points to our own internal data (it is not the same as your buffer)! Changes to it will be reflected into your own buffer shortly after the callback.\n // - To modify the text buffer in a callback, prefer using the InsertChars() / DeleteChars() function. InsertChars() will take care of calling the resize callback if necessary.\n // - If you know your edits are not going to resize the underlying buffer allocation, you may modify the contents of 'Buf[]' directly. You need to update 'BufTextLen' accordingly (0 <= BufTextLen < BufSize) and set 'BufDirty'' to true so InputText can update its internal state.", "sameline": "// Character input // Read-write // [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0;" }, "name": "EventChar", @@ -10193,36 +10784,28 @@ }, { "comment": { - "sameline": "// widget id owning the text state" + "sameline": "// State for stb_textedit.h" }, - "name": "ID", - "type": "ImGuiID" + "name": "Stb", + "type": "ImStbTexteditState*" }, { "comment": { - "sameline": "// we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 length is valid even if TextA is not." + "sameline": "// widget id owning the text state" }, - "name": "CurLenW", - "type": "int" + "name": "ID", + "type": "ImGuiID" }, { "comment": { - "sameline": "// we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 length is valid even if TextA is not." + "sameline": "// UTF-8 length of the string in TextA (in bytes)" }, "name": "CurLenA", "type": "int" }, { "comment": { - "sameline": "// edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer." - }, - "name": "TextW", - "template_type": "ImWchar", - "type": "ImVector_ImWchar" - }, - { - "comment": { - "sameline": "// temporary UTF8 buffer for callbacks and other operations. this is not updated in every code-path! size=capacity." + "sameline": "// main UTF8 buffer." }, "name": "TextA", "template_type": "char", @@ -10238,10 +10821,11 @@ }, { "comment": { - "sameline": "// temporary UTF8 buffer is not initially valid before we make the widget active (until then we pull the data from user argument)" + "sameline": "// temporary storage for callback to support automatic reconcile of undo-stack" }, - "name": "TextAIsValid", - "type": "bool" + "name": "CallbackTextBackup", + "template_type": "char", + "type": "ImVector_char" }, { "comment": { @@ -10252,17 +10836,10 @@ }, { "comment": { - "sameline": "// horizontal scrolling/offset" - }, - "name": "ScrollX", - "type": "float" - }, - { - "comment": { - "sameline": "// state for stb_textedit.h" + "sameline": "// horizontal offset (managed manually) + vertical scrolling (pulled from child window's own Scroll.y)" }, - "name": "Stb", - "type": "STB_TexteditState" + "name": "Scroll", + "type": "ImVec2" }, { "comment": { @@ -10379,7 +10956,7 @@ }, { "comment": { - "sameline": "// Technically we'd only need 4-bits but for simplify we store ImGuiMod_ values which need 16-bits. ImGuiMod_Shortcut is already translated to Ctrl/Super." + "sameline": "// Technically we'd only need 4-bits but for simplify we store ImGuiMod_ values which need 16-bits." }, "name": "Mods", "type": "ImU16" @@ -10465,18 +11042,25 @@ }, { "comment": { - "above": "\n // Rarely used fields are not explicitly cleared, only valid when the corresponding ImGuiItemStatusFlags is set.", - "sameline": "// Display rectangle (ONLY VALID IF ImGuiItemStatusFlags_HasDisplayRect is set)" + "above": "\n // Rarely used fields are not explicitly cleared, only valid when the corresponding ImGuiItemStatusFlags ar set.", + "sameline": "// Display rectangle. ONLY VALID IF (StatusFlags & ImGuiItemStatusFlags_HasDisplayRect) is set." }, "name": "DisplayRect", "type": "ImRect" }, { "comment": { - "sameline": "// Clip rectangle at the time of submitting item (ONLY VALID IF ImGuiItemStatusFlags_HasClipRect is set)" + "sameline": "// Clip rectangle at the time of submitting item. ONLY VALID IF (StatusFlags & ImGuiItemStatusFlags_HasClipRect) is set.." }, "name": "ClipRect", "type": "ImRect" + }, + { + "comment": { + "sameline": "// Shortcut at the time of submitting item. ONLY VALID IF (StatusFlags & ImGuiItemStatusFlags_HasShortcut) is set.." + }, + "name": "Shortcut", + "type": "ImGuiKeyChord" } ], "ImGuiListClipper": [ @@ -10522,6 +11106,13 @@ "name": "StartPosY", "type": "float" }, + { + "comment": { + "sameline": "// [Internal] Account for frozen rows in a table and initial loss of precision in very large windows." + }, + "name": "StartSeekOffsetY", + "type": "double" + }, { "comment": { "sameline": "// [Internal] Internal data" @@ -10696,6 +11287,197 @@ "type": "ImGuiID" } ], + "ImGuiMultiSelectIO": [ + { + "comment": { + "above": "\n //------------------------------------------// BeginMultiSelect / EndMultiSelect", + "sameline": "// ms:w, app:r / ms:w app:r // Requests to apply to your selection data." + }, + "name": "Requests", + "template_type": "ImGuiSelectionRequest", + "type": "ImVector_ImGuiSelectionRequest" + }, + { + "comment": { + "sameline": "// ms:w app:r / // (If using clipper) Begin: Source item (often the first selected item) must never be clipped: use clipper.IncludeItemByIndex() to ensure it is submitted." + }, + "name": "RangeSrcItem", + "type": "ImGuiSelectionUserData" + }, + { + "comment": { + "sameline": "// ms:w, app:r / // (If using deletion) Last known SetNextItemSelectionUserData() value for NavId (if part of submitted items)." + }, + "name": "NavIdItem", + "type": "ImGuiSelectionUserData" + }, + { + "comment": { + "sameline": "// ms:w, app:r / app:r // (If using deletion) Last known selection state for NavId (if part of submitted items)." + }, + "name": "NavIdSelected", + "type": "bool" + }, + { + "comment": { + "sameline": "// app:w / ms:r // (If using deletion) Set before EndMultiSelect() to reset ResetSrcItem (e.g. if deleted selection)." + }, + "name": "RangeSrcReset", + "type": "bool" + }, + { + "comment": { + "sameline": "// ms:w, app:r / app:r // 'int items_count' parameter to BeginMultiSelect() is copied here for convenience, allowing simpler calls to your ApplyRequests handler. Not used internally." + }, + "name": "ItemsCount", + "type": "int" + } + ], + "ImGuiMultiSelectState": [ + { + "name": "Window", + "type": "ImGuiWindow*" + }, + { + "name": "ID", + "type": "ImGuiID" + }, + { + "comment": { + "sameline": "// Last used frame-count, for GC." + }, + "name": "LastFrameActive", + "type": "int" + }, + { + "comment": { + "sameline": "// Set by BeginMultiSelect() based on optional info provided by user. May be -1 if unknown." + }, + "name": "LastSelectionSize", + "type": "int" + }, + { + "comment": { + "sameline": "// -1 (don't have) or true/false" + }, + "name": "RangeSelected", + "type": "ImS8" + }, + { + "comment": { + "sameline": "// -1 (don't have) or true/false" + }, + "name": "NavIdSelected", + "type": "ImS8" + }, + { + "comment": { + "sameline": "//" + }, + "name": "RangeSrcItem", + "type": "ImGuiSelectionUserData" + }, + { + "comment": { + "sameline": "// SetNextItemSelectionUserData() value for NavId (if part of submitted items)" + }, + "name": "NavIdItem", + "type": "ImGuiSelectionUserData" + } + ], + "ImGuiMultiSelectTempData": [ + { + "comment": { + "sameline": "// MUST BE FIRST FIELD. Requests are set and returned by BeginMultiSelect()/EndMultiSelect() + written to by user during the loop." + }, + "name": "IO", + "type": "ImGuiMultiSelectIO" + }, + { + "name": "Storage", + "type": "ImGuiMultiSelectState*" + }, + { + "comment": { + "sameline": "// Copied from g.CurrentFocusScopeId (unless another selection scope was pushed manually)" + }, + "name": "FocusScopeId", + "type": "ImGuiID" + }, + { + "name": "Flags", + "type": "ImGuiMultiSelectFlags" + }, + { + "name": "ScopeRectMin", + "type": "ImVec2" + }, + { + "name": "BackupCursorMaxPos", + "type": "ImVec2" + }, + { + "comment": { + "sameline": "// Copy of last submitted item data, used to merge output ranges." + }, + "name": "LastSubmittedItem", + "type": "ImGuiSelectionUserData" + }, + { + "name": "BoxSelectId", + "type": "ImGuiID" + }, + { + "name": "KeyMods", + "type": "ImGuiKeyChord" + }, + { + "comment": { + "sameline": "// -1: no operation, 0: clear all, 1: select all." + }, + "name": "LoopRequestSetAll", + "type": "ImS8" + }, + { + "comment": { + "sameline": "// Set when switching IO from BeginMultiSelect() to EndMultiSelect() state." + }, + "name": "IsEndIO", + "type": "bool" + }, + { + "comment": { + "sameline": "// Set if currently focusing the selection scope (any item of the selection). May be used if you have custom shortcut associated to selection." + }, + "name": "IsFocused", + "type": "bool" + }, + { + "comment": { + "sameline": "// Set by BeginMultiSelect() when using Shift+Navigation. Because scrolling may be affected we can't afford a frame of lag with Shift+Navigation." + }, + "name": "IsKeyboardSetRange", + "type": "bool" + }, + { + "name": "NavIdPassedBy", + "type": "bool" + }, + { + "comment": { + "sameline": "// Set by the item that matches RangeSrcItem." + }, + "name": "RangeSrcPassedBy", + "type": "bool" + }, + { + "comment": { + "sameline": "// Set by the item that matches NavJustMovedToId when IsSetRange is set." + }, + "name": "RangeDstPassedBy", + "type": "bool" + } + ], "ImGuiNavItemData": [ { "comment": { @@ -10732,13 +11514,6 @@ "name": "InFlags", "type": "ImGuiItemFlags" }, - { - "comment": { - "sameline": "//I+Mov // Best candidate SetNextItemSelectionData() value." - }, - "name": "SelectionUserData", - "type": "ImGuiSelectionUserData" - }, { "comment": { "sameline": "// Move // Best candidate box distance to current NavId" @@ -10759,20 +11534,13 @@ }, "name": "DistAxial", "type": "float" - } - ], - "ImGuiNavTreeNodeData": [ - { - "name": "ID", - "type": "ImGuiID" - }, - { - "name": "InFlags", - "type": "ImGuiItemFlags" }, { - "name": "NavRect", - "type": "ImRect" + "comment": { + "sameline": "//I+Mov // Best candidate SetNextItemSelectionUserData() value. Valid if (InFlags & ImGuiItemFlags_HasSelectionUserData)" + }, + "name": "SelectionUserData", + "type": "ImGuiSelectionUserData" } ], "ImGuiNextItemData": [ @@ -10782,7 +11550,7 @@ }, { "comment": { - "sameline": "// Currently only tested/used for ImGuiItemFlags_AllowOverlap." + "sameline": "// Currently only tested/used for ImGuiItemFlags_AllowOverlap and ImGuiItemFlags_HasSelectionUserData." }, "name": "ItemFlags", "type": "ImGuiItemFlags" @@ -10790,6 +11558,13 @@ { "comment": { "above": "\n // Non-flags members are NOT cleared by ItemAdd() meaning they are still valid during NavProcessItem()", + "sameline": "// Set by SetNextItemSelectionUserData()" + }, + "name": "FocusScopeId", + "type": "ImGuiID" + }, + { + "comment": { "sameline": "// Set by SetNextItemSelectionUserData() (note that NULL/0 is a valid value, we use -1 == ImGuiSelectionUserData_Invalid to mark invalid values)" }, "name": "SelectionUserData", @@ -10809,6 +11584,13 @@ "name": "Shortcut", "type": "ImGuiKeyChord" }, + { + "comment": { + "sameline": "// Set by SetNextItemShortcut()" + }, + "name": "ShortcutFlags", + "type": "ImGuiInputFlags" + }, { "comment": { "sameline": "// Set by SetNextItemOpen()" @@ -10817,9 +11599,25 @@ "type": "bool" }, { - "bitfield": "8", + "comment": { + "sameline": "// Set by SetNextItemOpen()" + }, "name": "OpenCond", - "type": "ImGuiCond" + "type": "ImU8" + }, + { + "comment": { + "sameline": "// Not exposed yet, for ImGuiInputTextFlags_ParseEmptyAsRefVal" + }, + "name": "RefVal", + "type": "ImGuiDataTypeStorage" + }, + { + "comment": { + "sameline": "// Set by SetNextItemStorageID()" + }, + "name": "StorageId", + "type": "ImGuiID" } ], "ImGuiNextWindowData": [ @@ -10912,6 +11710,10 @@ }, "name": "MenuBarOffsetMinVal", "type": "ImVec2" + }, + { + "name": "RefreshFlagsVal", + "type": "ImGuiWindowRefreshFlags" } ], "ImGuiOldColumnData": [ @@ -11100,7 +11902,52 @@ "ImGuiPlatformIO": [ { "comment": { - "above": " // Platform function --------------------------------------------------- Called by -----", + "above": " // Optional: Access OS clipboard\n // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures)" + }, + "name": "Platform_GetClipboardTextFn", + "type": "const char*(*)(ImGuiContext* ctx)" + }, + { + "name": "Platform_SetClipboardTextFn", + "type": "void(*)(ImGuiContext* ctx,const char* text)" + }, + { + "name": "Platform_ClipboardUserData", + "type": "void*" + }, + { + "comment": { + "above": " // Optional: Open link/folder/file in OS Shell\n // (default to use ShellExecuteA() on Windows, system() on Linux/Mac)" + }, + "name": "Platform_OpenInShellFn", + "type": "bool(*)(ImGuiContext* ctx,const char* path)" + }, + { + "name": "Platform_OpenInShellUserData", + "type": "void*" + }, + { + "comment": { + "above": " // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows)\n // (default to use native imm32 api on Windows)" + }, + "name": "Platform_SetImeDataFn", + "type": "void(*)(ImGuiContext* ctx,ImGuiViewport* viewport,ImGuiPlatformImeData* data)" + }, + { + "name": "Platform_ImeUserData", + "type": "void*" + }, + { + "comment": { + "above": " // Optional: Platform locale\n // [Experimental] Configure decimal point e.g. '.' or ',' useful for some languages (e.g. German), generally pulled from *localeconv()->decimal_point", + "sameline": "// '.'" + }, + "name": "Platform_LocaleDecimalPoint", + "type": "ImWchar" + }, + { + "comment": { + "above": " // Platform Backend functions (e.g. Win32, GLFW, SDL) ------------------- Called by -----", "sameline": "// . . U . . // Create a new platform window for the given viewport" }, "name": "Platform_CreateWindow", @@ -11218,6 +12065,13 @@ "name": "Platform_OnChangedViewport", "type": "void(*)(ImGuiViewport* vp)" }, + { + "comment": { + "sameline": "// N . . . . // (Optional) [BETA] Get initial work area inset for the viewport (won't be covered by main menu bar, dockspace over viewport etc.). Default to (0,0),(0,0). 'safeAreaInsets' in iOS land, 'DisplayCutout' in Android land." + }, + "name": "Platform_GetWindowWorkAreaInsets", + "type": "ImVec4(*)(ImGuiViewport* vp)" + }, { "comment": { "sameline": "// (Optional) For a Vulkan Renderer to call into Platform code (since the surface creation needs to tie them both)." @@ -11227,7 +12081,7 @@ }, { "comment": { - "above": " // (Optional) Renderer functions (e.g. DirectX, OpenGL, Vulkan)", + "above": " // Renderer Backend functions (e.g. DirectX, OpenGL, Vulkan) ------------ Called by -----", "sameline": "// . . U . . // Create swap chain, frame buffers etc. (called after Platform_CreateWindow)" }, "name": "Renderer_CreateWindow", @@ -11363,61 +12217,161 @@ }, { "comment": { - "sameline": "// Set on OpenPopup(), a NavWindow that will be restored on popup close" + "sameline": "// Set on OpenPopup(), a NavWindow that will be restored on popup close" + }, + "name": "RestoreNavWindow", + "type": "ImGuiWindow*" + }, + { + "comment": { + "sameline": "// Resolved on BeginPopup(). Actually a ImGuiNavLayer type (declared down below), initialized to -1 which is not part of an enum, but serves well-enough as \"not any of layers\" value" + }, + "name": "ParentNavLayer", + "type": "int" + }, + { + "comment": { + "sameline": "// Set on OpenPopup()" + }, + "name": "OpenFrameCount", + "type": "int" + }, + { + "comment": { + "sameline": "// Set on OpenPopup(), we need this to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items)" + }, + "name": "OpenParentId", + "type": "ImGuiID" + }, + { + "comment": { + "sameline": "// Set on OpenPopup(), preferred popup position (typically == OpenMousePos when using mouse)" + }, + "name": "OpenPopupPos", + "type": "ImVec2" + }, + { + "comment": { + "sameline": "// Set on OpenPopup(), copy of mouse position at the time of opening popup" + }, + "name": "OpenMousePos", + "type": "ImVec2" + } + ], + "ImGuiPtrOrIndex": [ + { + "comment": { + "sameline": "// Either field can be set, not both. e.g. Dock node tab bars are loose while BeginTabBar() ones are in a pool." + }, + "name": "Ptr", + "type": "void*" + }, + { + "comment": { + "sameline": "// Usually index in a main pool." + }, + "name": "Index", + "type": "int" + } + ], + "ImGuiSelectionBasicStorage": [ + { + "comment": { + "above": "\n // Members", + "sameline": "// // Number of selected items, maintained by this helper." + }, + "name": "Size", + "type": "int" + }, + { + "comment": { + "sameline": "// = false // GetNextSelectedItem() will return ordered selection (currently implemented by two additional sorts of selection. Could be improved)" + }, + "name": "PreserveOrder", + "type": "bool" + }, + { + "comment": { + "sameline": "// = NULL // User data for use by adapter function // e.g. selection.UserData = (void*)my_items;" + }, + "name": "UserData", + "type": "void*" + }, + { + "comment": { + "sameline": "// e.g. selection.AdapterIndexToStorageId = [](ImGuiSelectionBasicStorage* self, int idx) return ((MyItems**)self->UserData)[idx]->ID; ;" }, - "name": "BackupNavWindow", - "type": "ImGuiWindow*" + "name": "AdapterIndexToStorageId", + "type": "ImGuiID(*)(ImGuiSelectionBasicStorage* self,int idx)" }, { "comment": { - "sameline": "// Resolved on BeginPopup(). Actually a ImGuiNavLayer type (declared down below), initialized to -1 which is not part of an enum, but serves well-enough as \"not any of layers\" value" + "sameline": "// [Internal] Increasing counter to store selection order" }, - "name": "ParentNavLayer", + "name": "_SelectionOrder", "type": "int" }, { "comment": { - "sameline": "// Set on OpenPopup()" + "sameline": "// [Internal] Selection set. Think of this as similar to e.g. std::set. Prefer not accessing directly: iterate with GetNextSelectedItem()." }, - "name": "OpenFrameCount", - "type": "int" + "name": "_Storage", + "type": "ImGuiStorage" + } + ], + "ImGuiSelectionExternalStorage": [ + { + "comment": { + "above": "\n // Members", + "sameline": "// User data for use by adapter function // e.g. selection.UserData = (void*)my_items;" + }, + "name": "UserData", + "type": "void*" }, { "comment": { - "sameline": "// Set on OpenPopup(), we need this to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items)" + "sameline": "// e.g. AdapterSetItemSelected = [](ImGuiSelectionExternalStorage* self, int idx, bool selected) ((MyItems**)self->UserData)[idx]->Selected = selected; " }, - "name": "OpenParentId", - "type": "ImGuiID" + "name": "AdapterSetItemSelected", + "type": "void(*)(ImGuiSelectionExternalStorage* self,int idx,bool selected)" + } + ], + "ImGuiSelectionRequest": [ + { + "comment": { + "above": "\n //------------------------------------------// BeginMultiSelect / EndMultiSelect", + "sameline": "// ms:w, app:r / ms:w, app:r // Request type. You'll most often receive 1 Clear + 1 SetRange with a single-item range." + }, + "name": "Type", + "type": "ImGuiSelectionRequestType" }, { "comment": { - "sameline": "// Set on OpenPopup(), preferred popup position (typically == OpenMousePos when using mouse)" + "sameline": "// ms:w, app:r / ms:w, app:r // Parameter for SetAll/SetRange requests (true = select, false = unselect)" }, - "name": "OpenPopupPos", - "type": "ImVec2" + "name": "Selected", + "type": "bool" }, { "comment": { - "sameline": "// Set on OpenPopup(), copy of mouse position at the time of opening popup" + "sameline": "// / ms:w app:r // Parameter for SetRange request: +1 when RangeFirstItem comes before RangeLastItem, -1 otherwise. Useful if you want to preserve selection order on a backward Shift+Click." }, - "name": "OpenMousePos", - "type": "ImVec2" - } - ], - "ImGuiPtrOrIndex": [ + "name": "RangeDirection", + "type": "ImS8" + }, { "comment": { - "sameline": "// Either field can be set, not both. e.g. Dock node tab bars are loose while BeginTabBar() ones are in a pool." + "sameline": "// / ms:w, app:r // Parameter for SetRange request (this is generally == RangeSrcItem when shift selecting from top to bottom)." }, - "name": "Ptr", - "type": "void*" + "name": "RangeFirstItem", + "type": "ImGuiSelectionUserData" }, { "comment": { - "sameline": "// Usually index in a main pool." + "sameline": "// / ms:w, app:r // Parameter for SetRange request (this is generally == RangeSrcItem when shift selecting from bottom to top). Inclusive!" }, - "name": "Index", - "type": "int" + "name": "RangeLastItem", + "type": "ImGuiSelectionUserData" } ], "ImGuiSettingsHandler": [ @@ -11599,6 +12553,9 @@ ], "ImGuiStorage": [ { + "comment": { + "above": "\n // [Internal]" + }, "name": "Data", "template_type": "ImGuiStoragePair", "type": "ImVector_ImGuiStoragePair" @@ -11736,7 +12693,7 @@ }, { "comment": { - "sameline": "// Padding within a table cell. CellPadding.y may be altered between different rows." + "sameline": "// Padding within a table cell. Cellpadding.x is locked for entire table. CellPadding.y may be altered between different rows." }, "name": "CellPadding", "type": "ImVec2" @@ -11825,6 +12782,13 @@ "name": "TabBarBorderSize", "type": "float" }, + { + "comment": { + "sameline": "// Thickness of tab-bar overline, which highlights the selected tab-bar." + }, + "name": "TabBarOverlineSize", + "type": "float" + }, { "comment": { "sameline": "// Angle of angled headers (supported values range from -50.0f degrees to +50.0f degrees)." @@ -11832,6 +12796,13 @@ "name": "TableAngledHeadersAngle", "type": "float" }, + { + "comment": { + "sameline": "// Alignment of angled headers within the cell" + }, + "name": "TableAngledHeadersTextAlign", + "type": "ImVec2" + }, { "comment": { "sameline": "// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right." @@ -11855,7 +12826,7 @@ }, { "comment": { - "sameline": "// Thickkness of border in SeparatorText()" + "sameline": "// Thickness of border in SeparatorText()" }, "name": "SeparatorTextBorderSize", "type": "float" @@ -11876,14 +12847,14 @@ }, { "comment": { - "sameline": "// Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows." + "sameline": "// Apply to regular windows: amount which we enforce to keep visible when moving near edges of your screen." }, "name": "DisplayWindowPadding", "type": "ImVec2" }, { "comment": { - "sameline": "// If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!" + "sameline": "// Apply to every windows, menus, popups, tooltips: amount where we avoid displaying contents. Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured)." }, "name": "DisplaySafeAreaPadding", "type": "ImVec2" @@ -11939,7 +12910,7 @@ }, { "name": "Colors[ImGuiCol_COUNT]", - "size": 55, + "size": 58, "type": "ImVec4" }, { @@ -12652,7 +13623,7 @@ }, { "comment": { - "sameline": "// Number of enabled columns (<= ColumnsCount)" + "sameline": "// Number of enabled columns using fixed width (<= ColumnsCount)" }, "name": "ColumnsEnabledFixedCount", "type": "ImGuiTableColumnIdx" @@ -12995,6 +13966,13 @@ "name": "WidthAuto", "type": "float" }, + { + "comment": { + "sameline": "// Maximum width (FIXME: overwritten by each instance)" + }, + "name": "WidthMax", + "type": "float" + }, { "comment": { "sameline": "// Master width weight when (Flags & _WidthStretch). Often around ~1.0f initially." @@ -13292,7 +14270,6 @@ "type": "ImS16" }, { - "bitfield": "8", "comment": { "sameline": "// ImGuiSortDirection_Ascending or ImGuiSortDirection_Descending" }, @@ -13300,6 +14277,27 @@ "type": "ImGuiSortDirection" } ], + "ImGuiTableHeaderData": [ + { + "comment": { + "sameline": "// Column index" + }, + "name": "Index", + "type": "ImGuiTableColumnIdx" + }, + { + "name": "TextColor", + "type": "ImU32" + }, + { + "name": "BgColor0", + "type": "ImU32" + }, + { + "name": "BgColor1", + "type": "ImU32" + } + ], "ImGuiTableInstanceData": [ { "name": "TableInstanceID", @@ -13427,6 +14425,14 @@ "name": "AngledHeadersExtraWidth", "type": "float" }, + { + "comment": { + "sameline": "// Used in TableAngledHeadersRow()" + }, + "name": "AngledHeadersRequests", + "template_type": "ImGuiTableHeaderData", + "type": "ImVector_ImGuiTableHeaderData" + }, { "comment": { "sameline": "// outer_size.x passed to BeginTable()" @@ -13542,6 +14548,30 @@ "type": "const char*" } ], + "ImGuiTreeNodeStackData": [ + { + "name": "ID", + "type": "ImGuiID" + }, + { + "name": "TreeFlags", + "type": "ImGuiTreeNodeFlags" + }, + { + "comment": { + "sameline": "// Used for nav landing" + }, + "name": "InFlags", + "type": "ImGuiItemFlags" + }, + { + "comment": { + "sameline": "// Used for nav landing" + }, + "name": "NavRect", + "type": "ImRect" + } + ], "ImGuiTypingSelectRequest": [ { "comment": { @@ -13700,7 +14730,7 @@ }, { "comment": { - "sameline": "// void* for FindViewportByPlatformHandle(). (e.g. suggested to use natural platform handle such as HWND, GLFWWindow*, SDL_Window*)" + "sameline": "// void* to hold higher-level, platform window handle (e.g. HWND, GLFWWindow*, SDL_Window*), for FindViewportByPlatformHandle()." }, "name": "PlatformHandle", "type": "void*" @@ -13779,6 +14809,10 @@ "name": "LastPos", "type": "ImVec2" }, + { + "name": "LastSize", + "type": "ImVec2" + }, { "comment": { "sameline": "// Window opacity (when dragging dockable windows/viewports we make them transparent)" @@ -13842,30 +14876,31 @@ }, { "comment": { - "sameline": "// Work Area: Offset from Pos to top-left corner of Work Area. Generally (0,0) or (0,+main_menu_bar_height). Work Area is Full Area but without menu-bars/status-bars (so WorkArea always fit inside Pos/Size!)" + "above": " // Per-viewport work area\n // - Insets are >= 0.0f values, distance from viewport corners to work area.\n // - BeginMainMenuBar() and DockspaceOverViewport() tend to use work area to avoid stepping over existing contents.\n // - Generally 'safeAreaInsets' in iOS land, 'DisplayCutout' in Android land.", + "sameline": "// Work Area inset locked for the frame. GetWorkRect() always fits within GetMainRect()." }, - "name": "WorkOffsetMin", + "name": "WorkInsetMin", "type": "ImVec2" }, { "comment": { - "sameline": "// Work Area: Offset from Pos+Size to bottom-right corner of Work Area. Generally (0,0) or (0,-status_bar_height)." + "sameline": "// \"" }, - "name": "WorkOffsetMax", + "name": "WorkInsetMax", "type": "ImVec2" }, { "comment": { - "sameline": "// Work Area: Offset being built during current frame. Generally >= 0.0f." + "sameline": "// Work Area inset accumulator for current frame, to become next frame's WorkInset" }, - "name": "BuildWorkOffsetMin", + "name": "BuildWorkInsetMin", "type": "ImVec2" }, { "comment": { - "sameline": "// Work Area: Offset being built during current frame. Generally <= 0.0f." + "sameline": "// \"" }, - "name": "BuildWorkOffsetMax", + "name": "BuildWorkInsetMax", "type": "ImVec2" } ], @@ -14007,6 +15042,20 @@ "name": "WindowBorderSize", "type": "float" }, + { + "comment": { + "sameline": "// Note that those used to be function before 2024/05/28. If you have old code calling TitleBarHeight() you can change it to TitleBarHeight." + }, + "name": "TitleBarHeight", + "type": "float" + }, + { + "comment": { + "sameline": "// Note that those used to be function before 2024/05/28. If you have old code calling TitleBarHeight() you can change it to TitleBarHeight." + }, + "name": "MenuBarHeight", + "type": "float" + }, { "comment": { "sameline": "// Left/Up offsets. Sum of non-scrolling outer decorations (X1 generally == 0.0f. Y1 generally = TitleBarHeight + MenuBarHeight). Locked during Begin()." @@ -14077,6 +15126,13 @@ "name": "ChildId", "type": "ImGuiID" }, + { + "comment": { + "sameline": "// ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling)" + }, + "name": "PopupId", + "type": "ImGuiID" + }, { "name": "Scroll", "type": "ImVec2" @@ -14167,6 +15223,13 @@ "name": "SkipItems", "type": "bool" }, + { + "comment": { + "sameline": "// [EXPERIMENTAL] Reuse previous frame drawn contents, Begin() returns false." + }, + "name": "SkipRefresh", + "type": "bool" + }, { "comment": { "sameline": "// Set during the frame where the window is appearing (or re-appearing)" @@ -14251,13 +15314,6 @@ "name": "FocusOrder", "type": "short" }, - { - "comment": { - "sameline": "// ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling)" - }, - "name": "PopupId", - "type": "ImGuiID" - }, { "name": "AutoFitFramesX", "type": "ImS8" @@ -14732,7 +15788,7 @@ "ImGuiWindowDockStyle": [ { "name": "Colors[ImGuiWindowDockStyleCol_COUNT]", - "size": 6, + "size": 8, "type": "ImU32" } ], @@ -14819,6 +15875,13 @@ }, "name": "StackSizesOnBegin", "type": "ImGuiStackSizes" + }, + { + "comment": { + "sameline": "// Non-child window override disabled flag" + }, + "name": "DisabledOverrideReenable", + "type": "bool" } ], "ImGuiWindowTempData": [ @@ -14978,9 +16041,9 @@ }, { "comment": { - "sameline": "// Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary." + "sameline": "// Store whether given depth has ImGuiTreeNodeStackData data. Could be turned into a ImU64 if necessary." }, - "name": "TreeJumpToParentOnPopMask", + "name": "TreeHasStackDataDepthMask", "type": "ImU32" }, { @@ -15115,167 +16178,6 @@ "name": "w", "type": "float" } - ], - "STB_TexteditState": [ - { - "name": "cursor", - "type": "int" - }, - { - "comment": { - "sameline": "// selection start point" - }, - "name": "select_start", - "type": "int" - }, - { - "name": "select_end", - "type": "int" - }, - { - "name": "insert_mode", - "type": "unsigned char" - }, - { - "name": "row_count_per_page", - "type": "int" - }, - { - "comment": { - "above": " /////////////////////\n //\n // private data\n //", - "sameline": "// not implemented yet" - }, - "name": "cursor_at_end_of_line", - "type": "unsigned char" - }, - { - "name": "initialized", - "type": "unsigned char" - }, - { - "name": "has_preferred_x", - "type": "unsigned char" - }, - { - "name": "single_line", - "type": "unsigned char" - }, - { - "name": "padding1", - "type": "unsigned char" - }, - { - "name": "padding2", - "type": "unsigned char" - }, - { - "name": "padding3", - "type": "unsigned char" - }, - { - "comment": { - "sameline": "// this determines where the cursor up/down tries to seek to along x" - }, - "name": "preferred_x", - "type": "float" - }, - { - "name": "undostate", - "type": "StbUndoState" - } - ], - "StbTexteditRow": [ - { - "comment": { - "sameline": "// starting x location, end x location (allows for align=right, etc)" - }, - "name": "x0", - "type": "float" - }, - { - "comment": { - "sameline": "// starting x location, end x location (allows for align=right, etc)" - }, - "name": "x1", - "type": "float" - }, - { - "comment": { - "sameline": "// position of baseline relative to previous row's baseline" - }, - "name": "baseline_y_delta", - "type": "float" - }, - { - "comment": { - "sameline": "// height of row above and below baseline" - }, - "name": "ymin", - "type": "float" - }, - { - "comment": { - "sameline": "// height of row above and below baseline" - }, - "name": "ymax", - "type": "float" - }, - { - "name": "num_chars", - "type": "int" - } - ], - "StbUndoRecord": [ - { - "comment": { - "above": "\n // private data" - }, - "name": "where", - "type": "int" - }, - { - "name": "insert_length", - "type": "int" - }, - { - "name": "delete_length", - "type": "int" - }, - { - "name": "char_storage", - "type": "int" - } - ], - "StbUndoState": [ - { - "comment": { - "above": "\n // private data" - }, - "name": "undo_rec[99]", - "size": 99, - "type": "StbUndoRecord" - }, - { - "name": "undo_char[999]", - "size": 999, - "type": "ImWchar" - }, - { - "name": "undo_point", - "type": "short" - }, - { - "name": "redo_point", - "type": "short" - }, - { - "name": "undo_char_point", - "type": "int" - }, - { - "name": "redo_char_point", - "type": "int" - } ] }, "templated_structs": { @@ -15378,6 +16280,7 @@ "ImGuiWindowSettings": true }, "ImPool": { + "ImGuiMultiSelectState": true, "ImGuiTabBar": true, "ImGuiTable": true }, @@ -15408,12 +16311,14 @@ "ImGuiKeyRoutingData": true, "ImGuiListClipperData": true, "ImGuiListClipperRange": true, - "ImGuiNavTreeNodeData": true, + "ImGuiMultiSelectState": true, + "ImGuiMultiSelectTempData": true, "ImGuiOldColumnData": true, "ImGuiOldColumns": true, "ImGuiPlatformMonitor": true, "ImGuiPopupData": true, "ImGuiPtrOrIndex": true, + "ImGuiSelectionRequest": true, "ImGuiSettingsHandler": true, "ImGuiShrinkWidthItem": true, "ImGuiStackLevelInfo": true, @@ -15423,9 +16328,11 @@ "ImGuiTabItem": true, "ImGuiTable": true, "ImGuiTableColumnSortSpecs": true, + "ImGuiTableHeaderData": true, "ImGuiTableInstanceData": true, "ImGuiTableTempData": true, "ImGuiTextRange": true, + "ImGuiTreeNodeStackData": true, "ImGuiViewport*": true, "ImGuiViewportP*": true, "ImGuiWindow*": true, diff --git a/cimgui/cimgui_templates/typedefs_dict.json b/cwrappers/cimgui_templates/typedefs_dict.json similarity index 91% rename from cimgui/cimgui_templates/typedefs_dict.json rename to cwrappers/cimgui_templates/typedefs_dict.json index d838d5c7e..fdb28263d 100644 --- a/cimgui/cimgui_templates/typedefs_dict.json +++ b/cwrappers/cimgui_templates/typedefs_dict.json @@ -27,6 +27,7 @@ "ImFontGlyphRangesBuilder": "struct ImFontGlyphRangesBuilder", "ImGuiActivateFlags": "int", "ImGuiBackendFlags": "int", + "ImGuiBoxSelectState": "struct ImGuiBoxSelectState", "ImGuiButtonFlags": "int", "ImGuiChildFlags": "int", "ImGuiCol": "int", @@ -42,12 +43,11 @@ "ImGuiDataAuthority": "int", "ImGuiDataType": "int", "ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo", - "ImGuiDataTypeTempStorage": "struct ImGuiDataTypeTempStorage", + "ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage", "ImGuiDataVarInfo": "struct ImGuiDataVarInfo", "ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry", "ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo", "ImGuiDebugLogFlags": "int", - "ImGuiDir": "int", "ImGuiDockContext": "struct ImGuiDockContext", "ImGuiDockNode": "struct ImGuiDockNode", "ImGuiDockNodeFlags": "int", @@ -98,10 +98,13 @@ "ImGuiMetricsConfig": "struct ImGuiMetricsConfig", "ImGuiMouseButton": "int", "ImGuiMouseCursor": "int", + "ImGuiMultiSelectFlags": "int", + "ImGuiMultiSelectIO": "struct ImGuiMultiSelectIO", + "ImGuiMultiSelectState": "struct ImGuiMultiSelectState", + "ImGuiMultiSelectTempData": "struct ImGuiMultiSelectTempData", "ImGuiNavHighlightFlags": "int", "ImGuiNavItemData": "struct ImGuiNavItemData", "ImGuiNavMoveFlags": "int", - "ImGuiNavTreeNodeData": "struct ImGuiNavTreeNodeData", "ImGuiNextItemData": "struct ImGuiNextItemData", "ImGuiNextItemDataFlags": "int", "ImGuiNextWindowData": "struct ImGuiNextWindowData", @@ -119,6 +122,9 @@ "ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex", "ImGuiScrollFlags": "int", "ImGuiSelectableFlags": "int", + "ImGuiSelectionBasicStorage": "struct ImGuiSelectionBasicStorage", + "ImGuiSelectionExternalStorage": "struct ImGuiSelectionExternalStorage", + "ImGuiSelectionRequest": "struct ImGuiSelectionRequest", "ImGuiSelectionUserData": "ImS64", "ImGuiSeparatorFlags": "int", "ImGuiSettingsHandler": "struct ImGuiSettingsHandler", @@ -126,7 +132,6 @@ "ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);", "ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData", "ImGuiSliderFlags": "int", - "ImGuiSortDirection": "int", "ImGuiStackLevelInfo": "struct ImGuiStackLevelInfo", "ImGuiStackSizes": "struct ImGuiStackSizes", "ImGuiStorage": "struct ImGuiStorage", @@ -149,6 +154,7 @@ "ImGuiTableColumnsSettings": "struct ImGuiTableColumnsSettings", "ImGuiTableDrawChannelIdx": "ImU16", "ImGuiTableFlags": "int", + "ImGuiTableHeaderData": "struct ImGuiTableHeaderData", "ImGuiTableInstanceData": "struct ImGuiTableInstanceData", "ImGuiTableRowFlags": "int", "ImGuiTableSettings": "struct ImGuiTableSettings", @@ -161,6 +167,7 @@ "ImGuiTextRange": "struct ImGuiTextRange", "ImGuiTooltipFlags": "int", "ImGuiTreeNodeFlags": "int", + "ImGuiTreeNodeStackData": "struct ImGuiTreeNodeStackData", "ImGuiTypingSelectFlags": "int", "ImGuiTypingSelectRequest": "struct ImGuiTypingSelectRequest", "ImGuiTypingSelectState": "struct ImGuiTypingSelectState", @@ -171,6 +178,7 @@ "ImGuiWindowClass": "struct ImGuiWindowClass", "ImGuiWindowDockStyle": "struct ImGuiWindowDockStyle", "ImGuiWindowFlags": "int", + "ImGuiWindowRefreshFlags": "int", "ImGuiWindowSettings": "struct ImGuiWindowSettings", "ImGuiWindowStackData": "struct ImGuiWindowStackData", "ImGuiWindowTempData": "struct ImGuiWindowTempData", @@ -180,6 +188,7 @@ "ImS32": "signed int", "ImS64": "signed long long", "ImS8": "signed char", + "ImStbTexteditState": "ImStb::STB_TexteditState", "ImTextureID": "void*", "ImU16": "unsigned short", "ImU32": "unsigned int", @@ -193,9 +202,6 @@ "ImWchar16": "unsigned short", "ImWchar32": "unsigned int", "STB_TexteditState": "struct STB_TexteditState", - "StbTexteditRow": "struct StbTexteditRow", - "StbUndoRecord": "struct StbUndoRecord", - "StbUndoState": "struct StbUndoState", "const_iterator": "const value_type*", "iterator": "value_type*", "value_type": "T" diff --git a/cimgui/cimmarkdown.cpp b/cwrappers/cimmarkdown.cpp similarity index 100% rename from cimgui/cimmarkdown.cpp rename to cwrappers/cimmarkdown.cpp diff --git a/cimgui/cimmarkdown.h b/cwrappers/cimmarkdown.h similarity index 100% rename from cimgui/cimmarkdown.h rename to cwrappers/cimmarkdown.h diff --git a/cimgui/cimmarkdown_templates/definitions.json b/cwrappers/cimmarkdown_templates/definitions.json similarity index 100% rename from cimgui/cimmarkdown_templates/definitions.json rename to cwrappers/cimmarkdown_templates/definitions.json diff --git a/cimgui/cimmarkdown_templates/structs_and_enums.json b/cwrappers/cimmarkdown_templates/structs_and_enums.json similarity index 100% rename from cimgui/cimmarkdown_templates/structs_and_enums.json rename to cwrappers/cimmarkdown_templates/structs_and_enums.json diff --git a/cimgui/cimmarkdown_templates/typedefs_dict.json b/cwrappers/cimmarkdown_templates/typedefs_dict.json similarity index 100% rename from cimgui/cimmarkdown_templates/typedefs_dict.json rename to cwrappers/cimmarkdown_templates/typedefs_dict.json diff --git a/cimgui/cimnodes.cpp b/cwrappers/cimnodes.cpp similarity index 100% rename from cimgui/cimnodes.cpp rename to cwrappers/cimnodes.cpp diff --git a/cimgui/cimnodes.h b/cwrappers/cimnodes.h similarity index 100% rename from cimgui/cimnodes.h rename to cwrappers/cimnodes.h diff --git a/cimgui/cimnodes_templates/definitions.json b/cwrappers/cimnodes_templates/definitions.json similarity index 100% rename from cimgui/cimnodes_templates/definitions.json rename to cwrappers/cimnodes_templates/definitions.json diff --git a/cimgui/cimnodes_templates/structs_and_enums.json b/cwrappers/cimnodes_templates/structs_and_enums.json similarity index 100% rename from cimgui/cimnodes_templates/structs_and_enums.json rename to cwrappers/cimnodes_templates/structs_and_enums.json diff --git a/cimgui/cimnodes_templates/typedefs_dict.json b/cwrappers/cimnodes_templates/typedefs_dict.json similarity index 100% rename from cimgui/cimnodes_templates/typedefs_dict.json rename to cwrappers/cimnodes_templates/typedefs_dict.json diff --git a/cimgui/cimplot.cpp b/cwrappers/cimplot.cpp similarity index 100% rename from cimgui/cimplot.cpp rename to cwrappers/cimplot.cpp diff --git a/cimgui/cimplot.h b/cwrappers/cimplot.h similarity index 100% rename from cimgui/cimplot.h rename to cwrappers/cimplot.h diff --git a/cimgui/cimplot_templates/definitions.json b/cwrappers/cimplot_templates/definitions.json similarity index 100% rename from cimgui/cimplot_templates/definitions.json rename to cwrappers/cimplot_templates/definitions.json diff --git a/cimgui/cimplot_templates/structs_and_enums.json b/cwrappers/cimplot_templates/structs_and_enums.json similarity index 100% rename from cimgui/cimplot_templates/structs_and_enums.json rename to cwrappers/cimplot_templates/structs_and_enums.json diff --git a/cimgui/cimplot_templates/typedefs_dict.json b/cwrappers/cimplot_templates/typedefs_dict.json similarity index 100% rename from cimgui/cimplot_templates/typedefs_dict.json rename to cwrappers/cimplot_templates/typedefs_dict.json diff --git a/cimgui/dummy.go b/cwrappers/dummy.go similarity index 100% rename from cimgui/dummy.go rename to cwrappers/dummy.go diff --git a/cimgui/imgui/LICENSE.txt b/cwrappers/imgui/LICENSE.txt similarity index 100% rename from cimgui/imgui/LICENSE.txt rename to cwrappers/imgui/LICENSE.txt diff --git a/cimgui/imgui/backends/dummy.go b/cwrappers/imgui/backends/dummy.go similarity index 100% rename from cimgui/imgui/backends/dummy.go rename to cwrappers/imgui/backends/dummy.go diff --git a/cimgui/imgui/backends/imgui_impl_allegro5.cpp b/cwrappers/imgui/backends/imgui_impl_allegro5.cpp similarity index 95% rename from cimgui/imgui/backends/imgui_impl_allegro5.cpp rename to cwrappers/imgui/backends/imgui_impl_allegro5.cpp index 3ef024a34..2737aa2c9 100644 --- a/cimgui/imgui/backends/imgui_impl_allegro5.cpp +++ b/cwrappers/imgui/backends/imgui_impl_allegro5.cpp @@ -21,6 +21,9 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) +// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: +// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn +// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn // 2022-11-30: Renderer: Restoring using al_draw_indexed_prim() when Allegro version is >= 5.2.5. // 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. // 2022-09-26: Inputs: Renamed ImGuiKey_ModXXX introduced in 1.87 to ImGuiMod_XXX (old names still supported). @@ -63,8 +66,8 @@ #ifdef _WIN32 #include #endif -#define ALLEGRO_HAS_CLIPBOARD (ALLEGRO_VERSION_INT >= ((5 << 24) | (1 << 16) | (12 << 8))) // Clipboard only supported from Allegro 5.1.12 -#define ALLEGRO_HAS_DRAW_INDEXED_PRIM (ALLEGRO_VERSION_INT >= ((5 << 24) | (2 << 16) | ( 5 << 8))) // DX9 implementation of al_draw_indexed_prim() got fixed in Allegro 5.2.5 +#define ALLEGRO_HAS_CLIPBOARD ((ALLEGRO_VERSION_INT & ~ALLEGRO_UNSTABLE_BIT) >= ((5 << 24) | (1 << 16) | (12 << 8))) // Clipboard only supported from Allegro 5.1.12 +#define ALLEGRO_HAS_DRAW_INDEXED_PRIM ((ALLEGRO_VERSION_INT & ~ALLEGRO_UNSTABLE_BIT) >= ((5 << 24) | (2 << 16) | ( 5 << 8))) // DX9 implementation of al_draw_indexed_prim() got fixed in Allegro 5.2.5 // Visual Studio warnings #ifdef _MSC_VER @@ -292,7 +295,7 @@ void ImGui_ImplAllegro5_InvalidateDeviceObjects() } #if ALLEGRO_HAS_CLIPBOARD -static const char* ImGui_ImplAllegro5_GetClipboardText(void*) +static const char* ImGui_ImplAllegro5_GetClipboardText(ImGuiContext*) { ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); if (bd->ClipboardTextData) @@ -301,7 +304,7 @@ static const char* ImGui_ImplAllegro5_GetClipboardText(void*) return bd->ClipboardTextData; } -static void ImGui_ImplAllegro5_SetClipboardText(void*, const char* text) +static void ImGui_ImplAllegro5_SetClipboardText(ImGuiContext*, const char* text) { ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); al_set_clipboard_text(bd->Display, text); @@ -424,6 +427,7 @@ static ImGuiKey ImGui_ImplAllegro5_KeyCodeToImGuiKey(int key_code) bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); // Setup backend capabilities flags @@ -447,9 +451,9 @@ bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display) bd->VertexDecl = al_create_vertex_decl(elems, sizeof(ImDrawVertAllegro)); #if ALLEGRO_HAS_CLIPBOARD - io.SetClipboardTextFn = ImGui_ImplAllegro5_SetClipboardText; - io.GetClipboardTextFn = ImGui_ImplAllegro5_GetClipboardText; - io.ClipboardUserData = nullptr; + ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); + platform_io.Platform_SetClipboardTextFn = ImGui_ImplAllegro5_SetClipboardText; + platform_io.Platform_GetClipboardTextFn = ImGui_ImplAllegro5_GetClipboardText; #endif return true; @@ -491,8 +495,9 @@ static void ImGui_ImplAllegro5_UpdateKeyModifiers() // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* ev) { - ImGuiIO& io = ImGui::GetIO(); ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplAllegro5_Init()?"); + ImGuiIO& io = ImGui::GetIO(); switch (ev->type) { @@ -587,7 +592,7 @@ static void ImGui_ImplAllegro5_UpdateMouseCursor() void ImGui_ImplAllegro5_NewFrame() { ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplAllegro5_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplAllegro5_Init()?"); if (!bd->Texture) ImGui_ImplAllegro5_CreateDeviceObjects(); diff --git a/cimgui/imgui/backends/imgui_impl_allegro5.h b/cwrappers/imgui/backends/imgui_impl_allegro5.h similarity index 96% rename from cimgui/imgui/backends/imgui_impl_allegro5.h rename to cwrappers/imgui/backends/imgui_impl_allegro5.h index a7f7c0e6b..7b2e19094 100644 --- a/cimgui/imgui/backends/imgui_impl_allegro5.h +++ b/cwrappers/imgui/backends/imgui_impl_allegro5.h @@ -26,6 +26,7 @@ struct ALLEGRO_DISPLAY; union ALLEGRO_EVENT; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display); IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown(); IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_android.cpp b/cwrappers/imgui/backends/imgui_impl_android.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_android.cpp rename to cwrappers/imgui/backends/imgui_impl_android.cpp index f387c4830..994b0c6f2 100644 --- a/cimgui/imgui/backends/imgui_impl_android.cpp +++ b/cwrappers/imgui/backends/imgui_impl_android.cpp @@ -264,6 +264,8 @@ int32_t ImGui_ImplAndroid_HandleInputEvent(const AInputEvent* input_event) bool ImGui_ImplAndroid_Init(ANativeWindow* window) { + IMGUI_CHECKVERSION(); + g_Window = window; g_Time = 0.0; diff --git a/cimgui/imgui/backends/imgui_impl_android.h b/cwrappers/imgui/backends/imgui_impl_android.h similarity index 96% rename from cimgui/imgui/backends/imgui_impl_android.h rename to cwrappers/imgui/backends/imgui_impl_android.h index 7cd4ef16f..d7e7fb94e 100644 --- a/cimgui/imgui/backends/imgui_impl_android.h +++ b/cwrappers/imgui/backends/imgui_impl_android.h @@ -29,6 +29,7 @@ struct ANativeWindow; struct AInputEvent; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplAndroid_Init(ANativeWindow* window); IMGUI_IMPL_API int32_t ImGui_ImplAndroid_HandleInputEvent(const AInputEvent* input_event); IMGUI_IMPL_API void ImGui_ImplAndroid_Shutdown(); diff --git a/cimgui/imgui/backends/imgui_impl_dx10.cpp b/cwrappers/imgui/backends/imgui_impl_dx10.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_dx10.cpp rename to cwrappers/imgui/backends/imgui_impl_dx10.cpp index d4d0b5a34..0123aa65b 100644 --- a/cimgui/imgui/backends/imgui_impl_dx10.cpp +++ b/cwrappers/imgui/backends/imgui_impl_dx10.cpp @@ -540,6 +540,7 @@ void ImGui_ImplDX10_InvalidateDeviceObjects() bool ImGui_ImplDX10_Init(ID3D10Device* device) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -588,7 +589,7 @@ void ImGui_ImplDX10_Shutdown() void ImGui_ImplDX10_NewFrame() { ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplDX10_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX10_Init()?"); if (!bd->pFontSampler) ImGui_ImplDX10_CreateDeviceObjects(); diff --git a/cimgui/imgui/backends/imgui_impl_dx10.h b/cwrappers/imgui/backends/imgui_impl_dx10.h similarity index 94% rename from cimgui/imgui/backends/imgui_impl_dx10.h rename to cwrappers/imgui/backends/imgui_impl_dx10.h index 39259bdc7..f6286de2f 100644 --- a/cimgui/imgui/backends/imgui_impl_dx10.h +++ b/cwrappers/imgui/backends/imgui_impl_dx10.h @@ -20,6 +20,7 @@ struct ID3D10Device; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplDX10_Init(ID3D10Device* device); IMGUI_IMPL_API void ImGui_ImplDX10_Shutdown(); IMGUI_IMPL_API void ImGui_ImplDX10_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_dx11.cpp b/cwrappers/imgui/backends/imgui_impl_dx11.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_dx11.cpp rename to cwrappers/imgui/backends/imgui_impl_dx11.cpp index 804d20adb..3d7ec7e88 100644 --- a/cimgui/imgui/backends/imgui_impl_dx11.cpp +++ b/cwrappers/imgui/backends/imgui_impl_dx11.cpp @@ -552,6 +552,7 @@ void ImGui_ImplDX11_InvalidateDeviceObjects() bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -605,7 +606,7 @@ void ImGui_ImplDX11_Shutdown() void ImGui_ImplDX11_NewFrame() { ImGui_ImplDX11_Data* bd = ImGui_ImplDX11_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplDX11_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX11_Init()?"); if (!bd->pFontSampler) ImGui_ImplDX11_CreateDeviceObjects(); diff --git a/cimgui/imgui/backends/imgui_impl_dx11.h b/cwrappers/imgui/backends/imgui_impl_dx11.h similarity index 94% rename from cimgui/imgui/backends/imgui_impl_dx11.h rename to cwrappers/imgui/backends/imgui_impl_dx11.h index 1713fbdd9..030b3e397 100644 --- a/cimgui/imgui/backends/imgui_impl_dx11.h +++ b/cwrappers/imgui/backends/imgui_impl_dx11.h @@ -21,6 +21,7 @@ struct ID3D11Device; struct ID3D11DeviceContext; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context); IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown(); IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_dx12.cpp b/cwrappers/imgui/backends/imgui_impl_dx12.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_dx12.cpp rename to cwrappers/imgui/backends/imgui_impl_dx12.cpp index 31ee73727..cde8981b9 100644 --- a/cimgui/imgui/backends/imgui_impl_dx12.cpp +++ b/cwrappers/imgui/backends/imgui_impl_dx12.cpp @@ -777,6 +777,7 @@ bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FO D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -833,7 +834,7 @@ void ImGui_ImplDX12_Shutdown() void ImGui_ImplDX12_NewFrame() { ImGui_ImplDX12_Data* bd = ImGui_ImplDX12_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplDX12_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX12_Init()?"); if (!bd->pPipelineState) ImGui_ImplDX12_CreateDeviceObjects(); diff --git a/cimgui/imgui/backends/imgui_impl_dx12.h b/cwrappers/imgui/backends/imgui_impl_dx12.h similarity index 96% rename from cimgui/imgui/backends/imgui_impl_dx12.h rename to cwrappers/imgui/backends/imgui_impl_dx12.h index f304cca15..ad1cad10a 100644 --- a/cimgui/imgui/backends/imgui_impl_dx12.h +++ b/cwrappers/imgui/backends/imgui_impl_dx12.h @@ -28,6 +28,8 @@ struct ID3D12GraphicsCommandList; struct D3D12_CPU_DESCRIPTOR_HANDLE; struct D3D12_GPU_DESCRIPTOR_HANDLE; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! + // cmd_list is the command list that the implementation will use to render imgui draw lists. // Before calling the render function, caller must prepare cmd_list by resetting it and setting the appropriate // render target and descriptor heap that contains font_srv_cpu_desc_handle/font_srv_gpu_desc_handle. diff --git a/cimgui/imgui/backends/imgui_impl_dx9.cpp b/cwrappers/imgui/backends/imgui_impl_dx9.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_dx9.cpp rename to cwrappers/imgui/backends/imgui_impl_dx9.cpp index 2f03fa6e3..59475d2ae 100644 --- a/cimgui/imgui/backends/imgui_impl_dx9.cpp +++ b/cwrappers/imgui/backends/imgui_impl_dx9.cpp @@ -298,6 +298,7 @@ void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data) bool ImGui_ImplDX9_Init(IDirect3DDevice9* device) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -419,7 +420,7 @@ void ImGui_ImplDX9_InvalidateDeviceObjects() void ImGui_ImplDX9_NewFrame() { ImGui_ImplDX9_Data* bd = ImGui_ImplDX9_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplDX9_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplDX9_Init()?"); if (!bd->FontTexture) ImGui_ImplDX9_CreateDeviceObjects(); diff --git a/cimgui/imgui/backends/imgui_impl_dx9.h b/cwrappers/imgui/backends/imgui_impl_dx9.h similarity index 94% rename from cimgui/imgui/backends/imgui_impl_dx9.h rename to cwrappers/imgui/backends/imgui_impl_dx9.h index ecf7181db..f65bfb13c 100644 --- a/cimgui/imgui/backends/imgui_impl_dx9.h +++ b/cwrappers/imgui/backends/imgui_impl_dx9.h @@ -20,6 +20,7 @@ struct IDirect3DDevice9; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9* device); IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown(); IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_glfw.cpp b/cwrappers/imgui/backends/imgui_impl_glfw.cpp similarity index 92% rename from cimgui/imgui/backends/imgui_impl_glfw.cpp rename to cwrappers/imgui/backends/imgui_impl_glfw.cpp index 1df78a548..894a8f660 100644 --- a/cimgui/imgui/backends/imgui_impl_glfw.cpp +++ b/cwrappers/imgui/backends/imgui_impl_glfw.cpp @@ -10,9 +10,8 @@ // [X] Platform: Gamepad support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange' (note: the resizing cursors requires GLFW 3.4+). // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. - // Issues: -// [ ] Platform: Multi-viewport support: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. @@ -22,9 +21,22 @@ // - Documentation https://dearimgui.com/docs (same as your local docs/ folder). // - Introduction, links and more at the top of imgui.cpp +// About Emscripten support: +// - Emscripten provides its own GLFW (3.2.1) implementation (syntax: "-sUSE_GLFW=3"), but Joystick is broken and several features are not supported (multiple windows, clipboard, timer, etc.) +// - A third-party Emscripten GLFW (3.4.0) implementation (syntax: "--use-port=contrib.glfw3") fixes the Joystick issue and implements all relevant features for the browser. +// See https://github.com/pongasoft/emscripten-glfw/blob/master/docs/Comparison.md for details. + // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: +// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn +// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn +// - io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn +// 2024-07-31: Added ImGui_ImplGlfw_Sleep() helper function for usage by our examples app, since GLFW doesn't provide one. +// 2024-07-08: *BREAKING* Renamed ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback to ImGui_ImplGlfw_InstallEmscriptenCallbacks(), added GLFWWindow* parameter. +// 2024-07-08: Emscripten: Added support for GLFW3 contrib port (GLFW 3.4.0 features + bug fixes): to enable, replace -sUSE_GLFW=3 with --use-port=contrib.glfw3 (requires emscripten 3.1.59+) (https://github.com/pongasoft/emscripten-glfw) +// 2024-07-02: Emscripten: Added io.PlatformOpenInShellFn() handler for Emscripten versions. // 2023-12-19: Emscripten: Added ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback() to register canvas selector and auto-resize GLFW window. // 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys. // 2023-07-18: Inputs: Revert ignoring mouse data on GLFW_CURSOR_DISABLED as it can be used differently. User may set ImGuiConfigFLags_NoMouse if desired. (#5625, #6609) @@ -91,17 +103,29 @@ #ifdef _WIN32 #undef APIENTRY +#ifndef GLFW_EXPOSE_NATIVE_WIN32 #define GLFW_EXPOSE_NATIVE_WIN32 +#endif #include // for glfwGetWin32Window() #endif #ifdef __APPLE__ +#ifndef GLFW_EXPOSE_NATIVE_COCOA #define GLFW_EXPOSE_NATIVE_COCOA +#endif #include // for glfwGetCocoaWindow() #endif +#ifndef _WIN32 +#include // for usleep() +#endif #ifdef __EMSCRIPTEN__ #include #include +#ifdef EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 +#include +#else +#define EMSCRIPTEN_USE_EMBEDDED_GLFW3 +#endif #endif // We gather version tests as define in order to easily see which features are version-dependent. @@ -153,7 +177,7 @@ struct ImGui_ImplGlfw_Data bool InstalledCallbacks; bool CallbacksChainForAllWindows; bool WantUpdateMonitors; -#ifdef __EMSCRIPTEN__ +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 const char* CanvasSelector; #endif @@ -191,16 +215,6 @@ static void ImGui_ImplGlfw_InitPlatformInterface(); static void ImGui_ImplGlfw_ShutdownPlatformInterface(); // Functions -static const char* ImGui_ImplGlfw_GetClipboardText(void* user_data) -{ - return glfwGetClipboardString((GLFWwindow*)user_data); -} - -static void ImGui_ImplGlfw_SetClipboardText(void* user_data, const char* text) -{ - glfwSetClipboardString((GLFWwindow*)user_data, text); -} - static ImGuiKey ImGui_ImplGlfw_KeyToImGuiKey(int key) { switch (key) @@ -362,7 +376,7 @@ void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window, double xoffset, double yo if (bd->PrevUserCallbackScroll != nullptr && ImGui_ImplGlfw_ShouldChainCallback(window)) bd->PrevUserCallbackScroll(window, xoffset, yoffset); -#ifdef __EMSCRIPTEN__ +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 // Ignore GLFW events: will be processed in ImGui_ImplEmscripten_WheelCallback(). return; #endif @@ -373,7 +387,7 @@ void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window, double xoffset, double yo static int ImGui_ImplGlfw_TranslateUntranslatedKey(int key, int scancode) { -#if GLFW_HAS_GETKEYNAME && !defined(__EMSCRIPTEN__) +#if GLFW_HAS_GETKEYNAME && !defined(EMSCRIPTEN_USE_EMBEDDED_GLFW3) // GLFW 3.1+ attempts to "untranslate" keys, which goes the opposite of what every other framework does, making using lettered shortcuts difficult. // (It had reasons to do so: namely GLFW is/was more likely to be used for WASD-type game controls rather than lettered shortcuts, but IHMO the 3.1 change could have been done differently) // See https://github.com/glfw/glfw/issues/1502 for details. @@ -384,7 +398,7 @@ static int ImGui_ImplGlfw_TranslateUntranslatedKey(int key, int scancode) GLFWerrorfun prev_error_callback = glfwSetErrorCallback(nullptr); const char* key_name = glfwGetKeyName(key, scancode); glfwSetErrorCallback(prev_error_callback); -#if GLFW_HAS_GETERROR && !defined(__EMSCRIPTEN__) // Eat errors (see #5908) +#if GLFW_HAS_GETERROR && !defined(EMSCRIPTEN_USE_EMBEDDED_GLFW3) // Eat errors (see #5908) (void)glfwGetError(nullptr); #endif if (key_name && key_name[0] != 0 && key_name[1] == 0) @@ -492,7 +506,7 @@ void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor*, int) bd->WantUpdateMonitors = true; } -#ifdef __EMSCRIPTEN__ +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 static EM_BOOL ImGui_ImplEmscripten_WheelCallback(int, const EmscriptenWheelEvent* ev, void*) { // Mimic Emscripten_HandleWheel() in SDL. @@ -566,9 +580,18 @@ void ImGui_ImplGlfw_SetCallbacksChainForAllWindows(bool chain_for_all_windows) bd->CallbacksChainForAllWindows = chain_for_all_windows; } +#ifdef __EMSCRIPTEN__ +#if EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 >= 34020240817 +void ImGui_ImplGlfw_EmscriptenOpenURL(const char* url) { if (url) emscripten::glfw3::OpenURL(url); } +#else +EM_JS(void, ImGui_ImplGlfw_EmscriptenOpenURL, (const char* url), { url = url ? UTF8ToString(url) : null; if (url) window.open(url, '_blank'); }); +#endif +#endif + static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, GlfwClientApi client_api) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); //printf("GLFW_VERSION: %d.%d.%d (%d)", GLFW_VERSION_MAJOR, GLFW_VERSION_MINOR, GLFW_VERSION_REVISION, GLFW_VERSION_COMBINED); @@ -589,9 +612,12 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw bd->Time = 0.0; bd->WantUpdateMonitors = true; - io.SetClipboardTextFn = ImGui_ImplGlfw_SetClipboardText; - io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText; - io.ClipboardUserData = bd->Window; + ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); + platform_io.Platform_SetClipboardTextFn = [](ImGuiContext*, const char* text) { glfwSetClipboardString(NULL, text); }; + platform_io.Platform_GetClipboardTextFn = [](ImGuiContext*) { return glfwGetClipboardString(NULL); }; +#ifdef __EMSCRIPTEN__ + platform_io.Platform_OpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplGlfw_EmscriptenOpenURL(url); return true; }; +#endif // Create mouse cursors // (By design, on X11 cursors are user configurable and some cursors may be missing. When a cursor doesn't exist, @@ -622,12 +648,6 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw // Chain GLFW callbacks: our callbacks will call the user's previously installed callbacks, if any. if (install_callbacks) ImGui_ImplGlfw_InstallCallbacks(window); - // Register Emscripten Wheel callback to workaround issue in Emscripten GLFW Emulation (#6096) - // We intentionally do not check 'if (install_callbacks)' here, as some users may set it to false and call GLFW callback themselves. - // FIXME: May break chaining in case user registered their own Emscripten callback? -#ifdef __EMSCRIPTEN__ - emscripten_set_wheel_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, nullptr, false, ImGui_ImplEmscripten_WheelCallback); -#endif // Update monitors the first time (note: monitor callback are broken in GLFW 3.2 and earlier, see github.com/glfw/glfw/issues/784) ImGui_ImplGlfw_UpdateMonitors(); @@ -653,6 +673,23 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw ::SetWindowLongPtrW((HWND)main_viewport->PlatformHandleRaw, GWLP_WNDPROC, (LONG_PTR)ImGui_ImplGlfw_WndProc); #endif + // Emscripten: the same application can run on various platforms, so we detect the Apple platform at runtime + // to override io.ConfigMacOSXBehaviors from its default (which is always false in Emscripten). +#ifdef __EMSCRIPTEN__ +#if EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 >= 34020240817 + if (emscripten::glfw3::IsRuntimePlatformApple()) + { + ImGui::GetIO().ConfigMacOSXBehaviors = true; + + // Due to how the browser (poorly) handles the Meta Key, this line essentially disables repeats when used. + // This means that Meta + V only registers a single key-press, even if the keys are held. + // This is a compromise for dealing with this issue in ImGui since ImGui implements key repeat itself. + // See https://github.com/pongasoft/emscripten-glfw/blob/v3.4.0.20240817/docs/Usage.md#the-problem-of-the-super-key + emscripten::glfw3::SetSuperPlusKeyTimeouts(10, 10); + } +#endif +#endif + bd->ClientApi = client_api; return true; } @@ -682,8 +719,9 @@ void ImGui_ImplGlfw_Shutdown() if (bd->InstalledCallbacks) ImGui_ImplGlfw_RestoreCallbacks(bd->Window); -#ifdef __EMSCRIPTEN__ - emscripten_set_wheel_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, nullptr, false, nullptr); +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 + if (bd->CanvasSelector) + emscripten_set_wheel_callback(bd->CanvasSelector, nullptr, false, nullptr); #endif for (ImGuiMouseCursor cursor_n = 0; cursor_n < ImGuiMouseCursor_COUNT; cursor_n++) @@ -715,7 +753,7 @@ static void ImGui_ImplGlfw_UpdateMouseData() ImGuiViewport* viewport = platform_io.Viewports[n]; GLFWwindow* window = (GLFWwindow*)viewport->PlatformHandle; -#ifdef __EMSCRIPTEN__ +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 const bool is_window_focused = true; #else const bool is_window_focused = glfwGetWindowAttrib(window, GLFW_FOCUSED) != 0; @@ -809,7 +847,7 @@ static void ImGui_ImplGlfw_UpdateGamepads() return; io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad; -#if GLFW_HAS_GAMEPAD_API && !defined(__EMSCRIPTEN__) +#if GLFW_HAS_GAMEPAD_API && !defined(EMSCRIPTEN_USE_EMBEDDED_GLFW3) GLFWgamepadstate gamepad; if (!glfwGetGamepadState(GLFW_JOYSTICK_1, &gamepad)) return; @@ -888,6 +926,8 @@ static void ImGui_ImplGlfw_UpdateMonitors() // Warning: the validity of monitor DPI information on Windows depends on the application DPI awareness settings, which generally needs to be set in the manifest or at runtime. float x_scale, y_scale; glfwGetMonitorContentScale(glfw_monitors[n], &x_scale, &y_scale); + if (x_scale == 0.0f) + continue; // Some accessibility applications are declaring virtual monitors with a DPI of 0, see #7902. monitor.DpiScale = x_scale; #endif monitor.PlatformHandle = (void*)glfw_monitors[n]; // [...] GLFW doc states: "guaranteed to be valid only until the monitor configuration changes" @@ -899,7 +939,7 @@ void ImGui_ImplGlfw_NewFrame() { ImGuiIO& io = ImGui::GetIO(); ImGui_ImplGlfw_Data* bd = ImGui_ImplGlfw_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplGlfw_InitForXXX()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplGlfw_InitForXXX()?"); // Setup display size (every frame to accommodate for window resizing) int w, h; @@ -927,7 +967,17 @@ void ImGui_ImplGlfw_NewFrame() ImGui_ImplGlfw_UpdateGamepads(); } -#ifdef __EMSCRIPTEN__ +// GLFW doesn't provide a portable sleep function +void ImGui_ImplGlfw_Sleep(int milliseconds) +{ +#ifdef _WIN32 + ::Sleep(milliseconds); +#else + usleep(milliseconds * 1000); +#endif +} + +#ifdef EMSCRIPTEN_USE_EMBEDDED_GLFW3 static EM_BOOL ImGui_ImplGlfw_OnCanvasSizeChange(int event_type, const EmscriptenUiEvent* event, void* user_data) { ImGui_ImplGlfw_Data* bd = (ImGui_ImplGlfw_Data*)user_data; @@ -948,11 +998,11 @@ static EM_BOOL ImGui_ImplEmscripten_FullscreenChangeCallback(int event_type, con // 'canvas_selector' is a CSS selector. The event listener is applied to the first element that matches the query. // STRING MUST PERSIST FOR THE APPLICATION DURATION. PLEASE USE A STRING LITERAL OR ENSURE POINTER WILL STAY VALID. -void ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback(const char* canvas_selector) +void ImGui_ImplGlfw_InstallEmscriptenCallbacks(GLFWwindow*, const char* canvas_selector) { IM_ASSERT(canvas_selector != nullptr); ImGui_ImplGlfw_Data* bd = ImGui_ImplGlfw_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplGlfw_InitForXXX()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplGlfw_InitForXXX()?"); bd->CanvasSelector = canvas_selector; emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_WINDOW, bd, false, ImGui_ImplGlfw_OnCanvasSizeChange); @@ -960,8 +1010,24 @@ void ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback(const char* canvas_sel // Change the size of the GLFW window according to the size of the canvas ImGui_ImplGlfw_OnCanvasSizeChange(EMSCRIPTEN_EVENT_RESIZE, {}, bd); + + // Register Emscripten Wheel callback to workaround issue in Emscripten GLFW Emulation (#6096) + // We intentionally do not check 'if (install_callbacks)' here, as some users may set it to false and call GLFW callback themselves. + // FIXME: May break chaining in case user registered their own Emscripten callback? + emscripten_set_wheel_callback(bd->CanvasSelector, nullptr, false, ImGui_ImplEmscripten_WheelCallback); } -#endif +#elif defined(EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3) +// When using --use-port=contrib.glfw3 for the GLFW implementation, you can override the behavior of this call +// by invoking emscripten_glfw_make_canvas_resizable afterward. +// See https://github.com/pongasoft/emscripten-glfw/blob/master/docs/Usage.md#how-to-make-the-canvas-resizable-by-the-user for an explanation +void ImGui_ImplGlfw_InstallEmscriptenCallbacks(GLFWwindow* window, const char* canvas_selector) +{ + GLFWwindow* w = (GLFWwindow*)(EM_ASM_INT({ return Module.glfwGetWindow(UTF8ToString($0)); }, canvas_selector)); + IM_ASSERT(window == w); // Sanity check + IM_UNUSED(w); + emscripten_glfw_make_canvas_resizable(window, "window", nullptr); +} +#endif // #ifdef EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 //-------------------------------------------------------------------------------------------------------- diff --git a/cimgui/imgui/backends/imgui_impl_glfw.h b/cwrappers/imgui/backends/imgui_impl_glfw.h similarity index 83% rename from cimgui/imgui/backends/imgui_impl_glfw.h rename to cwrappers/imgui/backends/imgui_impl_glfw.h index 14e6ee6a7..03856dc85 100644 --- a/cimgui/imgui/backends/imgui_impl_glfw.h +++ b/cwrappers/imgui/backends/imgui_impl_glfw.h @@ -8,11 +8,10 @@ // [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen (Windows only). // [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLFW_KEY_* values will also be supported unless IMGUI_DISABLE_OBSOLETE_KEYIO is set] // [X] Platform: Gamepad support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. -// [x] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange' (note: the resizing cursors requires GLFW 3.4+). +// [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange' (note: the resizing cursors requires GLFW 3.4+). // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. - // Issues: -// [ ] Platform: Multi-viewport support: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. @@ -29,15 +28,17 @@ struct GLFWwindow; struct GLFWmonitor; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window, bool install_callbacks); IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForVulkan(GLFWwindow* window, bool install_callbacks); IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForOther(GLFWwindow* window, bool install_callbacks); IMGUI_IMPL_API void ImGui_ImplGlfw_Shutdown(); IMGUI_IMPL_API void ImGui_ImplGlfw_NewFrame(); -// Emscripten related initialization phase methods +// Emscripten related initialization phase methods (call after ImGui_ImplGlfw_InitForOpenGL) #ifdef __EMSCRIPTEN__ -IMGUI_IMPL_API void ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback(const char* canvas_selector); +IMGUI_IMPL_API void ImGui_ImplGlfw_InstallEmscriptenCallbacks(GLFWwindow* window, const char* canvas_selector); +//static inline void ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback(const char* canvas_selector) { ImGui_ImplGlfw_InstallEmscriptenCallbacks(nullptr, canvas_selector); } } // Renamed in 1.91.0 #endif // GLFW callbacks install @@ -60,4 +61,7 @@ IMGUI_IMPL_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window, int key, IMGUI_IMPL_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window, unsigned int c); IMGUI_IMPL_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor, int event); +// GLFW helpers +IMGUI_IMPL_API void ImGui_ImplGlfw_Sleep(int milliseconds); + #endif // #ifndef IMGUI_DISABLE diff --git a/cimgui/imgui/backends/imgui_impl_glut.cpp b/cwrappers/imgui/backends/imgui_impl_glut.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_glut.cpp rename to cwrappers/imgui/backends/imgui_impl_glut.cpp index a6f02d76f..0678603bd 100644 --- a/cimgui/imgui/backends/imgui_impl_glut.cpp +++ b/cwrappers/imgui/backends/imgui_impl_glut.cpp @@ -167,6 +167,7 @@ static ImGuiKey ImGui_ImplGLUT_KeyToImGuiKey(int key) bool ImGui_ImplGLUT_Init() { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); #ifdef FREEGLUT io.BackendPlatformName = "imgui_impl_glut (freeglut)"; diff --git a/cimgui/imgui/backends/imgui_impl_glut.h b/cwrappers/imgui/backends/imgui_impl_glut.h similarity index 97% rename from cimgui/imgui/backends/imgui_impl_glut.h rename to cwrappers/imgui/backends/imgui_impl_glut.h index 00671924d..54e425397 100644 --- a/cimgui/imgui/backends/imgui_impl_glut.h +++ b/cwrappers/imgui/backends/imgui_impl_glut.h @@ -26,6 +26,7 @@ #ifndef IMGUI_DISABLE #include "imgui.h" // IMGUI_IMPL_API +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplGLUT_Init(); IMGUI_IMPL_API void ImGui_ImplGLUT_InstallFuncs(); IMGUI_IMPL_API void ImGui_ImplGLUT_Shutdown(); diff --git a/cimgui/imgui/backends/imgui_impl_metal.h b/cwrappers/imgui/backends/imgui_impl_metal.h similarity index 94% rename from cimgui/imgui/backends/imgui_impl_metal.h rename to cwrappers/imgui/backends/imgui_impl_metal.h index d9540fbaa..c6d15e496 100644 --- a/cimgui/imgui/backends/imgui_impl_metal.h +++ b/cwrappers/imgui/backends/imgui_impl_metal.h @@ -26,6 +26,7 @@ @class MTLRenderPassDescriptor; @protocol MTLDevice, MTLCommandBuffer, MTLRenderCommandEncoder; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplMetal_Init(id device); IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown(); IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor); @@ -52,6 +53,7 @@ IMGUI_IMPL_API void ImGui_ImplMetal_DestroyDeviceObjects(); #include #ifndef __OBJC__ +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplMetal_Init(MTL::Device* device); IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown(); IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTL::RenderPassDescriptor* renderPassDescriptor); diff --git a/cimgui/imgui/backends/imgui_impl_metal.mm b/cwrappers/imgui/backends/imgui_impl_metal.mm similarity index 99% rename from cimgui/imgui/backends/imgui_impl_metal.mm rename to cwrappers/imgui/backends/imgui_impl_metal.mm index bae0468d7..22aa37eee 100644 --- a/cimgui/imgui/backends/imgui_impl_metal.mm +++ b/cwrappers/imgui/backends/imgui_impl_metal.mm @@ -87,7 +87,6 @@ - (MetalBuffer*)dequeueReusableBufferOfLength:(NSUInteger)length device:(id device) { - ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_CreateBackendData(); ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); + IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); + + ImGui_ImplMetal_Data* bd = IM_NEW(ImGui_ImplMetal_Data)(); io.BackendRendererUserData = (void*)bd; io.BackendRendererName = "imgui_impl_metal"; io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. @@ -166,7 +168,7 @@ void ImGui_ImplMetal_Shutdown() void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor) { ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData(); - IM_ASSERT(bd->SharedMetalContext != nil && "No Metal context. Did you call ImGui_ImplMetal_Init() ?"); + IM_ASSERT(bd != nil && "Context or backend not initialized! Did you call ImGui_ImplMetal_Init()?"); bd->SharedMetalContext.framebufferDescriptor = [[FramebufferDescriptor alloc] initWithRenderPassDescriptor:renderPassDescriptor]; if (bd->SharedMetalContext.depthStencilState == nil) diff --git a/cimgui/imgui/backends/imgui_impl_opengl2.cpp b/cwrappers/imgui/backends/imgui_impl_opengl2.cpp similarity index 97% rename from cimgui/imgui/backends/imgui_impl_opengl2.cpp rename to cwrappers/imgui/backends/imgui_impl_opengl2.cpp index 30cf50f51..51ea82cd5 100644 --- a/cimgui/imgui/backends/imgui_impl_opengl2.cpp +++ b/cwrappers/imgui/backends/imgui_impl_opengl2.cpp @@ -24,6 +24,7 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-06-28: OpenGL: ImGui_ImplOpenGL2_NewFrame() recreates font texture if it has been destroyed by ImGui_ImplOpenGL2_DestroyFontsTexture(). (#7748) // 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. // 2021-12-08: OpenGL: Fixed mishandling of the ImDrawCmd::IdxOffset field! This is an old bug but it never had an effect until some internal rendering changes in 1.86. // 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). @@ -89,6 +90,7 @@ static void ImGui_ImplOpenGL2_ShutdownPlatformInterface(); bool ImGui_ImplOpenGL2_Init() { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -120,10 +122,12 @@ void ImGui_ImplOpenGL2_Shutdown() void ImGui_ImplOpenGL2_NewFrame() { ImGui_ImplOpenGL2_Data* bd = ImGui_ImplOpenGL2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplOpenGL2_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplOpenGL2_Init()?"); if (!bd->FontTexture) ImGui_ImplOpenGL2_CreateDeviceObjects(); + if (!bd->FontTexture) + ImGui_ImplOpenGL2_CreateFontsTexture(); } static void ImGui_ImplOpenGL2_SetupRenderState(ImDrawData* draw_data, int fb_width, int fb_height) diff --git a/cimgui/imgui/backends/imgui_impl_opengl2.h b/cwrappers/imgui/backends/imgui_impl_opengl2.h similarity index 96% rename from cimgui/imgui/backends/imgui_impl_opengl2.h rename to cwrappers/imgui/backends/imgui_impl_opengl2.h index be8fb6cc5..cc9b68880 100644 --- a/cimgui/imgui/backends/imgui_impl_opengl2.h +++ b/cwrappers/imgui/backends/imgui_impl_opengl2.h @@ -25,6 +25,7 @@ #include "imgui.h" // IMGUI_IMPL_API #ifndef IMGUI_DISABLE +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplOpenGL2_Init(); IMGUI_IMPL_API void ImGui_ImplOpenGL2_Shutdown(); IMGUI_IMPL_API void ImGui_ImplOpenGL2_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_opengl3.cpp b/cwrappers/imgui/backends/imgui_impl_opengl3.cpp similarity index 95% rename from cimgui/imgui/backends/imgui_impl_opengl3.cpp rename to cwrappers/imgui/backends/imgui_impl_opengl3.cpp index 0be98b639..770f85f40 100644 --- a/cimgui/imgui/backends/imgui_impl_opengl3.cpp +++ b/cwrappers/imgui/backends/imgui_impl_opengl3.cpp @@ -24,6 +24,9 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-06-28: OpenGL: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). (#7748) +// 2024-05-07: OpenGL: Update loader for Linux to support EGL/GLVND. (#7562) +// 2024-04-16: OpenGL: Detect ES3 contexts on desktop based on version string, to e.g. avoid calling glPolygonMode() on them. (#7447) // 2024-01-09: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" and variants, fixing regression on distros missing a symlink. // 2023-11-08: OpenGL: Update GL3W based imgui_impl_opengl3_loader.h to load "libGL.so" instead of "libGL.so.1", accommodating for NetBSD systems having only "libGL.so.3" available. (#6983) // 2023-10-05: OpenGL: Rename symbols in our internal loader so that LTO compilation with another copy of gl3w is possible. (#6875, #6668, #4445) @@ -123,6 +126,7 @@ // Clang/GCC warnings with -Weverything #if defined(__clang__) #pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunknown-warning-option" // warning: ignore unknown flags #pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast #pragma clang diagnostic ignored "-Wsign-conversion" // warning: implicit conversion changes signedness #pragma clang diagnostic ignored "-Wunused-macros" // warning: macro is not used @@ -179,9 +183,10 @@ #endif // Desktop GL 2.0+ has extension and glPolygonMode() which GL ES and WebGL don't have.. +// A desktop ES context can technically compile fine with our loader, so we also perform a runtime checks #if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) #define IMGUI_IMPL_OPENGL_HAS_EXTENSIONS // has glGetIntegerv(GL_NUM_EXTENSIONS) -#define IMGUI_IMPL_OPENGL_HAS_POLYGON_MODE // has glPolygonMode() +#define IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE // may have glPolygonMode() #endif // Desktop GL 2.1+ and GL ES 3.0+ have glBindBuffer() with GL_PIXEL_UNPACK_BUFFER target. @@ -232,6 +237,7 @@ struct ImGui_ImplOpenGL3_Data unsigned int VboHandle, ElementsHandle; GLsizeiptr VertexBufferSize; GLsizeiptr IndexBufferSize; + bool HasPolygonMode; bool HasClipOrigin; bool UseBufferSubData; @@ -277,6 +283,7 @@ struct ImGui_ImplOpenGL3_VtxAttribState bool ImGui_ImplOpenGL3_Init(const char* glsl_version) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Initialize our loader @@ -300,16 +307,13 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version) bd->GlProfileIsES2 = true; #else // Desktop or GLES 3 + const char* gl_version_str = (const char*)glGetString(GL_VERSION); GLint major = 0; GLint minor = 0; glGetIntegerv(GL_MAJOR_VERSION, &major); glGetIntegerv(GL_MINOR_VERSION, &minor); if (major == 0 && minor == 0) - { - // Query GL_VERSION in desktop GL 2.x, the string will start with "." - const char* gl_version = (const char*)glGetString(GL_VERSION); - sscanf(gl_version, "%d.%d", &major, &minor); - } + sscanf(gl_version_str, "%d.%d", &major, &minor); // Query GL_VERSION in desktop GL 2.x, the string will start with "." bd->GlVersion = (GLuint)(major * 100 + minor * 10); #if defined(GL_CONTEXT_PROFILE_MASK) if (bd->GlVersion >= 320) @@ -319,6 +323,9 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version) #if defined(IMGUI_IMPL_OPENGL_ES3) bd->GlProfileIsES3 = true; +#else + if (strncmp(gl_version_str, "OpenGL ES 3", 11) == 0) + bd->GlProfileIsES3 = true; #endif bd->UseBufferSubData = false; @@ -333,7 +340,7 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version) #endif #ifdef IMGUI_IMPL_OPENGL_DEBUG - printf("GlVersion = %d\nGlProfileIsCompat = %d\nGlProfileMask = 0x%X\nGlProfileIsES2 = %d, GlProfileIsES3 = %d\nGL_VENDOR = '%s'\nGL_RENDERER = '%s'\n", bd->GlVersion, bd->GlProfileIsCompat, bd->GlProfileMask, bd->GlProfileIsES2, bd->GlProfileIsES3, (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER)); // [DEBUG] + printf("GlVersion = %d, \"%s\"\nGlProfileIsCompat = %d\nGlProfileMask = 0x%X\nGlProfileIsES2 = %d, GlProfileIsES3 = %d\nGL_VENDOR = '%s'\nGL_RENDERER = '%s'\n", bd->GlVersion, gl_version_str, bd->GlProfileIsCompat, bd->GlProfileMask, bd->GlProfileIsES2, bd->GlProfileIsES3, (const char*)glGetString(GL_VENDOR), (const char*)glGetString(GL_RENDERER)); // [DEBUG] #endif #ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET @@ -366,6 +373,9 @@ bool ImGui_ImplOpenGL3_Init(const char* glsl_version) glGetIntegerv(GL_TEXTURE_BINDING_2D, ¤t_texture); // Detect extensions we support +#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE + bd->HasPolygonMode = (!bd->GlProfileIsES2 && !bd->GlProfileIsES3); +#endif bd->HasClipOrigin = (bd->GlVersion >= 450); #ifdef IMGUI_IMPL_OPENGL_HAS_EXTENSIONS GLint num_extensions = 0; @@ -401,10 +411,12 @@ void ImGui_ImplOpenGL3_Shutdown() void ImGui_ImplOpenGL3_NewFrame() { ImGui_ImplOpenGL3_Data* bd = ImGui_ImplOpenGL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplOpenGL3_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplOpenGL3_Init()?"); if (!bd->ShaderHandle) ImGui_ImplOpenGL3_CreateDeviceObjects(); + if (!bd->FontTexture) + ImGui_ImplOpenGL3_CreateFontsTexture(); } static void ImGui_ImplOpenGL3_SetupRenderState(ImDrawData* draw_data, int fb_width, int fb_height, GLuint vertex_array_object) @@ -423,8 +435,9 @@ static void ImGui_ImplOpenGL3_SetupRenderState(ImDrawData* draw_data, int fb_wid if (bd->GlVersion >= 310) glDisable(GL_PRIMITIVE_RESTART); #endif -#ifdef IMGUI_IMPL_OPENGL_HAS_POLYGON_MODE - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); +#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE + if (bd->HasPolygonMode) + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); #endif // Support for GL 4.5 rarely used glClipControl(GL_UPPER_LEFT) @@ -512,8 +525,8 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data) #ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY GLuint last_vertex_array_object; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, (GLint*)&last_vertex_array_object); #endif -#ifdef IMGUI_IMPL_OPENGL_HAS_POLYGON_MODE - GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); +#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE + GLint last_polygon_mode[2]; if (bd->HasPolygonMode) { glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); } #endif GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport); GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box); @@ -651,18 +664,10 @@ void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data) if (bd->GlVersion >= 310) { if (last_enable_primitive_restart) glEnable(GL_PRIMITIVE_RESTART); else glDisable(GL_PRIMITIVE_RESTART); } #endif -#ifdef IMGUI_IMPL_OPENGL_HAS_POLYGON_MODE +#ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE // Desktop OpenGL 3.0 and OpenGL 3.1 had separate polygon draw modes for front-facing and back-facing faces of polygons - if (bd->GlVersion <= 310 || bd->GlProfileIsCompat) - { - glPolygonMode(GL_FRONT, (GLenum)last_polygon_mode[0]); - glPolygonMode(GL_BACK, (GLenum)last_polygon_mode[1]); - } - else - { - glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); - } -#endif // IMGUI_IMPL_OPENGL_HAS_POLYGON_MODE + if (bd->HasPolygonMode) { if (bd->GlVersion <= 310 || bd->GlProfileIsCompat) { glPolygonMode(GL_FRONT, (GLenum)last_polygon_mode[0]); glPolygonMode(GL_BACK, (GLenum)last_polygon_mode[1]); } else { glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); } } +#endif // IMGUI_IMPL_OPENGL_MAY_HAVE_POLYGON_MODE glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]); glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]); @@ -760,7 +765,7 @@ bool ImGui_ImplOpenGL3_CreateDeviceObjects() glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture); glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer); #ifdef IMGUI_IMPL_OPENGL_MAY_HAVE_BIND_BUFFER_PIXEL_UNPACK - GLint last_pixel_unpack_buffer; + GLint last_pixel_unpack_buffer = 0; if (bd->GlVersion >= 210) { glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING, &last_pixel_unpack_buffer); glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0); } #endif #ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY diff --git a/cimgui/imgui/backends/imgui_impl_opengl3.h b/cwrappers/imgui/backends/imgui_impl_opengl3.h similarity index 91% rename from cimgui/imgui/backends/imgui_impl_opengl3.h rename to cwrappers/imgui/backends/imgui_impl_opengl3.h index ab779e076..7b1e98d2c 100644 --- a/cimgui/imgui/backends/imgui_impl_opengl3.h +++ b/cwrappers/imgui/backends/imgui_impl_opengl3.h @@ -30,7 +30,7 @@ #include "imgui.h" // IMGUI_IMPL_API #ifndef IMGUI_DISABLE -// Backend API +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version = nullptr); IMGUI_IMPL_API void ImGui_ImplOpenGL3_Shutdown(); IMGUI_IMPL_API void ImGui_ImplOpenGL3_NewFrame(); @@ -42,9 +42,9 @@ IMGUI_IMPL_API void ImGui_ImplOpenGL3_DestroyFontsTexture(); IMGUI_IMPL_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(); IMGUI_IMPL_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(); -// Specific OpenGL ES versions -//#define IMGUI_IMPL_OPENGL_ES2 // Auto-detected on Emscripten -//#define IMGUI_IMPL_OPENGL_ES3 // Auto-detected on iOS/Android +// Configuration flags to add in your imconfig file: +//#define IMGUI_IMPL_OPENGL_ES2 // Enable ES 2 (Auto-detected on Emscripten) +//#define IMGUI_IMPL_OPENGL_ES3 // Enable ES 3 (Auto-detected on iOS/Android) // You can explicitly select GLES2 or GLES3 API by using one of the '#define IMGUI_IMPL_OPENGL_LOADER_XXX' in imconfig.h or compiler command-line. #if !defined(IMGUI_IMPL_OPENGL_ES2) \ diff --git a/cimgui/imgui/backends/imgui_impl_opengl3_loader.h b/cwrappers/imgui/backends/imgui_impl_opengl3_loader.h similarity index 92% rename from cimgui/imgui/backends/imgui_impl_opengl3_loader.h rename to cwrappers/imgui/backends/imgui_impl_opengl3_loader.h index 4019f937f..3fbc34811 100644 --- a/cimgui/imgui/backends/imgui_impl_opengl3_loader.h +++ b/cwrappers/imgui/backends/imgui_impl_opengl3_loader.h @@ -10,7 +10,7 @@ // THE REST OF YOUR APP SHOULD USE A DIFFERENT GL LOADER: ANY GL LOADER OF YOUR CHOICE. // // IF YOU GET BUILD ERRORS IN THIS FILE (commonly macro redefinitions or function redefinitions): -// IT LIKELY MEANS THAT YOU ARE BUILDING 'imgui_impl_opengl3.cpp' OR INCUDING 'imgui_impl_opengl3_loader.h' +// IT LIKELY MEANS THAT YOU ARE BUILDING 'imgui_impl_opengl3.cpp' OR INCLUDING 'imgui_impl_opengl3_loader.h' // IN THE SAME COMPILATION UNIT AS ONE OF YOUR FILE WHICH IS USING A THIRD-PARTY OPENGL LOADER. // (e.g. COULD HAPPEN IF YOU ARE DOING A UNITY/JUMBO BUILD, OR INCLUDING .CPP FILES FROM OTHERS) // YOU SHOULD NOT BUILD BOTH IN THE SAME COMPILATION UNIT. @@ -18,7 +18,7 @@ // WILL NOT BE USING OUR LOADER, AND INSTEAD EXPECT ANOTHER/YOUR LOADER TO BE AVAILABLE IN THE COMPILATION UNIT. // // Regenerate with: -// python gl3w_gen.py --output ../imgui/backends/imgui_impl_opengl3_loader.h --ref ../imgui/backends/imgui_impl_opengl3.cpp ./extra_symbols.txt +// python3 gl3w_gen.py --output ../imgui/backends/imgui_impl_opengl3_loader.h --ref ../imgui/backends/imgui_impl_opengl3.cpp ./extra_symbols.txt // // More info: // https://github.com/dearimgui/gl3w_stripped @@ -118,7 +118,7 @@ extern "C" { ** included as . ** ** glcorearb.h includes only APIs in the latest OpenGL core profile -** implementation together with APIs in newer ARB extensions which +** implementation together with APIs in newer ARB extensions which ** can be supported by the core profile. It does not, and never will ** include functionality removed from the core profile, such as ** fixed-function vertex and fragment processing. @@ -260,8 +260,6 @@ typedef khronos_intptr_t GLintptr; #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); @@ -348,6 +346,10 @@ GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); #endif #endif /* GL_VERSION_2_0 */ +#ifndef GL_VERSION_2_1 +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#endif /* GL_VERSION_2_1 */ #ifndef GL_VERSION_3_0 typedef khronos_uint16_t GLhalf; #define GL_MAJOR_VERSION 0x821B @@ -663,31 +665,123 @@ static GL3WglProc get_proc(const char *proc) #else #include -static void *libgl; -static GL3WglProc (*glx_get_proc_address)(const GLubyte *); +static void* libgl; // OpenGL library +static void* libglx; // GLX library +static void* libegl; // EGL library +static GL3WGetProcAddressProc gl_get_proc_address; -static int open_libgl(void) +static void close_libgl(void) { + if (libgl) { + dlclose(libgl); + libgl = NULL; + } + if (libegl) { + dlclose(libegl); + libegl = NULL; + } + if (libglx) { + dlclose(libglx); + libglx = NULL; + } +} + +static int is_library_loaded(const char* name, void** lib) +{ + *lib = dlopen(name, RTLD_LAZY | RTLD_LOCAL | RTLD_NOLOAD); + return *lib != NULL; +} + +static int open_libs(void) +{ + // On Linux we have two APIs to get process addresses: EGL and GLX. + // EGL is supported under both X11 and Wayland, whereas GLX is X11-specific. + + libgl = NULL; + libegl = NULL; + libglx = NULL; + + // First check what's already loaded, the windowing library might have + // already loaded either EGL or GLX and we want to use the same one. + + if (is_library_loaded("libEGL.so.1", &libegl) || + is_library_loaded("libGLX.so.0", &libglx)) { + libgl = dlopen("libOpenGL.so.0", RTLD_LAZY | RTLD_LOCAL); + if (libgl) + return GL3W_OK; + else + close_libgl(); + } + + if (is_library_loaded("libGL.so", &libgl)) + return GL3W_OK; + if (is_library_loaded("libGL.so.1", &libgl)) + return GL3W_OK; + if (is_library_loaded("libGL.so.3", &libgl)) + return GL3W_OK; + + // Neither is already loaded, so we have to load one. Try EGL first + // because it is supported under both X11 and Wayland. + + // Load OpenGL + EGL + libgl = dlopen("libOpenGL.so.0", RTLD_LAZY | RTLD_LOCAL); + libegl = dlopen("libEGL.so.1", RTLD_LAZY | RTLD_LOCAL); + if (libgl && libegl) + return GL3W_OK; + else + close_libgl(); + + // Fall back to legacy libGL, which includes GLX // While most systems use libGL.so.1, NetBSD seems to use that libGL.so.3. See https://github.com/ocornut/imgui/issues/6983 libgl = dlopen("libGL.so", RTLD_LAZY | RTLD_LOCAL); if (!libgl) libgl = dlopen("libGL.so.1", RTLD_LAZY | RTLD_LOCAL); if (!libgl) libgl = dlopen("libGL.so.3", RTLD_LAZY | RTLD_LOCAL); - if (!libgl) + + if (libgl) + return GL3W_OK; + + return GL3W_ERROR_LIBRARY_OPEN; +} + +static int open_libgl(void) +{ + int res = open_libs(); + if (res) + return res; + + if (libegl) + *(void**)(&gl_get_proc_address) = dlsym(libegl, "eglGetProcAddress"); + else if (libglx) + *(void**)(&gl_get_proc_address) = dlsym(libglx, "glXGetProcAddressARB"); + else + *(void**)(&gl_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB"); + + if (!gl_get_proc_address) { + close_libgl(); return GL3W_ERROR_LIBRARY_OPEN; - *(void **)(&glx_get_proc_address) = dlsym(libgl, "glXGetProcAddressARB"); + } + return GL3W_OK; } -static void close_libgl(void) { dlclose(libgl); } - -static GL3WglProc get_proc(const char *proc) +static GL3WglProc get_proc(const char* proc) { - GL3WglProc res; - res = glx_get_proc_address((const GLubyte *)proc); + GL3WglProc res = NULL; + + // Before EGL version 1.5, eglGetProcAddress doesn't support querying core + // functions and may return a dummy function if we try, so try to load the + // function from the GL library directly first. + if (libegl) + *(void**)(&res) = dlsym(libgl, proc); + if (!res) - *(void **)(&res) = dlsym(libgl, proc); + res = gl_get_proc_address(proc); + + if (!libegl && !res) + *(void**)(&res) = dlsym(libgl, proc); + return res; } #endif diff --git a/cimgui/imgui/backends/imgui_impl_osx.h b/cwrappers/imgui/backends/imgui_impl_osx.h similarity index 84% rename from cimgui/imgui/backends/imgui_impl_osx.h rename to cwrappers/imgui/backends/imgui_impl_osx.h index f2c704fd8..e54165540 100644 --- a/cimgui/imgui/backends/imgui_impl_osx.h +++ b/cwrappers/imgui/backends/imgui_impl_osx.h @@ -11,7 +11,9 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: IME support. // [x] Platform: Multi-viewport / platform windows. -// - [ ] Window size not correctly reported when enabling io.ConfigViewportsNoDecoration +// Issues: +// [ ] Platform: Multi-viewport: Window size not correctly reported when enabling io.ConfigViewportsNoDecoration +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. @@ -29,6 +31,7 @@ @class NSEvent; @class NSView; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplOSX_Init(NSView* _Nonnull view); IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view); @@ -43,6 +46,7 @@ IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view); // #include #ifndef __OBJC__ +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplOSX_Init(void* _Nonnull view); IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(void* _Nullable view); diff --git a/cimgui/imgui/backends/imgui_impl_osx.mm b/cwrappers/imgui/backends/imgui_impl_osx.mm similarity index 97% rename from cimgui/imgui/backends/imgui_impl_osx.mm rename to cwrappers/imgui/backends/imgui_impl_osx.mm index 8656bfe45..9070f9696 100644 --- a/cimgui/imgui/backends/imgui_impl_osx.mm +++ b/cwrappers/imgui/backends/imgui_impl_osx.mm @@ -11,7 +11,9 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: IME support. // [x] Platform: Multi-viewport / platform windows. -// - [ ] Window size not correctly reported when enabling io.ConfigViewportsNoDecoration +// Issues: +// [ ] Platform: Multi-viewport: Window size not correctly reported when enabling io.ConfigViewportsNoDecoration +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. @@ -32,6 +34,11 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: +// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn +// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn +// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn +// 2024-07-02: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() renaming in main library. // 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F20 function keys. Stopped mapping F13 into PrintScreen. // 2023-04-09: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_Pen. // 2023-02-01: Fixed scroll wheel scaling for devices emitting events with hasPreciseScrollingDeltas==false (e.g. non-Apple mices). @@ -88,7 +95,6 @@ ImGui_ImplOSX_Data() { memset(this, 0, sizeof(*this)); } }; -static ImGui_ImplOSX_Data* ImGui_ImplOSX_CreateBackendData() { return IM_NEW(ImGui_ImplOSX_Data)(); } static ImGui_ImplOSX_Data* ImGui_ImplOSX_GetBackendData() { return (ImGui_ImplOSX_Data*)ImGui::GetIO().BackendPlatformUserData; } static void ImGui_ImplOSX_DestroyBackendData() { IM_DELETE(ImGui_ImplOSX_GetBackendData()); } @@ -421,15 +427,18 @@ IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(void* _Nullable view) { bool ImGui_ImplOSX_Init(NSView* view) { ImGuiIO& io = ImGui::GetIO(); - ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_CreateBackendData(); - io.BackendPlatformUserData = (void*)bd; + ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); + IMGUI_CHECKVERSION(); + IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); // Setup backend capabilities flags + ImGui_ImplOSX_Data* bd = IM_NEW(ImGui_ImplOSX_Data)(); + io.BackendPlatformUserData = (void*)bd; + io.BackendPlatformName = "imgui_impl_osx"; io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) //io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional) //io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can call io.AddMouseViewportEvent() with correct data (optional) - io.BackendPlatformName = "imgui_impl_osx"; bd->Observer = [ImGuiObserver new]; bd->Window = view.window ?: NSApp.orderedWindows.firstObject; @@ -454,14 +463,14 @@ bool ImGui_ImplOSX_Init(NSView* view) // Note that imgui.cpp also include default OSX clipboard handlers which can be enabled // by adding '#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS' in imconfig.h and adding '-framework ApplicationServices' to your linker command-line. // Since we are already in ObjC land here, it is easy for us to add a clipboard handler using the NSPasteboard api. - io.SetClipboardTextFn = [](void*, const char* str) -> void + platform_io.Platform_SetClipboardTextFn = [](ImGuiContext*, const char* str) -> void { NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; [pasteboard declareTypes:[NSArray arrayWithObject:NSPasteboardTypeString] owner:nil]; [pasteboard setString:[NSString stringWithUTF8String:str] forType:NSPasteboardTypeString]; }; - io.GetClipboardTextFn = [](void*) -> const char* + platform_io.Platform_GetClipboardTextFn = [](ImGuiContext*) -> const char* { NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; NSString* available = [pasteboard availableTypeFromArray: [NSArray arrayWithObject:NSPasteboardTypeString]]; @@ -496,7 +505,7 @@ bool ImGui_ImplOSX_Init(NSView* view) [view addSubview:bd->KeyEventResponder]; ImGui_ImplOSX_AddTrackingArea(view); - io.SetPlatformImeDataFn = [](ImGuiViewport* viewport, ImGuiPlatformImeData* data) -> void + platform_io.Platform_SetImeDataFn = [](ImGuiContext*, ImGuiViewport* viewport, ImGuiPlatformImeData* data) -> void { ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); if (data->WantVisible) @@ -637,6 +646,7 @@ static void ImGui_ImplOSX_UpdateImePosWithView(NSView* view) void ImGui_ImplOSX_NewFrame(NSView* view) { ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData(); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplOSX_Init()?"); ImGuiIO& io = ImGui::GetIO(); // Setup display size @@ -914,7 +924,7 @@ static void ImGui_ImplOSX_CreateWindow(ImGuiViewport* viewport) window.opaque = YES; KeyEventResponder* view = [[KeyEventResponder alloc] initWithFrame:rect]; - if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6 && ceil(NSAppKitVersionNumber) < NSAppKitVersionNumber10_15) [view setWantsBestResolutionOpenGLSurface:YES]; window.contentView = view; diff --git a/cimgui/imgui/backends/imgui_impl_sdl2.cpp b/cwrappers/imgui/backends/imgui_impl_sdl2.cpp similarity index 91% rename from cimgui/imgui/backends/imgui_impl_sdl2.cpp rename to cwrappers/imgui/backends/imgui_impl_sdl2.cpp index f101cf3e5..f722cbd31 100644 --- a/cimgui/imgui/backends/imgui_impl_sdl2.cpp +++ b/cwrappers/imgui/backends/imgui_impl_sdl2.cpp @@ -10,8 +10,9 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. -// Missing features: -// [ ] Platform: Multi-viewport + Minimized windows seems to break mouse wheel events (at least under Windows). +// Issues: +// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows). +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // [x] Platform: Basic IME support. App needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. @@ -25,6 +26,16 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-09-09: use SDL_Vulkan_GetDrawableSize() when available. (#7967, #3190) +// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: +// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn +// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn +// - io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn +// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn +// 2024-08-19: Storing SDL's Uint32 WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. +// 2024-08-19: ImGui_ImplSDL2_ProcessEvent() now ignores events intended for other SDL windows. (#7853) +// 2024-07-02: Emscripten: Added io.PlatformOpenInShellFn() handler for Emscripten versions. +// 2024-07-02: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() renaming in main library. // 2024-02-14: Inputs: Handle gamepad disconnection. Added ImGui_ImplSDL2_SetGamepadMode(). // 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. // 2023-04-06: Inputs: Avoid calling SDL_StartTextInput()/SDL_StopTextInput() as they don't only pertain to IME. It's unclear exactly what their relation is to IME. (#6306) @@ -95,9 +106,12 @@ // (the multi-viewports feature requires SDL features supported from SDL 2.0.4+. SDL 2.0.5+ is highly recommended) #include #include -#if defined(__APPLE__) +#ifdef __APPLE__ #include #endif +#ifdef __EMSCRIPTEN__ +#include +#endif #if SDL_VERSION_ATLEAST(2,0,4) && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IOS) && !defined(__amigaos4__) #define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 1 @@ -110,7 +124,10 @@ #define SDL_HAS_PER_MONITOR_DPI SDL_VERSION_ATLEAST(2,0,4) #define SDL_HAS_VULKAN SDL_VERSION_ATLEAST(2,0,6) #define SDL_HAS_DISPLAY_EVENT SDL_VERSION_ATLEAST(2,0,9) -#if !SDL_HAS_VULKAN +#define SDL_HAS_SHOW_WINDOW_ACTIVATION_HINT SDL_VERSION_ATLEAST(2,0,18) +#if SDL_HAS_VULKAN +extern "C" { extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window* window, int* w, int* h); } +#elif static const Uint32 SDL_WINDOW_VULKAN = 0x10000000; #endif @@ -118,6 +135,7 @@ static const Uint32 SDL_WINDOW_VULKAN = 0x10000000; struct ImGui_ImplSDL2_Data { SDL_Window* Window; + Uint32 WindowID; SDL_Renderer* Renderer; Uint64 Time; char* ClipboardTextData; @@ -156,7 +174,7 @@ static void ImGui_ImplSDL2_InitPlatformInterface(SDL_Window* window, void* sdl_g static void ImGui_ImplSDL2_ShutdownPlatformInterface(); // Functions -static const char* ImGui_ImplSDL2_GetClipboardText(void*) +static const char* ImGui_ImplSDL2_GetClipboardText(ImGuiContext*) { ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); if (bd->ClipboardTextData) @@ -165,13 +183,13 @@ static const char* ImGui_ImplSDL2_GetClipboardText(void*) return bd->ClipboardTextData; } -static void ImGui_ImplSDL2_SetClipboardText(void*, const char* text) +static void ImGui_ImplSDL2_SetClipboardText(ImGuiContext*, const char* text) { SDL_SetClipboardText(text); } // Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow(). -static void ImGui_ImplSDL2_SetPlatformImeData(ImGuiViewport* viewport, ImGuiPlatformImeData* data) +static void ImGui_ImplSDL2_PlatformSetImeData(ImGuiContext*, ImGuiViewport* viewport, ImGuiPlatformImeData* data) { if (data->WantVisible) { @@ -184,8 +202,9 @@ static void ImGui_ImplSDL2_SetPlatformImeData(ImGuiViewport* viewport, ImGuiPlat } } -static ImGuiKey ImGui_ImplSDL2_KeycodeToImGuiKey(int keycode) +static ImGuiKey ImGui_ImplSDL2_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode) { + IM_UNUSED(scancode); switch (keycode) { case SDLK_TAB: return ImGuiKey_Tab; @@ -307,6 +326,7 @@ static ImGuiKey ImGui_ImplSDL2_KeycodeToImGuiKey(int keycode) case SDLK_F24: return ImGuiKey_F24; case SDLK_AC_BACK: return ImGuiKey_AppBack; case SDLK_AC_FORWARD: return ImGuiKey_AppForward; + default: break; } return ImGuiKey_None; } @@ -320,20 +340,27 @@ static void ImGui_ImplSDL2_UpdateKeyModifiers(SDL_Keymod sdl_key_mods) io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & KMOD_GUI) != 0); } +static ImGuiViewport* ImGui_ImplSDL2_GetViewportForWindowID(Uint32 window_id) +{ + return ImGui::FindViewportByPlatformHandle((void*)(intptr_t)window_id); +} + // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -// If you have multiple SDL events and some of them are not meant to be used by dear imgui, you may need to filter events based on their windowID field. bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) { - ImGuiIO& io = ImGui::GetIO(); ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL2_Init()?"); + ImGuiIO& io = ImGui::GetIO(); switch (event->type) { case SDL_MOUSEMOTION: { + if (ImGui_ImplSDL2_GetViewportForWindowID(event->motion.windowID) == NULL) + return false; ImVec2 mouse_pos((float)event->motion.x, (float)event->motion.y); if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) { @@ -348,6 +375,8 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) } case SDL_MOUSEWHEEL: { + if (ImGui_ImplSDL2_GetViewportForWindowID(event->wheel.windowID) == NULL) + return false; //IMGUI_DEBUG_LOG("wheel %.2f %.2f, precise %.2f %.2f\n", (float)event->wheel.x, (float)event->wheel.y, event->wheel.preciseX, event->wheel.preciseY); #if SDL_VERSION_ATLEAST(2,0,18) // If this fails to compile on Emscripten: update to latest Emscripten! float wheel_x = -event->wheel.preciseX; @@ -366,6 +395,8 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONUP: { + if (ImGui_ImplSDL2_GetViewportForWindowID(event->button.windowID) == NULL) + return false; int mouse_button = -1; if (event->button.button == SDL_BUTTON_LEFT) { mouse_button = 0; } if (event->button.button == SDL_BUTTON_RIGHT) { mouse_button = 1; } @@ -381,14 +412,18 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) } case SDL_TEXTINPUT: { + if (ImGui_ImplSDL2_GetViewportForWindowID(event->text.windowID) == NULL) + return false; io.AddInputCharactersUTF8(event->text.text); return true; } case SDL_KEYDOWN: case SDL_KEYUP: { + if (ImGui_ImplSDL2_GetViewportForWindowID(event->key.windowID) == NULL) + return false; ImGui_ImplSDL2_UpdateKeyModifiers((SDL_Keymod)event->key.keysym.mod); - ImGuiKey key = ImGui_ImplSDL2_KeycodeToImGuiKey(event->key.keysym.sym); + ImGuiKey key = ImGui_ImplSDL2_KeyEventToImGuiKey(event->key.keysym.sym, event->key.keysym.scancode); io.AddKeyEvent(key, (event->type == SDL_KEYDOWN)); io.SetKeyEventNativeData(key, event->key.keysym.sym, event->key.keysym.scancode, event->key.keysym.scancode); // To support legacy indexing (<1.87 user code). Legacy backend uses SDLK_*** as indices to IsKeyXXX() functions. return true; @@ -404,6 +439,10 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) #endif case SDL_WINDOWEVENT: { + ImGuiViewport* viewport = ImGui_ImplSDL2_GetViewportForWindowID(event->window.windowID); + if (viewport == NULL) + return false; + // - When capturing mouse, SDL will send a bunch of conflicting LEAVE/ENTER event on every mouse move, but the final ENTER tends to be right. // - However we won't get a correct LEAVE event for a captured window. // - In some cases, when detaching a window from main viewport SDL may send SDL_WINDOWEVENT_ENTER one frame too late, @@ -421,17 +460,12 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) io.AddFocusEvent(true); else if (window_event == SDL_WINDOWEVENT_FOCUS_LOST) io.AddFocusEvent(false); - if (window_event == SDL_WINDOWEVENT_CLOSE || window_event == SDL_WINDOWEVENT_MOVED || window_event == SDL_WINDOWEVENT_RESIZED) - if (ImGuiViewport* viewport = ImGui::FindViewportByPlatformHandle((void*)SDL_GetWindowFromID(event->window.windowID))) - { - if (window_event == SDL_WINDOWEVENT_CLOSE) - viewport->PlatformRequestClose = true; - if (window_event == SDL_WINDOWEVENT_MOVED) - viewport->PlatformRequestMove = true; - if (window_event == SDL_WINDOWEVENT_RESIZED) - viewport->PlatformRequestResize = true; - return true; - } + else if (window_event == SDL_WINDOWEVENT_CLOSE) + viewport->PlatformRequestClose = true; + else if (window_event == SDL_WINDOWEVENT_MOVED) + viewport->PlatformRequestMove = true; + else if (window_event == SDL_WINDOWEVENT_RESIZED) + viewport->PlatformRequestResize = true; return true; } case SDL_CONTROLLERDEVICEADDED: @@ -444,9 +478,14 @@ bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event) return false; } +#ifdef __EMSCRIPTEN__ +EM_JS(void, ImGui_ImplSDL2_EmscriptenOpenURL, (char const* url), { url = url ? UTF8ToString(url) : null; if (url) window.open(url, '_blank'); }); +#endif + static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void* sdl_gl_context) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); // Check and store if we are on a SDL backend that supports global mouse position @@ -470,6 +509,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional) bd->Window = window; + bd->WindowID = SDL_GetWindowID(window); bd->Renderer = renderer; // SDL on Linux/OSX doesn't report events for unfocused windows (see https://github.com/ocornut/imgui/issues/4960) @@ -482,10 +522,14 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void #endif bd->WantUpdateMonitors = true; - io.SetClipboardTextFn = ImGui_ImplSDL2_SetClipboardText; - io.GetClipboardTextFn = ImGui_ImplSDL2_GetClipboardText; - io.ClipboardUserData = nullptr; - io.SetPlatformImeDataFn = ImGui_ImplSDL2_SetPlatformImeData; + ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); + platform_io.Platform_SetClipboardTextFn = ImGui_ImplSDL2_SetClipboardText; + platform_io.Platform_GetClipboardTextFn = ImGui_ImplSDL2_GetClipboardText; + platform_io.Platform_ClipboardUserData = nullptr; + platform_io.Platform_SetImeDataFn = ImGui_ImplSDL2_PlatformSetImeData; +#ifdef __EMSCRIPTEN__ + platform_io.Platform_OpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplSDL2_EmscriptenOpenURL(url); return true; }; +#endif // Gamepad handling bd->GamepadMode = ImGui_ImplSDL2_GamepadMode_AutoFirst; @@ -505,7 +549,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void // Set platform dependent data in viewport // Our mouse update function expect PlatformHandle to be filled for the main viewport ImGuiViewport* main_viewport = ImGui::GetMainViewport(); - main_viewport->PlatformHandle = (void*)window; + main_viewport->PlatformHandle = (void*)(intptr_t)bd->WindowID; main_viewport->PlatformHandleRaw = nullptr; SDL_SysWMinfo info; SDL_VERSION(&info.version); @@ -620,7 +664,7 @@ static void ImGui_ImplSDL2_UpdateMouseData() // SDL_CaptureMouse() let the OS know e.g. that our imgui drag outside the SDL window boundaries shouldn't e.g. trigger other operations outside SDL_CaptureMouse((bd->MouseButtonsDown != 0) ? SDL_TRUE : SDL_FALSE); SDL_Window* focused_window = SDL_GetKeyboardFocus(); - const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui::FindViewportByPlatformHandle((void*)focused_window))); + const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui_ImplSDL2_GetViewportForWindowID(SDL_GetWindowID(focused_window)) != NULL)); #else SDL_Window* focused_window = bd->Window; const bool is_app_focused = (SDL_GetWindowFlags(bd->Window) & SDL_WINDOW_INPUT_FOCUS) != 0; // SDL 2.0.3 and non-windowed systems: single-viewport only @@ -666,9 +710,8 @@ static void ImGui_ImplSDL2_UpdateMouseData() if (io.BackendFlags & ImGuiBackendFlags_HasMouseHoveredViewport) { ImGuiID mouse_viewport_id = 0; - if (SDL_Window* sdl_mouse_window = SDL_GetWindowFromID(bd->MouseWindowID)) - if (ImGuiViewport* mouse_viewport = ImGui::FindViewportByPlatformHandle((void*)sdl_mouse_window)) - mouse_viewport_id = mouse_viewport->ID; + if (ImGuiViewport* mouse_viewport = ImGui_ImplSDL2_GetViewportForWindowID(bd->MouseWindowID)) + mouse_viewport_id = mouse_viewport->ID; io.AddMouseViewportEvent(mouse_viewport_id); } } @@ -830,7 +873,11 @@ static void ImGui_ImplSDL2_UpdateMonitors() // DpiScale to cocoa_window.backingScaleFactor here. float dpi = 0.0f; if (!SDL_GetDisplayDPI(n, &dpi, nullptr, nullptr)) + { + if (dpi <= 0.0f) + continue; // Some accessibility applications are declaring virtual monitors with a DPI of 0, see #7902. monitor.DpiScale = dpi / 96.0f; + } #endif monitor.PlatformHandle = (void*)(intptr_t)n; platform_io.Monitors.push_back(monitor); @@ -840,7 +887,7 @@ static void ImGui_ImplSDL2_UpdateMonitors() void ImGui_ImplSDL2_NewFrame() { ImGui_ImplSDL2_Data* bd = ImGui_ImplSDL2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplSDL2_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL2_Init()?"); ImGuiIO& io = ImGui::GetIO(); // Setup display size (every frame to accommodate for window resizing) @@ -851,6 +898,10 @@ void ImGui_ImplSDL2_NewFrame() w = h = 0; if (bd->Renderer != nullptr) SDL_GetRendererOutputSize(bd->Renderer, &display_w, &display_h); +#if SDL_HAS_VULKAN + else if (SDL_GetWindowFlags(bd->Window) & SDL_WINDOW_VULKAN) + SDL_Vulkan_GetDrawableSize(bd->Window, &display_w, &display_h); +#endif else SDL_GL_GetDrawableSize(bd->Window, &display_w, &display_h); io.DisplaySize = ImVec2((float)w, (float)h); @@ -878,7 +929,7 @@ void ImGui_ImplSDL2_NewFrame() } // Our io.AddMouseViewportEvent() calls will only be valid when not capturing. - // Technically speaking testing for 'bd->MouseButtonsDown == 0' would be more rygorous, but testing for payload reduces noise and potential side-effects. + // Technically speaking testing for 'bd->MouseButtonsDown == 0' would be more rigorous, but testing for payload reduces noise and potential side-effects. if (bd->MouseCanReportHoveredViewport && ImGui::GetDragDropPayload() == nullptr) io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; else @@ -951,7 +1002,7 @@ static void ImGui_ImplSDL2_CreateWindow(ImGuiViewport* viewport) if (use_opengl && backup_context) SDL_GL_MakeCurrent(vd->Window, backup_context); - viewport->PlatformHandle = (void*)vd->Window; + viewport->PlatformHandle = (void*)(intptr_t)SDL_GetWindowID(vd->Window); viewport->PlatformHandleRaw = nullptr; SDL_SysWMinfo info; SDL_VERSION(&info.version); @@ -995,7 +1046,11 @@ static void ImGui_ImplSDL2_ShowWindow(ImGuiViewport* viewport) ex_style |= WS_EX_TOOLWINDOW; ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style); } +#endif +#if SDL_HAS_SHOW_WINDOW_ACTIVATION_HINT + SDL_SetHint(SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN, (viewport->Flags & ImGuiViewportFlags_NoFocusOnAppearing) ? "1" : "0"); +#elif defined(_WIN32) // SDL hack: SDL always activate/focus windows :/ if (viewport->Flags & ImGuiViewportFlags_NoFocusOnAppearing) { @@ -1003,7 +1058,6 @@ static void ImGui_ImplSDL2_ShowWindow(ImGuiViewport* viewport) return; } #endif - SDL_ShowWindow(vd->Window); } @@ -1130,7 +1184,7 @@ static void ImGui_ImplSDL2_InitPlatformInterface(SDL_Window* window, void* sdl_g vd->WindowOwned = false; vd->GLContext = sdl_gl_context; main_viewport->PlatformUserData = vd; - main_viewport->PlatformHandle = vd->Window; + main_viewport->PlatformHandle = (void*)(intptr_t)vd->WindowID; } static void ImGui_ImplSDL2_ShutdownPlatformInterface() diff --git a/cimgui/imgui/backends/imgui_impl_sdl2.h b/cwrappers/imgui/backends/imgui_impl_sdl2.h similarity index 90% rename from cimgui/imgui/backends/imgui_impl_sdl2.h rename to cwrappers/imgui/backends/imgui_impl_sdl2.h index 2970772ef..78c76a842 100644 --- a/cimgui/imgui/backends/imgui_impl_sdl2.h +++ b/cwrappers/imgui/backends/imgui_impl_sdl2.h @@ -9,8 +9,9 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. -// Missing features: -// [ ] Platform: Multi-viewport + Minimized windows seems to break mouse wheel events (at least under Windows). +// Issues: +// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows). +// [ ] Platform: Multi-viewport: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor). // [x] Platform: Basic IME support. App needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. @@ -30,6 +31,7 @@ struct SDL_Renderer; struct _SDL_GameController; typedef union SDL_Event SDL_Event; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context); IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window); IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window); diff --git a/cimgui/imgui/backends/imgui_impl_sdl3.cpp b/cwrappers/imgui/backends/imgui_impl_sdl3.cpp similarity index 77% rename from cimgui/imgui/backends/imgui_impl_sdl3.cpp rename to cwrappers/imgui/backends/imgui_impl_sdl3.cpp index 8eccaa89b..5e05f0b03 100644 --- a/cimgui/imgui/backends/imgui_impl_sdl3.cpp +++ b/cwrappers/imgui/backends/imgui_impl_sdl3.cpp @@ -1,7 +1,8 @@ // dear imgui: Platform Backend for SDL3 (*EXPERIMENTAL*) // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) // (Info: SDL3 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) -// (IMPORTANT: SDL 3.0.0 is NOT YET RELEASED. IT IS POSSIBLE THAT ITS SPECS/API WILL CHANGE BEFORE RELEASE) + +// (**IMPORTANT: SDL 3.0.0 is NOT YET RELEASED AND CURRENTLY HAS A FAST CHANGING API. THIS CODE BREAKS OFTEN AS SDL3 CHANGES.**) // Implemented features: // [X] Platform: Clipboard support. @@ -10,9 +11,8 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. // [x] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable' -> the OS animation effect when window gets created/destroyed is problematic. SDL2 backend doesn't have issue. -// Missing features: -// [ ] Platform: Multi-viewport + Minimized windows seems to break mouse wheel events (at least under Windows). -// [x] Platform: Basic IME support. Position somehow broken in SDL3 + app needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. +// Issues: +// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows). // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. @@ -25,6 +25,24 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-09-11: (Docking) Added support for viewport->ParentViewportId field to support parenting at OS level. (#7973) +// 2024-09-03: Update for SDL3 api changes: SDL_GetGamepads() memory ownership revert. (#7918, #7898, #7807) +// 2024-08-22: moved some OS/backend related function pointers from ImGuiIO to ImGuiPlatformIO: +// - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn +// - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn +// - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn +// 2024-08-19: Storing SDL_WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. +// 2024-08-19: ImGui_ImplSDL3_ProcessEvent() now ignores events intended for other SDL windows. (#7853) +// 2024-07-22: Update for SDL3 api changes: SDL_GetGamepads() memory ownership change. (#7807) +// 2024-07-18: Update for SDL3 api changes: SDL_GetClipboardText() memory ownership change. (#7801) +// 2024-07-15: Update for SDL3 api changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) +// 2024-07-02: Update for SDL3 api changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762). +// 2024-07-01: Update for SDL3 api changes: SDL_SetTextInputRect() changed to SDL_SetTextInputArea(). +// 2024-06-26: Update for SDL3 api changes: SDL_StartTextInput()/SDL_StopTextInput()/SDL_SetTextInputRect() functions signatures. +// 2024-06-24: Update for SDL3 api changes: SDL_EVENT_KEY_DOWN/SDL_EVENT_KEY_UP contents. +// 2024-06-03; Update for SDL3 api changes: SDL_SYSTEM_CURSOR_ renames. +// 2024-05-15: Update for SDL3 api changes: SDLK_ renames. +// 2024-04-15: Inputs: Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() as SDL3 no longer enables it by default and should play nicer with IME. // 2024-02-13: Inputs: Fixed gamepad support. Handle gamepad disconnection. Added ImGui_ImplSDL3_SetGamepadMode(). // 2023-11-13: Updated for recent SDL3 API changes. // 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. @@ -62,16 +80,28 @@ #define SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE 0 #endif +// FIXME-LEGACY: remove when SDL 3.1.3 preview is released. +#ifndef SDLK_APOSTROPHE +#define SDLK_APOSTROPHE SDLK_QUOTE +#endif +#ifndef SDLK_GRAVE +#define SDLK_GRAVE SDLK_BACKQUOTE +#endif + // SDL Data struct ImGui_ImplSDL3_Data { SDL_Window* Window; + SDL_WindowID WindowID; SDL_Renderer* Renderer; Uint64 Time; char* ClipboardTextData; bool UseVulkan; bool WantUpdateMonitors; + // IME handling + SDL_Window* ImeWindow; + // Mouse handling Uint32 MouseWindowID; int MouseButtonsDown; @@ -104,22 +134,31 @@ static void ImGui_ImplSDL3_InitPlatformInterface(SDL_Window* window, void* sdl_g static void ImGui_ImplSDL3_ShutdownPlatformInterface(); // Functions -static const char* ImGui_ImplSDL3_GetClipboardText(void*) +static const char* ImGui_ImplSDL3_GetClipboardText(ImGuiContext*) { ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); if (bd->ClipboardTextData) SDL_free(bd->ClipboardTextData); - bd->ClipboardTextData = SDL_GetClipboardText(); + const char* sdl_clipboard_text = SDL_GetClipboardText(); + bd->ClipboardTextData = sdl_clipboard_text ? SDL_strdup(sdl_clipboard_text) : NULL; return bd->ClipboardTextData; } -static void ImGui_ImplSDL3_SetClipboardText(void*, const char* text) +static void ImGui_ImplSDL3_SetClipboardText(ImGuiContext*, const char* text) { SDL_SetClipboardText(text); } -static void ImGui_ImplSDL3_SetPlatformImeData(ImGuiViewport* viewport, ImGuiPlatformImeData* data) +static void ImGui_ImplSDL3_PlatformSetImeData(ImGuiContext*, ImGuiViewport* viewport, ImGuiPlatformImeData* data) { + ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); + SDL_WindowID window_id = (SDL_WindowID)(intptr_t)viewport->PlatformHandle; + SDL_Window* window = SDL_GetWindowFromID(window_id); + if ((data->WantVisible == false || bd->ImeWindow != window) && bd->ImeWindow != NULL) + { + SDL_StopTextInput(bd->ImeWindow); + bd->ImeWindow = nullptr; + } if (data->WantVisible) { SDL_Rect r; @@ -127,12 +166,36 @@ static void ImGui_ImplSDL3_SetPlatformImeData(ImGuiViewport* viewport, ImGuiPlat r.y = (int)(data->InputPos.y - viewport->Pos.y + data->InputLineHeight); r.w = 1; r.h = (int)data->InputLineHeight; - SDL_SetTextInputRect(&r); + SDL_SetTextInputArea(window, &r, 0); + SDL_StartTextInput(window); + bd->ImeWindow = window; } } -static ImGuiKey ImGui_ImplSDL3_KeycodeToImGuiKey(int keycode) +static ImGuiKey ImGui_ImplSDL3_KeyEventToImGuiKey(SDL_Keycode keycode, SDL_Scancode scancode) { + // Keypad doesn't have individual key values in SDL3 + switch (scancode) + { + case SDL_SCANCODE_KP_0: return ImGuiKey_Keypad0; + case SDL_SCANCODE_KP_1: return ImGuiKey_Keypad1; + case SDL_SCANCODE_KP_2: return ImGuiKey_Keypad2; + case SDL_SCANCODE_KP_3: return ImGuiKey_Keypad3; + case SDL_SCANCODE_KP_4: return ImGuiKey_Keypad4; + case SDL_SCANCODE_KP_5: return ImGuiKey_Keypad5; + case SDL_SCANCODE_KP_6: return ImGuiKey_Keypad6; + case SDL_SCANCODE_KP_7: return ImGuiKey_Keypad7; + case SDL_SCANCODE_KP_8: return ImGuiKey_Keypad8; + case SDL_SCANCODE_KP_9: return ImGuiKey_Keypad9; + case SDL_SCANCODE_KP_PERIOD: return ImGuiKey_KeypadDecimal; + case SDL_SCANCODE_KP_DIVIDE: return ImGuiKey_KeypadDivide; + case SDL_SCANCODE_KP_MULTIPLY: return ImGuiKey_KeypadMultiply; + case SDL_SCANCODE_KP_MINUS: return ImGuiKey_KeypadSubtract; + case SDL_SCANCODE_KP_PLUS: return ImGuiKey_KeypadAdd; + case SDL_SCANCODE_KP_ENTER: return ImGuiKey_KeypadEnter; + case SDL_SCANCODE_KP_EQUALS: return ImGuiKey_KeypadEqual; + default: break; + } switch (keycode) { case SDLK_TAB: return ImGuiKey_Tab; @@ -150,7 +213,7 @@ static ImGuiKey ImGui_ImplSDL3_KeycodeToImGuiKey(int keycode) case SDLK_SPACE: return ImGuiKey_Space; case SDLK_RETURN: return ImGuiKey_Enter; case SDLK_ESCAPE: return ImGuiKey_Escape; - case SDLK_QUOTE: return ImGuiKey_Apostrophe; + case SDLK_APOSTROPHE: return ImGuiKey_Apostrophe; case SDLK_COMMA: return ImGuiKey_Comma; case SDLK_MINUS: return ImGuiKey_Minus; case SDLK_PERIOD: return ImGuiKey_Period; @@ -160,29 +223,12 @@ static ImGuiKey ImGui_ImplSDL3_KeycodeToImGuiKey(int keycode) case SDLK_LEFTBRACKET: return ImGuiKey_LeftBracket; case SDLK_BACKSLASH: return ImGuiKey_Backslash; case SDLK_RIGHTBRACKET: return ImGuiKey_RightBracket; - case SDLK_BACKQUOTE: return ImGuiKey_GraveAccent; + case SDLK_GRAVE: return ImGuiKey_GraveAccent; case SDLK_CAPSLOCK: return ImGuiKey_CapsLock; case SDLK_SCROLLLOCK: return ImGuiKey_ScrollLock; case SDLK_NUMLOCKCLEAR: return ImGuiKey_NumLock; case SDLK_PRINTSCREEN: return ImGuiKey_PrintScreen; case SDLK_PAUSE: return ImGuiKey_Pause; - case SDLK_KP_0: return ImGuiKey_Keypad0; - case SDLK_KP_1: return ImGuiKey_Keypad1; - case SDLK_KP_2: return ImGuiKey_Keypad2; - case SDLK_KP_3: return ImGuiKey_Keypad3; - case SDLK_KP_4: return ImGuiKey_Keypad4; - case SDLK_KP_5: return ImGuiKey_Keypad5; - case SDLK_KP_6: return ImGuiKey_Keypad6; - case SDLK_KP_7: return ImGuiKey_Keypad7; - case SDLK_KP_8: return ImGuiKey_Keypad8; - case SDLK_KP_9: return ImGuiKey_Keypad9; - case SDLK_KP_PERIOD: return ImGuiKey_KeypadDecimal; - case SDLK_KP_DIVIDE: return ImGuiKey_KeypadDivide; - case SDLK_KP_MULTIPLY: return ImGuiKey_KeypadMultiply; - case SDLK_KP_MINUS: return ImGuiKey_KeypadSubtract; - case SDLK_KP_PLUS: return ImGuiKey_KeypadAdd; - case SDLK_KP_ENTER: return ImGuiKey_KeypadEnter; - case SDLK_KP_EQUALS: return ImGuiKey_KeypadEqual; case SDLK_LCTRL: return ImGuiKey_LeftCtrl; case SDLK_LSHIFT: return ImGuiKey_LeftShift; case SDLK_LALT: return ImGuiKey_LeftAlt; @@ -202,32 +248,32 @@ static ImGuiKey ImGui_ImplSDL3_KeycodeToImGuiKey(int keycode) case SDLK_7: return ImGuiKey_7; case SDLK_8: return ImGuiKey_8; case SDLK_9: return ImGuiKey_9; - case SDLK_a: return ImGuiKey_A; - case SDLK_b: return ImGuiKey_B; - case SDLK_c: return ImGuiKey_C; - case SDLK_d: return ImGuiKey_D; - case SDLK_e: return ImGuiKey_E; - case SDLK_f: return ImGuiKey_F; - case SDLK_g: return ImGuiKey_G; - case SDLK_h: return ImGuiKey_H; - case SDLK_i: return ImGuiKey_I; - case SDLK_j: return ImGuiKey_J; - case SDLK_k: return ImGuiKey_K; - case SDLK_l: return ImGuiKey_L; - case SDLK_m: return ImGuiKey_M; - case SDLK_n: return ImGuiKey_N; - case SDLK_o: return ImGuiKey_O; - case SDLK_p: return ImGuiKey_P; - case SDLK_q: return ImGuiKey_Q; - case SDLK_r: return ImGuiKey_R; - case SDLK_s: return ImGuiKey_S; - case SDLK_t: return ImGuiKey_T; - case SDLK_u: return ImGuiKey_U; - case SDLK_v: return ImGuiKey_V; - case SDLK_w: return ImGuiKey_W; - case SDLK_x: return ImGuiKey_X; - case SDLK_y: return ImGuiKey_Y; - case SDLK_z: return ImGuiKey_Z; + case SDLK_A: return ImGuiKey_A; + case SDLK_B: return ImGuiKey_B; + case SDLK_C: return ImGuiKey_C; + case SDLK_D: return ImGuiKey_D; + case SDLK_E: return ImGuiKey_E; + case SDLK_F: return ImGuiKey_F; + case SDLK_G: return ImGuiKey_G; + case SDLK_H: return ImGuiKey_H; + case SDLK_I: return ImGuiKey_I; + case SDLK_J: return ImGuiKey_J; + case SDLK_K: return ImGuiKey_K; + case SDLK_L: return ImGuiKey_L; + case SDLK_M: return ImGuiKey_M; + case SDLK_N: return ImGuiKey_N; + case SDLK_O: return ImGuiKey_O; + case SDLK_P: return ImGuiKey_P; + case SDLK_Q: return ImGuiKey_Q; + case SDLK_R: return ImGuiKey_R; + case SDLK_S: return ImGuiKey_S; + case SDLK_T: return ImGuiKey_T; + case SDLK_U: return ImGuiKey_U; + case SDLK_V: return ImGuiKey_V; + case SDLK_W: return ImGuiKey_W; + case SDLK_X: return ImGuiKey_X; + case SDLK_Y: return ImGuiKey_Y; + case SDLK_Z: return ImGuiKey_Z; case SDLK_F1: return ImGuiKey_F1; case SDLK_F2: return ImGuiKey_F2; case SDLK_F3: return ImGuiKey_F3; @@ -254,6 +300,7 @@ static ImGuiKey ImGui_ImplSDL3_KeycodeToImGuiKey(int keycode) case SDLK_F24: return ImGuiKey_F24; case SDLK_AC_BACK: return ImGuiKey_AppBack; case SDLK_AC_FORWARD: return ImGuiKey_AppForward; + default: break; } return ImGuiKey_None; } @@ -267,20 +314,27 @@ static void ImGui_ImplSDL3_UpdateKeyModifiers(SDL_Keymod sdl_key_mods) io.AddKeyEvent(ImGuiMod_Super, (sdl_key_mods & SDL_KMOD_GUI) != 0); } +static ImGuiViewport* ImGui_ImplSDL3_GetViewportForWindowID(SDL_WindowID window_id) +{ + return ImGui::FindViewportByPlatformHandle((void*)(intptr_t)window_id); +} + // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs. // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data. // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. -// If you have multiple SDL events and some of them are not meant to be used by dear imgui, you may need to filter events based on their windowID field. bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) { - ImGuiIO& io = ImGui::GetIO(); ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL3_Init()?"); + ImGuiIO& io = ImGui::GetIO(); switch (event->type) { case SDL_EVENT_MOUSE_MOTION: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->motion.windowID) == NULL) + return false; ImVec2 mouse_pos((float)event->motion.x, (float)event->motion.y); if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) { @@ -295,6 +349,8 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) } case SDL_EVENT_MOUSE_WHEEL: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->wheel.windowID) == NULL) + return false; //IMGUI_DEBUG_LOG("wheel %.2f %.2f, precise %.2f %.2f\n", (float)event->wheel.x, (float)event->wheel.y, event->wheel.preciseX, event->wheel.preciseY); float wheel_x = -event->wheel.x; float wheel_y = event->wheel.y; @@ -308,6 +364,8 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) case SDL_EVENT_MOUSE_BUTTON_DOWN: case SDL_EVENT_MOUSE_BUTTON_UP: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->button.windowID) == NULL) + return false; int mouse_button = -1; if (event->button.button == SDL_BUTTON_LEFT) { mouse_button = 0; } if (event->button.button == SDL_BUTTON_RIGHT) { mouse_button = 1; } @@ -323,16 +381,21 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) } case SDL_EVENT_TEXT_INPUT: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->text.windowID) == NULL) + return false; io.AddInputCharactersUTF8(event->text.text); return true; } case SDL_EVENT_KEY_DOWN: case SDL_EVENT_KEY_UP: { - ImGui_ImplSDL3_UpdateKeyModifiers((SDL_Keymod)event->key.keysym.mod); - ImGuiKey key = ImGui_ImplSDL3_KeycodeToImGuiKey(event->key.keysym.sym); + if (ImGui_ImplSDL3_GetViewportForWindowID(event->key.windowID) == NULL) + return false; + //IMGUI_DEBUG_LOG("SDL_EVENT_KEY_%d: key=%d, scancode=%d, mod=%X\n", (event->type == SDL_EVENT_KEY_DOWN) ? "DOWN" : "UP", event->key.key, event->key.scancode, event->key.mod); + ImGui_ImplSDL3_UpdateKeyModifiers((SDL_Keymod)event->key.mod); + ImGuiKey key = ImGui_ImplSDL3_KeyEventToImGuiKey(event->key.key, event->key.scancode); io.AddKeyEvent(key, (event->type == SDL_EVENT_KEY_DOWN)); - io.SetKeyEventNativeData(key, event->key.keysym.sym, event->key.keysym.scancode, event->key.keysym.scancode); // To support legacy indexing (<1.87 user code). Legacy backend uses SDLK_*** as indices to IsKeyXXX() functions. + io.SetKeyEventNativeData(key, event->key.key, event->key.scancode, event->key.scancode); // To support legacy indexing (<1.87 user code). Legacy backend uses SDLK_*** as indices to IsKeyXXX() functions. return true; } case SDL_EVENT_DISPLAY_ORIENTATION: @@ -346,6 +409,8 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) } case SDL_EVENT_WINDOW_MOUSE_ENTER: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == NULL) + return false; bd->MouseWindowID = event->window.windowID; bd->MousePendingLeaveFrame = 0; return true; @@ -356,29 +421,34 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) // FIXME: Unconfirmed whether this is still needed with SDL3. case SDL_EVENT_WINDOW_MOUSE_LEAVE: { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == NULL) + return false; bd->MousePendingLeaveFrame = ImGui::GetFrameCount() + 1; return true; } case SDL_EVENT_WINDOW_FOCUS_GAINED: - io.AddFocusEvent(true); - return true; case SDL_EVENT_WINDOW_FOCUS_LOST: - io.AddFocusEvent(false); + { + if (ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID) == NULL) + return false; + io.AddFocusEvent(event->type == SDL_EVENT_WINDOW_FOCUS_GAINED); return true; + } case SDL_EVENT_WINDOW_CLOSE_REQUESTED: case SDL_EVENT_WINDOW_MOVED: case SDL_EVENT_WINDOW_RESIZED: - if (ImGuiViewport* viewport = ImGui::FindViewportByPlatformHandle((void*)SDL_GetWindowFromID(event->window.windowID))) - { - if (event->type == SDL_EVENT_WINDOW_CLOSE_REQUESTED) - viewport->PlatformRequestClose = true; - if (event->type == SDL_EVENT_WINDOW_MOVED) - viewport->PlatformRequestMove = true; - if (event->type == SDL_EVENT_WINDOW_RESIZED) - viewport->PlatformRequestResize = true; - return true; - } + { + ImGuiViewport* viewport = ImGui_ImplSDL3_GetViewportForWindowID(event->window.windowID); + if (viewport == NULL) + return false; + if (event->type == SDL_EVENT_WINDOW_CLOSE_REQUESTED) + viewport->PlatformRequestClose = true; + if (event->type == SDL_EVENT_WINDOW_MOVED) + viewport->PlatformRequestMove = true; + if (event->type == SDL_EVENT_WINDOW_RESIZED) + viewport->PlatformRequestResize = true; return true; + } case SDL_EVENT_GAMEPAD_ADDED: case SDL_EVENT_GAMEPAD_REMOVED: { @@ -391,18 +461,19 @@ bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event) static void ImGui_ImplSDL3_SetupPlatformHandles(ImGuiViewport* viewport, SDL_Window* window) { - viewport->PlatformHandle = window; + viewport->PlatformHandle = (void*)(intptr_t)SDL_GetWindowID(window); viewport->PlatformHandleRaw = nullptr; -#if defined(__WIN32__) && !defined(__WINRT__) - viewport->PlatformHandleRaw = (HWND)SDL_GetProperty(SDL_GetWindowProperties(window), "SDL.window.win32.hwnd", nullptr); +#if defined(_WIN32) && !defined(__WINRT__) + viewport->PlatformHandleRaw = (HWND)SDL_GetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_WIN32_HWND_POINTER, nullptr); #elif defined(__APPLE__) && defined(SDL_VIDEO_DRIVER_COCOA) - viewport->PlatformHandleRaw = (void*)SDL_GetProperty(SDL_GetWindowProperties(window), "SDL.window.cocoa.window", nullptr); + viewport->PlatformHandleRaw = SDL_GetPointerProperty(SDL_GetWindowProperties(window), SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, nullptr); #endif } static bool ImGui_ImplSDL3_Init(SDL_Window* window, SDL_Renderer* renderer, void* sdl_gl_context) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); IM_UNUSED(sdl_gl_context); // Unused in this branch @@ -427,6 +498,7 @@ static bool ImGui_ImplSDL3_Init(SDL_Window* window, SDL_Renderer* renderer, void io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional) bd->Window = window; + bd->WindowID = SDL_GetWindowID(window); bd->Renderer = renderer; // SDL on Linux/OSX doesn't report events for unfocused windows (see https://github.com/ocornut/imgui/issues/4960) @@ -439,25 +511,25 @@ static bool ImGui_ImplSDL3_Init(SDL_Window* window, SDL_Renderer* renderer, void #endif bd->WantUpdateMonitors = true; - io.SetClipboardTextFn = ImGui_ImplSDL3_SetClipboardText; - io.GetClipboardTextFn = ImGui_ImplSDL3_GetClipboardText; - io.ClipboardUserData = nullptr; - io.SetPlatformImeDataFn = ImGui_ImplSDL3_SetPlatformImeData; + ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO(); + platform_io.Platform_SetClipboardTextFn = ImGui_ImplSDL3_SetClipboardText; + platform_io.Platform_GetClipboardTextFn = ImGui_ImplSDL3_GetClipboardText; + platform_io.Platform_SetImeDataFn = ImGui_ImplSDL3_PlatformSetImeData; // Gamepad handling bd->GamepadMode = ImGui_ImplSDL3_GamepadMode_AutoFirst; bd->WantUpdateGamepadsList = true; // Load mouse cursors - bd->MouseCursors[ImGuiMouseCursor_Arrow] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW); - bd->MouseCursors[ImGuiMouseCursor_TextInput] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_IBEAM); - bd->MouseCursors[ImGuiMouseCursor_ResizeAll] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZEALL); - bd->MouseCursors[ImGuiMouseCursor_ResizeNS] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENS); - bd->MouseCursors[ImGuiMouseCursor_ResizeEW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZEWE); - bd->MouseCursors[ImGuiMouseCursor_ResizeNESW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENESW); - bd->MouseCursors[ImGuiMouseCursor_ResizeNWSE] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_SIZENWSE); - bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND); - bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NO); + bd->MouseCursors[ImGuiMouseCursor_Arrow] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_DEFAULT); + bd->MouseCursors[ImGuiMouseCursor_TextInput] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_TEXT); + bd->MouseCursors[ImGuiMouseCursor_ResizeAll] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_MOVE); + bd->MouseCursors[ImGuiMouseCursor_ResizeNS] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NS_RESIZE); + bd->MouseCursors[ImGuiMouseCursor_ResizeEW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_EW_RESIZE); + bd->MouseCursors[ImGuiMouseCursor_ResizeNESW] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NESW_RESIZE); + bd->MouseCursors[ImGuiMouseCursor_ResizeNWSE] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NWSE_RESIZE); + bd->MouseCursors[ImGuiMouseCursor_Hand] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_POINTER); + bd->MouseCursors[ImGuiMouseCursor_NotAllowed] = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_NOT_ALLOWED); // Set platform dependent data in viewport // Our mouse update function expect PlatformHandle to be filled for the main viewport @@ -485,6 +557,7 @@ static bool ImGui_ImplSDL3_Init(SDL_Window* window, SDL_Renderer* renderer, void return true; } +// Should technically be a SDL_GLContext but due to typedef it is sane to keep it void* in public interface. bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window, void* sdl_gl_context) { return ImGui_ImplSDL3_Init(window, nullptr, sdl_gl_context); @@ -555,7 +628,7 @@ static void ImGui_ImplSDL3_UpdateMouseData() // SDL_CaptureMouse() let the OS know e.g. that our imgui drag outside the SDL window boundaries shouldn't e.g. trigger other operations outside SDL_CaptureMouse((bd->MouseButtonsDown != 0) ? SDL_TRUE : SDL_FALSE); SDL_Window* focused_window = SDL_GetKeyboardFocus(); - const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui::FindViewportByPlatformHandle((void*)focused_window))); + const bool is_app_focused = (focused_window && (bd->Window == focused_window || ImGui_ImplSDL3_GetViewportForWindowID(SDL_GetWindowID(focused_window)) != NULL)); #else SDL_Window* focused_window = bd->Window; const bool is_app_focused = (SDL_GetWindowFlags(bd->Window) & SDL_WINDOW_INPUT_FOCUS) != 0; // SDL 2.0.3 and non-windowed systems: single-viewport only @@ -601,9 +674,8 @@ static void ImGui_ImplSDL3_UpdateMouseData() if (io.BackendFlags & ImGuiBackendFlags_HasMouseHoveredViewport) { ImGuiID mouse_viewport_id = 0; - if (SDL_Window* sdl_mouse_window = SDL_GetWindowFromID(bd->MouseWindowID)) - if (ImGuiViewport* mouse_viewport = ImGui::FindViewportByPlatformHandle((void*)sdl_mouse_window)) - mouse_viewport_id = mouse_viewport->ID; + if (ImGuiViewport* mouse_viewport = ImGui_ImplSDL3_GetViewportForWindowID(bd->MouseWindowID)) + mouse_viewport_id = mouse_viewport->ID; io.AddMouseViewportEvent(mouse_viewport_id); } } @@ -701,6 +773,7 @@ static void ImGui_ImplSDL3_UpdateGamepads() break; } bd->WantUpdateGamepadsList = false; + SDL_free(sdl_gamepads); } // FIXME: Technically feeding gamepad shouldn't depend on this now that they are regular inputs. @@ -713,30 +786,30 @@ static void ImGui_ImplSDL3_UpdateGamepads() // Update gamepad inputs const int thumb_dead_zone = 8000; // SDL_gamepad.h suggests using this value. - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL_GAMEPAD_BUTTON_START); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL_GAMEPAD_BUTTON_BACK); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL_GAMEPAD_BUTTON_WEST); // Xbox X, PS Square - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL_GAMEPAD_BUTTON_EAST); // Xbox B, PS Circle - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL_GAMEPAD_BUTTON_NORTH); // Xbox Y, PS Triangle - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL_GAMEPAD_BUTTON_SOUTH); // Xbox A, PS Cross - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL_GAMEPAD_BUTTON_DPAD_LEFT); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL_GAMEPAD_BUTTON_DPAD_RIGHT); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL_GAMEPAD_BUTTON_DPAD_UP); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL_GAMEPAD_BUTTON_DPAD_DOWN); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL_GAMEPAD_BUTTON_LEFT_SHOULDER); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL_GAMEPAD_AXIS_LEFT_TRIGGER, 0.0f, 32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL_GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0f, 32767); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL_GAMEPAD_BUTTON_LEFT_STICK); - ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL_GAMEPAD_BUTTON_RIGHT_STICK); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL_GAMEPAD_AXIS_LEFTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL_GAMEPAD_AXIS_LEFTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL_GAMEPAD_AXIS_LEFTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL_GAMEPAD_AXIS_LEFTY, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL_GAMEPAD_AXIS_RIGHTX, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL_GAMEPAD_AXIS_RIGHTX, +thumb_dead_zone, +32767); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL_GAMEPAD_AXIS_RIGHTY, -thumb_dead_zone, -32768); - ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL_GAMEPAD_AXIS_RIGHTY, +thumb_dead_zone, +32767); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadStart, SDL_GAMEPAD_BUTTON_START); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadBack, SDL_GAMEPAD_BUTTON_BACK); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceLeft, SDL_GAMEPAD_BUTTON_WEST); // Xbox X, PS Square + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceRight, SDL_GAMEPAD_BUTTON_EAST); // Xbox B, PS Circle + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceUp, SDL_GAMEPAD_BUTTON_NORTH); // Xbox Y, PS Triangle + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadFaceDown, SDL_GAMEPAD_BUTTON_SOUTH); // Xbox A, PS Cross + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadLeft, SDL_GAMEPAD_BUTTON_DPAD_LEFT); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadRight, SDL_GAMEPAD_BUTTON_DPAD_RIGHT); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadUp, SDL_GAMEPAD_BUTTON_DPAD_UP); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadDpadDown, SDL_GAMEPAD_BUTTON_DPAD_DOWN); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL1, SDL_GAMEPAD_BUTTON_LEFT_SHOULDER); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR1, SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadL2, SDL_GAMEPAD_AXIS_LEFT_TRIGGER, 0.0f, 32767); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadR2, SDL_GAMEPAD_AXIS_RIGHT_TRIGGER, 0.0f, 32767); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadL3, SDL_GAMEPAD_BUTTON_LEFT_STICK); + ImGui_ImplSDL3_UpdateGamepadButton(bd, io, ImGuiKey_GamepadR3, SDL_GAMEPAD_BUTTON_RIGHT_STICK); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickLeft, SDL_GAMEPAD_AXIS_LEFTX, -thumb_dead_zone, -32768); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickRight, SDL_GAMEPAD_AXIS_LEFTX, +thumb_dead_zone, +32767); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickUp, SDL_GAMEPAD_AXIS_LEFTY, -thumb_dead_zone, -32768); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadLStickDown, SDL_GAMEPAD_AXIS_LEFTY, +thumb_dead_zone, +32767); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickLeft, SDL_GAMEPAD_AXIS_RIGHTX, -thumb_dead_zone, -32768); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickRight, SDL_GAMEPAD_AXIS_RIGHTX, +thumb_dead_zone, +32767); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickUp, SDL_GAMEPAD_AXIS_RIGHTY, -thumb_dead_zone, -32768); + ImGui_ImplSDL3_UpdateGamepadAnalog(bd, io, ImGuiKey_GamepadRStickDown, SDL_GAMEPAD_AXIS_RIGHTY, +thumb_dead_zone, +32767); } static void ImGui_ImplSDL3_UpdateMonitors() @@ -764,14 +837,17 @@ static void ImGui_ImplSDL3_UpdateMonitors() // DpiScale to cocoa_window.backingScaleFactor here. monitor.DpiScale = SDL_GetDisplayContentScale(display_id); monitor.PlatformHandle = (void*)(intptr_t)n; + if (monitor.DpiScale <= 0.0f) + continue; // Some accessibility applications are declaring virtual monitors with a DPI of 0, see #7902. platform_io.Monitors.push_back(monitor); } + SDL_free(displays); } void ImGui_ImplSDL3_NewFrame() { ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplSDL3_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDL3_Init()?"); ImGuiIO& io = ImGui::GetIO(); // Setup display size (every frame to accommodate for window resizing) @@ -806,7 +882,7 @@ void ImGui_ImplSDL3_NewFrame() } // Our io.AddMouseViewportEvent() calls will only be valid when not capturing. - // Technically speaking testing for 'bd->MouseButtonsDown == 0' would be more rygorous, but testing for payload reduces noise and potential side-effects. + // Technically speaking testing for 'bd->MouseButtonsDown == 0' would be more rigorous, but testing for payload reduces noise and potential side-effects. if (bd->MouseCanReportHoveredViewport && ImGui::GetDragDropPayload() == nullptr) io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; else @@ -829,20 +905,34 @@ void ImGui_ImplSDL3_NewFrame() struct ImGui_ImplSDL3_ViewportData { SDL_Window* Window; + SDL_Window* ParentWindow; Uint32 WindowID; bool WindowOwned; SDL_GLContext GLContext; - ImGui_ImplSDL3_ViewportData() { Window = nullptr; WindowID = 0; WindowOwned = false; GLContext = nullptr; } + ImGui_ImplSDL3_ViewportData() { Window = ParentWindow = nullptr; WindowID = 0; WindowOwned = false; GLContext = nullptr; } ~ImGui_ImplSDL3_ViewportData() { IM_ASSERT(Window == nullptr && GLContext == nullptr); } }; +static SDL_Window* ImGui_ImplSDL3_GetSDLWindowFromViewportID(ImGuiID viewport_id) +{ + if (viewport_id != 0) + if (ImGuiViewport* viewport = ImGui::FindViewportByID(viewport_id)) + { + SDL_WindowID window_id = (SDL_WindowID)(intptr_t)viewport->PlatformHandle; + return SDL_GetWindowFromID(window_id); + } + return nullptr; +} + static void ImGui_ImplSDL3_CreateWindow(ImGuiViewport* viewport) { ImGui_ImplSDL3_Data* bd = ImGui_ImplSDL3_GetBackendData(); ImGui_ImplSDL3_ViewportData* vd = IM_NEW(ImGui_ImplSDL3_ViewportData)(); viewport->PlatformUserData = vd; + vd->ParentWindow = ImGui_ImplSDL3_GetSDLWindowFromViewportID(viewport->ParentViewportId); + ImGuiViewport* main_viewport = ImGui::GetMainViewport(); ImGui_ImplSDL3_ViewportData* main_viewport_data = (ImGui_ImplSDL3_ViewportData*)main_viewport->PlatformUserData; @@ -867,6 +957,7 @@ static void ImGui_ImplSDL3_CreateWindow(ImGuiViewport* viewport) #endif sdl_flags |= (viewport->Flags & ImGuiViewportFlags_TopMost) ? SDL_WINDOW_ALWAYS_ON_TOP : 0; vd->Window = SDL_CreateWindow("No Title Yet", (int)viewport->Size.x, (int)viewport->Size.y, sdl_flags); + SDL_SetWindowParent(vd->Window, vd->ParentWindow); SDL_SetWindowPosition(vd->Window, (int)viewport->Pos.x, (int)viewport->Pos.y); vd->WindowOwned = true; if (use_opengl) @@ -885,7 +976,7 @@ static void ImGui_ImplSDL3_DestroyWindow(ImGuiViewport* viewport) if (ImGui_ImplSDL3_ViewportData* vd = (ImGui_ImplSDL3_ViewportData*)viewport->PlatformUserData) { if (vd->GLContext && vd->WindowOwned) - SDL_GL_DeleteContext(vd->GLContext); + SDL_GL_DestroyContext(vd->GLContext); if (vd->Window && vd->WindowOwned) SDL_DestroyWindow(vd->Window); vd->GLContext = nullptr; @@ -910,18 +1001,26 @@ static void ImGui_ImplSDL3_ShowWindow(ImGuiViewport* viewport) ex_style |= WS_EX_TOOLWINDOW; ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style); } - - // SDL hack: SDL always activate/focus windows :/ - if (viewport->Flags & ImGuiViewportFlags_NoFocusOnAppearing) - { - ::ShowWindow(hwnd, SW_SHOWNA); - return; - } #endif + SDL_SetHint(SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN, (viewport->Flags & ImGuiViewportFlags_NoFocusOnAppearing) ? "0" : "1"); SDL_ShowWindow(vd->Window); } +static void ImGui_ImplSDL3_UpdateWindow(ImGuiViewport* viewport) +{ + ImGui_ImplSDL3_ViewportData* vd = (ImGui_ImplSDL3_ViewportData*)viewport->PlatformUserData; + + // Update SDL3 parent if it changed _after_ creation. + // This is for advanced apps that are manipulating ParentViewportID manually. + SDL_Window* new_parent = ImGui_ImplSDL3_GetSDLWindowFromViewportID(viewport->ParentViewportId); + if (new_parent != vd->ParentWindow) + { + vd->ParentWindow = new_parent; + SDL_SetWindowParent(vd->Window, vd->ParentWindow); + } +} + static ImVec2 ImGui_ImplSDL3_GetWindowPos(ImGuiViewport* viewport) { ImGui_ImplSDL3_ViewportData* vd = (ImGui_ImplSDL3_ViewportData*)viewport->PlatformUserData; @@ -1015,6 +1114,7 @@ static void ImGui_ImplSDL3_InitPlatformInterface(SDL_Window* window, void* sdl_g platform_io.Platform_CreateWindow = ImGui_ImplSDL3_CreateWindow; platform_io.Platform_DestroyWindow = ImGui_ImplSDL3_DestroyWindow; platform_io.Platform_ShowWindow = ImGui_ImplSDL3_ShowWindow; + platform_io.Platform_UpdateWindow = ImGui_ImplSDL3_UpdateWindow; platform_io.Platform_SetWindowPos = ImGui_ImplSDL3_SetWindowPos; platform_io.Platform_GetWindowPos = ImGui_ImplSDL3_GetWindowPos; platform_io.Platform_SetWindowSize = ImGui_ImplSDL3_SetWindowSize; @@ -1035,9 +1135,9 @@ static void ImGui_ImplSDL3_InitPlatformInterface(SDL_Window* window, void* sdl_g vd->Window = window; vd->WindowID = SDL_GetWindowID(window); vd->WindowOwned = false; - vd->GLContext = sdl_gl_context; + vd->GLContext = (SDL_GLContext)sdl_gl_context; main_viewport->PlatformUserData = vd; - main_viewport->PlatformHandle = vd->Window; + main_viewport->PlatformHandle = (void*)(intptr_t)vd->WindowID; } static void ImGui_ImplSDL3_ShutdownPlatformInterface() diff --git a/cimgui/imgui/backends/imgui_impl_sdl3.h b/cwrappers/imgui/backends/imgui_impl_sdl3.h similarity index 90% rename from cimgui/imgui/backends/imgui_impl_sdl3.h rename to cwrappers/imgui/backends/imgui_impl_sdl3.h index 18ab945af..96f0e5d8d 100644 --- a/cimgui/imgui/backends/imgui_impl_sdl3.h +++ b/cwrappers/imgui/backends/imgui_impl_sdl3.h @@ -1,7 +1,8 @@ // dear imgui: Platform Backend for SDL3 (*EXPERIMENTAL*) // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..) // (Info: SDL3 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.) -// (IMPORTANT: SDL 3.0.0 is NOT YET RELEASED. IT IS POSSIBLE THAT ITS SPECS/API WILL CHANGE BEFORE RELEASE) + +// (**IMPORTANT: SDL 3.0.0 is NOT YET RELEASED AND CURRENTLY HAS A FAST CHANGING API. THIS CODE BREAKS OFTEN AS SDL3 CHANGES.**) // Implemented features: // [X] Platform: Clipboard support. @@ -10,8 +11,8 @@ // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'. // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. // [x] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable' -> the OS animation effect when window gets created/destroyed is problematic. SDL2 backend doesn't have issue. -// Missing features: -// [ ] Platform: Multi-viewport + Minimized windows seems to break mouse wheel events (at least under Windows). +// Issues: +// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows). // [x] Platform: Basic IME support. Position somehow broken in SDL3 + app needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!. // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. @@ -31,6 +32,7 @@ struct SDL_Renderer; struct SDL_Gamepad; typedef union SDL_Event SDL_Event; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window, void* sdl_gl_context); IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window); IMGUI_IMPL_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window); diff --git a/cimgui/imgui/backends/imgui_impl_sdlrenderer2.cpp b/cwrappers/imgui/backends/imgui_impl_sdlrenderer2.cpp similarity index 88% rename from cimgui/imgui/backends/imgui_impl_sdlrenderer2.cpp rename to cwrappers/imgui/backends/imgui_impl_sdlrenderer2.cpp index 4c90492e7..a046ed975 100644 --- a/cimgui/imgui/backends/imgui_impl_sdlrenderer2.cpp +++ b/cwrappers/imgui/backends/imgui_impl_sdlrenderer2.cpp @@ -22,6 +22,7 @@ // - Introduction, links and more at the top of imgui.cpp // CHANGELOG +// 2024-05-14: *BREAKING CHANGE* ImGui_ImplSDLRenderer3_RenderDrawData() requires SDL_Renderer* passed as parameter. // 2023-05-30: Renamed imgui_impl_sdlrenderer.h/.cpp to imgui_impl_sdlrenderer2.h/.cpp to accommodate for upcoming SDL3. // 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. // 2021-12-21: Update SDL_RenderGeometryRaw() format to work with SDL 2.0.19. @@ -49,9 +50,9 @@ // SDL_Renderer data struct ImGui_ImplSDLRenderer2_Data { - SDL_Renderer* SDLRenderer; + SDL_Renderer* Renderer; // Main viewport's renderer SDL_Texture* FontTexture; - ImGui_ImplSDLRenderer2_Data() { memset((void*)this, 0, sizeof(*this)); } + ImGui_ImplSDLRenderer2_Data() { memset((void*)this, 0, sizeof(*this)); } }; // Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts @@ -65,6 +66,7 @@ static ImGui_ImplSDLRenderer2_Data* ImGui_ImplSDLRenderer2_GetBackendData() bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); IM_ASSERT(renderer != nullptr && "SDL_Renderer not initialized!"); @@ -74,7 +76,7 @@ bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer) io.BackendRendererName = "imgui_impl_sdlrenderer2"; io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - bd->SDLRenderer = renderer; + bd->Renderer = renderer; return true; } @@ -93,35 +95,31 @@ void ImGui_ImplSDLRenderer2_Shutdown() IM_DELETE(bd); } -static void ImGui_ImplSDLRenderer2_SetupRenderState() +static void ImGui_ImplSDLRenderer2_SetupRenderState(SDL_Renderer* renderer) { - ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - // Clear out any viewports and cliprect set by the user // FIXME: Technically speaking there are lots of other things we could backup/setup/restore during our render process. - SDL_RenderSetViewport(bd->SDLRenderer, nullptr); - SDL_RenderSetClipRect(bd->SDLRenderer, nullptr); + SDL_RenderSetViewport(renderer, nullptr); + SDL_RenderSetClipRect(renderer, nullptr); } void ImGui_ImplSDLRenderer2_NewFrame() { ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplSDLRenderer2_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDLRenderer2_Init()?"); if (!bd->FontTexture) ImGui_ImplSDLRenderer2_CreateDeviceObjects(); } -void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) +void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer) { - ImGui_ImplSDLRenderer2_Data* bd = ImGui_ImplSDLRenderer2_GetBackendData(); - // If there's a scale factor set by the user, use that instead // If the user has specified a scale factor to SDL_Renderer already via SDL_RenderSetScale(), SDL will scale whatever we pass // to SDL_RenderGeometryRaw() by that scale factor. In that case we don't want to be also scaling it ourselves here. float rsx = 1.0f; float rsy = 1.0f; - SDL_RenderGetScale(bd->SDLRenderer, &rsx, &rsy); + SDL_RenderGetScale(renderer, &rsx, &rsy); ImVec2 render_scale; render_scale.x = (rsx == 1.0f) ? draw_data->FramebufferScale.x : 1.0f; render_scale.y = (rsy == 1.0f) ? draw_data->FramebufferScale.y : 1.0f; @@ -140,16 +138,16 @@ void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) SDL_Rect ClipRect; }; BackupSDLRendererState old = {}; - old.ClipEnabled = SDL_RenderIsClipEnabled(bd->SDLRenderer) == SDL_TRUE; - SDL_RenderGetViewport(bd->SDLRenderer, &old.Viewport); - SDL_RenderGetClipRect(bd->SDLRenderer, &old.ClipRect); + old.ClipEnabled = SDL_RenderIsClipEnabled(renderer) == SDL_TRUE; + SDL_RenderGetViewport(renderer, &old.Viewport); + SDL_RenderGetClipRect(renderer, &old.ClipRect); // Will project scissor/clipping rectangles into framebuffer space ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports ImVec2 clip_scale = render_scale; // Render command lists - ImGui_ImplSDLRenderer2_SetupRenderState(); + ImGui_ImplSDLRenderer2_SetupRenderState(renderer); for (int n = 0; n < draw_data->CmdListsCount; n++) { const ImDrawList* cmd_list = draw_data->CmdLists[n]; @@ -164,7 +162,7 @@ void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) // User callback, registered via ImDrawList::AddCallback() // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplSDLRenderer2_SetupRenderState(); + ImGui_ImplSDLRenderer2_SetupRenderState(renderer); else pcmd->UserCallback(cmd_list, pcmd); } @@ -181,7 +179,7 @@ void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) continue; SDL_Rect r = { (int)(clip_min.x), (int)(clip_min.y), (int)(clip_max.x - clip_min.x), (int)(clip_max.y - clip_min.y) }; - SDL_RenderSetClipRect(bd->SDLRenderer, &r); + SDL_RenderSetClipRect(renderer, &r); const float* xy = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, pos)); const float* uv = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, uv)); @@ -193,7 +191,7 @@ void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) // Bind texture, Draw SDL_Texture* tex = (SDL_Texture*)pcmd->GetTexID(); - SDL_RenderGeometryRaw(bd->SDLRenderer, tex, + SDL_RenderGeometryRaw(renderer, tex, xy, (int)sizeof(ImDrawVert), color, (int)sizeof(ImDrawVert), uv, (int)sizeof(ImDrawVert), @@ -204,8 +202,8 @@ void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data) } // Restore modified SDL_Renderer state - SDL_RenderSetViewport(bd->SDLRenderer, &old.Viewport); - SDL_RenderSetClipRect(bd->SDLRenderer, old.ClipEnabled ? &old.ClipRect : nullptr); + SDL_RenderSetViewport(renderer, &old.Viewport); + SDL_RenderSetClipRect(renderer, old.ClipEnabled ? &old.ClipRect : nullptr); } // Called by Init/NewFrame/Shutdown @@ -221,7 +219,7 @@ bool ImGui_ImplSDLRenderer2_CreateFontsTexture() // Upload texture to graphics system // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - bd->FontTexture = SDL_CreateTexture(bd->SDLRenderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STATIC, width, height); + bd->FontTexture = SDL_CreateTexture(bd->Renderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STATIC, width, height); if (bd->FontTexture == nullptr) { SDL_Log("error creating texture"); diff --git a/cimgui/imgui/backends/imgui_impl_sdlrenderer2.h b/cwrappers/imgui/backends/imgui_impl_sdlrenderer2.h similarity index 93% rename from cimgui/imgui/backends/imgui_impl_sdlrenderer2.h rename to cwrappers/imgui/backends/imgui_impl_sdlrenderer2.h index 1b02c7438..0a135ad00 100644 --- a/cimgui/imgui/backends/imgui_impl_sdlrenderer2.h +++ b/cwrappers/imgui/backends/imgui_impl_sdlrenderer2.h @@ -27,10 +27,11 @@ struct SDL_Renderer; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer); IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_Shutdown(); IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data); +IMGUI_IMPL_API void ImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer); // Called by Init/NewFrame/Shutdown IMGUI_IMPL_API bool ImGui_ImplSDLRenderer2_CreateFontsTexture(); diff --git a/cimgui/imgui/backends/imgui_impl_sdlrenderer3.cpp b/cwrappers/imgui/backends/imgui_impl_sdlrenderer3.cpp similarity index 78% rename from cimgui/imgui/backends/imgui_impl_sdlrenderer3.cpp rename to cwrappers/imgui/backends/imgui_impl_sdlrenderer3.cpp index 6675356e4..45a69baab 100644 --- a/cimgui/imgui/backends/imgui_impl_sdlrenderer3.cpp +++ b/cwrappers/imgui/backends/imgui_impl_sdlrenderer3.cpp @@ -1,6 +1,8 @@ // dear imgui: Renderer Backend for SDL_Renderer for SDL3 // (Requires: SDL 3.0.0+) +// (**IMPORTANT: SDL 3.0.0 is NOT YET RELEASED AND CURRENTLY HAS A FAST CHANGING API. THIS CODE BREAKS OFTEN AS SDL3 CHANGES.**) + // Note how SDL_Renderer is an _optional_ component of SDL3. // For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX. // If your application will want to render any non trivial amount of graphics other than UI, @@ -22,6 +24,8 @@ // - Introduction, links and more at the top of imgui.cpp // CHANGELOG +// 2024-07-01: Update for SDL3 api changes: SDL_RenderGeometryRaw() uint32 version was removed (SDL#9009). +// 2024-05-14: *BREAKING CHANGE* ImGui_ImplSDLRenderer3_RenderDrawData() requires SDL_Renderer* passed as parameter. // 2024-02-12: Amend to query SDL_RenderViewportSet() and restore viewport accordingly. // 2023-05-30: Initial version. @@ -45,9 +49,11 @@ // SDL_Renderer data struct ImGui_ImplSDLRenderer3_Data { - SDL_Renderer* SDLRenderer; - SDL_Texture* FontTexture; - ImGui_ImplSDLRenderer3_Data() { memset((void*)this, 0, sizeof(*this)); } + SDL_Renderer* Renderer; // Main viewport's renderer + SDL_Texture* FontTexture; + ImVector ColorBuffer; + + ImGui_ImplSDLRenderer3_Data() { memset((void*)this, 0, sizeof(*this)); } }; // Backend data stored in io.BackendRendererUserData to allow support for multiple Dear ImGui contexts @@ -61,6 +67,7 @@ static ImGui_ImplSDLRenderer3_Data* ImGui_ImplSDLRenderer3_GetBackendData() bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); IM_ASSERT(renderer != nullptr && "SDL_Renderer not initialized!"); @@ -70,7 +77,7 @@ bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer) io.BackendRendererName = "imgui_impl_sdlrenderer3"; io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes. - bd->SDLRenderer = renderer; + bd->Renderer = renderer; return true; } @@ -89,35 +96,51 @@ void ImGui_ImplSDLRenderer3_Shutdown() IM_DELETE(bd); } -static void ImGui_ImplSDLRenderer3_SetupRenderState() +static void ImGui_ImplSDLRenderer3_SetupRenderState(SDL_Renderer* renderer) { - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - // Clear out any viewports and cliprect set by the user // FIXME: Technically speaking there are lots of other things we could backup/setup/restore during our render process. - SDL_SetRenderViewport(bd->SDLRenderer, nullptr); - SDL_SetRenderClipRect(bd->SDLRenderer, nullptr); + SDL_SetRenderViewport(renderer, nullptr); + SDL_SetRenderClipRect(renderer, nullptr); } void ImGui_ImplSDLRenderer3_NewFrame() { ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplSDLRenderer3_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplSDLRenderer3_Init()?"); if (!bd->FontTexture) ImGui_ImplSDLRenderer3_CreateDeviceObjects(); } -void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) +// https://github.com/libsdl-org/SDL/issues/9009 +static int SDL_RenderGeometryRaw8BitColor(SDL_Renderer* renderer, ImVector& colors_out, SDL_Texture* texture, const float* xy, int xy_stride, const SDL_Color* color, int color_stride, const float* uv, int uv_stride, int num_vertices, const void* indices, int num_indices, int size_indices) { - ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); + const Uint8* color2 = (const Uint8*)color; + colors_out.resize(num_vertices); + SDL_FColor* color3 = colors_out.Data; + for (int i = 0; i < num_vertices; i++) + { + color3[i].r = color->r / 255.0f; + color3[i].g = color->g / 255.0f; + color3[i].b = color->b / 255.0f; + color3[i].a = color->a / 255.0f; + color2 += color_stride; + color = (const SDL_Color*)color2; + } + return SDL_RenderGeometryRaw(renderer, texture, xy, xy_stride, color3, sizeof(*color3), uv, uv_stride, num_vertices, indices, num_indices, size_indices); +} + +void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer) +{ + ImGui_ImplSDLRenderer3_Data* bd = ImGui_ImplSDLRenderer3_GetBackendData(); // If there's a scale factor set by the user, use that instead // If the user has specified a scale factor to SDL_Renderer already via SDL_RenderSetScale(), SDL will scale whatever we pass // to SDL_RenderGeometryRaw() by that scale factor. In that case we don't want to be also scaling it ourselves here. float rsx = 1.0f; float rsy = 1.0f; - SDL_GetRenderScale(bd->SDLRenderer, &rsx, &rsy); + SDL_GetRenderScale(renderer, &rsx, &rsy); ImVec2 render_scale; render_scale.x = (rsx == 1.0f) ? draw_data->FramebufferScale.x : 1.0f; render_scale.y = (rsy == 1.0f) ? draw_data->FramebufferScale.y : 1.0f; @@ -137,17 +160,17 @@ void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) SDL_Rect ClipRect; }; BackupSDLRendererState old = {}; - old.ViewportEnabled = SDL_RenderViewportSet(bd->SDLRenderer) == SDL_TRUE; - old.ClipEnabled = SDL_RenderClipEnabled(bd->SDLRenderer) == SDL_TRUE; - SDL_GetRenderViewport(bd->SDLRenderer, &old.Viewport); - SDL_GetRenderClipRect(bd->SDLRenderer, &old.ClipRect); + old.ViewportEnabled = SDL_RenderViewportSet(renderer) == SDL_TRUE; + old.ClipEnabled = SDL_RenderClipEnabled(renderer) == SDL_TRUE; + SDL_GetRenderViewport(renderer, &old.Viewport); + SDL_GetRenderClipRect(renderer, &old.ClipRect); // Will project scissor/clipping rectangles into framebuffer space ImVec2 clip_off = draw_data->DisplayPos; // (0,0) unless using multi-viewports ImVec2 clip_scale = render_scale; // Render command lists - ImGui_ImplSDLRenderer3_SetupRenderState(); + ImGui_ImplSDLRenderer3_SetupRenderState(renderer); for (int n = 0; n < draw_data->CmdListsCount; n++) { const ImDrawList* cmd_list = draw_data->CmdLists[n]; @@ -162,7 +185,7 @@ void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) // User callback, registered via ImDrawList::AddCallback() // (ImDrawCallback_ResetRenderState is a special callback value used by the user to request the renderer to reset render state.) if (pcmd->UserCallback == ImDrawCallback_ResetRenderState) - ImGui_ImplSDLRenderer3_SetupRenderState(); + ImGui_ImplSDLRenderer3_SetupRenderState(renderer); else pcmd->UserCallback(cmd_list, pcmd); } @@ -179,7 +202,7 @@ void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) continue; SDL_Rect r = { (int)(clip_min.x), (int)(clip_min.y), (int)(clip_max.x - clip_min.x), (int)(clip_max.y - clip_min.y) }; - SDL_SetRenderClipRect(bd->SDLRenderer, &r); + SDL_SetRenderClipRect(renderer, &r); const float* xy = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, pos)); const float* uv = (const float*)(const void*)((const char*)(vtx_buffer + pcmd->VtxOffset) + offsetof(ImDrawVert, uv)); @@ -187,7 +210,7 @@ void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) // Bind texture, Draw SDL_Texture* tex = (SDL_Texture*)pcmd->GetTexID(); - SDL_RenderGeometryRaw(bd->SDLRenderer, tex, + SDL_RenderGeometryRaw8BitColor(renderer, bd->ColorBuffer, tex, xy, (int)sizeof(ImDrawVert), color, (int)sizeof(ImDrawVert), uv, (int)sizeof(ImDrawVert), @@ -198,8 +221,8 @@ void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data) } // Restore modified SDL_Renderer state - SDL_SetRenderViewport(bd->SDLRenderer, old.ViewportEnabled ? &old.Viewport : nullptr); - SDL_SetRenderClipRect(bd->SDLRenderer, old.ClipEnabled ? &old.ClipRect : nullptr); + SDL_SetRenderViewport(renderer, old.ViewportEnabled ? &old.Viewport : nullptr); + SDL_SetRenderClipRect(renderer, old.ClipEnabled ? &old.ClipRect : nullptr); } // Called by Init/NewFrame/Shutdown @@ -215,7 +238,7 @@ bool ImGui_ImplSDLRenderer3_CreateFontsTexture() // Upload texture to graphics system // (Bilinear sampling is required by default. Set 'io.Fonts->Flags |= ImFontAtlasFlags_NoBakedLines' or 'style.AntiAliasedLinesUseTex = false' to allow point/nearest sampling) - bd->FontTexture = SDL_CreateTexture(bd->SDLRenderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STATIC, width, height); + bd->FontTexture = SDL_CreateTexture(bd->Renderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STATIC, width, height); if (bd->FontTexture == nullptr) { SDL_Log("error creating texture"); diff --git a/cimgui/imgui/backends/imgui_impl_sdlrenderer3.h b/cwrappers/imgui/backends/imgui_impl_sdlrenderer3.h similarity index 88% rename from cimgui/imgui/backends/imgui_impl_sdlrenderer3.h rename to cwrappers/imgui/backends/imgui_impl_sdlrenderer3.h index fd3cc1728..4ae96dc73 100644 --- a/cimgui/imgui/backends/imgui_impl_sdlrenderer3.h +++ b/cwrappers/imgui/backends/imgui_impl_sdlrenderer3.h @@ -1,6 +1,8 @@ // dear imgui: Renderer Backend for SDL_Renderer for SDL3 // (Requires: SDL 3.0.0+) +// (**IMPORTANT: SDL 3.0.0 is NOT YET RELEASED AND CURRENTLY HAS A FAST CHANGING API. THIS CODE BREAKS OFTEN AS SDL3 CHANGES.**) + // Note how SDL_Renderer is an _optional_ component of SDL3. // For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX. // If your application will want to render any non trivial amount of graphics other than UI, @@ -27,10 +29,11 @@ struct SDL_Renderer; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer); IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_Shutdown(); IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_NewFrame(); -IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data); +IMGUI_IMPL_API void ImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer); // Called by Init/NewFrame/Shutdown IMGUI_IMPL_API bool ImGui_ImplSDLRenderer3_CreateFontsTexture(); diff --git a/cimgui/imgui/backends/imgui_impl_vulkan.cpp b/cwrappers/imgui/backends/imgui_impl_vulkan.cpp similarity index 97% rename from cimgui/imgui/backends/imgui_impl_vulkan.cpp rename to cwrappers/imgui/backends/imgui_impl_vulkan.cpp index e7f7c8d82..cb54fa17a 100644 --- a/cimgui/imgui/backends/imgui_impl_vulkan.cpp +++ b/cwrappers/imgui/backends/imgui_impl_vulkan.cpp @@ -35,6 +35,7 @@ // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-04-19: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define (you can also use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().) // 2024-02-14: *BREAKING CHANGE*: Moved RenderPass parameter from ImGui_ImplVulkan_Init() function to ImGui_ImplVulkan_InitInfo structure. Not required when using dynamic rendering. // 2024-02-12: *BREAKING CHANGE*: Dynamic rendering now require filling PipelineRenderingCreateInfo structure. // 2024-01-19: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236) @@ -43,14 +44,14 @@ // 2024-01-03: Vulkan: Stopped creating command pools with VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT as we don't reset them. // 2023-11-29: Vulkan: Fixed mismatching allocator passed to vkCreateCommandPool() vs vkDestroyCommandPool(). (#7075) // 2023-11-10: *BREAKING CHANGE*: Removed parameter from ImGui_ImplVulkan_CreateFontsTexture(): backend now creates its own command-buffer to upload fonts. -// *BREAKING CHANGE*: Removed ImGui_ImplVulkan_DestroyFontUploadObjects() which is now unecessary as we create and destroy those objects in the backend. +// *BREAKING CHANGE*: Removed ImGui_ImplVulkan_DestroyFontUploadObjects() which is now unnecessary as we create and destroy those objects in the backend. // ImGui_ImplVulkan_CreateFontsTexture() is automatically called by NewFrame() the first time. // You can call ImGui_ImplVulkan_CreateFontsTexture() again to recreate the font atlas texture. // Added ImGui_ImplVulkan_DestroyFontsTexture() but you probably never need to call this. // 2023-07-04: Vulkan: Added optional support for VK_KHR_dynamic_rendering. User needs to set init_info->UseDynamicRendering = true and init_info->ColorAttachmentFormat. // 2023-01-02: Vulkan: Fixed sampler passed to ImGui_ImplVulkan_AddTexture() not being honored + removed a bunch of duplicate code. // 2022-10-11: Using 'nullptr' instead of 'NULL' as per our switch to C++11. -// 2022-10-04: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738). +// 2022-10-04: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symmetry. (#914, #5738). // 2022-01-20: Vulkan: Added support for ImTextureID as VkDescriptorSet. User need to call ImGui_ImplVulkan_AddTexture(). Building for 32-bit targets requires '#define ImTextureID ImU64'. (#914). // 2021-10-15: Vulkan: Call vkCmdSetScissor() at the end of render a full-viewport to reduce likehood of issues with people using VK_DYNAMIC_STATE_SCISSOR in their app without calling vkCmdSetScissor() explicitly every frame. // 2021-06-29: Reorganized backend to pull data from a single structure to facilitate usage with multiple-contexts (all g_XXXX access changed to bd->XXXX). @@ -111,12 +112,13 @@ void ImGui_ImplVulkanH_CreateWindowCommandBuffers(VkPhysicalDevice physical_devi // Vulkan prototypes for use with custom loaders // (see description of IMGUI_IMPL_VULKAN_NO_PROTOTYPES in imgui_impl_vulkan.h -#ifdef VK_NO_PROTOTYPES +#if defined(VK_NO_PROTOTYPES) && !defined(VOLK_H_) +#define IMGUI_IMPL_VULKAN_USE_LOADER static bool g_FunctionsLoaded = false; #else static bool g_FunctionsLoaded = true; #endif -#ifdef VK_NO_PROTOTYPES +#ifdef IMGUI_IMPL_VULKAN_USE_LOADER #define IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_MAP_MACRO) \ IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateCommandBuffers) \ IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateDescriptorSets) \ @@ -194,7 +196,7 @@ static bool g_FunctionsLoaded = true; #define IMGUI_VULKAN_FUNC_DEF(func) static PFN_##func func; IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_DEF) #undef IMGUI_VULKAN_FUNC_DEF -#endif // VK_NO_PROTOTYPES +#endif // IMGUI_IMPL_VULKAN_USE_LOADER #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING static PFN_vkCmdBeginRenderingKHR ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR; @@ -226,11 +228,12 @@ struct ImGui_ImplVulkan_WindowRenderBuffers // Helper structure we store in the void* RendererUserData field of each ImGuiViewport to easily retrieve our backend data. struct ImGui_ImplVulkan_ViewportData { + ImGui_ImplVulkanH_Window Window; // Used by secondary viewports only + ImGui_ImplVulkan_WindowRenderBuffers RenderBuffers; // Used by all viewports bool WindowOwned; - ImGui_ImplVulkanH_Window Window; // Used by secondary viewports only - ImGui_ImplVulkan_WindowRenderBuffers RenderBuffers; // Used by all viewports + bool SwapChainNeedRebuild; // Flag when viewport swapchain resized in the middle of processing a frame - ImGui_ImplVulkan_ViewportData() { WindowOwned = false; memset(&RenderBuffers, 0, sizeof(RenderBuffers)); } + ImGui_ImplVulkan_ViewportData() { WindowOwned = SwapChainNeedRebuild = false; memset(&RenderBuffers, 0, sizeof(RenderBuffers)); } ~ImGui_ImplVulkan_ViewportData() { } }; @@ -242,7 +245,8 @@ struct ImGui_ImplVulkan_Data VkPipelineCreateFlags PipelineCreateFlags; VkDescriptorSetLayout DescriptorSetLayout; VkPipelineLayout PipelineLayout; - VkPipeline Pipeline; + VkPipeline Pipeline; // pipeline for main render pass (created by app) + VkPipeline PipelineForViewports; // pipeline for secondary viewports (created by backend) VkShaderModule ShaderModuleVert; VkShaderModule ShaderModuleFrag; @@ -1069,6 +1073,7 @@ void ImGui_ImplVulkan_DestroyDeviceObjects() if (bd->DescriptorSetLayout) { vkDestroyDescriptorSetLayout(v->Device, bd->DescriptorSetLayout, v->Allocator); bd->DescriptorSetLayout = VK_NULL_HANDLE; } if (bd->PipelineLayout) { vkDestroyPipelineLayout(v->Device, bd->PipelineLayout, v->Allocator); bd->PipelineLayout = VK_NULL_HANDLE; } if (bd->Pipeline) { vkDestroyPipeline(v->Device, bd->Pipeline, v->Allocator); bd->Pipeline = VK_NULL_HANDLE; } + if (bd->PipelineForViewports) { vkDestroyPipeline(v->Device, bd->PipelineForViewports, v->Allocator); bd->PipelineForViewports = VK_NULL_HANDLE; } } bool ImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction(*loader_func)(const char* function_name, void* user_data), void* user_data) @@ -1076,8 +1081,8 @@ bool ImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction(*loader_func)(const ch // Load function pointers // You can use the default Vulkan loader using: // ImGui_ImplVulkan_LoadFunctions([](const char* function_name, void*) { return vkGetInstanceProcAddr(your_vk_isntance, function_name); }); - // But this would be equivalent to not setting VK_NO_PROTOTYPES. -#ifdef VK_NO_PROTOTYPES + // But this would be roughly equivalent to not setting VK_NO_PROTOTYPES. +#ifdef IMGUI_IMPL_VULKAN_USE_LOADER #define IMGUI_VULKAN_FUNC_LOAD(func) \ func = reinterpret_cast(loader_func(#func, user_data)); \ if (func == nullptr) \ @@ -1106,7 +1111,7 @@ bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info) if (info->UseDynamicRendering) { #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING -#ifndef VK_NO_PROTOTYPES +#ifndef IMGUI_IMPL_VULKAN_USE_LOADER ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(info->Instance, "vkCmdBeginRenderingKHR")); ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR = reinterpret_cast(vkGetInstanceProcAddr(info->Instance, "vkCmdEndRenderingKHR")); #endif @@ -1118,6 +1123,7 @@ bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info) } ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -1178,7 +1184,7 @@ void ImGui_ImplVulkan_Shutdown() void ImGui_ImplVulkan_NewFrame() { ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplVulkan_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized! Did you call ImGui_ImplVulkan_Init()?"); if (!bd->FontDescriptorSet) ImGui_ImplVulkan_CreateFontsTexture(); @@ -1431,8 +1437,6 @@ void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, V wd->ImageCount = 0; if (wd->RenderPass) vkDestroyRenderPass(device, wd->RenderPass, allocator); - if (wd->Pipeline) - vkDestroyPipeline(device, wd->Pipeline, allocator); // If min image count was not specified, request different count of images dependent on selected present mode if (min_image_count == 0) @@ -1602,7 +1606,6 @@ void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui IM_FREE(wd->FrameSemaphores); wd->Frames = nullptr; wd->FrameSemaphores = nullptr; - vkDestroyPipeline(device, wd->Pipeline, allocator); vkDestroyRenderPass(device, wd->RenderPass, allocator); vkDestroySwapchainKHR(device, wd->Swapchain, allocator); vkDestroySurfaceKHR(instance, wd->Surface, allocator); @@ -1690,6 +1693,10 @@ static void ImGui_ImplVulkan_CreateWindow(ImGuiViewport* viewport) wd->UseDynamicRendering = v->UseDynamicRendering; ImGui_ImplVulkanH_CreateOrResizeWindow(v->Instance, v->PhysicalDevice, v->Device, wd, v->QueueFamily, v->Allocator, (int)viewport->Size.x, (int)viewport->Size.y, v->MinImageCount); vd->WindowOwned = true; + + // Create pipeline (shared by all secondary viewports) + if (bd->PipelineForViewports == VK_NULL_HANDLE) + ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &bd->PipelineForViewports, 0); } static void ImGui_ImplVulkan_DestroyWindow(ImGuiViewport* viewport) @@ -1726,13 +1733,25 @@ static void ImGui_ImplVulkan_RenderWindow(ImGuiViewport* viewport, void*) ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; VkResult err; + if (vd->SwapChainNeedRebuild) + { + ImGui_ImplVulkanH_CreateOrResizeWindow(v->Instance, v->PhysicalDevice, v->Device, wd, v->QueueFamily, v->Allocator, (int)viewport->Size.x, (int)viewport->Size.y, v->MinImageCount); + vd->SwapChainNeedRebuild = false; + } + ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex]; ImGui_ImplVulkanH_FrameSemaphores* fsd = &wd->FrameSemaphores[wd->SemaphoreIndex]; { { - err = vkAcquireNextImageKHR(v->Device, wd->Swapchain, UINT64_MAX, fsd->ImageAcquiredSemaphore, VK_NULL_HANDLE, &wd->FrameIndex); - check_vk_result(err); - fd = &wd->Frames[wd->FrameIndex]; + err = vkAcquireNextImageKHR(v->Device, wd->Swapchain, UINT64_MAX, fsd->ImageAcquiredSemaphore, VK_NULL_HANDLE, &wd->FrameIndex); + if (err == VK_ERROR_OUT_OF_DATE_KHR) + { + // Since we are not going to swap this frame anyway, it's ok that recreation happens on next frame. + vd->SwapChainNeedRebuild = true; + return; + } + check_vk_result(err); + fd = &wd->Frames[wd->FrameIndex]; } for (;;) { @@ -1804,7 +1823,7 @@ static void ImGui_ImplVulkan_RenderWindow(ImGuiViewport* viewport, void*) } } - ImGui_ImplVulkan_RenderDrawData(viewport->DrawData, fd->CommandBuffer, wd->Pipeline); + ImGui_ImplVulkan_RenderDrawData(viewport->DrawData, fd->CommandBuffer, bd->PipelineForViewports); { #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING @@ -1858,6 +1877,9 @@ static void ImGui_ImplVulkan_SwapBuffers(ImGuiViewport* viewport, void*) ImGui_ImplVulkanH_Window* wd = &vd->Window; ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo; + if (vd->SwapChainNeedRebuild) // Frame data became invalid in the middle of rendering + return; + VkResult err; uint32_t present_index = wd->FrameIndex; @@ -1871,9 +1893,15 @@ static void ImGui_ImplVulkan_SwapBuffers(ImGuiViewport* viewport, void*) info.pImageIndices = &present_index; err = vkQueuePresentKHR(v->Queue, &info); if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) - ImGui_ImplVulkanH_CreateOrResizeWindow(v->Instance, v->PhysicalDevice, v->Device, &vd->Window, v->QueueFamily, v->Allocator, (int)viewport->Size.x, (int)viewport->Size.y, v->MinImageCount); + { + vd->SwapChainNeedRebuild = true; + if (err == VK_ERROR_OUT_OF_DATE_KHR) + return; + } else + { check_vk_result(err); + } wd->FrameIndex = (wd->FrameIndex + 1) % wd->ImageCount; // This is for the next vkWaitForFences() wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores diff --git a/cimgui/imgui/backends/imgui_impl_vulkan.h b/cwrappers/imgui/backends/imgui_impl_vulkan.h similarity index 95% rename from cimgui/imgui/backends/imgui_impl_vulkan.h rename to cwrappers/imgui/backends/imgui_impl_vulkan.h index e1bbb4e22..22df982cf 100644 --- a/cimgui/imgui/backends/imgui_impl_vulkan.h +++ b/cwrappers/imgui/backends/imgui_impl_vulkan.h @@ -43,13 +43,20 @@ // If you have no idea what this is, leave it alone! //#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES -// Vulkan includes +// Convenience support for Volk +// (you can also technically use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().) +//#define IMGUI_IMPL_VULKAN_USE_VOLK + #if defined(IMGUI_IMPL_VULKAN_NO_PROTOTYPES) && !defined(VK_NO_PROTOTYPES) #define VK_NO_PROTOTYPES #endif #if defined(VK_USE_PLATFORM_WIN32_KHR) && !defined(NOMINMAX) #define NOMINMAX -#include +#endif + +// Vulkan includes +#ifdef IMGUI_IMPL_VULKAN_USE_VOLK +#include #else #include #endif @@ -92,7 +99,7 @@ struct ImGui_ImplVulkan_InitInfo VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory. }; -// Called by user code +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info); IMGUI_IMPL_API void ImGui_ImplVulkan_Shutdown(); IMGUI_IMPL_API void ImGui_ImplVulkan_NewFrame(); @@ -131,8 +138,8 @@ struct ImGui_ImplVulkanH_Frame; struct ImGui_ImplVulkanH_Window; // Helpers -IMGUI_IMPL_API void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wnd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count); -IMGUI_IMPL_API void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wnd, const VkAllocationCallbacks* allocator); +IMGUI_IMPL_API void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count); +IMGUI_IMPL_API void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator); IMGUI_IMPL_API VkSurfaceFormatKHR ImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space); IMGUI_IMPL_API VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count); IMGUI_IMPL_API int ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode); @@ -167,7 +174,6 @@ struct ImGui_ImplVulkanH_Window VkSurfaceFormatKHR SurfaceFormat; VkPresentModeKHR PresentMode; VkRenderPass RenderPass; - VkPipeline Pipeline; // The window pipeline may uses a different VkRenderPass than the one passed in ImGui_ImplVulkan_InitInfo bool UseDynamicRendering; bool ClearEnable; VkClearValue ClearValue; diff --git a/cimgui/imgui/backends/imgui_impl_wgpu.cpp b/cwrappers/imgui/backends/imgui_impl_wgpu.cpp similarity index 99% rename from cimgui/imgui/backends/imgui_impl_wgpu.cpp rename to cwrappers/imgui/backends/imgui_impl_wgpu.cpp index a8324455a..ceee552fa 100644 --- a/cimgui/imgui/backends/imgui_impl_wgpu.cpp +++ b/cwrappers/imgui/backends/imgui_impl_wgpu.cpp @@ -726,6 +726,7 @@ void ImGui_ImplWGPU_InvalidateDeviceObjects() bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendRendererUserData == nullptr && "Already initialized a renderer backend!"); // Setup backend capabilities flags @@ -753,7 +754,7 @@ bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info) // Create buffers with a default size (they will later be grown as needed) bd->pFrameResources = new FrameResources[bd->numFramesInFlight]; - for (int i = 0; i < bd->numFramesInFlight; i++) + for (unsigned int i = 0; i < bd->numFramesInFlight; i++) { FrameResources* fr = &bd->pFrameResources[i]; fr->IndexBuffer = nullptr; diff --git a/cimgui/imgui/backends/imgui_impl_wgpu.h b/cwrappers/imgui/backends/imgui_impl_wgpu.h similarity index 94% rename from cimgui/imgui/backends/imgui_impl_wgpu.h rename to cwrappers/imgui/backends/imgui_impl_wgpu.h index c0c3b87f6..31d31c907 100644 --- a/cimgui/imgui/backends/imgui_impl_wgpu.h +++ b/cwrappers/imgui/backends/imgui_impl_wgpu.h @@ -34,11 +34,12 @@ struct ImGui_ImplWGPU_InitInfo ImGui_ImplWGPU_InitInfo() { PipelineMultisampleState.count = 1; - PipelineMultisampleState.mask = -1u; + PipelineMultisampleState.mask = UINT32_MAX; PipelineMultisampleState.alphaToCoverageEnabled = false; } }; +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info); IMGUI_IMPL_API void ImGui_ImplWGPU_Shutdown(); IMGUI_IMPL_API void ImGui_ImplWGPU_NewFrame(); diff --git a/cimgui/imgui/backends/imgui_impl_win32.cpp b/cwrappers/imgui/backends/imgui_impl_win32.cpp similarity index 93% rename from cimgui/imgui/backends/imgui_impl_win32.cpp rename to cwrappers/imgui/backends/imgui_impl_win32.cpp index b14ae1abb..825e4a488 100644 --- a/cimgui/imgui/backends/imgui_impl_win32.cpp +++ b/cwrappers/imgui/backends/imgui_impl_win32.cpp @@ -17,30 +17,14 @@ // - Documentation https://dearimgui.com/docs (same as your local docs/ folder). // - Introduction, links and more at the top of imgui.cpp -#include "imgui.h" -#ifndef IMGUI_DISABLE -#include "imgui_impl_win32.h" -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#include -#include // GET_X_LPARAM(), GET_Y_LPARAM() -#include -#include - -// Configuration flags to add in your imconfig.h file: +// Configuration flags to add in your imconfig file: //#define IMGUI_IMPL_WIN32_DISABLE_GAMEPAD // Disable gamepad support. This was meaningful before <1.81 but we now load XInput dynamically so the option is now less relevant. -// Using XInput for gamepad (will load DLL dynamically) -#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD -#include -typedef DWORD (WINAPI *PFN_XInputGetCapabilities)(DWORD, DWORD, XINPUT_CAPABILITIES*); -typedef DWORD (WINAPI *PFN_XInputGetState)(DWORD, XINPUT_STATE*); -#endif - // CHANGELOG // (minor and older changes stripped away, please see git history for details) // 2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. +// 2024-09-16: [Docking] Inputs: fixed an issue where a viewport destroyed while clicking would hog mouse tracking and temporary lead to incorrect update of HoveredWindow. (#7971) +// 2024-07-08: Inputs: Fixed ImGuiMod_Super being mapped to VK_APPS instead of VK_LWIN||VK_RWIN. (#7768) // 2023-10-05: Inputs: Added support for extra ImGuiKey values: F13 to F24 function keys, app back/forward keys. // 2023-09-25: Inputs: Synthesize key-down event on key-up for VK_SNAPSHOT / ImGuiKey_PrintScreen as Windows doesn't emit it (same behavior as GLFW/SDL). // 2023-09-07: Inputs: Added support for keyboard codepage conversion for when application is compiled in MBCS mode and using a non-Unicode window. @@ -93,8 +77,37 @@ typedef DWORD (WINAPI *PFN_XInputGetState)(DWORD, XINPUT_STATE*); // 2017-10-23: Inputs: Using Win32 ::SetCapture/::GetCapture() to retrieve mouse positions outside the client area when dragging. // 2016-11-12: Inputs: Only call Win32 ::SetCursor(nullptr) when io.MouseDrawCursor is set. +#include "imgui.h" +#ifndef IMGUI_DISABLE +#include "imgui_impl_win32.h" +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include // GET_X_LPARAM(), GET_Y_LPARAM() +#include +#include + +// Using XInput for gamepad (will load DLL dynamically) +#ifndef IMGUI_IMPL_WIN32_DISABLE_GAMEPAD +#include +typedef DWORD(WINAPI* PFN_XInputGetCapabilities)(DWORD, DWORD, XINPUT_CAPABILITIES*); +typedef DWORD(WINAPI* PFN_XInputGetState)(DWORD, XINPUT_STATE*); +#endif + +// Clang/GCC warnings with -Weverything +#if defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) +#endif +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind +#pragma GCC diagnostic ignored "-Wcast-function-type" // warning: cast between incompatible function types (for loader) +#endif + // Forward Declarations -static void ImGui_ImplWin32_InitPlatformInterface(bool platformHasOwnDC); +static void ImGui_ImplWin32_InitPlatformInterface(bool platform_has_own_dc); static void ImGui_ImplWin32_ShutdownPlatformInterface(); static void ImGui_ImplWin32_UpdateMonitors(); @@ -102,7 +115,7 @@ struct ImGui_ImplWin32_Data { HWND hWnd; HWND MouseHwnd; - int MouseTrackedArea; // 0: not tracked, 1: client are, 2: non-client area + int MouseTrackedArea; // 0: not tracked, 1: client area, 2: non-client area int MouseButtonsDown; INT64 Time; INT64 TicksPerSecond; @@ -144,6 +157,7 @@ static void ImGui_ImplWin32_UpdateKeyboardCodePage() static bool ImGui_ImplWin32_InitEx(void* hwnd, bool platform_has_own_dc) { ImGuiIO& io = ImGui::GetIO(); + IMGUI_CHECKVERSION(); IM_ASSERT(io.BackendPlatformUserData == nullptr && "Already initialized a platform backend!"); INT64 perf_frequency, perf_counter; @@ -296,7 +310,7 @@ static void ImGui_ImplWin32_UpdateKeyModifiers() io.AddKeyEvent(ImGuiMod_Ctrl, IsVkDown(VK_CONTROL)); io.AddKeyEvent(ImGuiMod_Shift, IsVkDown(VK_SHIFT)); io.AddKeyEvent(ImGuiMod_Alt, IsVkDown(VK_MENU)); - io.AddKeyEvent(ImGuiMod_Super, IsVkDown(VK_APPS)); + io.AddKeyEvent(ImGuiMod_Super, IsVkDown(VK_LWIN) || IsVkDown(VK_RWIN)); } // This code supports multi-viewports (multiple OS Windows mapped into different Dear ImGui viewports) @@ -424,6 +438,8 @@ static BOOL CALLBACK ImGui_ImplWin32_UpdateMonitors_EnumFunc(HMONITOR monitor, H imgui_monitor.WorkSize = ImVec2((float)(info.rcWork.right - info.rcWork.left), (float)(info.rcWork.bottom - info.rcWork.top)); imgui_monitor.DpiScale = ImGui_ImplWin32_GetDpiScaleForMonitor(monitor); imgui_monitor.PlatformHandle = (void*)monitor; + if (imgui_monitor.DpiScale <= 0.0f) + return TRUE; // Some accessibility applications are declaring virtual monitors with a DPI of 0, see #7902. ImGuiPlatformIO& io = ImGui::GetPlatformIO(); if (info.dwFlags & MONITORINFOF_PRIMARY) io.Monitors.push_front(imgui_monitor); @@ -442,9 +458,9 @@ static void ImGui_ImplWin32_UpdateMonitors() void ImGui_ImplWin32_NewFrame() { - ImGuiIO& io = ImGui::GetIO(); ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(); - IM_ASSERT(bd != nullptr && "Did you call ImGui_ImplWin32_Init()?"); + IM_ASSERT(bd != nullptr && "Context or backend not initialized? Did you call ImGui_ImplWin32_Init()?"); + ImGuiIO& io = ImGui::GetIO(); // Setup display size (every frame to accommodate for window resizing) RECT rect = { 0, 0, 0, 0 }; @@ -642,11 +658,12 @@ static ImGuiMouseSource GetMouseSourceFromMessageExtraInfo() IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - if (ImGui::GetCurrentContext() == nullptr) + // Most backends don't have silent checks like this one, but we need it because WndProc are called early in CreateWindow(). + // We silently allow both context or just only backend data to be nullptr. + ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(); + if (bd == nullptr) return 0; - ImGuiIO& io = ImGui::GetIO(); - ImGui_ImplWin32_Data* bd = ImGui_ImplWin32_GetBackendData(); switch (msg) { @@ -674,7 +691,7 @@ IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARA ::ScreenToClient(hwnd, &mouse_pos); io.AddMouseSourceEvent(mouse_source); io.AddMousePosEvent((float)mouse_pos.x, (float)mouse_pos.y); - break; + return 0; } case WM_MOUSELEAVE: case WM_NCMOUSELEAVE: @@ -687,8 +704,18 @@ IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hwnd, UINT msg, WPARA bd->MouseTrackedArea = 0; io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); } - break; + return 0; } + case WM_DESTROY: + if (bd->MouseHwnd == hwnd && bd->MouseTrackedArea != 0) + { + TRACKMOUSEEVENT tme_cancel = { sizeof(tme_cancel), TME_CANCEL, hwnd, 0 }; + ::TrackMouseEvent(&tme_cancel); + bd->MouseHwnd = nullptr; + bd->MouseTrackedArea = 0; + io.AddMousePosEvent(-FLT_MAX, -FLT_MAX); + } + return 0; case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: case WM_RBUTTONDOWN: case WM_RBUTTONDBLCLK: case WM_MBUTTONDOWN: case WM_MBUTTONDBLCLK: @@ -1042,6 +1069,9 @@ static void ImGui_ImplWin32_CreateWindow(ImGuiViewport* viewport) vd->HwndOwned = true; viewport->PlatformRequestResize = false; viewport->PlatformHandle = viewport->PlatformHandleRaw = vd->Hwnd; + + // Secondary viewports store their imgui context + ::SetPropA(vd->Hwnd, "IMGUI_CONTEXT", ImGui::GetCurrentContext()); } static void ImGui_ImplWin32_DestroyWindow(ImGuiViewport* viewport) @@ -1067,10 +1097,20 @@ static void ImGui_ImplWin32_ShowWindow(ImGuiViewport* viewport) { ImGui_ImplWin32_ViewportData* vd = (ImGui_ImplWin32_ViewportData*)viewport->PlatformUserData; IM_ASSERT(vd->Hwnd != 0); + + // ShowParent() also brings parent to front, which is not always desirable, + // so we temporarily disable parenting. (#7354) + if (vd->HwndParent != NULL) + ::SetWindowLongPtr(vd->Hwnd, GWLP_HWNDPARENT, (LONG_PTR)nullptr); + if (viewport->Flags & ImGuiViewportFlags_NoFocusOnAppearing) ::ShowWindow(vd->Hwnd, SW_SHOWNA); else ::ShowWindow(vd->Hwnd, SW_SHOW); + + // Restore + if (vd->HwndParent != NULL) + ::SetWindowLongPtr(vd->Hwnd, GWLP_HWNDPARENT, (LONG_PTR)vd->HwndParent); } static void ImGui_ImplWin32_UpdateWindow(ImGuiViewport* viewport) @@ -1129,11 +1169,20 @@ static ImVec2 ImGui_ImplWin32_GetWindowPos(ImGuiViewport* viewport) return ImVec2((float)pos.x, (float)pos.y); } +static void ImGui_ImplWin32_UpdateWin32StyleFromWindow(ImGuiViewport* viewport) +{ + ImGui_ImplWin32_ViewportData* vd = (ImGui_ImplWin32_ViewportData*)viewport->PlatformUserData; + vd->DwStyle = ::GetWindowLongW(vd->Hwnd, GWL_STYLE); + vd->DwExStyle = ::GetWindowLongW(vd->Hwnd, GWL_EXSTYLE); +} + static void ImGui_ImplWin32_SetWindowPos(ImGuiViewport* viewport, ImVec2 pos) { ImGui_ImplWin32_ViewportData* vd = (ImGui_ImplWin32_ViewportData*)viewport->PlatformUserData; IM_ASSERT(vd->Hwnd != 0); RECT rect = { (LONG)pos.x, (LONG)pos.y, (LONG)pos.x, (LONG)pos.y }; + if (viewport->Flags & ImGuiViewportFlags_OwnedByApp) + ImGui_ImplWin32_UpdateWin32StyleFromWindow(viewport); // Not our window, poll style before using ::AdjustWindowRectEx(&rect, vd->DwStyle, FALSE, vd->DwExStyle); ::SetWindowPos(vd->Hwnd, nullptr, rect.left, rect.top, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE); } @@ -1152,6 +1201,8 @@ static void ImGui_ImplWin32_SetWindowSize(ImGuiViewport* viewport, ImVec2 size) ImGui_ImplWin32_ViewportData* vd = (ImGui_ImplWin32_ViewportData*)viewport->PlatformUserData; IM_ASSERT(vd->Hwnd != 0); RECT rect = { 0, 0, (LONG)size.x, (LONG)size.y }; + if (viewport->Flags & ImGuiViewportFlags_OwnedByApp) + ImGui_ImplWin32_UpdateWin32StyleFromWindow(viewport); // Not our window, poll style before using ::AdjustWindowRectEx(&rect, vd->DwStyle, FALSE, vd->DwExStyle); // Client to Screen ::SetWindowPos(vd->Hwnd, nullptr, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE); } @@ -1198,14 +1249,14 @@ static void ImGui_ImplWin32_SetWindowAlpha(ImGuiViewport* viewport, float alpha) IM_ASSERT(alpha >= 0.0f && alpha <= 1.0f); if (alpha < 1.0f) { - DWORD style = ::GetWindowLongW(vd->Hwnd, GWL_EXSTYLE) | WS_EX_LAYERED; - ::SetWindowLongW(vd->Hwnd, GWL_EXSTYLE, style); + DWORD ex_style = ::GetWindowLongW(vd->Hwnd, GWL_EXSTYLE) | WS_EX_LAYERED; + ::SetWindowLongW(vd->Hwnd, GWL_EXSTYLE, ex_style); ::SetLayeredWindowAttributes(vd->Hwnd, 0, (BYTE)(255 * alpha), LWA_ALPHA); } else { - DWORD style = ::GetWindowLongW(vd->Hwnd, GWL_EXSTYLE) & ~WS_EX_LAYERED; - ::SetWindowLongW(vd->Hwnd, GWL_EXSTYLE, style); + DWORD ex_style = ::GetWindowLongW(vd->Hwnd, GWL_EXSTYLE) & ~WS_EX_LAYERED; + ::SetWindowLongW(vd->Hwnd, GWL_EXSTYLE, ex_style); } } @@ -1234,16 +1285,22 @@ static void ImGui_ImplWin32_OnChangedViewport(ImGuiViewport* viewport) static LRESULT CALLBACK ImGui_ImplWin32_WndProcHandler_PlatformWindow(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { - if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) - return true; + // Allow secondary viewport WndProc to be called regardless of current context + ImGuiContext* hwnd_ctx = (ImGuiContext*)::GetPropA(hWnd, "IMGUI_CONTEXT"); + ImGuiContext* prev_ctx = ImGui::GetCurrentContext(); + if (hwnd_ctx != prev_ctx && hwnd_ctx != NULL) + ImGui::SetCurrentContext(hwnd_ctx); - if (ImGuiViewport* viewport = ImGui::FindViewportByPlatformHandle((void*)hWnd)) + LRESULT result = 0; + if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) + result = true; + else if (ImGuiViewport* viewport = ImGui::FindViewportByPlatformHandle((void*)hWnd)) { switch (msg) { case WM_CLOSE: viewport->PlatformRequestClose = true; - return 0; + break; case WM_MOVE: viewport->PlatformRequestMove = true; break; @@ -1252,7 +1309,7 @@ static LRESULT CALLBACK ImGui_ImplWin32_WndProcHandler_PlatformWindow(HWND hWnd, break; case WM_MOUSEACTIVATE: if (viewport->Flags & ImGuiViewportFlags_NoFocusOnClick) - return MA_NOACTIVATE; + result = MA_NOACTIVATE; break; case WM_NCHITTEST: // Let mouse pass-through the window. This will allow the backend to call io.AddMouseViewportEvent() correctly. (which is optional). @@ -1260,12 +1317,15 @@ static LRESULT CALLBACK ImGui_ImplWin32_WndProcHandler_PlatformWindow(HWND hWnd, // If you cannot easily access those viewport flags from your windowing/event code: you may manually synchronize its state e.g. in // your main loop after calling UpdatePlatformWindows(). Iterate all viewports/platform windows and pass the flag to your windowing system. if (viewport->Flags & ImGuiViewportFlags_NoInputs) - return HTTRANSPARENT; + result = HTTRANSPARENT; break; } } - - return DefWindowProc(hWnd, msg, wParam, lParam); + if (result == 0) + result = DefWindowProc(hWnd, msg, wParam, lParam); + if (hwnd_ctx != prev_ctx && hwnd_ctx != NULL) + ImGui::SetCurrentContext(prev_ctx); + return result; } static void ImGui_ImplWin32_InitPlatformInterface(bool platform_has_own_dc) @@ -1324,4 +1384,11 @@ static void ImGui_ImplWin32_ShutdownPlatformInterface() //--------------------------------------------------------------------------------------------------------- +#if defined(__GNUC__) +#pragma GCC diagnostic pop +#endif +#if defined(__clang__) +#pragma clang diagnostic pop +#endif + #endif // #ifndef IMGUI_DISABLE diff --git a/cimgui/imgui/backends/imgui_impl_win32.h b/cwrappers/imgui/backends/imgui_impl_win32.h similarity index 97% rename from cimgui/imgui/backends/imgui_impl_win32.h rename to cwrappers/imgui/backends/imgui_impl_win32.h index cebe661ef..4cf54d821 100644 --- a/cimgui/imgui/backends/imgui_impl_win32.h +++ b/cwrappers/imgui/backends/imgui_impl_win32.h @@ -21,6 +21,7 @@ #include "imgui.h" // IMGUI_IMPL_API #ifndef IMGUI_DISABLE +// Follow "Getting Started" link and check examples/ folder to learn about using backends! IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd); IMGUI_IMPL_API bool ImGui_ImplWin32_InitForOpenGL(void* hwnd); IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown(); diff --git a/cimgui/imgui/backends/vulkan/generate_spv.sh b/cwrappers/imgui/backends/vulkan/generate_spv.sh similarity index 100% rename from cimgui/imgui/backends/vulkan/generate_spv.sh rename to cwrappers/imgui/backends/vulkan/generate_spv.sh diff --git a/cimgui/imgui/backends/vulkan/glsl_shader.frag b/cwrappers/imgui/backends/vulkan/glsl_shader.frag similarity index 100% rename from cimgui/imgui/backends/vulkan/glsl_shader.frag rename to cwrappers/imgui/backends/vulkan/glsl_shader.frag diff --git a/cimgui/imgui/backends/vulkan/glsl_shader.vert b/cwrappers/imgui/backends/vulkan/glsl_shader.vert similarity index 100% rename from cimgui/imgui/backends/vulkan/glsl_shader.vert rename to cwrappers/imgui/backends/vulkan/glsl_shader.vert diff --git a/cimgui/imgui/docs/BACKENDS.md b/cwrappers/imgui/docs/BACKENDS.md similarity index 89% rename from cimgui/imgui/docs/BACKENDS.md rename to cwrappers/imgui/docs/BACKENDS.md index e5aa79be1..de5cd6697 100644 --- a/cimgui/imgui/docs/BACKENDS.md +++ b/cwrappers/imgui/docs/BACKENDS.md @@ -2,23 +2,10 @@ _(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/BACKE ## Dear ImGui: Backends -**The backends/ folder contains backends for popular platforms/graphics API, which you can use in -your application or engine to easily integrate Dear ImGui.** Each backend is typically self-contained in a pair of files: imgui_impl_XXXX.cpp + imgui_impl_XXXX.h. - -- The 'Platform' backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, and windowing.
- e.g. Windows ([imgui_impl_win32.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_win32.cpp)), GLFW ([imgui_impl_glfw.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_glfw.cpp)), SDL2 ([imgui_impl_sdl2.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_sdl2.cpp)), etc. - -- The 'Renderer' backends are in charge of: creating atlas texture, and rendering imgui draw data.
- e.g. DirectX11 ([imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)), OpenGL/WebGL ([imgui_impl_opengl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl3.cpp)), Vulkan ([imgui_impl_vulkan.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_vulkan.cpp)), etc. - -- For some high-level frameworks, a single backend usually handles both 'Platform' and 'Renderer' parts.
- e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)). If you end up creating a custom backend for your engine, you may want to do the same. - -An application usually combines one Platform backend + one Renderer backend + main Dear ImGui sources. -For example, the [example_win32_directx11](https://github.com/ocornut/imgui/tree/master/examples/example_win32_directx11) application combines imgui_impl_win32.cpp + imgui_impl_dx11.cpp. There are 20+ examples in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder. See [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for details. - -**Once Dear ImGui is setup and running, run and refer to `ImGui::ShowDemoWindow()` in imgui_demo.cpp for usage of the end-user API.** +### Integrating backends +💡 The **[Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) wiki guide** has examples of how to integrate Dear ImGui into an existing application. +
The [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) documentation may also be worth a read. ### What are backends? @@ -38,7 +25,7 @@ Dear ImGui is highly portable and only requires a few things to run and render, - Optional: multi-viewports support. etc. -This is essentially what each backend is doing + obligatory portability cruft. Using default backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support). +This is essentially what each backend is doing + obligatory portability cruft. Using standard backends ensure you can get all those features including the ones that would be harder to implement on your side (e.g. multi-viewports support). It is important to understand the difference between the core Dear ImGui library (files in the root folder) and the backends which we are describing here (backends/ folder). @@ -47,11 +34,24 @@ and the backends which we are describing here (backends/ folder). - You should be able to write backends for pretty much any platform and any 3D graphics API. e.g. you can get creative and use software rendering or render remotely on a different machine. +### Standard backends + +**The [backends/](https://github.com/ocornut/imgui/blob/master/backends) folder contains backends for popular platforms/graphics API, which you can use in +your application or engine to easily integrate Dear ImGui.** Each backend is typically self-contained in a pair of files: imgui_impl_XXXX.cpp + imgui_impl_XXXX.h. + +- The 'Platform' backends are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, and windowing.
+ e.g. Windows ([imgui_impl_win32.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_win32.cpp)), GLFW ([imgui_impl_glfw.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_glfw.cpp)), SDL2 ([imgui_impl_sdl2.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_sdl2.cpp)), etc. + +- The 'Renderer' backends are in charge of: creating atlas texture, and rendering imgui draw data.
+ e.g. DirectX11 ([imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)), OpenGL/WebGL ([imgui_impl_opengl3.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl3.cpp)), Vulkan ([imgui_impl_vulkan.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_vulkan.cpp)), etc. -### Integrating a backend +- For some high-level frameworks, a single backend usually handles both 'Platform' and 'Renderer' parts.
+ e.g. Allegro 5 ([imgui_impl_allegro5.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_allegro5.cpp)). If you end up creating a custom backend for your engine, you may want to do the same. -See "Getting Started" section of [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for more details. +An application usually combines one Platform backend + one Renderer backend + main Dear ImGui sources. +For example, the [example_win32_directx11](https://github.com/ocornut/imgui/tree/master/examples/example_win32_directx11) application combines imgui_impl_win32.cpp + imgui_impl_dx11.cpp. There are 20+ examples in the [examples/](https://github.com/ocornut/imgui/blob/master/examples/) folder. See [EXAMPLES.MD](https://github.com/ocornut/imgui/blob/master/docs/EXAMPLES.md) for details. +**Once Dear ImGui is setup and running, run and refer to `ImGui::ShowDemoWindow()` in imgui_demo.cpp for usage of the end-user API.** ### List of backends @@ -79,14 +79,14 @@ List of Renderer Backends: imgui_impl_sdlrenderer2.cpp ; SDL_Renderer (optional component of SDL2 available from SDL 2.0.18+) imgui_impl_sdlrenderer3.cpp ; SDL_Renderer (optional component of SDL3 available from SDL 3.0.0+) imgui_impl_vulkan.cpp ; Vulkan - imgui_impl_wgpu.cpp ; WebGPU + imgui_impl_wgpu.cpp ; WebGPU (web and desktop) List of high-level Frameworks Backends (combining Platform + Renderer): imgui_impl_allegro5.cpp Emscripten is also supported! -The SDL+GL, GLFW+GL and SDL+WebGPU examples are all ready to build and run with Emscripten. +The SDL+GL, GLFW+GL and GLFW+WebGPU examples are all ready to build and run with Emscripten. ### Backends for third-party frameworks, graphics API or other languages @@ -135,7 +135,7 @@ Generally: It is unlikely you will add value to your project by creating your own backend. Also: -The [multi-viewports feature](https://github.com/ocornut/imgui/issues/1542) of the 'docking' branch allows +The [multi-viewports feature](https://github.com/ocornut/imgui/wiki/Multi-Viewports) of the 'docking' branch allows Dear ImGui windows to be seamlessly detached from the main application window. This is achieved using an extra layer to the Platform and Renderer backends, which allows Dear ImGui to communicate platform-specific requests such as: "create an additional OS window", "create a render context", "get the OS position of this diff --git a/cimgui/imgui/docs/CHANGELOG.txt b/cwrappers/imgui/docs/CHANGELOG.txt similarity index 90% rename from cimgui/imgui/docs/CHANGELOG.txt rename to cwrappers/imgui/docs/CHANGELOG.txt index 8f8341aba..dd9202fbb 100644 --- a/cimgui/imgui/docs/CHANGELOG.txt +++ b/cwrappers/imgui/docs/CHANGELOG.txt @@ -35,6 +35,704 @@ HOW TO UPDATE? and API updates have been a little more frequent lately. They are documented below and in imgui.cpp and should not affect all users. - Please report any issue! +----------------------------------------------------------------------- + VERSION 1.91.2 WIP (In Progress) +----------------------------------------------------------------------- + +Breaking changes: + +Other changes: + +- Added io.ConfigDebugHighlightIdConflicts debug feature! (#7961, #7669) + THIS DETECTS THE MOST COMMON USER ERROR BY FIRST-TIME DEAR IMGUI PROGRAMMERS! + - The tool detects when multiple items are sharing the same identifier, due to not + using PushID/PopID in loops, or not using ID stack facilities such as "##" suffixes. + Very frequently it happens when using empty "" labels. + - When hovering an item with a conflicting ID, all visible items with the same ID will + be highlighted and an explanatory tooltip is made visible. + - The feature may be disabled and is exposed in Demo->Tools menu. + - I've been wanting to add this tool for a long time, but was stalled by finding a way to + not make it spammy + make it practically zero cost. After @pthom made various proposals to + solve the same problem (thanks for pushing me!), I decided it was time to finish it. + - Added ImGuiItemFlags_AllowDuplicateId to use with PushItemFlag/PopItemFlag() if for some + reason you intend to have duplicate identifiers. + - (#74, #96, #480, #501, #647, #654, #719, #843, #894, #1057, #1173, #1390, #1414, #1556, #1768, + #2041, #2116, #2330, #2475, #2562, #2667, #2807, #2885, #3102, #3375, #3526, #3964, #4008, + #4070, #4158, #4172, #4199, #4375, #4395, #4471, #4548, #4612, #4631, #4657, #4796, #5210, + #5303, #5360, #5393, #5533, #5692, #5707, #5729, #5773, #5787, #5884, #6046, #6093, #6186, + #6223, #6364, #6387, #6567, #6692, #6724, #6939, #6984, #7246, #7270, #7375, #7421, #7434, + #7472, #7581, #7724, #7926, #7937 and probably more..) +- Nav: pressing any keyboard key while holding Alt disable toggling nav layer on Alt release. (#4439) +- MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling + in a table with outer borders. (#7970, #7821). +- InputText: internal refactoring to simplify and optimize the code. The ImWchar buffer has been + removed. Simplifications allowed to implement new optimizations for handling very large text buffers + (e.g. in our testing, handling of a 1 MB text buffer is now 3 times faster in VS2022 Debug build). + This is the first step toward more refactorig. (#7925) [@alektron, @ocornut] +- InputText: added CJK double-width punctuation to list of separators considered for CTRL+Arrow. +- Fonts: fixed ellipsis "..." rendering width miscalculation bug introduced in 1.91.0. (#7976) [@DDeimos] +- TextLinkOpenURL(): modified tooltip to display a verb "Open 'xxxx'". (#7885, #7660) +- Backends: SDL2: use SDL_Vulkan_GetDrawableSize() when available. (#7967, #3190) [@scribam] +- Backends: GLFW+Emscripten: use OSX behaviors automatically when using contrib glfw port. (#7965, #7915) + [@ypujante] + +Docking+Viewports Branch: + +- Viewports: fixed an issue where a window manually constrained to the main viewport while crossing + over main viewport bounds isn't translated properly. (#7985) +- Backends: Win32: fixed direct calls to platform_io.Platform_SetWindowPos()/Platform_SetWindowSize() + on windows created by application (typically main viewport). +- Backends: Win32: fixed an issue where a viewport destroyed while clicking would hog + mouse tracking and temporary lead to incorrect update of HoveredWindow. (#7971) +- Backends: SDL3: added support for viewport->ParentViewportId field to support parenting + windows at OS level. (#7973) [@RT2code] + +----------------------------------------------------------------------- + VERSION 1.91.1 (Released 2024-09-04) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.1 + +Breaking changes: + +- BeginChild(): renamed ImGuiChildFlags_Border to ImGuiChildFlags_Borders for consistency. [@cfillion] + Kept inline redirection flag (will obsolete). +- IO: moved clipboard functions from ImGuiIO to ImGuiPlatformIO: + - io.GetClipboardTextFn -> platform_io.Platform_GetClipboardTextFn + - io.SetClipboardTextFn -> platform_io.Platform_SetClipboardTextFn + - in function signatures, changed 'void* user_data' to 'ImGuiContext* ctx' for consistency + with other functions. Pull your user data from platform_io.ClipboardUserData if used. + - as this is will affect all users of custom engines/backends, we are providing proper + legacy redirection (will obsolete). +- IO: moved other functions from ImGuiIO to ImGuiPlatformIO: + - io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn (#7660) + - io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn + - io.PlatformLocaleDecimalPoint -> platform_io.Platform_LocaleDecimalPoint (#7389, #6719, #2278) + - access those via GetPlatformIO() instead of GetIO(). + (Because PlatformOpenInShellFn and PlatformSetImeDataFn were introduced very recently and + often automatically set by core library and backends, we are exceptionally not maintaining + a legacy redirection symbol for those two.) +- Commented the old ImageButton() signature obsoleted in 1.89 (~August 2022). (#5533, #4471, #2464, #1390) + - old ImageButton() used ImTextureId as item id (created issue with e.g. multiple buttons in same scope, transient texture id values, opaque computation of ID) + - new ImageButton() requires an explicit 'const char* str_id' + - old ImageButton() had frame_padding' override argument. + - new ImageButton() always use style.FramePadding, which you can modify using PushStyleVar()/PopStyleVar(). + +Other changes: + +- IO: Added GetPlatformIO() and ImGuiPlatformIO, pulled from 'docking' branch, which + is a centralized spot to connect os/platform/renderer related functions. + Clipboard, IME and OpenInShell hooks are moved here. (#7660) +- IO, InputText: fixed an issue where typing text in an InputText() would defer character + processing by one frame, because of the trickling input queue. Reworked interleaved + keys<>char trickling to take account for keys known to input characters. (#7889, #4921, #4858) +- Windows: adjust default ClipRect to better match rendering of thick borders (which are in + theory not supported). Compensate for the fact that borders are centered around the windows + edge rather than inner. (#7887, #7888 + #3312, #7540, #3756, #6170, #6365) +- Made BeginItemTooltip() and IsItemHovered() with delay flag infer an implicit ID (for + ID-less items such as Text element) in a way that works when item resizes. (#7945, #1485) +- MultiSelect+TreeNode+Drag and Drop: fixed an issue where carrying a drag and drop payload + over an already open tree node using multi-select would incorrectly select it. (#7850) +- MultiSelect+TreeNode: default open behavior is _OpenOnDoubleClick + _OpenOnArrow when + used in a multi-select context without any ImGuiTreeNode_OpenOnXXX flags set. (#7850) +- Tables: fixes/revert a 1.90 change were outer border would be moved bottom and right + by an extra pixel + rework the change so that contents doesn't overlap the bottom and + right border in a scrolling table. (#6765, #3752, #7428) +- Tables: fixed an issue resizing columns or querying hovered column/row when using multiple + synched instances that are layed out at different X positions. (#7933) +- Tabs: avoid queuing a refocus when tab is already focused, which would have the + side-effect of e.g. closing popup on a mouse release. (#7914) +- InputText: allow callback to update buffer while in read-only mode. (imgui_club/#46) +- InputText: fixed an issue programmatically refocusing a multi-line input which was just active. (#4761, #7870) +- TextLink(), TextLinkOpenURL(): change mouse cursor to Hand shape when hovered. (#7885, #7660) +- Tooltips, Drag and Drop: made it possible to override BeginTooltip() position while inside + a drag and drop source or target: a SetNextWindowPos() call won't be overridden. (#6973) +- PlotHistogram, PlotLines: register item ID and use button behavior in a more idiomatic manner, + fixes preventing e.g. GetItemID() and other ID-based helper to work. (#7935, #3072) +- Style: added PushStyleVarX(), PushStyleVarY() helpers to conveniently modify only + one component of a ImVec2 var. +- Fonts: made it possible to use PushFont()/PopFont() calls across Begin() calls. (#3224, #3875, #6398, #7903) +- Backends: + - Backends: GLFW: added ImGui_ImplGlfw_Sleep() helper function because GLFW does not + provide a way to do a portable sleep. (#7844) + - Backends: GLFW+Emscripten: Use OpenURL() from GLFW3 contrib port when available and using + the contrib port instead of Emscripten own GLFW3 implementation. (#7647, #7915, #7660) [@ypujante] + - Backends: SDL2, SDL3: ignore events of other SDL windows. (#7853) [@madebr, @ocornut] + - Backends: SDL2, SDL3: storing SDL_WindowID inside ImGuiViewport::PlatformHandle instead of SDL_Window*. + - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership logic was reverted back + by SDL3 on July 27. (#7918, #7898, #7807) [@cheyao, @MattGuerrette] + - Backends: GLFW: passing null window to glfwGetClipboardString()/glfwSetClipboardString() + since GLFW own tests are doing that and it seems unnecessary. + - Backends: SDL2, SDL3, GLFW, OSX, Allegro: update to set function handlers in ImGuiPlatformIO + instead of ImGuiIO. +- Examples: + - Examples: GLFW (all), SDL2 (all), SDL3 (all), Win32+OpenGL3: rework examples main loop + to handle minimization without burning CPU or GPU by running unthrottled code. (#7844) + - Examples: SDL3: Update for API changes: SDL_Init() returns 0 on failure. + +Docking+Viewports Branch: + +- Viewports: added optional platform_io.Platform_GetWindowWorkAreaInsets() hook + to allow backends to alter the default per-viewport work-area. (#7823) +- Backends: don't report monitors with DpiScale of 0, which seemed to be reported for + virtual monitors instead by accessibility drivers. (#7902) [@nicolasnoble, @ocornut] +- Backends: SDL2, SDL3: using SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN to support the + ImGuiViewportFlags_NoFocusOnAppearing flag, instead of using a Win32-specific hack. + (#7896) [@RT2Code] + +----------------------------------------------------------------------- + VERSION 1.91.0 (Released 2024-07-30) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.91.0 + +Breaking changes: + +- IO, IME: renamed platform IME hook and added explicit context for consistency and future-proofness. + - old: io.SetPlatformImeDataFn(ImGuiViewport* viewport, ImGuiPlatformImeData* data); + - new: io.PlatformSetImeDataFn(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); + It is expected that for a vast majority of users this is automatically set by core + library and/or platform backend so it won't have any effect. +- Obsoleted GetContentRegionMax(), GetWindowContentRegionMin() and GetWindowContentRegionMax(). (#7838) + You should never need those functions! You can do everything in less a confusing manner by only + using GetCursorScreenPos() and GetContentRegionAvail(). Also always consider that if you are using + GetWindowPos() and GetCursorPos() you may also be making things unnecessarily complicated. + I repeat: You can do everything with GetCursorScreenPos() and GetContentRegionAvail()! + - GetWindowContentRegionMax().x - GetCursorPos().x --> GetContentRegionAvail().x + - GetWindowContentRegionMax().x + GetWindowPos().x --> GetCursorScreenPos().x + GetContentRegionAvail().x // when called from left edge of window + - GetContentRegionMax() --> GetContentRegionAvail() + GetCursorScreenPos() - GetWindowPos() // right edge in local coordinates + - GetWindowContentRegionMax().x - GetWindowContentRegionMin().x --> GetContentRegionAvail() // when called from left edge of window +- Item flag changes: + - Obsoleted PushButtonRepeat()/PopButtonRepeat() in favor of using new PushItemFlag()/PopItemFlag() + with ImGuiItemFlags_ButtonRepeat. Kept inline redirecting functions (will obsolete). + - Obsoleted PushTabStop()/PopTabStop() in favor of using new PushItemFlag()/PopItemFlag() + with ImGuiItemFlags_NoTabStop. Kept inline redirecting functions (will obsolete). + - Renamed ImGuiSelectableFlags_DontClosePopups to ImGuiSelectableFlags_NoAutoClosePopups for + consistency. Kept inline redirecting functions (will obsolete). + + Internals: changed/inverted ImGuiItemFlags_SelectableDontClosePopup (default==false) to + ImGuiItemFlags_AutoClosePopups (default==true), same logic, only inverted behavior. + (#1379, #1468, #2200, #4936, #5216, #7302, #7573) +- Commented out obsolete ImGuiModFlags (renamed to ImGuiKeyChord in 1.89). (#4921, #456) +- Commented out obsolete ImGuiModFlags_XXX values (renamed to ImGuiMod_XXX in 1.89). (#4921, #456) + - ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl, ImGuiModFlags_Shift -> ImGuiMod_Shift etc. +- Backends: GLFW+Emscripten: Renamed ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback() to + ImGui_ImplGlfw_InstallEmscriptenCallbacks(), with an additional GLFWWindow* parameter. (#7647) [@ypujante] + +Other changes: + +- Added TextLink(), TextLinkOpenURL() hyperlink widgets. (#7660) +- IO: added io.PlatformOpenInShellFn handler to open a link/folder/file in OS shell. (#7660) + (*EDIT* From next version 1.91.1 we moved this to platform_io.Platform_OpenInShellFn *EDIT**) + Added IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS to disable default Windows/Linux/Mac implementations. +- IO: added io.ConfigNavSwapGamepadButtons to swap Activate/Cancel (A<>B) buttons, to match the + typical "Nintendo/Japanese consoles" button layout when using Gamepad navigation. (#787, #5723) +- Added PushItemFlag()/PopItemFlags(), ImGuiItemFlags to modify shared item flags: + - Added ImGuiItemFlags_NoTabStop to disable tabbing through items. + - Added ImGuiItemFlags_NoNav to disable any navigation and focus of items. (#787) + - Added ImGuiItemFlags_NoNavDefaultFocus to disable item being default focus. (#787) + - Added ImGuiItemFlags_ButtonRepeat to enable repeat on any button-like behavior. + - Added ImGuiItemFlags_AutoClosePopups to disable menu items/selection auto closing parent popups. + Disabling this was previously possible for Selectable() via a direct flag but not for MenuItem(). + (#1379, #1468, #2200, #4936, #5216, #7302, #7573) + - This was mostly all previously in imgui_internal.h. +- Multi-Select: added multi-select API and demos. (#1861, #6518) + - This system implements standard multi-selection idioms (CTRL+mouse click, CTRL+keyboard moves, + SHIFT+mouse click, SHIFT+keyboard moves, etc.) with support for clipper (not submitting non-visible + items), box-selection with scrolling, and many other details. + - In the spirit of Dear ImGui design, your code owns both items and actual selection data. + This is designed to allow all kinds of selection storage you may use in your application + (e.g. set/map/hash, intrusive selection, interval trees, up to you). + - The supported widgets are Selectable(), Checkbox(). TreeNode() is also technically supported but... + using this correctly is more complicated. You need some sort of linear/random access to your tree, + which is suited to advanced trees setups already implementing filters and clipper. + We will work toward simplifying our existing demo for trees. + - A helper ImGuiSelectionBasicStorage is provided to facilitate getting started in a typical app + (likely to suit a majority of users). + - Documentation: + - Wiki page https://github.com/ocornut/imgui/wiki/Multi-Select for API overview. + - Demo code + headers are well commented. + - Added BeginMultiSelect(), EndMultiSelect(), SetNextItemSelectionUserData(). + - Added IsItemToggledSelection() for use if you need latest selection update during current iteration. + - Added ImGuiMultiSelectIO and ImGuiSelectionRequest structures: + - BeginMultiSelect() and EndMultiSelect() return a ImGuiMultiSelectIO structure, which + is mostly an array of ImGuiSelectionRequest actions (clear, select all, set range, etc.) + - Other fields are helpful when using a clipper, or wanting to handle deletion nicely. + - Added ImGuiSelectionBasicStorage helper to store and maintain a selection (optional): + - This is similar to if you used e.g. a std::set to store a selection, with all the right + glue to honor ImGuiMultiSelectIO requests. Most applications can use that. + - Added ImGuiSelectionExternalStorage helper to maintain an externally stored selection (optional): + - Helpful to easily bind multi-selection to e.g. an array of checkboxes. + - Added ImGuiMultiSelectFlags options: + - ImGuiMultiSelectFlags_SingleSelect + - ImGuiMultiSelectFlags_NoSelectAll + - ImGuiMultiSelectFlags_NoRangeSelect + - ImGuiMultiSelectFlags_NoAutoSelect + - ImGuiMultiSelectFlags_NoAutoClear + - ImGuiMultiSelectFlags_NoAutoClearOnReselect (#7424) + - ImGuiMultiSelectFlags_BoxSelect1d + - ImGuiMultiSelectFlags_BoxSelect2d + - ImGuiMultiSelectFlags_BoxSelectNoScroll + - ImGuiMultiSelectFlags_ClearOnEscape + - ImGuiMultiSelectFlags_ClearOnClickVoid + - ImGuiMultiSelectFlags_ScopeWindow (default), ImGuiMultiSelectFlags_ScopeRect + - ImGuiMultiSelectFlags_SelectOnClick (default), ImGuiMultiSelectFlags_SelectOnClickRelease + - ImGuiMultiSelectFlags_NavWrapX + - Demo: Added "Examples->Assets Browser" demo. + - Demo: Added "Widgets->Selection State & Multi-Select" section, with: + - Multi-Select + - Multi-Select (with clipper) + - Multi-Select (with deletion) + - Multi-Select (dual list box) (#6648) + - Multi-Select (in a table) + - Multi-Select (checkboxes) + - Multi-Select (multiple scopes) + - Multi-Select (tiled assert browser) + - Multi-Select (trees) (#1861) + - Multi-Select (advanced) +- Inputs: added SetItemKeyOwner(ImGuiKey key) in public API. + This is a simplified version of a more complete set of function available in imgui_internal.h. + One common use-case for this is to allow your widgets to disable standard inputs behaviors such + as Tab or Alt handling, Mouse Wheel scrolling, etc. + (#456, #2637, #2620, #2891, #3370, #3724, #4828, #5108, #5242, #5641) + // Hovering or activating the button will disable mouse wheel default behavior to scroll + InvisibleButton(...); + SetItemKeyOwner(ImGuiKey_MouseWheelY); +- Nav: fixed clicking window decorations (e.g. resize borders) from losing focused item when + within a child window using ImGuiChildFlags_NavFlattened. +- InputText: added '\' and '/' as word separator. (#7824, #7704) [@reduf] +- TreeNode: added SetNextItemStorageID() to specify/override the identifier used for persisting + open/close storage. Useful if needing to often read/write from storage without manipulating + the ID stack. (#7553, #6990, #3823, #1131) +- Selectable: added ImGuiSelectableFlags_Highlight flag to highlight items independently from + the hovered state. (#7820) [@rerilier] +- Clipper: added SeekCursorForItem() function. When using ImGuiListClipper::Begin(INT_MAX) you can + can use the clipper without knowing the amount of items beforehand. (#1311) + In this situation, call ImGuiListClipper::SeekCursorForItem(items_count) at the end of your iteration + loop to position the layout cursor correctly. This is done automatically if provided a count to Begin(). +- Groups, Tables: fixed EndGroup() failing to correctly capture current table occupied size. (#7543) +- Style, TabBar: added style.TabBarOverlineSize / ImGuiStyleVar_TabBarOverlineSize to manipulate + thickness of the horizontal line over selected tabs. [@DctrNoob] +- Style: close button and collapse/window-menu button hover highlight made rectangular instead of round. +- Misc: added GetID(int) variant for consistency. (#7111) +- Debug Tools: + - Debug Log: Added IMGUI_DEBUG_LOG(), ImGui::DebugLog() in public API. (#5855) + Printed entries include imgui frame counter prefix + are redirected to ShowDebugLogWindow() and + other configurable locations. Always call IMGUI_DEBUG_LOG() for maximum stripping in caller code. + - Debug Log: Added "Configure Outputs.." button. (#5855) + - Debug Log: Fixed incorrect checkbox layout when partially clipped. +- Demo: Reworked "Property Editor" demo in a manner that more resemble the tree data and + struct description data that a real application would want to use. +- Backends: + - Backends: Win32: Fixed ImGuiMod_Super being mapped to VK_APPS instead of (VK_LWIN || VK_RWIN). + (#7768, #4858, #2622) [@Aemony] + - Backends: SDL3: Update for API changes: SDL_GetGamepads() memory ownership change. (#7807) + - Backends: SDL3: Update for API changes: SDL_GetClipboardText() memory ownership change. (#7801) + - Backends: SDL3: Update for API changes: SDLK_x renames and SDLK_KP_x removals (#7761, #7762) + - Backends: SDL3: Update for API changes: SDL_GetProperty() change to SDL_GetPointerProperty(). (#7794) [@wermipls] + - Backends: SDL2,SDL3,OSX: Update for io.SetPlatformImeDataFn() -> io.PlatformSetImeDataFn() rename. + - Backends: GLFW,SDL2: Added io.PlatformOpenInShellFn handler for web/Emscripten versions. (#7660) + [@ypujante, @ocornut] + - Backends: GLFW+Emscripten: Added support for GLFW3 contrib port which fixes many of the things + not supported by the embedded GLFW: gamepad support, mouse cursor shapes, copy to clipboard, + workaround for Super/Meta key, different ways of resizing, multi-window (glfw/canvas) support. + (#7647) [@ypujante] + - Backends: GLFW+Emscripten: Fixed Emscripten warning when using mouse wheel on some setups + "Unable to preventDefault inside passive event listener". (#7647, #7600) [@ypujante] + +Docking+Viewports Branch: + +- Viewports: Always update fallback monitor to primary monitor if there's one. +- Backends: OSX: Fixed NSAppKitVersion version limit for setWantsBestResolutionOpenGLSurface + usage. (#7814) [@YGXXD] +- Backends: SDL3: Fixed a bug preventing ImGuiViewportFlags_NoFocusOnAppearing support from + working (Windows only). +- Backends: Vulkan: ImGui_ImplVulkan_SwapBuffers() used by secondary viewports still proceeds + increasing frame counters on VK_SUBOPTIMAL_KHR. (#7825, #3881) [@NostraMagister] + + +----------------------------------------------------------------------- + VERSION 1.90.9 (Released 2024-07-01) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.9 + +Breaking changes: + +- Removed old nested structure: renaming ImGuiStorage::ImGuiStoragePair type to + ImGuiStoragePair (simpler for many languages). No significant nested type left. +- BeginChild: added ImGuiChildFlags_NavFlattened as a replacement for the window + flag ImGuiWindowFlags_NavFlattened: the feature only ever made sense for + BeginChild() calls anyhow. (#7687) [@cfillion] + - old: BeginChild("Name", size, 0, ImGuiWindowFlags_NavFlattened); + - new: BeginChild("Name", size, ImGuiChildFlags_NavFlattened, 0) + Kept inline redirection flag (will obsolete). +- Style: renamed tab colors for clarity and consistency with other changes: (#261, #351) + - ImGuiCol_TabActive -> ImGuiCol_TabSelected + - ImGuiCol_TabUnfocused -> ImGuiCol_TabDimmed + - ImGuiCol_TabUnfocusedActive -> ImGuiCol_TabDimmedSelected + Kept inline redirecting enums (will obsolete). +- IO: io.ClearInputKeys() (first exposed in 1.89.8) doesn't clear mouse data. + Newly added io.ClearInputMouse() does. (#4921) +- Drag and Drop: renamed ImGuiDragDropFlags_SourceAutoExpirePayload to + ImGuiDragDropFlags_PayloadAutoExpire. Kept inline redirecting enum (will obsolete). (#1725, #143) + +Other changes: + +- IO: do not disable io.ConfigWindowsResizeFromEdges (which allow resizing from borders + and lower-left corner) when ImGuiBackendFlags_HasMouseCursors is not set by backend. + The initial reasoning is that resizing from borders feels better when correct mouse cursor + shape change as honored by backends. Keeping this enabling will hopefully increase pressure + on third-party backends to set ImGuiBackendFlags_HasMouseCursors and honor changes of + ImGui::GetMouseCursor() value. (#1495) +- IO: do not claim io.WantCaptureMouse=true on the mouse release frame of a button + which was pressed over void/underlying app, which is consistent/needed to allow the + mouse up event of a drag over void/underlying app to catch release. (#1392) [@Moka42] +- IO: Added io.ClearInputMouse() to clear mouse state. (#4921) +- Windows: BeginChild(): fixed a glitch when during a resize of a child window which is + tightly close to the boundaries of its parent (e.g. with zero WindowPadding), the child + position could have temporarily be moved around by erroneous padding application. (#7706) +- TabBar, Style: added ImGuiTabBarFlags_DrawSelectedOverline option to draw an horizontal + line over selected tabs to increase visibility. This is used by docking. + Added corresponding ImGuiCol_TabSelectedOverline and ImGuiCol_TabDimmedSelectedOverline colors. +- Tables: added TableGetHoveredColumn() to public API, as an alternative to testing for + 'TableGetColumnFlags(column) & ImGuiTableColumnFlags_IsHovered' on each column. (#3740) +- Disabled, Inputs: fixed using Shortcut() or SetNextItemShortcut() within a disabled block + bypassing the disabled state. (#7726) +- Disabled: Reworked 1.90.8 behavior of Begin() not inheriting current BeginDisabled() state, + to make it that only tooltip windows are temporarily clearing it. (#211, #7640) +- Drags: added ImGuiSliderFlags_WrapAround flag for DragInt(), DragFloat() etc. (#7749) +- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern sets + active id so a multi-frame extern source doesn't interfere with hovered widgets. (#143) +- Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceExtern does not assume + a mouse button being pressed. Facilitate implementing cross-context drag and drop. (#143) +- Drag and Drop: Added ImGuiDragDropFlags_PayloadNoCrossContext/_PayloadNoCrossProcess flags + as metadata to specify that a payload may not be copied outside the context/process by + some logic aiming to copy payloads around. +- Drag and Drop: Fixes an issue when elapsing payload would be based on last payload + frame instead of last drag source frame, which makes a difference if not resubmitting + payload every frame. (#143) +- Debug Tools: Metrics/Debugger: Browsing a Storage perform hover lookup on identifier. +- Viewports: Backported 'void* ImGuiViewport::PlatformHandle' from docking branch for + use by backends. +- imgui_freetype: Fixed divide by zero while handling FT_PIXEL_MODE_BGRA glyphs. (#7267, #3369) +- Backends: OpenGL2, OpenGL3: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it + has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). (#7748) [@mlauss2] +- Backends: SDL3: Update for API removal of keysym field in SDL_KeyboardEvent. (#7728) +- Backends: SDL3: Update for SDL_StartTextInput()/SDL_StopTextInput() API changes. (#7735) +- Backends: SDL3: Update for SDL_SetTextInputRect() API rename. (#7760, #7754) [@maxortner01] +- Backends: SDLRenderer3: Update for SDL_RenderGeometryRaw() API changes. (SDL#9009). +- Backends: Vulkan: Remove Volk/ from volk.h #include directives. (#7722, #6582, #4854) + [@martin-ejdestig] +- Examples: SDL3: Remove use of SDL_HINT_IME_NATIVE_UI since new SDL_HINT_IME_IMPLEMENTED_UI + values has a more suitable default for our case case. +- Examples: GLFW+Vulkan, SDL+Vulkan: handle swap chain resize even without Vulkan + returning VK_SUBOPTIMAL_KHR, which doesn't seem to happen on Wayland. (#7671) + [@AndreiNego, @ocornut] + +Docking+Viewports Branch: + +- Windows, Menus: Fixed an issue where the size of sub-menu in their own viewport + would be erroneously clamped to the size of main viewport. (#7730) +- Merged GetBackgroundDrawList() and GetBackgroundDrawList(ImGuiViewport* viewport) + api entry points into a same one GetBackgroundDrawList(ImGuiViewport* viewport = NULL); +- Merged GetForegroundDrawList() and GetForegroundDrawList(ImGuiViewport* viewport) + api entry points into a same one GetForegroundDrawList(ImGuiViewport* viewport = NULL); +- Backends: SDL3: Update for introduction of SDL_GLContext from void*. (#7701, #7702) + [@bcsanches] +- Backends: Win32: Secondary viewports WndProc handler retrieve/set imgui context from + the HWND, allowing WndProc dispatch to work in multi-context setups. + + +----------------------------------------------------------------------- + VERSION 1.90.8 (Released 2024-06-06) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.8 + +Breaking changes: + +- Reordered various ImGuiInputTextFlags values. This should NOT be breaking unless + you are using generated headers that have values not matching the main library. +- Removed ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft + from imgui.h, was mostly unused and misleading. + +Other changes: + +- Inputs: fixed IsMouseClicked(..., repeat=true); broken in 1.90.7 on 2024/05/22. + (due to an internal api parameter swap, repeat wouldn't be honored and + ownership would be accidentally checked even though this api is meant to not + check ownership). (#7657) [@korenkonder] +- Windows: fixed altering FramePadding mid-frame not correctly affecting logic + responsible for honoring io.ConfigWindowsMoveFromTitleBarOnly. (#7576, #899) +- Scrollbar: made scrolling logic more standard: clicking above or below the + grab scrolls by one page, holding mouse button repeats scrolling. (#7328, #150) +- Scrollbar: fixed miscalculation of vertical scrollbar visibility when required + solely by the presence of an horizontal scrollbar. (#1574) +- InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_ParseEmptyRefVal + to parse an empty field as zero-value. (#7305) [@supermerill, @ocornut] +- InputScalar, InputInt, InputFloat: added ImGuiInputTextFlags_DisplayEmptyRefVal + to display a zero-value as empty. (#7305) [@supermerill, @ocornut] +- Popups: fixed an issue preventing to close a popup opened over a modal by clicking + over void (it required clicking over the visible part of the modal). (#7654) +- Tables: fixed an issue where ideal size reported to parent container wouldn't + correctly take account of inner scrollbar, affecting potential auto-resize of + parent container. (#7651) +- Tables: fixed a bug where after disabling the ScrollY flag for a table, + previous scrollbar width would be accounted for. (#5920) +- Combo: simplified Combo() API uses a list clipper (due to its api it wasn't + previously trivial before we added clipper.IncludeItemByIndex() function). +- Disabled: nested tooltips or other non-child window within a BeginDisabled() + block disable the disabled state. (#211, #7640) +- Misc: made ImGuiDir and ImGuiSortDirection stronger-typed enums. +- Backends: SDL3: Update for SDL_SYSTEM_CURSOR_xxx api renames. (#7653) + + +----------------------------------------------------------------------- + VERSION 1.90.7 (Released 2024-05-27) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.7 + +Breaking changes: + +- Inputs: on macOS X, Cmd and Ctrl keys are now automatically swapped by io.AddKeyEvent(), + as this naturally align with how macOS X uses those keys. (#2343, #4084, #5923, #456) + - Effectively it means that e.g. ImGuiMod_Ctrl | ImGuiKey_C is a valid idiomatic shortcut + for both Windows and Mac style users. + - It shouldn't really affect your code unless you had explicit/custom shortcut swapping in + place for macOS X apps in your input logic. + - Removed ImGuiMod_Shortcut which was previously dynamically remapping to Ctrl or Cmd/Super. + It is now unnecessary to specific cross-platform idiomatic shortcuts. + Kept symbols redirecting ImGuiMod_Shortcut to ImGuiMod_Ctrl (will obsolete). +- Commented out obsolete symbols renamed in 1.88 (May 2022): + CaptureKeyboardFromApp() -> SetNextFrameWantCaptureKeyboard() + CaptureMouseFromApp() -> SetNextFrameWantCaptureMouse() +- Backends: SDL_Renderer2/SDL_Renderer3: ImGui_ImplSDLRenderer2_RenderDrawData() and + ImGui_ImplSDLRenderer3_RenderDrawData() now takes a SDL_Renderer* parameter. This was previously + overlooked from the API but it will allow eventual support for multi-viewports. + +Other changes: + +- Windows: BeginChild(): fixed visibility of fully clipped child windows and tables to Test Engine. +- Windows: BeginChild(): fixed auto-fit calculation when using either (not both) ResizeX/ResizeY + and double-clicking on a border. Calculation incorrectly didn't always account for scrollbar as + it assumed the other axis would also be auto-fit. (#1710) +- Inputs: added shortcut and routing system in public API. (#456, #2637) [BETA] + - The general idea is that several callers may register interest in a shortcut, and only one owner gets it. + - in Parent: call Shortcut(Ctrl+S) // When Parent is focused, Parent gets the shortcut. + - in Child1: call Shortcut(Ctrl+S) // When Child1 is focused, Child1 gets the shortcut (Child1 overrides Parent shortcuts) + - in Child2: no call // When Child2 is focused, Parent gets the shortcut. + The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical. + This is an important property as it facilitate working with foreign code or larger codebase. + - Added Shortcut() function: + e.g. Using ImGui::Shortcut(ImGuiMod_Ctrl | ImGuiKey_C); with default policy: + - checks that CTRL+C is pressed, + - and that current window is in focus stack, + - and that no other requests for CTRL+C have been made from higher priority locations + (e.g. deeper in the window/item stack). + - Added SetNextItemShortcut() to set a shortcut to locally or remotely press or activate + an item (depending on specified routing policy: using ImGuiInputFlags_RouteGlobal the item + shortcut may be executed even if its window is not in focus stack). + Items like buttons are not fully activated, in the sense that they get pressed but another + active item, e.g. InputText() won't be deactivated. + - Added routing policies for Shortcut(), SetNextItemShortcut(): (#456, #2637) + - ImGuiInputFlags_RouteFocused: focus stack route (default) + - ImGuiInputFlags_RouteActive: only route to active item + - ImGuiInputFlags_RouteGlobal: route globally, unless a focus route claim shame shortcut. + - ImGuiInputFlags_RouteAlways: no routing submission, no routing check. + - Added other shortcut/routing options: (#456, #2637) + - ImGuiInputFlags_Repeat: for use by Shortcut() and by upcoming rework of various + input functions (which are still internal for now). + - ImGuiInputFlags_Tooltip: for SetNextItemShortcut() to show a tooltip when hovering item. + - ImGuiInputFlags_RouteOverFocused: global route takes priority over focus route. + - ImGuiInputFlags_RouteOverActive: global route takes priority over active item. + - ImGuiInputFlags_RouteUnlessBgFocused: global route disabled if no imgui window focused. + - ImGuiInputFlags_RouteFromRootWindow: route evaluated from the point of view of root window rather than current window. +- Inputs: (OSX) Fixes variety of code which inconsistently required using Ctrl instead of Cmd. + - e.g. Drags/Sliders now use Cmd+Click to input a value. (#4084) + - Some shortcuts still uses Ctrl on Mac: e.g. Ctrl+Tab to switch windows. (#4828) +- Inputs: (OSX) Ctrl+Left Click alias as a Right click. (#2343) [@haldean, @ocornut] +- Inputs: Fixed ImGui::GetKeyName(ImGuiKey_None) from returning "N/A" or "None" depending + on value of IMGUI_DISABLE_OBSOLETE_KEYIO. It always returns "None". +- Nav: fixed holding Ctrl or gamepad L1 from not slowing down keyboard/gamepad tweak speed. + Broken during a refactor refactor for 1.89. Holding Shift/R1 to speed up wasn't broken. +- Tables: fixed cell background of fully clipped row overlapping with header. (#7575, #7041) [@prabuinet] +- Demo: Added "Inputs & Focus -> Shortcuts" section. (#456, #2637) +- Demo: Documents: Added shortcuts and renaming tabs/documents. (#7233) +- Examples: Win32+DX9,DX10,DX11,DX12: rework main loop to handle minimization and screen + locking without burning resources by running unthrottled code. (#2496, #3907, #6308, #7615) +- Backends: all backends + demo now call IMGUI_CHECKVERSION() to verify ABI compatibility between caller + code and compiled version of Dear ImGui. If you get an assert it most likely mean you have a build issue, + read comments near the assert. (#7568) +- Backends: Win32: undo an assert introduced in 1.90.6 which didn't allow WndProc + handler to be called before backend initialization. Because of how ::CreateWindow() + calls in WndProc this is facilitating. (#6275) [@MennoVink] +- Backends, Examples: SDL3: updates for latest SDL3 API changes. (#7580) [@kuvaus, @ocornut] + +Breaking changes IF you were using imgui_internal.h versions of Shortcut() or owner-aware +versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked() prior to this version: + +- Inputs (Internals): Renamed ImGuiKeyOwner_None to ImGuiKeyOwner_NoOwner, to make use more + explicit and reduce confusion with the fact it is a non-zero value and cannot be a default. +- Inputs (Internals): Renamed symbols global routes: + Renamed ImGuiInputFlags_RouteGlobalLow -> ImGuiInputFlags_RouteGlobal (this is the suggested global route) + Renamed ImGuiInputFlags_RouteGlobal -> ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteOverFocused + Renamed ImGuiInputFlags_RouteGlobalHigh -> ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteOverFocused | ImGuiInputFlags_RouteOverActive +- Inputs (Internals): Shortcut(), SetShortcutRouting(): swapped last two parameters order + in function signatures: + Before: Shortcut(ImGuiKeyChord key_chord, ImGuiID owner_id = 0, ImGuiInputFlags flags = 0); + After: Shortcut(ImGuiKeyChord key_chord, ImGuiInputFlags flags = 0, ImGuiID owner_id = 0); +- Inputs (Internals): owner-aware versions of IsKeyPressed(), IsKeyChordPressed(), IsMouseClicked(): + swapped last two parameters order in function signatures: + Before: IsKeyPressed(ImGuiKey key, ImGuiID owner_id, ImGuiInputFlags flags = 0); + After: IsKeyPressed(ImGuiKey key, ImGuiInputFlags flags, ImGuiID owner_id = 0); + Before: IsMouseClicked(ImGuiMouseButton button, ImGuiID owner_id, ImGuiInputFlags flags = 0); + After: IsMouseClicked(ImGuiMouseButton button, ImGuiInputFlags flags, ImGuiID owner_id = 0); +- For several reasons those changes makes sense. They were all made before making some of + those API public. Only past users of imgui_internal.h with the extra parameters will be affected. + Added asserts for valid flags in various functions to detect _some_ misuses, BUT NOT ALL. + +Docking+Viewports Branch: + +- Docking: *BREAKING* changed signature of DockSpaceOverViewport() to allow passing + an explicit dockspace id if desired. (#7611) + Before: DockSpaceOverViewport(const ImGuiViewport* viewport = NULL, ImGuiDockNodeFlags flags = 0, ...); + After: DockSpaceOverViewport(ImGuiID dockspace_id = 0, const ImGuiViewport* viewport = NULL, ImGuiDockNodeFlags flags = 0, ...); + Simply add a leading 0 to your existing calls to DockSpaceOverViewport() if you have any. +- Tables: resizing border hit-rect scales according to current monitor dpi scale. + + +----------------------------------------------------------------------- + VERSION 1.90.6 (Released 2024-05-08) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.6 + +Breaking changes: + +- TreeNode: Fixed a layout inconsistency when using a empty/hidden label followed + by a SameLine() call. (#7505, #282) + Before: TreeNode("##Hidden"); SameLine(); Text("Hello"); + // This was actually incorrect! BUT appeared to look ok with the default style + // where ItemSpacing.x == FramePadding.x * 2 (it didn't look aligned otherwise). + After: TreeNode("##Hidden"); SameLine(0, 0); Text("Hello"); + // This is correct for all values in style. + With the fix, IF you were successfully using TreeNode("")+SameLine(); you will now + have extra spacing between your TreeNode and the following item. You'll need to change + the SameLine() call to SameLine(0,0) to remove this extraneous spacing. + This seemed like the more sensible fix that's not making things less consistent. + (Note: when using this idiom you are likely to also use ImGuiTreeNodeFlags_SpanAvailWidth). + +Other changes: + +- Windows: Changed default ClipRect to extend to windows' left and right borders, + instead of adding arbitrary WindowPadding.x * 0.5f space on left and right. + That ClipRect half-padding was arbitrary/confusing and inconsistent with Y axis. + It also made it harder to draw items covering whole window without pushing an + extended ClipRect. Some items near windows left and right edge that used to be clipped + may be partly more visible. (#3312, #7540, #3756, #6170, #6365) +- Windows: Fixed subsequent Begin() append calls from setting last item information + for title bar, making it impossible to use IsItemHovered() on a Begin()-to-append, + and causing issue bypassing hover detection on collapsed windows. (#7506, #823) +- Fonts: Fixed font ascent and descent calculation when a font hits exact integer values. + It is possible that some prior manual use of ImFontConfig::GlyphOffset may become + duplicate with this fix. (#7399, #7404) [@GamingMinds-DanielC] +- TreeNode: Added ImGuiTreeNodeFlags_SpanTextWidth to make hitbox and highlight only + cover the label. (#6937) [@dimateos] +- Tables: Angled headers: fixed multi-line label display when angle is flipped. (#6917) +- Tables: Angled headers: added style.TableAngledHeadersTextAlign and corresponding + ImGuiStyleVar_TableAngledHeadersTextAlign variable. Default to horizontal center. (#6917) + [@thedmd, @ocornut] +- ProgressBar: Added support for indeterminate progress bar by passing an animated + negative fraction, e.g. ProgressBar(-1.0f * GetTime()). (#5316, #5370, #1901)[@gan74] +- Text, DrawList: Improved handling of long single-line wrapped text. Faster and + mitigate issues with reading vertex indexing limits with 16-bit indices. (#7496, #5720) +- Backends: OpenGL3: Detect ES3 contexts on desktop based on version string, + to e.g. avoid calling glPolygonMode() on them. (#7447) [@afraidofdark, @ocornut] +- Backends: OpenGL3: Update loader for Linux to support EGL/GLVND. (#7562) [@ShadowNinja, @vanfanel] +- Backends: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define. + (you could always use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + ImGui_ImplVulkan_LoadFunctions() as well). + (#6582, #4854) [@adalsteinnh, @kennyalive, @ocornut] +- Backends: SDL3: Fixed text inputs. Re-enable calling SDL_StartTextInput()/SDL_StopTextInput() + as SDL3 no longer enables it by default. (#7452, #6306, #6071, #1953) [@Green-Sky] +- Examples: GLFW+Vulkan, SDL+Vulkan: Added optional support for Volk. (#6582, #4854) +- Examples: GLFW+WebGPU: Added support for WebGPU-native/Dawn (#7435, #7132) [@eliasdaler, @Zelif] +- Examples: GLFW+WebGPU: Renamed example_emscripten_wgpu/ to example_glfw_wgpu/. (#7435, #7132) + +Docking+Viewports Branch: + +- Docking: when io.ConfigDockingWithShift is enabled, fixed help tooltip erroneously + reading SetNextWindowXXX() data. (#6709, #4643, #7491) [@ocornut, @cfillion] +- Viewports: fixed outer-right edge of MenuBar clipping rectangle off by one when window + is located on a monitor with negative coordinates. (#6861, #2884) [@cfillion] +- Backends: Vulkan: reworked swap-chain resize handling for secondary viewports, fix for + typical Linux setups. (#2626, #3390, #3758, #7508, #7513) [@RoryO, @InsideBSITheSecond] +- Backends: Vulkan: create a custom pipeline for secondary viewports. Fixes issues + when user created main viewport uses a different renderpass. (#6325, #6305, #7398, + #3459, #3253, #3522) [@skaman, @FunMiles] + + +----------------------------------------------------------------------- + VERSION 1.90.5 (Released 2024-04-11) +----------------------------------------------------------------------- + +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.90.5 + +Breaking changes: + +- More formally obsoleted GetKeyIndex() when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is set. + It has been unnecessary and a no-op since 1.87 (it returns the same value as passed + when used with a 1.87+ backend using io.AddKeyEvent() function). (#4921) + - IsKeyPressed(GetKeyIndex(ImGuiKey_XXX)) --> IsKeyPressed(ImGuiKey_XXX) +- ImDrawList: Merged the radius_x/radius_y parameters in AddEllipse(), AddEllipseFilled() + and PathEllipticalArcTo() into a single ImVec2 parameter. Exceptionally, because those + functions were added recently in 1.90, we are not adding inline redirection functions. + The transition is easy and should affect few users. (#2743, #7417) [@cfillion] + +Other changes: + +- Windows: Scrollbar visibility decision uses current size when both size and contents + size are submitted by API. (#7252) +- Windows: Double-click to collapse may be disabled via key-ownership mechanism. (#7369) +- Windows: BeginChild(): Extend outer resize borders to the edges when there are no corner + grips. Essentially affects resizable child windows. (#7440, #1710) [@cfillion] +- Windows: BeginChild(): Resizing logic for child windows evaluates whether per-axis clamping + should be applied based on parent scrollbars, not child scrollbars. (#7440, #1710) [@cfillion] + Adjust those resizing limits to match window padding rather than inner clipping rectangle. +- Tables: Fixed auto-width columns when using synced-instances of same table, width of + one instance would bleed into next one instead of sharing their widths. (#7218) +- Tables: Angled headers: fixed border hit box extending beyond when used within + non-scrollable tables. (#7416) [@cfillion] +- Tables: Angled headers: fixed borders not moving back up after TableAngleHeadersRow() + stops being called. (#7416) [@cfillion] +- Tables: Angled headers: rounding header size to nearest integers, fixes some issues + when using clipper. +- Menus, Popups: Fixed an issue where sibling menu popups re-opening in successive + frames would erroneously close the window. While it is technically a popup issue + it would generally manifest when fast moving the mouse bottom to top in a sub-menu. + (#7325, #7287, #7063) +- ProgressBar: Fixed passing fraction==NaN from leading to a crash. (#7451) +- ListBox: Fixed text-baseline offset when using SameLine()+Text() after a labeled ListBox(). +- Drags, Sliders, Inputs: Fixed io.PlatformLocaleDecimalPoint decimal point localization + feature not working regression from 1.90.1. (#7389, #6719, #2278) [@GamingMinds-DanielC] +- Style: Added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle for + consistency. (#7411) [@cfillion] +- DrawList: Added AddConcavePolyFilled(), PathFillConcave() concave filling. (#760) [@thedmd] + Note that only simple polygons (no self-intersections, no holes) are supported. +- DrawList: Allow AddText() to accept null ranges. (#3615, 7391) +- Docs: added more wiki links to headers of imgui.h/imgui.cpp to facilitate discovery + of interesting resources, because github doesn't allow Wiki to be crawled by search engines. + - This is the main wiki: https://github.com/ocornut/imgui/wiki + - This is the crawlable version: https://github-wiki-see.page/m/ocornut/imgui/wiki + Adding a link to the crawlable version, even though it is not intended for humans, + to increase its search rank. + +Docking+Viewports Branch: + +- Backends: Win32: made it so that an appearing viewport showing up doesn't bring + its parent to front. (#7354) + + ----------------------------------------------------------------------- VERSION 1.90.4 (Released 2024-02-22) ----------------------------------------------------------------------- @@ -58,8 +756,8 @@ Other changes: for auto-resizing of columns. (#6917) - Tables: Angled headers: fixed TableAngledHeadersRow() incorrect background fill drawn too low, particularly visible with tables that have no scrolling. (#6917) -- ProgressBar: Fixed a minor tesselation issue when rendering rounded progress bars, - where in some situations the rounded section wouldn't follow regular tesselation rules. +- ProgressBar: Fixed a minor tessellation issue when rendering rounded progress bars, + where in some situations the rounded section wouldn't follow regular tessellation rules. - Debug Tools: Item Picker: Promoted ImGui::DebugStartItemPicker() to public API. (#2673) - Debug Tools: Item Picker: Menu entry visible in Demo->Tools but greyed out unless io.ConfigDebugIsDebuggerPresent is set. (#2673) @@ -306,6 +1004,7 @@ Breaking changes: Before: BeginChild("Name", size, false) After: BeginChild("Name", size) or BeginChild("Name", 0) or BeginChild("Name", size, ImGuiChildFlags_None) Existing code will still work as 'ImGuiChildFlags_Border == true', but you are encouraged to update call sites. + **AMEND FROM THE FUTURE: from 1.91.1, 'ImGuiChildFlags_Border' is called 'ImGuiChildFlags_Borders'** - BeginChild(): Added child-flag ImGuiChildFlags_AlwaysUseWindowPadding as a replacement for the window-flag ImGuiWindowFlags_AlwaysUseWindowPadding: the feature only ever made sense for use with BeginChild() anyhow, passing it to Begin() had no effect. Now that we accept @@ -355,6 +1054,7 @@ Other changes: child windows from the bottom/right border (toward layout direction). Resized child windows settings are saved and persistent in .ini file. (#1710) - BeginChild(): Added ImGuiChildFlags_Border as a replacement for 'bool border = true' parameter. + **AMEND FROM THE FUTURE: from 1.91.1, 'ImGuiChildFlags_Border' is called 'ImGuiChildFlags_Borders'** - BeginChild(): Added ImGuiChildFlags_AutoResizeX and ImGuiChildFlags_AutoResizeY to auto-resize on one axis, while generally providing a size on the other axis. (#1666, #1395, #1496, #1710) e.g. BeginChild("name", {-FLT_MIN, 0.0f}, ImGuiChildFlags_AutoResizeY); @@ -596,7 +1296,7 @@ Breaking changes: - IO: Obsoleted io.ClearInputCharacters() (added in 1.47) as it now ambiguous and often incorrect/misleading considering the existence of a higher-level - input queue. This is automatically cleared by io.ClearInputsKeys(). (#4921) + input queue. This is automatically cleared by io.ClearInputKeys(). (#4921) - ImDrawData: CmdLists[] array is now owned, changed from 'ImDrawList**' to 'ImVector'. Majority of users shouldn't be affected, but you cannot compare to NULL nor reassign manually anymore. @@ -634,10 +1334,10 @@ Other changes: will slightly reduce scrollbar size. Generally we tried to make it that window border size has no incidence on layout but this can't work with thick borders. (#2522) - IO: Added io.ClearEventsQueue() to clear incoming inputs events. (#4921) - May be useful in conjunction with io.ClearInputsKeys() if you need to clear + May be useful in conjunction with io.ClearInputKeys() if you need to clear both current inputs state and queued events (e.g. when using blocking native dialogs such as Windows's ::MessageBox() or ::GetOpenFileName()). -- IO: Changed io.ClearInputsKeys() specs to also clear current frame character buffer +- IO: Changed io.ClearInputKeys() specs to also clear current frame character buffer (what now obsoleted io.ClearInputCharacters() did), as this is effectively the desirable behavior. - Misc: Added IMGUI_DISABLE_STB_SPRINTF_IMPLEMENTATION config macro to disable @@ -793,7 +1493,7 @@ Breaking changes: - ListBoxFooter() -> use EndListBox() - Note how two variants of ListBoxHeader() existed. Check commented versions in imgui.h for refeence. - Backends: SDL_Renderer: Renamed 'imgui_impl_sdlrenderer.h/cpp' to 'imgui_impl_sdlrenderer2.h/cpp', - in order to accomodate for upcoming SDL3 and change in its SDL_Renderer API. (#6286) + in order to accommodate for upcoming SDL3 and change in its SDL_Renderer API. (#6286) - Backends: GLUT: Removed call to ImGui::NewFrame() from ImGui_ImplGLUT_NewFrame(). It needs to be called from the main app loop, like with every other backends. (#6337) [@GereonV] @@ -1403,7 +2103,7 @@ Other Changes: - Backends: Metal: Use __bridge for ARC based systems. (#5403) [@stack] - Backends: Metal: Add dispatch synchronization. (#5447) [@luigifcruz] - Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount'. (#5603) [@dcvz] -- Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738). +- Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symmetry. (#914, #5738). - Backends: WebGPU: fixed rendering when a depth buffer is enabled. (#5869) [@brainlag] Docking+Viewports Branch: @@ -2316,7 +3016,7 @@ Other Changes: alpha compositing and transparent windows. (#2766, #3447 etc.). - Backends: OpenGL, Vulkan, DX9, DX10, DX11, DX12, Metal, WebGPU, Allegro: Rework blending equation to preserve alpha in output buffer (using SrcBlendAlpha = ONE, DstBlendAlpha = ONE_MINUS_SRC_ALPHA consistently - accross all backends), facilitating compositing of the output buffer with another buffer. + across all backends), facilitating compositing of the output buffer with another buffer. (#2693, #2764, #2766, #2873, #3447, #3813, #3816) [@ocornut, @thedmd, @ShawnM427, @Ubpa, @aiekick] - Backends: DX9: Fix to support IMGUI_USE_BGRA_PACKED_COLOR. (#3844) [@Xiliusha] - Backends: DX9: Fix to support colored glyphs, using newly introduced 'TexPixelsUseColors' info. (#3844) @@ -5873,7 +6573,7 @@ Other Changes: VERSION 1.08 (2014-08-25) ----------------------------------------------------------------------- -Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.09 +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.08 - Fixed ImGuiTextFilter trimming of leading/trailing blanks. - Fixed file descriptor leak on LoadSettings() failure. diff --git a/cimgui/imgui/docs/CONTRIBUTING.md b/cwrappers/imgui/docs/CONTRIBUTING.md similarity index 100% rename from cimgui/imgui/docs/CONTRIBUTING.md rename to cwrappers/imgui/docs/CONTRIBUTING.md diff --git a/cimgui/imgui/docs/EXAMPLES.md b/cwrappers/imgui/docs/EXAMPLES.md similarity index 87% rename from cimgui/imgui/docs/EXAMPLES.md rename to cwrappers/imgui/docs/EXAMPLES.md index edaddb055..66ad24ef7 100644 --- a/cimgui/imgui/docs/EXAMPLES.md +++ b/cwrappers/imgui/docs/EXAMPLES.md @@ -35,46 +35,13 @@ At shutdown: call ImGui::DestroyContext() ``` -Example (using [backends/imgui_impl_win32.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_win32.cpp) + [backends/imgui_impl_dx11.cpp](https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_dx11.cpp)): +Main resource: +- Read **[Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) wiki guide** for detailed examples of how to integrate Dear ImGui in an existing application. -```cpp -// Create a Dear ImGui context, setup some options -ImGui::CreateContext(); -ImGuiIO& io = ImGui::GetIO(); -io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable some options - -// Initialize Platform + Renderer backends (here: using imgui_impl_win32.cpp + imgui_impl_dx11.cpp) -ImGui_ImplWin32_Init(my_hwnd); -ImGui_ImplDX11_Init(my_d3d_device, my_d3d_device_context); - -// Application main loop -while (true) -{ - // Beginning of frame: update Renderer + Platform backend, start Dear ImGui frame - ImGui_ImplDX11_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // Any application code here - ImGui::Text("Hello, world!"); - - // End of frame: render Dear ImGui - ImGui::Render(); - ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); - - // Swap - g_pSwapChain->Present(1, 0); -} - -// Shutdown -ImGui_ImplDX11_Shutdown(); -ImGui_ImplWin32_Shutdown(); -ImGui::DestroyContext(); -``` - -Please read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup Dear ImGui in your codebase. -Please read the comments and instruction at the top of each file. -Please read FAQ at https://www.dearimgui.com/faq +Additional resources: +- Read FAQ at https://www.dearimgui.com/faq +- Read 'PROGRAMMER GUIDE' section in imgui.cpp. +- Read the comments and instruction at the top of each file. If you are using any of the backends provided here, you can add the backends/imgui_impl_xxxx(.cpp,.h) files to your project and use as-in. Each imgui_impl_xxxx.cpp file comes with its own individual @@ -104,8 +71,8 @@ OSX + OpenGL2 example.
(NB: imgui_impl_osx.mm is currently not as feature complete as other platforms backends. You may prefer to use the GLFW Or SDL backends, which will also support Windows and Linux.) -[example_emscripten_wgpu/](https://github.com/ocornut/imgui/blob/master/examples/example_emscripten_wgpu/)
-Emcripten + GLFW + WebGPU example.
+[example_glfw_wgpu/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_wgpu/)
+GLFW + WebGPU example. Supports Emscripten (web) or Dawn (desktop)
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_wgpu.cpp Note that the 'example_glfw_opengl3' and 'example_sdl2_opengl3' examples also supports Emscripten! @@ -126,7 +93,7 @@ state, and might confuse your GPU driver. One star, not recommended. GLFW (Win32, Mac, Linux) + OpenGL3+/ES2/ES3 example (modern, programmable pipeline).
= main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp
This uses more modern GL calls and custom shaders.
-This support building with Emscripten and targetting WebGL.
+This support building with Emscripten and targeting WebGL.
Prefer using that if you are using modern GL or WebGL in your application. [example_glfw_vulkan/](https://github.com/ocornut/imgui/blob/master/examples/example_glfw_vulkan/)
@@ -168,7 +135,7 @@ state, and might confuse your GPU driver. One star, not recommended. SDL2 (Win32, Mac, Linux, etc.) + OpenGL3+/ES2/ES3 example.
= main.cpp + imgui_impl_sdl2.cpp + imgui_impl_opengl3.cpp
This uses more modern GL calls and custom shaders.
-This support building with Emscripten and targetting WebGL.
+This support building with Emscripten and targeting WebGL.
Prefer using that if you are using modern GL or WebGL in your application. [example_sdl2_sdlrenderer2/](https://github.com/ocornut/imgui/blob/master/examples/example_sdl2_sdlrenderer2/)
diff --git a/cimgui/imgui/docs/FAQ.md b/cwrappers/imgui/docs/FAQ.md similarity index 95% rename from cimgui/imgui/docs/FAQ.md rename to cwrappers/imgui/docs/FAQ.md index c86cc1368..4e2a42576 100644 --- a/cimgui/imgui/docs/FAQ.md +++ b/cwrappers/imgui/docs/FAQ.md @@ -23,7 +23,7 @@ or view this file with any Markdown viewer. | [I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around...](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-clipping-or-disappearing-when-i-move-windows-around) | | [I integrated Dear ImGui in my engine and some elements are displaying outside their expected windows boundaries...](#q-i-integrated-dear-imgui-in-my-engine-and-some-elements-are-displaying-outside-their-expected-windows-boundaries) | | **Q&A: Usage** | -| **[About the ID Stack system..
Why is my widget not reacting when I click on it?
How can I have widgets with an empty label?
How can I have multiple widgets with the same label?
How can I have multiple windows with the same label?](#q-about-the-id-stack-system)** | +| **[About the ID Stack system..
Why is my widget not reacting when I click on it?
Why is the wrong widget reacting when I click on one?
How can I have widgets with an empty label?
How can I have multiple widgets with the same label?
How can I have multiple windows with the same label?](#q-about-the-id-stack-system)** | | [How can I display an image? What is ImTextureID, how does it work?](#q-how-can-i-display-an-image-what-is-imtextureid-how-does-it-work)| | [How can I use maths operators with ImVec2?](#q-how-can-i-use-maths-operators-with-imvec2) | | [How can I use my own maths types instead of ImVec2/ImVec4?](#q-how-can-i-use-my-own-maths-types-instead-of-imvec2imvec4) | @@ -77,9 +77,9 @@ or view this file with any Markdown viewer. ### Q: Which version should I get? I occasionally tag [Releases](https://github.com/ocornut/imgui/releases) but it is generally safe and recommended to sync to master/latest. The library is fairly stable and regressions tend to be fixed fast when reported. -You may use the [docking](https://github.com/ocornut/imgui/tree/docking) branch which includes: -- [Docking features](https://github.com/ocornut/imgui/issues/2109) -- [Multi-viewport features](https://github.com/ocornut/imgui/issues/1542) +You may use the ['docking'](https://github.com/ocornut/imgui/tree/docking) branch which includes: +- [Docking features](https://github.com/ocornut/imgui/wiki/Docking) +- [Multi-viewport features](https://github.com/ocornut/imgui/wiki/Multi-Viewports) Many projects are using this branch and it is kept in sync with master regularly. @@ -199,10 +199,43 @@ ctx->RSSetScissorRects(1, &r); ### Q: About the ID Stack system... ### Q: Why is my widget not reacting when I click on it? +### Q: Why is the wrong widget reacting when I click on one? ### Q: How can I have widgets with an empty label? ### Q: How can I have multiple widgets with the same label? ### Q: How can I have multiple windows with the same label? +**USING THE SAME LABEL+ID IS THE MOST COMMON USER MISTAKE!** +
**USING AN EMPTY LABEL IS THE SAME AS USING THE SAME LABEL AS YOUR PARENT WIDGET!** + + + + + +
+
+ImGui::Begin("Incorrect!");
+ImGui::DragFloat2("My value", &objects[0]->pos.x);
+ImGui::DragFloat2("My value", &objects[1]->pos.x);
+ImGui::DragFloat2("My value", &objects[2]->pos.x);
+ImGui::End();
+ 
+ImGui::Begin("Correct!");
+ImGui::DragFloat2("My value", &objects[0]->pos.x);
+ImGui::DragFloat2("My value##2", &objects[1]->pos.x);
+ImGui::DragFloat2("My value##3", &objects[2]->pos.x);
+ImGui::End();
+ 
+ImGui::Begin("Also Correct!");
+for (int n = 0; n < 3; n++)
+{
+    ImGui::PushID(n);
+    ImGui::DragFloat2("My value", &objects[n]->pos.x);
+    ImGui::PopID();
+}
+ImGui::End();
+
+
+ A primer on labels and the ID Stack... Dear ImGui internally needs to uniquely identify UI elements. @@ -607,7 +640,7 @@ The applications in examples/ are doing that. Windows: you can use the WM_CHAR or WM_UNICHAR or WM_IME_CHAR message (depending if your app is built using Unicode or MultiByte mode). You may also use `MultiByteToWideChar()` or `ToUnicode()` to retrieve Unicode codepoints from MultiByte characters or keyboard state. Windows: if your language is relying on an Input Method Editor (IME), you can write your HWND to ImGui::GetMainViewport()->PlatformHandleRaw -for the default implementation of io.SetPlatformImeDataFn() to set your Microsoft IME position correctly. +for the default implementation of GetPlatformIO().Platform_SetImeDataFn() to set your Microsoft IME position correctly. ##### [Return to Index](#index) @@ -621,8 +654,8 @@ You may take a look at: - [Quotes](https://github.com/ocornut/imgui/wiki/Quotes) - [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) -- [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors) -- [Gallery](https://github.com/ocornut/imgui/issues/6897) +- [Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding) +- [Gallery](https://github.com/ocornut/imgui/issues?q=label%3Agallery) ##### [Return to Index](#index) @@ -664,11 +697,11 @@ There is an auto-generated [c-api for Dear ImGui (cimgui)](https://github.com/ci # Q&A: Community ### Q: How can I help? -- Businesses: please reach out to `omar AT dearimgui.com` if you work in a place using Dear ImGui! We can discuss ways for your company to fund development via invoiced technical support, maintenance, or sponsoring contacts. This is among the most useful thing you can do for Dear ImGui. With increased funding, we can hire more people to work on this project. +- Businesses: please reach out to `omar AT dearimgui.com` if you work in a place using Dear ImGui! We can discuss ways for your company to fund development via invoiced technical support, maintenance, or sponsoring contacts. This is among the most useful thing you can do for Dear ImGui. With increased funding, we can hire more people to work on this project. Please see [Funding](https://github.com/ocornut/imgui/wiki/Funding) page. - Individuals: you can support continued maintenance and development via PayPal donations. See [README](https://github.com/ocornut/imgui/blob/master/docs/README.md). - If you are experienced with Dear ImGui and C++, look at [GitHub Issues](https://github.com/ocornut/imgui/issues), [GitHub Discussions](https://github.com/ocornut/imgui/discussions), the [Wiki](https://github.com/ocornut/imgui/wiki), read [docs/TODO.txt](https://github.com/ocornut/imgui/blob/master/docs/TODO.txt), and see how you want to help and can help! - Disclose your usage of Dear ImGui via a dev blog post, a tweet, a screenshot, a mention somewhere, etc. -You may post screenshots or links in the [gallery threads](https://github.com/ocornut/imgui/issues/6897). Visuals are ideal as they inspire other programmers. Disclosing your use of Dear ImGui helps the library grow credibility, and helps other teams and programmers with taking decisions. +You may post screenshots or links in the [gallery threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery). Visuals are ideal as they inspire other programmers. Disclosing your use of Dear ImGui helps the library grow credibility, and helps other teams and programmers with taking decisions. - If you have issues or if you need to hack into the library, even if you don't expect any support it is useful that you share your issues or sometimes incomplete PR. ##### [Return to Index](#index) diff --git a/cimgui/imgui/docs/FONTS.md b/cwrappers/imgui/docs/FONTS.md similarity index 98% rename from cimgui/imgui/docs/FONTS.md rename to cwrappers/imgui/docs/FONTS.md index df8b610e5..c451af61c 100644 --- a/cimgui/imgui/docs/FONTS.md +++ b/cwrappers/imgui/docs/FONTS.md @@ -50,7 +50,9 @@ All loaded fonts glyphs are rendered into a single texture atlas ahead of time. ### (4) Font atlas texture fails to upload to GPU. -This is often of byproduct of point 3. If you have large number of glyphs or multiple fonts, the texture may become too big for your graphics API. **The typical result of failing to upload a texture is if every glyph or everything appears as empty black or white rectangle.** Mind the fact that some graphics drivers have texture size limitation. If you are building a PC application, mind the fact that your users may use hardware with lower limitations than yours. +This is often of byproduct of point 3. If you have large number of glyphs or multiple fonts, the texture may become too big for your graphics API. **The typical result of failing to upload a texture is if every glyph or everything appears as empty white rectangles.** Mind the fact that some graphics drivers have texture size limitation. If you are building a PC application, mind the fact that your users may use hardware with lower limitations than yours. + +![empty squares](https://github.com/user-attachments/assets/68b50fb5-8b9d-4c38-baec-6ac384f06d26) Some solutions: - You may reduce oversampling, e.g. `font_config.OversampleH = 1`, this will half your texture size for a quality loss. @@ -60,6 +62,8 @@ Some solutions: - Set `io.Fonts.Flags |= ImFontAtlasFlags_NoPowerOfTwoHeight;` to disable rounding the texture height to the next power of two. - Set `io.Fonts.TexDesiredWidth` to specify a texture width to reduce maximum texture height (see comment in `ImFontAtlas::Build()` function). +Future versions of Dear ImGui should solve this problem. + ##### [Return to Index](#index) --------------------------------------- diff --git a/cimgui/imgui/docs/README.md b/cwrappers/imgui/docs/README.md similarity index 90% rename from cimgui/imgui/docs/README.md rename to cwrappers/imgui/docs/README.md index a2be7fde2..0968727f1 100644 --- a/cimgui/imgui/docs/README.md +++ b/cwrappers/imgui/docs/README.md @@ -11,18 +11,18 @@ Dear ImGui Businesses: support continued development and maintenance via invoiced sponsoring/support contracts:
  _E-mail: contact @ dearimgui dot com_ -
Individuals: support continued development and maintenance [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S). Also see [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors) page. +
Individuals: support continued development and maintenance [here](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WGHNC6MBFLZ2S). Also see [Funding](https://github.com/ocornut/imgui/wiki/Funding) page. -| [The Pitch](#the-pitch) - [Usage](#usage) - [How it works](#how-it-works) - [Releases & Changelogs](#releases--changelogs) - [Demo](#demo) - [Integration](#integration) | +| [The Pitch](#the-pitch) - [Usage](#usage) - [How it works](#how-it-works) - [Releases & Changelogs](#releases--changelogs) - [Demo](#demo) - [Getting Started & Integration](#getting-started--integration) | :----------------------------------------------------------: | -| [Gallery](#gallery) - [Support, FAQ](#support-frequently-asked-questions-faq) - [How to help](#how-to-help) - [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors) - [Credits](#credits) - [License](#license) | +| [Gallery](#gallery) - [Support, FAQ](#support-frequently-asked-questions-faq) - [How to help](#how-to-help) - **[Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding)** - [Credits](#credits) - [License](#license) | | [Wiki](https://github.com/ocornut/imgui/wiki) - [Extensions](https://github.com/ocornut/imgui/wiki/Useful-Extensions) - [Languages bindings & frameworks backends](https://github.com/ocornut/imgui/wiki/Bindings) - [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) - [User quotes](https://github.com/ocornut/imgui/wiki/Quotes) | ### The Pitch Dear ImGui is a **bloat-free graphical user interface library for C++**. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer agnostic, and self-contained (no external dependencies). -Dear ImGui is designed to **enable fast iterations** and to **empower programmers** to create **content creation tools and visualization / debug tools** (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries. +Dear ImGui is designed to **enable fast iterations** and to **empower programmers** to create **content creation tools and visualization / debug tools** (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries. Among other things, full internationalization (right-to-left text, bidirectional text, text shaping etc.) and accessibility features are not supported. Dear ImGui is particularly suited to integration in game engines (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on console platforms where operating system features are non-standard. @@ -43,7 +43,7 @@ Dear ImGui is particularly suited to integration in game engines (for tooling), **Backends for a variety of graphics API and rendering platforms** are provided in the [backends/](https://github.com/ocornut/imgui/tree/master/backends) folder, along with example applications in the [examples/](https://github.com/ocornut/imgui/tree/master/examples) folder. You may also create your own backend. Anywhere where you can render textured triangles, you can render Dear ImGui. -See the [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) guide and [Integration](#integration) section of this document for more details. +See the [Getting Started & Integration](#getting-started--integration) section of this document for more details. After Dear ImGui is set up in your application, you can use it from \_anywhere\_ in your program loop: ```cpp @@ -114,7 +114,7 @@ You should be able to build the examples from sources. If you don't, let us know The demo applications are not DPI aware so expect some blurriness on a 4K screen. For DPI awareness in your application, you can load/reload your font at a different scale and scale your style with `style.ScaleAllSizes()` (see [FAQ](https://www.dearimgui.com/faq)). -### Integration +### Getting Started & Integration See the [Getting Started](https://github.com/ocornut/imgui/wiki/Getting-Started) guide for details. @@ -141,7 +141,7 @@ Also see [Wiki](https://github.com/ocornut/imgui/wiki) for more links and ideas. Examples projects using Dear ImGui: [Tracy](https://github.com/wolfpld/tracy) (profiler), [ImHex](https://github.com/WerWolv/ImHex) (hex editor/data analysis), [RemedyBG](https://remedybg.itch.io/remedybg) (debugger) and [hundreds of others](https://github.com/ocornut/imgui/wiki/Software-using-Dear-ImGui). -For more user-submitted screenshots of projects using Dear ImGui, check out the [Gallery Threads](https://github.com/ocornut/imgui/issues/6897)! +For more user-submitted screenshots of projects using Dear ImGui, check out the [Gallery Threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery)! For a list of third-party widgets and extensions, check out the [Useful Extensions/Widgets](https://github.com/ocornut/imgui/wiki/Useful-Extensions) wiki page. @@ -162,17 +162,19 @@ See: [Upcoming Changes](https://github.com/ocornut/imgui/wiki/Upcoming-Changes). See: [Dear ImGui Test Engine + Test Suite](https://github.com/ocornut/imgui_test_engine) for Automation & Testing. +For the purposes of getting search engines to crawl the wiki, here's a link to the [Crawlable Wiki](https://github-wiki-see.page/m/ocornut/imgui/wiki) (not for humans, [here's why](https://github-wiki-see.page/)). + Getting started? For first-time users having issues compiling/linking/running or issues loading fonts, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions). For ANY other questions, bug reports, requests, feedback, please post on [GitHub Issues](https://github.com/ocornut/imgui/issues). Please read and fill the New Issue template carefully. Private support is available for paying business customers (E-mail: _contact @ dearimgui dot com_). **Which version should I get?** -We occasionally tag [Releases](https://github.com/ocornut/imgui/releases) (with nice releases notes) but it is generally safe and recommended to sync to latest `master` or `docking` branch. The library is fairly stable and regressions tend to be fixed fast when reported. Advanced users may want to use the `docking` branch with [Multi-Viewport](https://github.com/ocornut/imgui/issues/1542) and [Docking](https://github.com/ocornut/imgui/issues/2109) features. This branch is kept in sync with master regularly. +We occasionally tag [Releases](https://github.com/ocornut/imgui/releases) (with nice releases notes) but it is generally safe and recommended to sync to latest `master` or `docking` branch. The library is fairly stable and regressions tend to be fixed fast when reported. Advanced users may want to use the `docking` branch with [Multi-Viewport](https://github.com/ocornut/imgui/wiki/Multi-Viewports) and [Docking](https://github.com/ocornut/imgui/wiki/Docking) features. This branch is kept in sync with master regularly. **Who uses Dear ImGui?** -See the [Quotes](https://github.com/ocornut/imgui/wiki/Quotes), [Sponsors](https://github.com/ocornut/imgui/wiki/Sponsors), and [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) Wiki pages for an idea of who is using Dear ImGui. Please add your game/software if you can! Also, see the [Gallery Threads](https://github.com/ocornut/imgui/issues/6897)! +See the [Quotes](https://github.com/ocornut/imgui/wiki/Quotes), [Funding & Sponsors](https://github.com/ocornut/imgui/wiki/Funding), and [Software using Dear ImGui](https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui) Wiki pages for an idea of who is using Dear ImGui. Please add your game/software if you can! Also, see the [Gallery Threads](https://github.com/ocornut/imgui/issues?q=label%3Agallery)! How to help ----------- @@ -182,13 +184,13 @@ How to help - See [GitHub Forum/Issues](https://github.com/ocornut/imgui/issues). - You may help with development and submit pull requests! Please understand that by submitting a PR you are also submitting a request for the maintainer to review your code and then take over its maintenance forever. PR should be crafted both in the interest of the end-users and also to ease the maintainer into understanding and accepting it. - See [Help wanted](https://github.com/ocornut/imgui/wiki/Help-Wanted) on the [Wiki](https://github.com/ocornut/imgui/wiki/) for some more ideas. -- Be a [sponsor](https://github.com/ocornut/imgui/wiki/Sponsors)! Have your company financially support this project via invoiced sponsors/maintenance or by buying a license for [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine) (please reach out: omar AT dearimgui DOT com). +- Be a [Funding Supporter](https://github.com/ocornut/imgui/wiki/Funding)! Have your company financially support this project via invoiced sponsors/maintenance or by buying a license for [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine) (please reach out: omar AT dearimgui DOT com). Sponsors -------- Ongoing Dear ImGui development is and has been financially supported by users and private sponsors. -
Please see the **[detailed list of current and past Dear ImGui supporters](https://github.com/ocornut/imgui/wiki/Sponsors)** for details. +
Please see the **[detailed list of current and past Dear ImGui funding supporters and sponsors](https://github.com/ocornut/imgui/wiki/Funding)** for details.
From November 2014 to December 2019, ongoing development has also been financially supported by its users on Patreon and through individual donations. **THANK YOU to all past and present supporters for helping to keep this project alive and thriving!** @@ -205,7 +207,7 @@ Developed by [Omar Cornut](https://www.miracleworld.net) and every direct or ind Recurring contributors include Rokas Kupstys [@rokups](https://github.com/rokups) (2020-2022): a good portion of work on automation system and regression tests now available in [Dear ImGui Test Engine](https://github.com/ocornut/imgui_test_engine). -Sponsoring, maintenance/support contracts and other B2B transactions are hosted and handled by [Disco Hello](https://www.discohello.com). +Maintenance/support contracts, sponsoring invoices and other B2B transactions are hosted and handled by [Disco Hello](https://www.discohello.com). Omar: "I first discovered the IMGUI paradigm at [Q-Games](https://www.q-games.com) where Atman Binstock had dropped his own simple implementation in the codebase, which I spent quite some time improving and thinking about. It turned out that Atman was exposed to the concept directly by working with Casey. When I moved to Media Molecule I rewrote a new library trying to overcome the flaws and limitations of the first one I've worked with. It became this library and since then I have spent an unreasonable amount of time iterating and improving it." diff --git a/cimgui/imgui/docs/TODO.txt b/cwrappers/imgui/docs/TODO.txt similarity index 97% rename from cimgui/imgui/docs/TODO.txt rename to cwrappers/imgui/docs/TODO.txt index 4df57e5aa..091559eac 100644 --- a/cimgui/imgui/docs/TODO.txt +++ b/cwrappers/imgui/docs/TODO.txt @@ -39,7 +39,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - scrolling: forward mouse wheel scrolling to parent window when at the edge of scrolling limits? (useful for listbox,tables?) - scrolling/style: shadows on scrollable areas to denote that there is more contents (see e.g. DaVinci Resolve ui) - - drawdata: make it easy to deep-copy (or swap?) a full ImDrawData so user can easily save that data if they use threaded rendering. (e.g. #2646) + - drawdata: make it easy to deep-copy (or swap?) a full ImDrawData so user can easily save that data if they use threaded rendering. (#1860 see ImDrawDataSnapshot) ! drawlist: add CalcTextSize() func to facilitate consistent code from user pov (currently need to use ImGui or ImFont alternatives!) - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command). (WIP branch) - drawlist: make it easier to toggle AA per primitive, so we can use e.g. non-AA fill + AA borders more naturally @@ -65,7 +65,6 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - selectable: generic BeginSelectable()/EndSelectable() mechanism. (work out alongside range-select branch) - selectable: a way to visualize partial/mixed selection (e.g. parent tree node has children with mixed selection) - - input text: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now and super fragile. (WIP branch) - input text: preserve scrolling when unfocused? - input text: reorganize event handling, allow CharFilter to modify buffers, allow multiple events? (#541) - input text: expose CursorPos in char filter event (#816) @@ -117,7 +116,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i !- color: the color conversion helpers/types are a mess and needs sorting out. - color: (api breaking) ImGui::ColorConvertXXX functions should be loose ImColorConvertXX to match imgui_internals.h - - plot: full featured plot/graph api w/ scrolling, zooming etc. --> ImPlot + - plot: full featured plot/graph api w/ scrolling, zooming etc. --> promote using ImPlot - (plot: deleted all other todo lines on 2023-06-28) - clipper: ability to disable the clipping through a simple flag/bool. @@ -178,7 +177,6 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - drag float: power != 0.0f with current value being outside the range keeps the value stuck. - drag float: added leeway on edge (e.g. a few invisible steps past the clamp limits) - - combo: use clipper. - combo: a way/helper to customize the combo preview (#1658) -> experimental BeginComboPreview() - combo/listbox: keyboard control. need InputText-like non-active focus + key handling. considering keyboard for custom listbox (pr #203) - listbox: multiple selection (WIP range-select branch) @@ -201,13 +199,14 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - tooltip: drag and drop with tooltip near monitor edges lose/changes its last direction instead of locking one. The drag and drop tooltip should always follow without changing direction. - tooltip: allow to set the width of a tooltip to allow TextWrapped() etc. while keeping the height automatic. - tooltip: drag tooltip hovering over source widget with IsItemHovered/SetTooltip flickers (WIP branch) + - tooltip: tooltip priorities to override a stock tooltip (e.g. shortcut tooltip) - status-bar: add a per-window status bar helper similar to what menu-bar does. generalize concept of layer0 rect in window (can make _MenuBar window flag obsolete too). + - shortcuts: store multiple keychords in ImGuiKeyChord + - shortcuts: Hovered route (lower than Focused, higher than Global) - shortcuts: local-style shortcut api, e.g. parse "&Save" - shortcuts,menus: global-style shortcut api e.g. "Save (CTRL+S)" -> explicit flag for recursing into closed menu - - shortcuts: programmatically access shortcuts "Focus("&Save")) - - menus: menu-bar: main menu-bar could affect clamping of windows position (~ akin to modifying DisplayMin) - - menus: hovering from menu to menu on a menu-bar has 1 frame without any menu, which is a little annoying. ideally either 0 either longer. + - menus: hovering from menu to menu on a menu-bar has 1 frame without any menu, which is a little annoying. ideally zero. - menus: would be nice if the Selectable() supported horizontal alignment (must be given the equivalent of WorkRect.Max.x matching the position of the shortcut column) - tree node: add treenode/treepush int variants? not there because (void*) cast from int warns on some platforms/settings? @@ -218,11 +217,11 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - tree node/opt: could avoid formatting when clipped (flag assuming we don't care about width/height, assume single line height? format only %s/%c to be able to count height?) - settings: write more decent code to allow saving/loading new fields: columns, selected tree nodes? + - settings: facilitate extension lazily calling AddSettingsHandler() while running and still getting their data call the ReadXXX handlers immediately. - settings: api for per-tool simple persistent data (bool,int,float,columns sizes,etc.) in .ini file (#437) - settings/persistence: helpers to make TreeNodeBehavior persist (even during dev!) - may need to store some semantic and/or data type in ImGuiStoragePair - style: better default styles. (#707) - - style: PushStyleVar: allow direct access to individual float X/Y elements. - style: add a highlighted text color (for headers, etc.) - style: border types: out-screen, in-screen, etc. (#447) - style: add window shadow (fading away from the window. Paint-style calculation of vertices alpha after drawlist would be easier) @@ -303,7 +302,6 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - font/opt: Considering storing standalone AdvanceX table as 16-bit fixed point integer? - font/opt: Glyph currently 40 bytes (2+9*4). Consider storing UV as 16-bits integer? (->32 bytes). X0/Y0/X1/Y1 as 16 fixed-point integers? Or X0/Y0 as float and X1/Y1 as fixed8_8? - - nav: visual feedback on button press. - nav: some features such as PageUp/Down/Home/End should probably work without ImGuiConfigFlags_NavEnableKeyboard? (where do we draw the line? how about CTRL+Tab) ! nav: never clear NavId on some setup (e.g. gamepad centric) - nav: there's currently no way to completely clear focus with the keyboard. depending on patterns used by the application to dispatch inputs, it may be desirable. @@ -357,8 +355,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - misc: make the ImGuiCond values linear (non-power-of-two). internal storage for ImGuiWindow can use integers to combine into flags (Why?) - misc: PushItemFlag(): add a flag to disable keyboard capture when used with mouse? (#1682) - misc: use more size_t in public api? - - misc: possible compile-time support for string view/range instead of char* would e.g. facilitate usage with Rust (#683, #3038, WIP string_view branch) - - misc: possible compile-time support for wchar_t instead of char*? + - misc: support for string view/range instead of char* would e.g. facilitate usage with Rust (#683, #3038, WIP string_view branch) - demo: demonstrate using PushStyleVar() in more details. - demo: add vertical separator demo @@ -378,7 +375,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i - backends: bgfx: https://gist.github.com/RichardGale/6e2b74bc42b3005e08397236e4be0fd0 - backends: emscriptem: with refactored examples, we could provide a direct imgui_impl_emscripten platform layer (see eg. https://github.com/floooh/sokol-samples/blob/master/html5/imgui-emsc.cc#L42) - - bindings: ways to use clang ast dump to generate bindings or helpers for bindings? (e.g. clang++ -Xclang -ast-dump=json imgui.h) (WIP project "dear-bindings" still private) + - bindings: ways to use clang ast dump to generate bindings or helpers for bindings? (e.g. clang++ -Xclang -ast-dump=json imgui.h) (--> use https://github.com/dearimgui/dear_bindings) - optimization: replace vsnprintf with stb_printf? using IMGUI_USE_STB_SPRINTF. (#1038 + needed for string_view) - optimization: add clipping for multi-component widgets (SliderFloatX, ColorEditX, etc.). one problem is that nav branch can't easily clip parent group when there is a move request. diff --git a/cimgui/imgui/dummy.go b/cwrappers/imgui/dummy.go similarity index 100% rename from cimgui/imgui/dummy.go rename to cwrappers/imgui/dummy.go diff --git a/cimgui/imgui/examples/README.txt b/cwrappers/imgui/examples/README.txt similarity index 100% rename from cimgui/imgui/examples/README.txt rename to cwrappers/imgui/examples/README.txt diff --git a/cimgui/imgui/examples/example_allegro5/README.md b/cwrappers/imgui/examples/example_allegro5/README.md similarity index 100% rename from cimgui/imgui/examples/example_allegro5/README.md rename to cwrappers/imgui/examples/example_allegro5/README.md diff --git a/cimgui/imgui/examples/example_allegro5/dummy.go b/cwrappers/imgui/examples/example_allegro5/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_allegro5/dummy.go rename to cwrappers/imgui/examples/example_allegro5/dummy.go diff --git a/cimgui/imgui/examples/example_allegro5/example_allegro5.vcxproj b/cwrappers/imgui/examples/example_allegro5/example_allegro5.vcxproj similarity index 100% rename from cimgui/imgui/examples/example_allegro5/example_allegro5.vcxproj rename to cwrappers/imgui/examples/example_allegro5/example_allegro5.vcxproj diff --git a/cimgui/imgui/examples/example_allegro5/example_allegro5.vcxproj.filters b/cwrappers/imgui/examples/example_allegro5/example_allegro5.vcxproj.filters similarity index 100% rename from cimgui/imgui/examples/example_allegro5/example_allegro5.vcxproj.filters rename to cwrappers/imgui/examples/example_allegro5/example_allegro5.vcxproj.filters diff --git a/cimgui/imgui/examples/example_allegro5/imconfig_allegro5.h b/cwrappers/imgui/examples/example_allegro5/imconfig_allegro5.h similarity index 100% rename from cimgui/imgui/examples/example_allegro5/imconfig_allegro5.h rename to cwrappers/imgui/examples/example_allegro5/imconfig_allegro5.h diff --git a/cimgui/imgui/examples/example_allegro5/main.cpp b/cwrappers/imgui/examples/example_allegro5/main.cpp similarity index 100% rename from cimgui/imgui/examples/example_allegro5/main.cpp rename to cwrappers/imgui/examples/example_allegro5/main.cpp diff --git a/cimgui/imgui/examples/example_android_opengl3/CMakeLists.txt b/cwrappers/imgui/examples/example_android_opengl3/CMakeLists.txt similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/CMakeLists.txt rename to cwrappers/imgui/examples/example_android_opengl3/CMakeLists.txt diff --git a/cimgui/imgui/examples/example_android_opengl3/android/.gitignore b/cwrappers/imgui/examples/example_android_opengl3/android/.gitignore similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/android/.gitignore rename to cwrappers/imgui/examples/example_android_opengl3/android/.gitignore diff --git a/cimgui/imgui/examples/example_android_opengl3/android/app/build.gradle b/cwrappers/imgui/examples/example_android_opengl3/android/app/build.gradle similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/android/app/build.gradle rename to cwrappers/imgui/examples/example_android_opengl3/android/app/build.gradle diff --git a/cimgui/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml b/cwrappers/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml similarity index 95% rename from cimgui/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml rename to cwrappers/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml index a87b95b4f..5a1e2d9e5 100644 --- a/cimgui/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml +++ b/cwrappers/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml @@ -11,7 +11,7 @@ android:name="imgui.example.android.MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation|keyboardHidden|screenSize" - android:exported="false"> + android:exported="true"> diff --git a/cimgui/imgui/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt b/cwrappers/imgui/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt rename to cwrappers/imgui/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt diff --git a/cimgui/imgui/examples/example_android_opengl3/android/build.gradle b/cwrappers/imgui/examples/example_android_opengl3/android/build.gradle similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/android/build.gradle rename to cwrappers/imgui/examples/example_android_opengl3/android/build.gradle diff --git a/cimgui/imgui/examples/example_android_opengl3/android/settings.gradle b/cwrappers/imgui/examples/example_android_opengl3/android/settings.gradle similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/android/settings.gradle rename to cwrappers/imgui/examples/example_android_opengl3/android/settings.gradle diff --git a/cimgui/imgui/examples/example_android_opengl3/dummy.go b/cwrappers/imgui/examples/example_android_opengl3/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_android_opengl3/dummy.go rename to cwrappers/imgui/examples/example_android_opengl3/dummy.go diff --git a/cimgui/imgui/examples/example_android_opengl3/main.cpp b/cwrappers/imgui/examples/example_android_opengl3/main.cpp similarity index 99% rename from cimgui/imgui/examples/example_android_opengl3/main.cpp rename to cwrappers/imgui/examples/example_android_opengl3/main.cpp index 2316ce6dd..e0ad5f936 100644 --- a/cimgui/imgui/examples/example_android_opengl3/main.cpp +++ b/cwrappers/imgui/examples/example_android_opengl3/main.cpp @@ -161,7 +161,7 @@ void Init(struct android_app* app) // We load the default font with increased size to improve readability on many devices with "high" DPI. // FIXME: Put some effort into DPI awareness. - // Important: when calling AddFontFromMemoryTTF(), ownership of font_data is transfered by Dear ImGui by default (deleted is handled by Dear ImGui), unless we set FontDataOwnedByAtlas=false in ImFontConfig + // Important: when calling AddFontFromMemoryTTF(), ownership of font_data is transferred by Dear ImGui by default (deleted is handled by Dear ImGui), unless we set FontDataOwnedByAtlas=false in ImFontConfig ImFontConfig font_cfg; font_cfg.SizePixels = 22.0f; io.Fonts->AddFontDefault(&font_cfg); diff --git a/cimgui/imgui/examples/example_apple_metal/README.md b/cwrappers/imgui/examples/example_apple_metal/README.md similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/README.md rename to cwrappers/imgui/examples/example_apple_metal/README.md diff --git a/cimgui/imgui/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj b/cwrappers/imgui/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj rename to cwrappers/imgui/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj diff --git a/cimgui/imgui/examples/example_apple_metal/iOS/Info-iOS.plist b/cwrappers/imgui/examples/example_apple_metal/iOS/Info-iOS.plist similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/iOS/Info-iOS.plist rename to cwrappers/imgui/examples/example_apple_metal/iOS/Info-iOS.plist diff --git a/cimgui/imgui/examples/example_apple_metal/iOS/LaunchScreen.storyboard b/cwrappers/imgui/examples/example_apple_metal/iOS/LaunchScreen.storyboard similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/iOS/LaunchScreen.storyboard rename to cwrappers/imgui/examples/example_apple_metal/iOS/LaunchScreen.storyboard diff --git a/cimgui/imgui/examples/example_apple_metal/macOS/Info-macOS.plist b/cwrappers/imgui/examples/example_apple_metal/macOS/Info-macOS.plist similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/macOS/Info-macOS.plist rename to cwrappers/imgui/examples/example_apple_metal/macOS/Info-macOS.plist diff --git a/cimgui/imgui/examples/example_apple_metal/macOS/MainMenu.storyboard b/cwrappers/imgui/examples/example_apple_metal/macOS/MainMenu.storyboard similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/macOS/MainMenu.storyboard rename to cwrappers/imgui/examples/example_apple_metal/macOS/MainMenu.storyboard diff --git a/cimgui/imgui/examples/example_apple_metal/main.mm b/cwrappers/imgui/examples/example_apple_metal/main.mm similarity index 100% rename from cimgui/imgui/examples/example_apple_metal/main.mm rename to cwrappers/imgui/examples/example_apple_metal/main.mm diff --git a/cimgui/imgui/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj b/cwrappers/imgui/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj similarity index 100% rename from cimgui/imgui/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj rename to cwrappers/imgui/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj diff --git a/cimgui/imgui/examples/example_apple_opengl2/main.mm b/cwrappers/imgui/examples/example_apple_opengl2/main.mm similarity index 100% rename from cimgui/imgui/examples/example_apple_opengl2/main.mm rename to cwrappers/imgui/examples/example_apple_opengl2/main.mm diff --git a/cimgui/imgui/examples/example_glfw_metal/Makefile b/cwrappers/imgui/examples/example_glfw_metal/Makefile similarity index 100% rename from cimgui/imgui/examples/example_glfw_metal/Makefile rename to cwrappers/imgui/examples/example_glfw_metal/Makefile diff --git a/cimgui/imgui/examples/example_glfw_metal/main.mm b/cwrappers/imgui/examples/example_glfw_metal/main.mm similarity index 100% rename from cimgui/imgui/examples/example_glfw_metal/main.mm rename to cwrappers/imgui/examples/example_glfw_metal/main.mm diff --git a/cimgui/imgui/examples/example_glfw_opengl2/Makefile b/cwrappers/imgui/examples/example_glfw_opengl2/Makefile similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl2/Makefile rename to cwrappers/imgui/examples/example_glfw_opengl2/Makefile diff --git a/cimgui/imgui/examples/example_glfw_opengl2/build_win32.bat b/cwrappers/imgui/examples/example_glfw_opengl2/build_win32.bat similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl2/build_win32.bat rename to cwrappers/imgui/examples/example_glfw_opengl2/build_win32.bat diff --git a/cimgui/imgui/examples/example_emscripten_wgpu/dummy.go b/cwrappers/imgui/examples/example_glfw_opengl2/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_emscripten_wgpu/dummy.go rename to cwrappers/imgui/examples/example_glfw_opengl2/dummy.go diff --git a/cimgui/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj b/cwrappers/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj rename to cwrappers/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj diff --git a/cimgui/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters b/cwrappers/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters rename to cwrappers/imgui/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters diff --git a/cimgui/imgui/examples/example_glfw_opengl2/main.cpp b/cwrappers/imgui/examples/example_glfw_opengl2/main.cpp similarity index 98% rename from cimgui/imgui/examples/example_glfw_opengl2/main.cpp rename to cwrappers/imgui/examples/example_glfw_opengl2/main.cpp index 1ed2083c8..df14dca69 100644 --- a/cimgui/imgui/examples/example_glfw_opengl2/main.cpp +++ b/cwrappers/imgui/examples/example_glfw_opengl2/main.cpp @@ -103,6 +103,11 @@ int main(int, char**) // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. glfwPollEvents(); + if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) + { + ImGui_ImplGlfw_Sleep(10); + continue; + } // Start the Dear ImGui frame ImGui_ImplOpenGL2_NewFrame(); diff --git a/cimgui/imgui/examples/example_glfw_opengl3/Makefile b/cwrappers/imgui/examples/example_glfw_opengl3/Makefile similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/Makefile rename to cwrappers/imgui/examples/example_glfw_opengl3/Makefile diff --git a/cimgui/imgui/examples/example_glfw_opengl3/Makefile.emscripten b/cwrappers/imgui/examples/example_glfw_opengl3/Makefile.emscripten similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/Makefile.emscripten rename to cwrappers/imgui/examples/example_glfw_opengl3/Makefile.emscripten diff --git a/cimgui/imgui/examples/example_glfw_opengl3/build_win32.bat b/cwrappers/imgui/examples/example_glfw_opengl3/build_win32.bat similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/build_win32.bat rename to cwrappers/imgui/examples/example_glfw_opengl3/build_win32.bat diff --git a/cimgui/imgui/examples/example_glfw_opengl2/dummy.go b/cwrappers/imgui/examples/example_glfw_opengl3/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl2/dummy.go rename to cwrappers/imgui/examples/example_glfw_opengl3/dummy.go diff --git a/cimgui/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj b/cwrappers/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj rename to cwrappers/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj diff --git a/cimgui/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters b/cwrappers/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters rename to cwrappers/imgui/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters diff --git a/cimgui/imgui/examples/example_glfw_opengl3/main.cpp b/cwrappers/imgui/examples/example_glfw_opengl3/main.cpp similarity index 98% rename from cimgui/imgui/examples/example_glfw_opengl3/main.cpp rename to cwrappers/imgui/examples/example_glfw_opengl3/main.cpp index 4aaf40646..ab1236432 100644 --- a/cimgui/imgui/examples/example_glfw_opengl3/main.cpp +++ b/cwrappers/imgui/examples/example_glfw_opengl3/main.cpp @@ -97,7 +97,7 @@ int main(int, char**) // Setup Platform/Renderer backends ImGui_ImplGlfw_InitForOpenGL(window, true); #ifdef __EMSCRIPTEN__ - ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback("#canvas"); + ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas"); #endif ImGui_ImplOpenGL3_Init(glsl_version); @@ -139,6 +139,11 @@ int main(int, char**) // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. glfwPollEvents(); + if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) + { + ImGui_ImplGlfw_Sleep(10); + continue; + } // Start the Dear ImGui frame ImGui_ImplOpenGL3_NewFrame(); diff --git a/cimgui/imgui/examples/example_glfw_vulkan/CMakeLists.txt b/cwrappers/imgui/examples/example_glfw_vulkan/CMakeLists.txt similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/CMakeLists.txt rename to cwrappers/imgui/examples/example_glfw_vulkan/CMakeLists.txt diff --git a/cimgui/imgui/examples/example_glfw_vulkan/build_win32.bat b/cwrappers/imgui/examples/example_glfw_vulkan/build_win32.bat similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/build_win32.bat rename to cwrappers/imgui/examples/example_glfw_vulkan/build_win32.bat diff --git a/cimgui/imgui/examples/example_glfw_vulkan/build_win64.bat b/cwrappers/imgui/examples/example_glfw_vulkan/build_win64.bat similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/build_win64.bat rename to cwrappers/imgui/examples/example_glfw_vulkan/build_win64.bat diff --git a/cimgui/imgui/examples/example_glfw_opengl3/dummy.go b/cwrappers/imgui/examples/example_glfw_vulkan/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_glfw_opengl3/dummy.go rename to cwrappers/imgui/examples/example_glfw_vulkan/dummy.go diff --git a/cimgui/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj b/cwrappers/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj rename to cwrappers/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj diff --git a/cimgui/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters b/cwrappers/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters rename to cwrappers/imgui/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters diff --git a/cimgui/imgui/examples/example_glfw_vulkan/main.cpp b/cwrappers/imgui/examples/example_glfw_vulkan/main.cpp similarity index 94% rename from cimgui/imgui/examples/example_glfw_vulkan/main.cpp rename to cwrappers/imgui/examples/example_glfw_vulkan/main.cpp index c852e5f4d..2e63bbceb 100644 --- a/cimgui/imgui/examples/example_glfw_vulkan/main.cpp +++ b/cwrappers/imgui/examples/example_glfw_vulkan/main.cpp @@ -21,8 +21,12 @@ #define GLFW_INCLUDE_NONE #define GLFW_INCLUDE_VULKAN #include -#include -//#include + +// Volk headers +#ifdef IMGUI_IMPL_VULKAN_USE_VOLK +#define VOLK_IMPLEMENTATION +#include +#endif // [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers. // To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma. @@ -113,6 +117,9 @@ static VkPhysicalDevice SetupVulkan_SelectPhysicalDevice() static void SetupVulkan(ImVector instance_extensions) { VkResult err; +#ifdef IMGUI_IMPL_VULKAN_USE_VOLK + volkInitialize(); +#endif // Create Vulkan Instance { @@ -151,17 +158,20 @@ static void SetupVulkan(ImVector instance_extensions) create_info.ppEnabledExtensionNames = instance_extensions.Data; err = vkCreateInstance(&create_info, g_Allocator, &g_Instance); check_vk_result(err); +#ifdef IMGUI_IMPL_VULKAN_USE_VOLK + volkLoadInstance(g_Instance); +#endif // Setup the debug report callback #ifdef APP_USE_VULKAN_DEBUG_REPORT - auto vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); - IM_ASSERT(vkCreateDebugReportCallbackEXT != nullptr); + auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT"); + IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr); VkDebugReportCallbackCreateInfoEXT debug_report_ci = {}; debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT; debug_report_ci.pfnCallback = debug_report; debug_report_ci.pUserData = nullptr; - err = vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); + err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport); check_vk_result(err); #endif } @@ -277,8 +287,8 @@ static void CleanupVulkan() #ifdef APP_USE_VULKAN_DEBUG_REPORT // Remove the debug report callback - auto vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); - vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); + auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT"); + f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator); #endif // APP_USE_VULKAN_DEBUG_REPORT vkDestroyDevice(g_Device, g_Allocator); @@ -487,17 +497,19 @@ int main(int, char**) glfwPollEvents(); // Resize swap chain? - if (g_SwapChainRebuild) + int fb_width, fb_height; + glfwGetFramebufferSize(window, &fb_width, &fb_height); + if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height)) { - int width, height; - glfwGetFramebufferSize(window, &width, &height); - if (width > 0 && height > 0) - { - ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); - ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, width, height, g_MinImageCount); - g_MainWindowData.FrameIndex = 0; - g_SwapChainRebuild = false; - } + ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount); + ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount); + g_MainWindowData.FrameIndex = 0; + g_SwapChainRebuild = false; + } + if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) + { + ImGui_ImplGlfw_Sleep(10); + continue; } // Start the Dear ImGui frame diff --git a/cwrappers/imgui/examples/example_glfw_wgpu/CMakeLists.txt b/cwrappers/imgui/examples/example_glfw_wgpu/CMakeLists.txt new file mode 100644 index 000000000..6be95af44 --- /dev/null +++ b/cwrappers/imgui/examples/example_glfw_wgpu/CMakeLists.txt @@ -0,0 +1,112 @@ +# Building for desktop (WebGPU-native) with Dawn: +# 1. git clone https://github.com/google/dawn dawn +# 2. cmake -B build -DIMGUI_DAWN_DIR=dawn +# 3. cmake --build build +# The resulting binary will be found at one of the following locations: +# * build/Debug/example_glfw_wgpu[.exe] +# * build/example_glfw_wgpu[.exe] + +# Building for Emscripten: +# 1. Install Emscripten SDK following the instructions: https://emscripten.org/docs/getting_started/downloads.html +# 2. Install Ninja build system +# 3. emcmake cmake -G Ninja -B build +# 3. cmake --build build +# 4. emrun build/index.html + +cmake_minimum_required(VERSION 3.10.2) +project(imgui_example_glfw_wgpu C CXX) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) +endif() + +set(CMAKE_CXX_STANDARD 17) # Dawn requires C++17 + +# Dear ImGui +set(IMGUI_DIR ../../) + +# Libraries +if(EMSCRIPTEN) + if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "3.1.57") + set(IMGUI_EMSCRIPTEN_GLFW3 "--use-port=contrib.glfw3" CACHE STRING "Choose between --use-port=contrib.glfw3 and -sUSE_GLFW=3 for GLFW implementation (default to --use-port=contrib.glfw3)") + else() + # cannot use contrib.glfw3 prior to 3.1.57 + set(IMGUI_EMSCRIPTEN_GLFW3 "-sUSE_GLFW=3" CACHE STRING "Use -sUSE_GLFW=3 for GLFW implementation" FORCE) + endif() + set(LIBRARIES glfw) + add_compile_options(-sDISABLE_EXCEPTION_CATCHING=1 -DIMGUI_DISABLE_FILE_FUNCTIONS=1) +else() + # Dawn wgpu desktop + set(DAWN_FETCH_DEPENDENCIES ON) + set(IMGUI_DAWN_DIR CACHE PATH "Path to Dawn repository") + if (NOT IMGUI_DAWN_DIR) + message(FATAL_ERROR "Please specify the Dawn repository by setting IMGUI_DAWN_DIR") + endif() + + option(DAWN_FETCH_DEPENDENCIES "Use fetch_dawn_dependencies.py as an alternative to using depot_tools" ON) + + # Dawn builds many things by default - disable things we don't need + option(DAWN_BUILD_SAMPLES "Enables building Dawn's samples" OFF) + option(TINT_BUILD_CMD_TOOLS "Build the Tint command line tools" OFF) + option(TINT_BUILD_DOCS "Build documentation" OFF) + option(TINT_BUILD_TESTS "Build tests" OFF) + if (NOT APPLE) + option(TINT_BUILD_MSL_WRITER "Build the MSL output writer" OFF) + endif() + if(WIN32) + option(TINT_BUILD_SPV_READER "Build the SPIR-V input reader" OFF) + option(TINT_BUILD_WGSL_READER "Build the WGSL input reader" ON) + option(TINT_BUILD_GLSL_WRITER "Build the GLSL output writer" OFF) + option(TINT_BUILD_GLSL_VALIDATOR "Build the GLSL output validator" OFF) + option(TINT_BUILD_SPV_WRITER "Build the SPIR-V output writer" OFF) + option(TINT_BUILD_WGSL_WRITER "Build the WGSL output writer" ON) + endif() + + add_subdirectory("${IMGUI_DAWN_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/dawn" EXCLUDE_FROM_ALL) + + set(LIBRARIES webgpu_dawn webgpu_cpp webgpu_glfw glfw) +endif() + +add_executable(example_glfw_wgpu + main.cpp + # backend files + ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp + ${IMGUI_DIR}/backends/imgui_impl_wgpu.cpp + # Dear ImGui files + ${IMGUI_DIR}/imgui.cpp + ${IMGUI_DIR}/imgui_draw.cpp + ${IMGUI_DIR}/imgui_demo.cpp + ${IMGUI_DIR}/imgui_tables.cpp + ${IMGUI_DIR}/imgui_widgets.cpp +) +target_include_directories(example_glfw_wgpu PUBLIC + ${IMGUI_DIR} + ${IMGUI_DIR}/backends +) + +target_link_libraries(example_glfw_wgpu PUBLIC ${LIBRARIES}) + +# Emscripten settings +if(EMSCRIPTEN) + if("${IMGUI_EMSCRIPTEN_GLFW3}" STREQUAL "--use-port=contrib.glfw3") + target_compile_options(example_glfw_wgpu PUBLIC + "${IMGUI_EMSCRIPTEN_GLFW3}" + ) + endif() + message(STATUS "Using ${IMGUI_EMSCRIPTEN_GLFW3} GLFW implementation") + target_link_options(example_glfw_wgpu PRIVATE + "-sUSE_WEBGPU=1" + "${IMGUI_EMSCRIPTEN_GLFW3}" + "-sWASM=1" + "-sALLOW_MEMORY_GROWTH=1" + "-sNO_EXIT_RUNTIME=0" + "-sASSERTIONS=1" + "-sDISABLE_EXCEPTION_CATCHING=1" + "-sNO_FILESYSTEM=1" + ) + set_target_properties(example_glfw_wgpu PROPERTIES OUTPUT_NAME "index") + # copy our custom index.html to build directory + add_custom_command(TARGET example_glfw_wgpu POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_LIST_DIR}/web/index.html" $ + ) +endif() diff --git a/cimgui/imgui/examples/example_emscripten_wgpu/Makefile.emscripten b/cwrappers/imgui/examples/example_glfw_wgpu/Makefile.emscripten similarity index 100% rename from cimgui/imgui/examples/example_emscripten_wgpu/Makefile.emscripten rename to cwrappers/imgui/examples/example_glfw_wgpu/Makefile.emscripten diff --git a/cimgui/imgui/examples/example_emscripten_wgpu/README.md b/cwrappers/imgui/examples/example_glfw_wgpu/README.md similarity index 90% rename from cimgui/imgui/examples/example_emscripten_wgpu/README.md rename to cwrappers/imgui/examples/example_glfw_wgpu/README.md index e60025da2..399d431ff 100644 --- a/cimgui/imgui/examples/example_emscripten_wgpu/README.md +++ b/cwrappers/imgui/examples/example_glfw_wgpu/README.md @@ -6,7 +6,7 @@ - You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup. -- Then build using `make -f Makefile.emscripten` while in the `example_emscripten_wgpu/` directory. +- Then build using `make -f Makefile.emscripten` while in the `example_glfw_wgpu/` directory. - Requires recent Emscripten as WGPU is still a work-in-progress API. @@ -18,7 +18,7 @@ To run on a local machine: - Otherwise, generally you will need a local webserver: - Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):
_"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// [XHR](https://emscripten.org/docs/site/glossary.html#term-xhr) requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a [local webserver](https://emscripten.org/docs/getting_started/FAQ.html#faq-local-webserver) and then open http://localhost:8000/hello.html."_ - - Emscripten SDK has a handy `emrun` command: `emrun web/example_emscripten_opengl3.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details. + - Emscripten SDK has a handy `emrun` command: `emrun web/example_glfw_wgpu.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details. - You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses). - You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`. - If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only). diff --git a/cimgui/imgui/examples/example_glfw_vulkan/dummy.go b/cwrappers/imgui/examples/example_glfw_wgpu/dummy.go similarity index 100% rename from cimgui/imgui/examples/example_glfw_vulkan/dummy.go rename to cwrappers/imgui/examples/example_glfw_wgpu/dummy.go diff --git a/cimgui/imgui/examples/example_emscripten_wgpu/main.cpp b/cwrappers/imgui/examples/example_glfw_wgpu/main.cpp similarity index 78% rename from cimgui/imgui/examples/example_emscripten_wgpu/main.cpp rename to cwrappers/imgui/examples/example_glfw_wgpu/main.cpp index 910da0833..723b69da4 100644 --- a/cimgui/imgui/examples/example_emscripten_wgpu/main.cpp +++ b/cwrappers/imgui/examples/example_glfw_wgpu/main.cpp @@ -1,5 +1,6 @@ -// Dear ImGui: standalone example application for Emscripten, using GLFW + WebGPU -// (Emscripten is a C++-to-javascript compiler, used to publish executables for the web. See https://emscripten.org/) +// Dear ImGui: standalone example application for using GLFW + WebGPU +// - Emscripten is supported for publishing on web. See https://emscripten.org. +// - Dawn is used as a WebGPU implementation on desktop. // Learn about Dear ImGui: // - FAQ https://dearimgui.com/faq @@ -11,11 +12,15 @@ #include "imgui_impl_glfw.h" #include "imgui_impl_wgpu.h" #include + #ifdef __EMSCRIPTEN__ #include #include #include +#else +#include #endif + #include #include #include @@ -26,15 +31,16 @@ #endif // Global WebGPU required states +static WGPUInstance wgpu_instance = nullptr; static WGPUDevice wgpu_device = nullptr; static WGPUSurface wgpu_surface = nullptr; static WGPUTextureFormat wgpu_preferred_fmt = WGPUTextureFormat_RGBA8Unorm; static WGPUSwapChain wgpu_swap_chain = nullptr; -static int wgpu_swap_chain_width = 0; -static int wgpu_swap_chain_height = 0; +static int wgpu_swap_chain_width = 1280; +static int wgpu_swap_chain_height = 720; // Forward declarations -static bool InitWGPU(); +static bool InitWGPU(GLFWwindow* window); static void CreateSwapChain(int width, int height); static void glfw_error_callback(int error, const char* description) @@ -66,18 +72,19 @@ int main(int, char**) // Make sure GLFW does not initialize any graphics context. // This needs to be done explicitly later. glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); - GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+WebGPU example", nullptr, nullptr); + GLFWwindow* window = glfwCreateWindow(wgpu_swap_chain_width, wgpu_swap_chain_height, "Dear ImGui GLFW+WebGPU example", nullptr, nullptr); if (window == nullptr) return 1; // Initialize the WebGPU environment - if (!InitWGPU()) + if (!InitWGPU(window)) { if (window) glfwDestroyWindow(window); glfwTerminate(); return 1; } + CreateSwapChain(wgpu_swap_chain_width, wgpu_swap_chain_height); glfwShowWindow(window); // Setup Dear ImGui context @@ -86,6 +93,7 @@ int main(int, char**) ImGuiIO& io = ImGui::GetIO(); (void)io; io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls + io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking // Setup Dear ImGui style ImGui::StyleColorsDark(); @@ -94,7 +102,7 @@ int main(int, char**) // Setup Platform/Renderer backends ImGui_ImplGlfw_InitForOther(window, true); #ifdef __EMSCRIPTEN__ - ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback("#canvas"); + ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas"); #endif ImGui_ImplWGPU_InitInfo init_info; init_info.Device = wgpu_device; @@ -115,7 +123,7 @@ int main(int, char**) //io.Fonts->AddFontDefault(); #ifndef IMGUI_DISABLE_FILE_FUNCTIONS //io.Fonts->AddFontFromFileTTF("fonts/segoeui.ttf", 18.0f); - io.Fonts->AddFontFromFileTTF("fonts/DroidSans.ttf", 16.0f); + //io.Fonts->AddFontFromFileTTF("fonts/DroidSans.ttf", 16.0f); //io.Fonts->AddFontFromFileTTF("fonts/Roboto-Medium.ttf", 16.0f); //io.Fonts->AddFontFromFileTTF("fonts/Cousine-Regular.ttf", 15.0f); //io.Fonts->AddFontFromFileTTF("fonts/ProggyTiny.ttf", 10.0f); @@ -144,11 +152,16 @@ int main(int, char**) // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data. // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags. glfwPollEvents(); + if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0) + { + ImGui_ImplGlfw_Sleep(10); + continue; + } // React to changes in screen size int width, height; glfwGetFramebufferSize((GLFWwindow*)window, &width, &height); - if (width != wgpu_swap_chain_width && height != wgpu_swap_chain_height) + if (width != wgpu_swap_chain_width || height != wgpu_swap_chain_height) { ImGui_ImplWGPU_InvalidateDeviceObjects(); CreateSwapChain(width, height); @@ -200,7 +213,13 @@ int main(int, char**) // Rendering ImGui::Render(); +#ifndef __EMSCRIPTEN__ + // Tick needs to be called in Dawn to display validation errors + wgpuDeviceTick(wgpu_device); +#endif + WGPURenderPassColorAttachment color_attachments = {}; + color_attachments.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED; color_attachments.loadOp = WGPULoadOp_Clear; color_attachments.storeOp = WGPUStoreOp_Store; color_attachments.clearValue = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w }; @@ -222,6 +241,15 @@ int main(int, char**) WGPUCommandBuffer cmd_buffer = wgpuCommandEncoderFinish(encoder, &cmd_buffer_desc); WGPUQueue queue = wgpuDeviceGetQueue(wgpu_device); wgpuQueueSubmit(queue, 1, &cmd_buffer); + +#ifndef __EMSCRIPTEN__ + wgpuSwapChainPresent(wgpu_swap_chain); +#endif + + wgpuTextureViewRelease(color_attachments.view); + wgpuRenderPassEncoderRelease(pass); + wgpuCommandEncoderRelease(encoder); + wgpuCommandBufferRelease(cmd_buffer); } #ifdef __EMSCRIPTEN__ EMSCRIPTEN_MAINLOOP_END; @@ -238,29 +266,72 @@ int main(int, char**) return 0; } -static bool InitWGPU() +#ifndef __EMSCRIPTEN__ +static WGPUAdapter RequestAdapter(WGPUInstance instance) +{ + auto onAdapterRequestEnded = [](WGPURequestAdapterStatus status, WGPUAdapter adapter, const char* message, void* pUserData) + { + if (status == WGPURequestAdapterStatus_Success) + *(WGPUAdapter*)(pUserData) = adapter; + else + printf("Could not get WebGPU adapter: %s\n", message); +}; + WGPUAdapter adapter; + wgpuInstanceRequestAdapter(instance, nullptr, onAdapterRequestEnded, (void*)&adapter); + return adapter; +} + +static WGPUDevice RequestDevice(WGPUAdapter& adapter) +{ + auto onDeviceRequestEnded = [](WGPURequestDeviceStatus status, WGPUDevice device, const char* message, void* pUserData) + { + if (status == WGPURequestDeviceStatus_Success) + *(WGPUDevice*)(pUserData) = device; + else + printf("Could not get WebGPU device: %s\n", message); + }; + WGPUDevice device; + wgpuAdapterRequestDevice(adapter, nullptr, onDeviceRequestEnded, (void*)&device); + return device; +} +#endif + +static bool InitWGPU(GLFWwindow* window) { + wgpu::Instance instance = wgpuCreateInstance(nullptr); + +#ifdef __EMSCRIPTEN__ wgpu_device = emscripten_webgpu_get_device(); if (!wgpu_device) return false; +#else + WGPUAdapter adapter = RequestAdapter(instance.Get()); + if (!adapter) + return false; + wgpu_device = RequestDevice(adapter); +#endif - wgpuDeviceSetUncapturedErrorCallback(wgpu_device, wgpu_error_callback, nullptr); - - // Use C++ wrapper due to misbehavior in Emscripten. - // Some offset computation for wgpuInstanceCreateSurface in JavaScript - // seem to be inline with struct alignments in the C++ structure +#ifdef __EMSCRIPTEN__ wgpu::SurfaceDescriptorFromCanvasHTMLSelector html_surface_desc = {}; html_surface_desc.selector = "#canvas"; - wgpu::SurfaceDescriptor surface_desc = {}; surface_desc.nextInChain = &html_surface_desc; - - wgpu::Instance instance = wgpuCreateInstance(nullptr); wgpu::Surface surface = instance.CreateSurface(&surface_desc); + wgpu::Adapter adapter = {}; wgpu_preferred_fmt = (WGPUTextureFormat)surface.GetPreferredFormat(adapter); +#else + wgpu::Surface surface = wgpu::glfw::CreateSurfaceForWindow(instance, window); + if (!surface) + return false; + wgpu_preferred_fmt = WGPUTextureFormat_BGRA8Unorm; +#endif + + wgpu_instance = instance.MoveToCHandle(); wgpu_surface = surface.MoveToCHandle(); + wgpuDeviceSetUncapturedErrorCallback(wgpu_device, wgpu_error_callback, nullptr); + return true; } diff --git a/cimgui/imgui/examples/example_emscripten_wgpu/web/index.html b/cwrappers/imgui/examples/example_glfw_wgpu/web/index.html similarity index 94% rename from cimgui/imgui/examples/example_emscripten_wgpu/web/index.html rename to cwrappers/imgui/examples/example_glfw_wgpu/web/index.html index 82b1c4221..a2a91c4a7 100644 --- a/cimgui/imgui/examples/example_emscripten_wgpu/web/index.html +++ b/cwrappers/imgui/examples/example_glfw_wgpu/web/index.html @@ -3,7 +3,7 @@ - Dear ImGui Emscripten+WebGPU example + Dear ImGui Emscripten+GLFW+WebGPU example