Browse Source

Sync With IMGUI v1.91.0

Coldzer0 9 months ago
parent
commit
1616408070

+ 3 - 4
impl/PasImGui.Backend.SDL2.pas

@@ -417,7 +417,7 @@ End;
 
 
 // Done
 // Done
 // Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow().
 // Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow().
-Procedure ImGui_ImplSDL2_SetPlatformImeData(viewport: PImGuiViewport; Data: PImGuiPlatformImeData); Cdecl;
+Procedure ImGui_ImplSDL2_SetPlatformImeData(ctx: PImGuiContext; viewport: PImGuiViewport; data: PImGuiPlatformImeData); Cdecl;
 Var
 Var
   r: TSDL_Rect;
   r: TSDL_Rect;
 Begin
 Begin
@@ -617,7 +617,7 @@ Begin
   io^.SetClipboardTextFn := @ImGui_ImplSDL2_SetClipboardText;
   io^.SetClipboardTextFn := @ImGui_ImplSDL2_SetClipboardText;
   io^.GetClipboardTextFn := @ImGui_ImplSDL2_GetClipboardText;
   io^.GetClipboardTextFn := @ImGui_ImplSDL2_GetClipboardText;
   io^.ClipboardUserData := nil;
   io^.ClipboardUserData := nil;
-  io^.SetPlatformImeDataFn := @ImGui_ImplSDL2_SetPlatformImeData;
+  io^.PlatformSetImeDataFn := @ImGui_ImplSDL2_SetPlatformImeData;
 
 
   // Load mouse cursors
   // Load mouse cursors
   bd^.MouseCursors[ImGuiMouseCursor_Arrow] := SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
   bd^.MouseCursors[ImGuiMouseCursor_Arrow] := SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW);
@@ -900,8 +900,7 @@ Begin
   io^.DisplaySize := ImVec2.New(Single(w), Single(h));
   io^.DisplaySize := ImVec2.New(Single(w), Single(h));
 
 
   If (w > 0) And (h > 0) Then
   If (w > 0) And (h > 0) Then
-    io^.DisplayFramebufferScale :=
-      ImVec2.New(Single(display_w) / w, Single(display_h) / h);
+    io^.DisplayFramebufferScale := ImVec2.New(Single(display_w) / w, Single(display_h) / h);
 
 
   // Update monitors
   // Update monitors
   If bd^.WantUpdateMonitors Then
   If bd^.WantUpdateMonitors Then

+ 7 - 7
impl/PasImGui.Renderer.OpenGL3.pas

@@ -89,6 +89,7 @@ Type
     ElementsHandle: GLuint;
     ElementsHandle: GLuint;
     VertexBufferSize: GLsizeiptr;
     VertexBufferSize: GLsizeiptr;
     IndexBufferSize: GLsizeiptr;
     IndexBufferSize: GLsizeiptr;
+    HasPolygonMode : Boolean;
     HasClipOrigin: Boolean;
     HasClipOrigin: Boolean;
     UseBufferSubData: Boolean;
     UseBufferSubData: Boolean;
   End;
   End;
@@ -612,8 +613,7 @@ Begin
   If (bd^.GlVersion >= 320) Then
   If (bd^.GlVersion >= 320) Then
     glGetIntegerv(GL_CONTEXT_PROFILE_MASK, @bd^.GlProfileMask);
     glGetIntegerv(GL_CONTEXT_PROFILE_MASK, @bd^.GlProfileMask);
 
 
-  bd^.GlProfileIsCompat := (bd^.GlProfileMask And
-    GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) <> 0;
+  bd^.GlProfileIsCompat := (bd^.GlProfileMask And GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) <> 0;
 
 
   {$IfDef IMGUI_OPENGL_ES3}
   {$IfDef IMGUI_OPENGL_ES3}
     bd^.GlProfileIsES3 := true;
     bd^.GlProfileIsES3 := true;
@@ -946,15 +946,13 @@ Begin
   end;
   end;
 
 
   // Create shaders
   // Create shaders
-  vertex_shader_with_version[0] := @bd^.GlslVersionString[0];
-  vertex_shader_with_version[1] := vertex_shader;
+  vertex_shader_with_version := [@bd^.GlslVersionString[0], vertex_shader];
   vert_handle := glCreateShader(GL_VERTEX_SHADER);
   vert_handle := glCreateShader(GL_VERTEX_SHADER);
   glShaderSource(vert_handle, 2, @vertex_shader_with_version, nil);
   glShaderSource(vert_handle, 2, @vertex_shader_with_version, nil);
   glCompileShader(vert_handle);
   glCompileShader(vert_handle);
   CheckShader(vert_handle, 'vertex shader');
   CheckShader(vert_handle, 'vertex shader');
 
 
-  fragment_shader_with_version[0] := @bd^.GlslVersionString[0];
-  fragment_shader_with_version[1] := fragment_shader;
+  fragment_shader_with_version := [@bd^.GlslVersionString[0], fragment_shader];
   frag_handle := glCreateShader(GL_FRAGMENT_SHADER);
   frag_handle := glCreateShader(GL_FRAGMENT_SHADER);
   glShaderSource(frag_handle, 2, @fragment_shader_with_version, nil);
   glShaderSource(frag_handle, 2, @fragment_shader_with_version, nil);
   glCompileShader(frag_handle);
   glCompileShader(frag_handle);
@@ -999,10 +997,12 @@ Var
   bd: PImGui_ImplOpenGL3_Data;
   bd: PImGui_ImplOpenGL3_Data;
 Begin
 Begin
   bd := ImGui_ImplOpenGL3_GetBackendData();
   bd := ImGui_ImplOpenGL3_GetBackendData();
-  Assert(bd <> nil, 'Did you call ImGui_ImplOpenGL3_Init()?');
+  Assert(bd <> nil, 'Context or backend not initialized! Did you call ImGui_OpenGL3_Init()?');
 
 
   if (bd^.ShaderHandle = 0) then
   if (bd^.ShaderHandle = 0) then
       ImGui_ImplOpenGL3_CreateDeviceObjects();
       ImGui_ImplOpenGL3_CreateDeviceObjects();
+  if (bd^.FontTexture = 0)then
+      ImGui_ImplOpenGL3_CreateFontsTexture();
 End;
 End;
 
 
 procedure ImGui_ImplOpenGL3_ShutdownPlatformInterface();
 procedure ImGui_ImplOpenGL3_ShutdownPlatformInterface();

BIN
libs/static/linux64/libcimgui.a


BIN
libs/static/win64/libcimgui.a


BIN
libs/static/win64/libmsvcr120.a


BIN
libs/static/win64/libmsvcrt.a


BIN
libs/static/win64/libmsvcrt_atexit.a


BIN
libs/static/win64/libstdc++.a


+ 25 - 0
src/ImGuiApis.Impl.inc

@@ -1,4 +1,7 @@
 
 
+{ImFontGlyph}
+
+
 {ImFontGlyph}
 {ImFontGlyph}
 
 
 function ImFontGlyph.GetData0Value(const AIndex: Integer): Cardinal;
 function ImFontGlyph.GetData0Value(const AIndex: Integer): Cardinal;
@@ -21,6 +24,28 @@ begin
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
 end;
 end;
 
 
+{ImGuiBoxSelectState}
+
+function ImGuiBoxSelectState.GetData0Value(const AIndex: Integer): Cardinal;
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Result := (Data0 shr Offset) and Mask;
+end;
+
+procedure ImGuiBoxSelectState.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+var
+  BitCount, Offset, Mask: Cardinal;
+begin
+  BitCount := AIndex and $FF;
+  Offset := AIndex shr 8;
+  Mask := ((1 shl BitCount) - 1);
+  Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
+end;
+
 {ImGuiDockNode}
 {ImGuiDockNode}
 
 
 function ImGuiDockNode.GetData0Value(const AIndex: Integer): Cardinal;
 function ImGuiDockNode.GetData0Value(const AIndex: Integer): Cardinal;

+ 389 - 107
src/PasImGui.Apis.inc

@@ -50,6 +50,18 @@ const
   ImGuiChildFlags_FrameStyle = 128;
   ImGuiChildFlags_FrameStyle = 128;
   ImGuiChildFlags_NavFlattened = 256;
   ImGuiChildFlags_NavFlattened = 256;
 
 
+type
+  ImGuiItemFlags_ = Integer;
+  PImGuiItemFlags_ = ^ImGuiItemFlags_;
+
+const
+  ImGuiItemFlags_None = 0;
+  ImGuiItemFlags_NoTabStop = 1;
+  ImGuiItemFlags_NoNav = 2;
+  ImGuiItemFlags_NoNavDefaultFocus = 4;
+  ImGuiItemFlags_ButtonRepeat = 8;
+  ImGuiItemFlags_AutoClosePopups = 16;
+
 type
 type
   ImGuiInputTextFlags_ = Integer;
   ImGuiInputTextFlags_ = Integer;
   PImGuiInputTextFlags_ = ^ImGuiInputTextFlags_;
   PImGuiInputTextFlags_ = ^ImGuiInputTextFlags_;
@@ -128,11 +140,12 @@ type
 
 
 const
 const
   ImGuiSelectableFlags_None = 0;
   ImGuiSelectableFlags_None = 0;
-  ImGuiSelectableFlags_DontClosePopups = 1;
+  ImGuiSelectableFlags_NoAutoClosePopups = 1;
   ImGuiSelectableFlags_SpanAllColumns = 2;
   ImGuiSelectableFlags_SpanAllColumns = 2;
   ImGuiSelectableFlags_AllowDoubleClick = 4;
   ImGuiSelectableFlags_AllowDoubleClick = 4;
   ImGuiSelectableFlags_Disabled = 8;
   ImGuiSelectableFlags_Disabled = 8;
   ImGuiSelectableFlags_AllowOverlap = 16;
   ImGuiSelectableFlags_AllowOverlap = 16;
+  ImGuiSelectableFlags_Highlight = 32;
 
 
 type
 type
   ImGuiComboFlags_ = Integer;
   ImGuiComboFlags_ = Integer;
@@ -272,7 +285,8 @@ const
   ImGuiDataType_U64 = 7;
   ImGuiDataType_U64 = 7;
   ImGuiDataType_Float = 8;
   ImGuiDataType_Float = 8;
   ImGuiDataType_Double = 9;
   ImGuiDataType_Double = 9;
-  ImGuiDataType_COUNT = 10;
+  ImGuiDataType_Bool = 10;
+  ImGuiDataType_COUNT = 11;
 
 
 type
 type
   ImGuiDir = Integer;
   ImGuiDir = Integer;
@@ -575,13 +589,14 @@ const
   ImGuiCol_TableBorderLight = 48;
   ImGuiCol_TableBorderLight = 48;
   ImGuiCol_TableRowBg = 49;
   ImGuiCol_TableRowBg = 49;
   ImGuiCol_TableRowBgAlt = 50;
   ImGuiCol_TableRowBgAlt = 50;
-  ImGuiCol_TextSelectedBg = 51;
-  ImGuiCol_DragDropTarget = 52;
-  ImGuiCol_NavHighlight = 53;
-  ImGuiCol_NavWindowingHighlight = 54;
-  ImGuiCol_NavWindowingDimBg = 55;
-  ImGuiCol_ModalWindowDimBg = 56;
-  ImGuiCol_COUNT = 57;
+  ImGuiCol_TextLink = 51;
+  ImGuiCol_TextSelectedBg = 52;
+  ImGuiCol_DragDropTarget = 53;
+  ImGuiCol_NavHighlight = 54;
+  ImGuiCol_NavWindowingHighlight = 55;
+  ImGuiCol_NavWindowingDimBg = 56;
+  ImGuiCol_ModalWindowDimBg = 57;
+  ImGuiCol_COUNT = 58;
 
 
 type
 type
   ImGuiStyleVar_ = Integer;
   ImGuiStyleVar_ = Integer;
@@ -613,15 +628,16 @@ const
   ImGuiStyleVar_TabRounding = 22;
   ImGuiStyleVar_TabRounding = 22;
   ImGuiStyleVar_TabBorderSize = 23;
   ImGuiStyleVar_TabBorderSize = 23;
   ImGuiStyleVar_TabBarBorderSize = 24;
   ImGuiStyleVar_TabBarBorderSize = 24;
-  ImGuiStyleVar_TableAngledHeadersAngle = 25;
-  ImGuiStyleVar_TableAngledHeadersTextAlign = 26;
-  ImGuiStyleVar_ButtonTextAlign = 27;
-  ImGuiStyleVar_SelectableTextAlign = 28;
-  ImGuiStyleVar_SeparatorTextBorderSize = 29;
-  ImGuiStyleVar_SeparatorTextAlign = 30;
-  ImGuiStyleVar_SeparatorTextPadding = 31;
-  ImGuiStyleVar_DockingSeparatorSize = 32;
-  ImGuiStyleVar_COUNT = 33;
+  ImGuiStyleVar_TabBarOverlineSize = 25;
+  ImGuiStyleVar_TableAngledHeadersAngle = 26;
+  ImGuiStyleVar_TableAngledHeadersTextAlign = 27;
+  ImGuiStyleVar_ButtonTextAlign = 28;
+  ImGuiStyleVar_SelectableTextAlign = 29;
+  ImGuiStyleVar_SeparatorTextBorderSize = 30;
+  ImGuiStyleVar_SeparatorTextAlign = 31;
+  ImGuiStyleVar_SeparatorTextPadding = 32;
+  ImGuiStyleVar_DockingSeparatorSize = 33;
+  ImGuiStyleVar_COUNT = 34;
 
 
 type
 type
   ImGuiButtonFlags_ = Integer;
   ImGuiButtonFlags_ = Integer;
@@ -825,6 +841,38 @@ const
   ImGuiTableBgTarget_RowBg1 = 2;
   ImGuiTableBgTarget_RowBg1 = 2;
   ImGuiTableBgTarget_CellBg = 3;
   ImGuiTableBgTarget_CellBg = 3;
 
 
+type
+  ImGuiMultiSelectFlags_ = Integer;
+  PImGuiMultiSelectFlags_ = ^ImGuiMultiSelectFlags_;
+
+const
+  ImGuiMultiSelectFlags_None = 0;
+  ImGuiMultiSelectFlags_SingleSelect = 1;
+  ImGuiMultiSelectFlags_NoSelectAll = 2;
+  ImGuiMultiSelectFlags_NoRangeSelect = 4;
+  ImGuiMultiSelectFlags_NoAutoSelect = 8;
+  ImGuiMultiSelectFlags_NoAutoClear = 16;
+  ImGuiMultiSelectFlags_NoAutoClearOnReselect = 32;
+  ImGuiMultiSelectFlags_BoxSelect1d = 64;
+  ImGuiMultiSelectFlags_BoxSelect2d = 128;
+  ImGuiMultiSelectFlags_BoxSelectNoScroll = 256;
+  ImGuiMultiSelectFlags_ClearOnEscape = 512;
+  ImGuiMultiSelectFlags_ClearOnClickVoid = 1024;
+  ImGuiMultiSelectFlags_ScopeWindow = 2048;
+  ImGuiMultiSelectFlags_ScopeRect = 4096;
+  ImGuiMultiSelectFlags_SelectOnClick = 8192;
+  ImGuiMultiSelectFlags_SelectOnClickRelease = 16384;
+  ImGuiMultiSelectFlags_NavWrapX = 65536;
+
+type
+  ImGuiSelectionRequestType = Integer;
+  PImGuiSelectionRequestType = ^ImGuiSelectionRequestType;
+
+const
+  ImGuiSelectionRequestType_None = 0;
+  ImGuiSelectionRequestType_SetAll = 1;
+  ImGuiSelectionRequestType_SetRange = 2;
+
 type
 type
   ImDrawFlags_ = Integer;
   ImDrawFlags_ = Integer;
   PImDrawFlags_ = ^ImDrawFlags_;
   PImDrawFlags_ = ^ImDrawFlags_;
@@ -892,28 +940,24 @@ type
   PImGuiDataTypePrivate_ = ^ImGuiDataTypePrivate_;
   PImGuiDataTypePrivate_ = ^ImGuiDataTypePrivate_;
 
 
 const
 const
-  ImGuiDataType_String = 11;
-  ImGuiDataType_Pointer = 12;
-  ImGuiDataType_ID = 13;
+  ImGuiDataType_String = 12;
+  ImGuiDataType_Pointer = 13;
+  ImGuiDataType_ID = 14;
 
 
 type
 type
-  ImGuiItemFlags_ = Integer;
-  PImGuiItemFlags_ = ^ImGuiItemFlags_;
+  ImGuiItemFlagsPrivate_ = Integer;
+  PImGuiItemFlagsPrivate_ = ^ImGuiItemFlagsPrivate_;
 
 
 const
 const
-  ImGuiItemFlags_None = 0;
-  ImGuiItemFlags_NoTabStop = 1;
-  ImGuiItemFlags_ButtonRepeat = 2;
-  ImGuiItemFlags_Disabled = 4;
-  ImGuiItemFlags_NoNav = 8;
-  ImGuiItemFlags_NoNavDefaultFocus = 16;
-  ImGuiItemFlags_SelectableDontClosePopup = 32;
-  ImGuiItemFlags_MixedValue = 64;
-  ImGuiItemFlags_ReadOnly = 128;
-  ImGuiItemFlags_NoWindowHoverableCheck = 256;
-  ImGuiItemFlags_AllowOverlap = 512;
-  ImGuiItemFlags_Inputable = 1024;
-  ImGuiItemFlags_HasSelectionUserData = 2048;
+  ImGuiItemFlags_Disabled = 1024;
+  ImGuiItemFlags_ReadOnly = 2048;
+  ImGuiItemFlags_MixedValue = 4096;
+  ImGuiItemFlags_NoWindowHoverableCheck = 8192;
+  ImGuiItemFlags_AllowOverlap = 16384;
+  ImGuiItemFlags_Inputable = 1048576;
+  ImGuiItemFlags_HasSelectionUserData = 2097152;
+  ImGuiItemFlags_IsMultiSelect = 4194304;
+  ImGuiItemFlags_Default_ = 16;
 
 
 type
 type
   ImGuiItemStatusFlags_ = Integer;
   ImGuiItemStatusFlags_ = Integer;
@@ -1011,8 +1055,8 @@ type
   PImGuiTreeNodeFlagsPrivate_ = ^ImGuiTreeNodeFlagsPrivate_;
   PImGuiTreeNodeFlagsPrivate_ = ^ImGuiTreeNodeFlagsPrivate_;
 
 
 const
 const
-  ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1048576;
-  ImGuiTreeNodeFlags_UpsideDownArrow = 2097152;
+  ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 268435456;
+  ImGuiTreeNodeFlags_UpsideDownArrow = 536870912;
 
 
 type
 type
   ImGuiSeparatorFlags_ = Integer;
   ImGuiSeparatorFlags_ = Integer;
@@ -1125,6 +1169,7 @@ const
   ImGuiNextItemDataFlags_HasOpen = 2;
   ImGuiNextItemDataFlags_HasOpen = 2;
   ImGuiNextItemDataFlags_HasShortcut = 4;
   ImGuiNextItemDataFlags_HasShortcut = 4;
   ImGuiNextItemDataFlags_HasRefVal = 8;
   ImGuiNextItemDataFlags_HasRefVal = 8;
+  ImGuiNextItemDataFlags_HasStorageID = 16;
 
 
 type
 type
   ImGuiPopupPositionPolicy = Integer;
   ImGuiPopupPositionPolicy = Integer;
@@ -1354,10 +1399,11 @@ const
   ImGuiLocKey_WindowingMainMenuBar = 5;
   ImGuiLocKey_WindowingMainMenuBar = 5;
   ImGuiLocKey_WindowingPopup = 6;
   ImGuiLocKey_WindowingPopup = 6;
   ImGuiLocKey_WindowingUntitled = 7;
   ImGuiLocKey_WindowingUntitled = 7;
-  ImGuiLocKey_DockingHideTabBar = 8;
-  ImGuiLocKey_DockingHoldShiftToDock = 9;
-  ImGuiLocKey_DockingDragToUndockOrMoveNode = 10;
-  ImGuiLocKey_COUNT = 11;
+  ImGuiLocKey_CopyLink = 8;
+  ImGuiLocKey_DockingHideTabBar = 9;
+  ImGuiLocKey_DockingHoldShiftToDock = 10;
+  ImGuiLocKey_DockingDragToUndockOrMoveNode = 11;
+  ImGuiLocKey_COUNT = 12;
 
 
 type
 type
   ImGuiDebugLogFlags_ = Integer;
   ImGuiDebugLogFlags_ = Integer;
@@ -1893,6 +1939,11 @@ type
   PImGuiStorage = ^ImGuiStorage;
   PImGuiStorage = ^ImGuiStorage;
   PImGuiListClipper = ^ImGuiListClipper;
   PImGuiListClipper = ^ImGuiListClipper;
   PImColor = ^ImColor;
   PImColor = ^ImColor;
+  PImVector_ImGuiSelectionRequest = ^ImVector_ImGuiSelectionRequest;
+  PImGuiMultiSelectIO = ^ImGuiMultiSelectIO;
+  PImGuiSelectionRequest = ^ImGuiSelectionRequest;
+  PImGuiSelectionBasicStorage = ^ImGuiSelectionBasicStorage;
+  PImGuiSelectionExternalStorage = ^ImGuiSelectionExternalStorage;
   PImDrawCmd = ^ImDrawCmd;
   PImDrawCmd = ^ImDrawCmd;
   PImDrawVert = ^ImDrawVert;
   PImDrawVert = ^ImDrawVert;
   PImDrawCmdHeader = ^ImDrawCmdHeader;
   PImDrawCmdHeader = ^ImDrawCmdHeader;
@@ -1954,7 +2005,7 @@ type
   PImGuiNextWindowData = ^ImGuiNextWindowData;
   PImGuiNextWindowData = ^ImGuiNextWindowData;
   PImGuiNextItemData = ^ImGuiNextItemData;
   PImGuiNextItemData = ^ImGuiNextItemData;
   PImGuiLastItemData = ^ImGuiLastItemData;
   PImGuiLastItemData = ^ImGuiLastItemData;
-  PImGuiNavTreeNodeData = ^ImGuiNavTreeNodeData;
+  PImGuiTreeNodeStackData = ^ImGuiTreeNodeStackData;
   PImGuiStackSizes = ^ImGuiStackSizes;
   PImGuiStackSizes = ^ImGuiStackSizes;
   PImGuiWindowStackData = ^ImGuiWindowStackData;
   PImGuiWindowStackData = ^ImGuiWindowStackData;
   PImGuiShrinkWidthItem = ^ImGuiShrinkWidthItem;
   PImGuiShrinkWidthItem = ^ImGuiShrinkWidthItem;
@@ -1983,6 +2034,9 @@ type
   PImGuiOldColumnData = ^ImGuiOldColumnData;
   PImGuiOldColumnData = ^ImGuiOldColumnData;
   PImVector_ImGuiOldColumnData = ^ImVector_ImGuiOldColumnData;
   PImVector_ImGuiOldColumnData = ^ImVector_ImGuiOldColumnData;
   PImGuiOldColumns = ^ImGuiOldColumns;
   PImGuiOldColumns = ^ImGuiOldColumns;
+  PImGuiBoxSelectState = ^ImGuiBoxSelectState;
+  PImGuiMultiSelectTempData = ^ImGuiMultiSelectTempData;
+  PImGuiMultiSelectState = ^ImGuiMultiSelectState;
   PImVector_ImGuiWindowPtr = ^ImVector_ImGuiWindowPtr;
   PImVector_ImGuiWindowPtr = ^ImVector_ImGuiWindowPtr;
   PImGuiDockNode = ^ImGuiDockNode;
   PImGuiDockNode = ^ImGuiDockNode;
   PImGuiWindowDockStyle = ^ImGuiWindowDockStyle;
   PImGuiWindowDockStyle = ^ImGuiWindowDockStyle;
@@ -2009,7 +2063,7 @@ type
   PImVector_ImGuiItemFlags = ^ImVector_ImGuiItemFlags;
   PImVector_ImGuiItemFlags = ^ImVector_ImGuiItemFlags;
   PImVector_ImGuiGroupData = ^ImVector_ImGuiGroupData;
   PImVector_ImGuiGroupData = ^ImVector_ImGuiGroupData;
   PImVector_ImGuiPopupData = ^ImVector_ImGuiPopupData;
   PImVector_ImGuiPopupData = ^ImVector_ImGuiPopupData;
-  PImVector_ImGuiNavTreeNodeData = ^ImVector_ImGuiNavTreeNodeData;
+  PImVector_ImGuiTreeNodeStackData = ^ImVector_ImGuiTreeNodeStackData;
   PImVector_ImGuiViewportPPtr = ^ImVector_ImGuiViewportPPtr;
   PImVector_ImGuiViewportPPtr = ^ImVector_ImGuiViewportPPtr;
   PImVector_unsigned_char = ^ImVector_unsigned_char;
   PImVector_unsigned_char = ^ImVector_unsigned_char;
   PImVector_ImGuiListClipperData = ^ImVector_ImGuiListClipperData;
   PImVector_ImGuiListClipperData = ^ImVector_ImGuiListClipperData;
@@ -2020,6 +2074,9 @@ type
   PImPool_ImGuiTabBar = ^ImPool_ImGuiTabBar;
   PImPool_ImGuiTabBar = ^ImPool_ImGuiTabBar;
   PImVector_ImGuiPtrOrIndex = ^ImVector_ImGuiPtrOrIndex;
   PImVector_ImGuiPtrOrIndex = ^ImVector_ImGuiPtrOrIndex;
   PImVector_ImGuiShrinkWidthItem = ^ImVector_ImGuiShrinkWidthItem;
   PImVector_ImGuiShrinkWidthItem = ^ImVector_ImGuiShrinkWidthItem;
+  PImVector_ImGuiMultiSelectTempData = ^ImVector_ImGuiMultiSelectTempData;
+  PImVector_ImGuiMultiSelectState = ^ImVector_ImGuiMultiSelectState;
+  PImPool_ImGuiMultiSelectState = ^ImPool_ImGuiMultiSelectState;
   PImVector_ImGuiID = ^ImVector_ImGuiID;
   PImVector_ImGuiID = ^ImVector_ImGuiID;
   PImVector_ImGuiSettingsHandler = ^ImVector_ImGuiSettingsHandler;
   PImVector_ImGuiSettingsHandler = ^ImVector_ImGuiSettingsHandler;
   PImChunkStream_ImGuiWindowSettings = ^ImChunkStream_ImGuiWindowSettings;
   PImChunkStream_ImGuiWindowSettings = ^ImChunkStream_ImGuiWindowSettings;
@@ -2142,6 +2199,7 @@ type
   ImFontAtlasFlags = Integer;
   ImFontAtlasFlags = Integer;
   ImGuiBackendFlags = Integer;
   ImGuiBackendFlags = Integer;
   ImGuiButtonFlags = Integer;
   ImGuiButtonFlags = Integer;
+  PImGuiButtonFlags = ^ImGuiButtonFlags;
   ImGuiChildFlags = Integer;
   ImGuiChildFlags = Integer;
   ImGuiColorEditFlags = Integer;
   ImGuiColorEditFlags = Integer;
   ImGuiConfigFlags = Integer;
   ImGuiConfigFlags = Integer;
@@ -2152,8 +2210,11 @@ type
   ImGuiHoveredFlags = Integer;
   ImGuiHoveredFlags = Integer;
   ImGuiInputFlags = Integer;
   ImGuiInputFlags = Integer;
   ImGuiInputTextFlags = Integer;
   ImGuiInputTextFlags = Integer;
+  ImGuiItemFlags = Integer;
+  PImGuiItemFlags = ^ImGuiItemFlags;
   ImGuiKeyChord = Integer;
   ImGuiKeyChord = Integer;
   ImGuiPopupFlags = Integer;
   ImGuiPopupFlags = Integer;
+  ImGuiMultiSelectFlags = Integer;
   ImGuiSelectableFlags = Integer;
   ImGuiSelectableFlags = Integer;
   ImGuiSliderFlags = Integer;
   ImGuiSliderFlags = Integer;
   ImGuiTabBarFlags = Integer;
   ImGuiTabBarFlags = Integer;
@@ -2172,6 +2233,7 @@ type
   ImWchar16 = Word;
   ImWchar16 = Word;
   ImWchar = ImWchar16;
   ImWchar = ImWchar16;
   PImWchar = ^ImWchar;
   PImWchar = ^ImWchar;
+  ImGuiSelectionUserData = ImS64;
 
 
   ImGuiInputTextCallback = function(data: PImGuiInputTextCallbackData): Integer; cdecl;
   ImGuiInputTextCallback = function(data: PImGuiInputTextCallbackData): Integer; cdecl;
 
 
@@ -2241,6 +2303,7 @@ type
     TabBorderSize: Single;
     TabBorderSize: Single;
     TabMinWidthForCloseButton: Single;
     TabMinWidthForCloseButton: Single;
     TabBarBorderSize: Single;
     TabBarBorderSize: Single;
+    TabBarOverlineSize: Single;
     TableAngledHeadersAngle: Single;
     TableAngledHeadersAngle: Single;
     TableAngledHeadersTextAlign: ImVec2;
     TableAngledHeadersTextAlign: ImVec2;
     ColorButtonPosition: ImGuiDir;
     ColorButtonPosition: ImGuiDir;
@@ -2258,7 +2321,7 @@ type
     AntiAliasedFill: Boolean;
     AntiAliasedFill: Boolean;
     CurveTessellationTol: Single;
     CurveTessellationTol: Single;
     CircleTessellationMaxError: Single;
     CircleTessellationMaxError: Single;
-    Colors: array [0..56] of ImVec4;
+    Colors: array [0..57] of ImVec4;
     HoverStationaryDelay: Single;
     HoverStationaryDelay: Single;
     HoverDelayShort: Single;
     HoverDelayShort: Single;
     HoverDelayNormal: Single;
     HoverDelayNormal: Single;
@@ -2303,6 +2366,7 @@ type
     ConfigViewportsNoDefaultParent: Boolean;
     ConfigViewportsNoDefaultParent: Boolean;
     MouseDrawCursor: Boolean;
     MouseDrawCursor: Boolean;
     ConfigMacOSXBehaviors: Boolean;
     ConfigMacOSXBehaviors: Boolean;
+    ConfigNavSwapGamepadButtons: Boolean;
     ConfigInputTrickleEventQueue: Boolean;
     ConfigInputTrickleEventQueue: Boolean;
     ConfigInputTextCursorBlink: Boolean;
     ConfigInputTextCursorBlink: Boolean;
     ConfigInputTextEnterKeepActive: Boolean;
     ConfigInputTextEnterKeepActive: Boolean;
@@ -2328,7 +2392,9 @@ type
     GetClipboardTextFn: function(user_data: Pointer): PAnsiChar; cdecl;
     GetClipboardTextFn: function(user_data: Pointer): PAnsiChar; cdecl;
     SetClipboardTextFn: procedure(user_data: Pointer; const text: PAnsiChar); cdecl;
     SetClipboardTextFn: procedure(user_data: Pointer; const text: PAnsiChar); cdecl;
     ClipboardUserData: Pointer;
     ClipboardUserData: Pointer;
-    SetPlatformImeDataFn: procedure(viewport: PImGuiViewport; data: PImGuiPlatformImeData); cdecl;
+    PlatformOpenInShellFn: function(ctx: PImGuiContext; const path: PAnsiChar): Boolean; cdecl;
+    PlatformOpenInShellUserData: Pointer;
+    PlatformSetImeDataFn: procedure(ctx: PImGuiContext; viewport: PImGuiViewport; data: PImGuiPlatformImeData); cdecl;
     PlatformLocaleDecimalPoint: ImWchar;
     PlatformLocaleDecimalPoint: ImWchar;
     WantCaptureMouse: Boolean;
     WantCaptureMouse: Boolean;
     WantCaptureKeyboard: Boolean;
     WantCaptureKeyboard: Boolean;
@@ -2489,6 +2555,7 @@ type
     ItemsCount: Integer;
     ItemsCount: Integer;
     ItemsHeight: Single;
     ItemsHeight: Single;
     StartPosY: Single;
     StartPosY: Single;
+    StartSeekOffsetY: Double;
     TempData: Pointer;
     TempData: Pointer;
   end;
   end;
 
 
@@ -2496,6 +2563,43 @@ type
     Value: ImVec4;
     Value: ImVec4;
   end;
   end;
 
 
+  ImVector_ImGuiSelectionRequest = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiSelectionRequest;
+  end;
+
+  ImGuiMultiSelectIO = record
+    Requests: ImVector_ImGuiSelectionRequest;
+    RangeSrcItem: ImGuiSelectionUserData;
+    NavIdItem: ImGuiSelectionUserData;
+    NavIdSelected: Boolean;
+    RangeSrcReset: Boolean;
+    ItemsCount: Integer;
+  end;
+
+  ImGuiSelectionRequest = record
+    Type_: ImGuiSelectionRequestType;
+    Selected: Boolean;
+    RangeDirection: ImS8;
+    RangeFirstItem: ImGuiSelectionUserData;
+    RangeLastItem: ImGuiSelectionUserData;
+  end;
+
+  ImGuiSelectionBasicStorage = record
+    Size: Integer;
+    PreserveOrder: Boolean;
+    UserData: Pointer;
+    AdapterIndexToStorageId: function(self: PImGuiSelectionBasicStorage; idx: Integer): ImGuiID; cdecl;
+    _SelectionOrder: Integer;
+    _Storage: ImGuiStorage;
+  end;
+
+  ImGuiSelectionExternalStorage = record
+    UserData: Pointer;
+    AdapterSetItemSelected: procedure(self: PImGuiSelectionExternalStorage; idx: Integer; selected: Boolean); cdecl;
+  end;
+
   ImDrawCallback = procedure(const parent_list: PImDrawList; const cmd: PImDrawCmd); cdecl;
   ImDrawCallback = procedure(const parent_list: PImDrawList; const cmd: PImDrawCmd); cdecl;
 
 
   ImDrawCmd = record
   ImDrawCmd = record
@@ -2832,8 +2936,6 @@ type
   ImGuiActivateFlags = Integer;
   ImGuiActivateFlags = Integer;
   ImGuiDebugLogFlags = Integer;
   ImGuiDebugLogFlags = Integer;
   ImGuiFocusRequestFlags = Integer;
   ImGuiFocusRequestFlags = Integer;
-  ImGuiItemFlags = Integer;
-  PImGuiItemFlags = ^ImGuiItemFlags;
   ImGuiItemStatusFlags = Integer;
   ImGuiItemStatusFlags = Integer;
   ImGuiOldColumnFlags = Integer;
   ImGuiOldColumnFlags = Integer;
   ImGuiNavHighlightFlags = Integer;
   ImGuiNavHighlightFlags = Integer;
@@ -2930,6 +3032,7 @@ type
     TexUvWhitePixel: ImVec2;
     TexUvWhitePixel: ImVec2;
     Font: PImFont;
     Font: PImFont;
     FontSize: Single;
     FontSize: Single;
+    FontScale: Single;
     CurveTessellationTol: Single;
     CurveTessellationTol: Single;
     CircleSegmentMaxError: Single;
     CircleSegmentMaxError: Single;
     ClipRectFullscreen: ImVec4;
     ClipRectFullscreen: ImVec4;
@@ -3068,11 +3171,10 @@ type
     RefreshFlagsVal: ImGuiWindowRefreshFlags;
     RefreshFlagsVal: ImGuiWindowRefreshFlags;
   end;
   end;
 
 
-  ImGuiSelectionUserData = ImS64;
-
   ImGuiNextItemData = record
   ImGuiNextItemData = record
     Flags: ImGuiNextItemDataFlags;
     Flags: ImGuiNextItemDataFlags;
     ItemFlags: ImGuiItemFlags;
     ItemFlags: ImGuiItemFlags;
+    FocusScopeId: ImGuiID;
     SelectionUserData: ImGuiSelectionUserData;
     SelectionUserData: ImGuiSelectionUserData;
     Width: Single;
     Width: Single;
     Shortcut: ImGuiKeyChord;
     Shortcut: ImGuiKeyChord;
@@ -3080,6 +3182,7 @@ type
     OpenVal: Boolean;
     OpenVal: Boolean;
     OpenCond: ImU8;
     OpenCond: ImU8;
     RefVal: ImGuiDataTypeStorage;
     RefVal: ImGuiDataTypeStorage;
+    StorageId: ImGuiID;
   end;
   end;
 
 
   ImGuiLastItemData = record
   ImGuiLastItemData = record
@@ -3093,8 +3196,9 @@ type
     Shortcut: ImGuiKeyChord;
     Shortcut: ImGuiKeyChord;
   end;
   end;
 
 
-  ImGuiNavTreeNodeData = record
+  ImGuiTreeNodeStackData = record
     ID: ImGuiID;
     ID: ImGuiID;
+    TreeFlags: ImGuiTreeNodeFlags;
     InFlags: ImGuiItemFlags;
     InFlags: ImGuiItemFlags;
     NavRect: ImRect;
     NavRect: ImRect;
   end;
   end;
@@ -3322,6 +3426,60 @@ type
     Splitter: ImDrawListSplitter;
     Splitter: ImDrawListSplitter;
   end;
   end;
 
 
+  ImGuiBoxSelectState = record
+    ID: ImGuiID;
+    IsActive: Boolean;
+    IsStarting: Boolean;
+    IsStartedFromVoid: Boolean;
+    IsStartedSetNavIdOnce: Boolean;
+    RequestClear: Boolean;
+  private
+    Data0: Cardinal;
+    function GetData0Value(const AIndex: Integer): Cardinal;
+    procedure SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+  public
+    property KeyMods: Cardinal index $0010 read GetData0Value write SetData0Value; // 16 bits at offset 0 in Data0
+  var
+    StartPosRel: ImVec2;
+    EndPosRel: ImVec2;
+    ScrollAccum: ImVec2;
+    Window: PImGuiWindow;
+    UnclipMode: Boolean;
+    UnclipRect: ImRect;
+    BoxSelectRectPrev: ImRect;
+    BoxSelectRectCurr: ImRect;
+  end;
+
+  ImGuiMultiSelectTempData = record
+    IO: ImGuiMultiSelectIO;
+    Storage: PImGuiMultiSelectState;
+    FocusScopeId: ImGuiID;
+    Flags: ImGuiMultiSelectFlags;
+    ScopeRectMin: ImVec2;
+    BackupCursorMaxPos: ImVec2;
+    LastSubmittedItem: ImGuiSelectionUserData;
+    BoxSelectId: ImGuiID;
+    KeyMods: ImGuiKeyChord;
+    LoopRequestSetAll: ImS8;
+    IsEndIO: Boolean;
+    IsFocused: Boolean;
+    IsKeyboardSetRange: Boolean;
+    NavIdPassedBy: Boolean;
+    RangeSrcPassedBy: Boolean;
+    RangeDstPassedBy: Boolean;
+  end;
+
+  ImGuiMultiSelectState = record
+    Window: PImGuiWindow;
+    ID: ImGuiID;
+    LastFrameActive: Integer;
+    LastSelectionSize: Integer;
+    RangeSelected: ImS8;
+    NavIdSelected: ImS8;
+    RangeSrcItem: ImGuiSelectionUserData;
+    NavIdItem: ImGuiSelectionUserData;
+  end;
+
   ImVector_ImGuiWindowPtr = record
   ImVector_ImGuiWindowPtr = record
     Size: Integer;
     Size: Integer;
     Capacity: Integer;
     Capacity: Integer;
@@ -3575,10 +3733,10 @@ type
     Data: PImGuiPopupData;
     Data: PImGuiPopupData;
   end;
   end;
 
 
-  ImVector_ImGuiNavTreeNodeData = record
+  ImVector_ImGuiTreeNodeStackData = record
     Size: Integer;
     Size: Integer;
     Capacity: Integer;
     Capacity: Integer;
-    Data: PImGuiNavTreeNodeData;
+    Data: PImGuiTreeNodeStackData;
   end;
   end;
 
 
   ImVector_ImGuiViewportPPtr = record
   ImVector_ImGuiViewportPPtr = record
@@ -3643,6 +3801,25 @@ type
     Data: PImGuiShrinkWidthItem;
     Data: PImGuiShrinkWidthItem;
   end;
   end;
 
 
+  ImVector_ImGuiMultiSelectTempData = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiMultiSelectTempData;
+  end;
+
+  ImVector_ImGuiMultiSelectState = record
+    Size: Integer;
+    Capacity: Integer;
+    Data: PImGuiMultiSelectState;
+  end;
+
+  ImPool_ImGuiMultiSelectState = record
+    Buf: ImVector_ImGuiMultiSelectState;
+    Map: ImGuiStorage;
+    FreeIdx: ImPoolIdx;
+    AliveCount: ImPoolIdx;
+  end;
+
   ImVector_ImGuiID = record
   ImVector_ImGuiID = record
     Size: Integer;
     Size: Integer;
     Capacity: Integer;
     Capacity: Integer;
@@ -3680,6 +3857,7 @@ type
     Font: PImFont;
     Font: PImFont;
     FontSize: Single;
     FontSize: Single;
     FontBaseSize: Single;
     FontBaseSize: Single;
+    FontScale: Single;
     CurrentDpiScale: Single;
     CurrentDpiScale: Single;
     DrawListSharedData: ImDrawListSharedData;
     DrawListSharedData: ImDrawListSharedData;
     Time: Double;
     Time: Double;
@@ -3777,7 +3955,7 @@ type
     GroupStack: ImVector_ImGuiGroupData;
     GroupStack: ImVector_ImGuiGroupData;
     OpenPopupStack: ImVector_ImGuiPopupData;
     OpenPopupStack: ImVector_ImGuiPopupData;
     BeginPopupStack: ImVector_ImGuiPopupData;
     BeginPopupStack: ImVector_ImGuiPopupData;
-    NavTreeNodeStack: ImVector_ImGuiNavTreeNodeData;
+    TreeNodeStack: ImVector_ImGuiTreeNodeStackData;
     Viewports: ImVector_ImGuiViewportPPtr;
     Viewports: ImVector_ImGuiViewportPPtr;
     CurrentViewport: PImGuiViewportP;
     CurrentViewport: PImGuiViewportP;
     MouseViewport: PImGuiViewportP;
     MouseViewport: PImGuiViewportP;
@@ -3878,6 +4056,11 @@ type
     TabBars: ImPool_ImGuiTabBar;
     TabBars: ImPool_ImGuiTabBar;
     CurrentTabBarStack: ImVector_ImGuiPtrOrIndex;
     CurrentTabBarStack: ImVector_ImGuiPtrOrIndex;
     ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem;
     ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem;
+    BoxSelectState: ImGuiBoxSelectState;
+    CurrentMultiSelect: PImGuiMultiSelectTempData;
+    MultiSelectTempDataStacked: Integer;
+    MultiSelectTempData: ImVector_ImGuiMultiSelectTempData;
+    MultiSelectStorage: ImPool_ImGuiMultiSelectState;
     HoverItemDelayId: ImGuiID;
     HoverItemDelayId: ImGuiID;
     HoverItemDelayIdPreviousFrame: ImGuiID;
     HoverItemDelayIdPreviousFrame: ImGuiID;
     HoverItemDelayTimer: Single;
     HoverItemDelayTimer: Single;
@@ -3932,7 +4115,7 @@ type
     SettingsTables: ImChunkStream_ImGuiTableSettings;
     SettingsTables: ImChunkStream_ImGuiTableSettings;
     Hooks: ImVector_ImGuiContextHook;
     Hooks: ImVector_ImGuiContextHook;
     HookIdNext: ImGuiID;
     HookIdNext: ImGuiID;
-    LocalizationTable: array [0..10] of PAnsiChar;
+    LocalizationTable: array [0..11] of PAnsiChar;
     LogEnabled: Boolean;
     LogEnabled: Boolean;
     LogType: ImGuiLogType;
     LogType: ImGuiLogType;
     LogFile: ImFileHandle;
     LogFile: ImFileHandle;
@@ -3999,7 +4182,7 @@ type
     MenuBarOffset: ImVec2;
     MenuBarOffset: ImVec2;
     MenuColumns: ImGuiMenuColumns;
     MenuColumns: ImGuiMenuColumns;
     TreeDepth: Integer;
     TreeDepth: Integer;
-    TreeJumpToParentOnPopMask: ImU32;
+    TreeHasStackDataDepthMask: ImU32;
     ChildWindows: ImVector_ImGuiWindowPtr;
     ChildWindows: ImVector_ImGuiWindowPtr;
     StateStorage: PImGuiStorage;
     StateStorage: PImGuiStorage;
     CurrentColumns: PImGuiOldColumns;
     CurrentColumns: PImGuiOldColumns;
@@ -5224,18 +5407,6 @@ procedure igSetWindowCollapsed_Str(const name: PAnsiChar; collapsed: Boolean; co
 procedure igSetWindowFocus_Str(const name: PAnsiChar); cdecl;
 procedure igSetWindowFocus_Str(const name: PAnsiChar); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Str';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowFocus_Str';
 
 
-procedure igGetContentRegionAvail(pOut: PImVec2); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionAvail';
-
-procedure igGetContentRegionMax(pOut: PImVec2); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionMax';
-
-procedure igGetWindowContentRegionMin(pOut: PImVec2); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowContentRegionMin';
-
-procedure igGetWindowContentRegionMax(pOut: PImVec2); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetWindowContentRegionMax';
-
 function igGetScrollX(): Single; cdecl;
 function igGetScrollX(): Single; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollX';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetScrollX';
 
 
@@ -5290,17 +5461,11 @@ procedure igPushStyleVar_Vec2(idx: ImGuiStyleVar; val: ImVec2); cdecl;
 procedure igPopStyleVar(count: Integer); cdecl;
 procedure igPopStyleVar(count: Integer); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleVar';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopStyleVar';
 
 
-procedure igPushTabStop(tab_stop: Boolean); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushTabStop';
-
-procedure igPopTabStop(); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopTabStop';
-
-procedure igPushButtonRepeat(repeat_: Boolean); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushButtonRepeat';
+procedure igPushItemFlag(option: ImGuiItemFlags; enabled: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemFlag';
 
 
-procedure igPopButtonRepeat(); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopButtonRepeat';
+procedure igPopItemFlag(); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemFlag';
 
 
 procedure igPushItemWidth(item_width: Single); cdecl;
 procedure igPushItemWidth(item_width: Single); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemWidth';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemWidth';
@@ -5347,6 +5512,9 @@ procedure igGetCursorScreenPos(pOut: PImVec2); cdecl;
 procedure igSetCursorScreenPos(pos: ImVec2); cdecl;
 procedure igSetCursorScreenPos(pos: ImVec2); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorScreenPos';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetCursorScreenPos';
 
 
+procedure igGetContentRegionAvail(pOut: PImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionAvail';
+
 procedure igGetCursorPos(pOut: PImVec2); cdecl;
 procedure igGetCursorPos(pOut: PImVec2); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPos';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetCursorPos';
 
 
@@ -5434,6 +5602,9 @@ function igGetID_StrStr(const str_id_begin: PAnsiChar; const str_id_end: PAnsiCh
 function igGetID_Ptr(const ptr_id: Pointer): ImGuiID; cdecl;
 function igGetID_Ptr(const ptr_id: Pointer): ImGuiID; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Ptr';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Ptr';
 
 
+function igGetID_Int(int_id: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetID_Int';
+
 procedure igTextUnformatted(const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
 procedure igTextUnformatted(const text: PAnsiChar; const text_end: PAnsiChar); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextUnformatted';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextUnformatted';
 
 
@@ -5509,6 +5680,12 @@ procedure igProgressBar(fraction: Single; size_arg: ImVec2; const overlay: PAnsi
 procedure igBullet(); cdecl;
 procedure igBullet(); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBullet';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBullet';
 
 
+function igTextLink(const label_: PAnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextLink';
+
+procedure igTextLinkOpenURL(const label_: PAnsiChar; const url: PAnsiChar); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTextLinkOpenURL';
+
 procedure igImage(user_texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; border_col: ImVec4); cdecl;
 procedure igImage(user_texture_id: ImTextureID; image_size: ImVec2; uv0: ImVec2; uv1: ImVec2; tint_col: ImVec4; border_col: ImVec4); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImage';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImage';
 
 
@@ -5722,12 +5899,27 @@ function igCollapsingHeader_BoolPtr(const label_: PAnsiChar; p_visible: PBoolean
 procedure igSetNextItemOpen(is_open: Boolean; cond: ImGuiCond); cdecl;
 procedure igSetNextItemOpen(is_open: Boolean; cond: ImGuiCond); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemOpen';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemOpen';
 
 
+procedure igSetNextItemStorageID(storage_id: ImGuiID); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemStorageID';
+
 function igSelectable_Bool(const label_: PAnsiChar; selected: Boolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
 function igSelectable_Bool(const label_: PAnsiChar; selected: Boolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_Bool';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_Bool';
 
 
 function igSelectable_BoolPtr(const label_: PAnsiChar; p_selected: PBoolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
 function igSelectable_BoolPtr(const label_: PAnsiChar; p_selected: PBoolean; flags: ImGuiSelectableFlags; size: ImVec2): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_BoolPtr';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSelectable_BoolPtr';
 
 
+function igBeginMultiSelect(flags: ImGuiMultiSelectFlags; selection_size: Integer; items_count: Integer): PImGuiMultiSelectIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginMultiSelect';
+
+function igEndMultiSelect(): PImGuiMultiSelectIO; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndMultiSelect';
+
+procedure igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemSelectionUserData';
+
+function igIsItemToggledSelection(): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledSelection';
+
 function igBeginListBox(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
 function igBeginListBox(const label_: PAnsiChar; size: ImVec2): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginListBox';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginListBox';
 
 
@@ -6154,6 +6346,9 @@ function igShortcut_Nil(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags): Boole
 procedure igSetNextItemShortcut(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags); cdecl;
 procedure igSetNextItemShortcut(key_chord: ImGuiKeyChord; flags: ImGuiInputFlags); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemShortcut';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemShortcut';
 
 
+procedure igSetItemKeyOwner_Nil(key: ImGuiKey); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner_Nil';
+
 function igIsMouseDown_Nil(button: ImGuiMouseButton): Boolean; cdecl;
 function igIsMouseDown_Nil(button: ImGuiMouseButton): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_Nil';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsMouseDown_Nil';
 
 
@@ -6232,6 +6427,12 @@ procedure igDebugStartItemPicker(); cdecl;
 function igDebugCheckVersionAndDataLayout(const version_str: PAnsiChar; sz_io: NativeUInt; sz_style: NativeUInt; sz_vec2: NativeUInt; sz_vec4: NativeUInt; sz_drawvert: NativeUInt; sz_drawidx: NativeUInt): Boolean; cdecl;
 function igDebugCheckVersionAndDataLayout(const version_str: PAnsiChar; sz_io: NativeUInt; sz_style: NativeUInt; sz_vec2: NativeUInt; sz_vec4: NativeUInt; sz_drawvert: NativeUInt; sz_drawidx: NativeUInt): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugCheckVersionAndDataLayout';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugCheckVersionAndDataLayout';
 
 
+procedure igDebugLog(const fmt: PAnsiChar) varargs; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLog';
+
+procedure igDebugLogV(const fmt: PAnsiChar; args: Pointer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLogV';
+
 procedure igSetAllocatorFunctions(alloc_func: ImGuiMemAllocFunc; free_func: ImGuiMemFreeFunc; user_data: Pointer); cdecl;
 procedure igSetAllocatorFunctions(alloc_func: ImGuiMemAllocFunc; free_func: ImGuiMemFreeFunc; user_data: Pointer); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetAllocatorFunctions';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetAllocatorFunctions';
 
 
@@ -6535,6 +6736,9 @@ procedure ImGuiListClipper_IncludeItemByIndex(self: PImGuiListClipper; item_inde
 procedure ImGuiListClipper_IncludeItemsByIndex(self: PImGuiListClipper; item_begin: Integer; item_end: Integer); cdecl;
 procedure ImGuiListClipper_IncludeItemsByIndex(self: PImGuiListClipper; item_begin: Integer; item_end: Integer); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemsByIndex';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_IncludeItemsByIndex';
 
 
+procedure ImGuiListClipper_SeekCursorForItem(self: PImGuiListClipper; item_index: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiListClipper_SeekCursorForItem';
+
 function ImColor_ImColor_Nil(): PImColor; cdecl;
 function ImColor_ImColor_Nil(): PImColor; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Nil';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_ImColor_Nil';
 
 
@@ -6559,6 +6763,42 @@ procedure ImColor_SetHSV(self: PImColor; h: Single; s: Single; v: Single; a: Sin
 procedure ImColor_HSV(pOut: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
 procedure ImColor_HSV(pOut: PImColor; h: Single; s: Single; v: Single; a: Single); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_HSV';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImColor_HSV';
 
 
+function ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage(): PImGuiSelectionBasicStorage; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage';
+
+procedure ImGuiSelectionBasicStorage_destroy(self: PImGuiSelectionBasicStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_destroy';
+
+procedure ImGuiSelectionBasicStorage_ApplyRequests(self: PImGuiSelectionBasicStorage; ms_io: PImGuiMultiSelectIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_ApplyRequests';
+
+function ImGuiSelectionBasicStorage_Contains(self: PImGuiSelectionBasicStorage; id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Contains';
+
+procedure ImGuiSelectionBasicStorage_Clear(self: PImGuiSelectionBasicStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Clear';
+
+procedure ImGuiSelectionBasicStorage_Swap(self: PImGuiSelectionBasicStorage; r: PImGuiSelectionBasicStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_Swap';
+
+procedure ImGuiSelectionBasicStorage_SetItemSelected(self: PImGuiSelectionBasicStorage; id: ImGuiID; selected: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_SetItemSelected';
+
+function ImGuiSelectionBasicStorage_GetNextSelectedItem(self: PImGuiSelectionBasicStorage; opaque_it: PPointer; out_id: PImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_GetNextSelectedItem';
+
+function ImGuiSelectionBasicStorage_GetStorageIdFromIndex(self: PImGuiSelectionBasicStorage; idx: Integer): ImGuiID; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionBasicStorage_GetStorageIdFromIndex';
+
+function ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage(): PImGuiSelectionExternalStorage; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage';
+
+procedure ImGuiSelectionExternalStorage_destroy(self: PImGuiSelectionExternalStorage); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_destroy';
+
+procedure ImGuiSelectionExternalStorage_ApplyRequests(self: PImGuiSelectionExternalStorage; ms_io: PImGuiMultiSelectIO); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiSelectionExternalStorage_ApplyRequests';
+
 function ImDrawCmd_ImDrawCmd(): PImDrawCmd; cdecl;
 function ImDrawCmd_ImDrawCmd(): PImDrawCmd; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_ImDrawCmd';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImDrawCmd_ImDrawCmd';
 
 
@@ -7102,6 +7342,9 @@ function igImCharIsBlankA(c: AnsiChar): Boolean; cdecl;
 function igImCharIsBlankW(c: Cardinal): Boolean; cdecl;
 function igImCharIsBlankW(c: Cardinal): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankW';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsBlankW';
 
 
+function igImCharIsXdigitA(c: AnsiChar): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImCharIsXdigitA';
+
 function igImFormatString(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar): Integer varargs; cdecl;
 function igImFormatString(buf: PAnsiChar; buf_size: NativeUInt; const fmt: PAnsiChar): Integer varargs; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatString';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImFormatString';
 
 
@@ -7264,6 +7507,9 @@ procedure igImRotate(pOut: PImVec2; v: ImVec2; cos_a: Single; sin_a: Single); cd
 function igImLinearSweep(current: Single; target: Single; speed: Single): Single; cdecl;
 function igImLinearSweep(current: Single; target: Single; speed: Single): Single; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearSweep';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearSweep';
 
 
+function igImLinearRemapClamp(s0: Single; s1: Single; d0: Single; d1: Single; x: Single): Single; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImLinearRemapClamp';
+
 procedure igImMul(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
 procedure igImMul(pOut: PImVec2; lhs: ImVec2; rhs: ImVec2); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMul';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igImMul';
 
 
@@ -7702,6 +7948,30 @@ function ImGuiOldColumns_ImGuiOldColumns(): PImGuiOldColumns; cdecl;
 procedure ImGuiOldColumns_destroy(self: PImGuiOldColumns); cdecl;
 procedure ImGuiOldColumns_destroy(self: PImGuiOldColumns); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_destroy';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiOldColumns_destroy';
 
 
+function ImGuiBoxSelectState_ImGuiBoxSelectState(): PImGuiBoxSelectState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiBoxSelectState_ImGuiBoxSelectState';
+
+procedure ImGuiBoxSelectState_destroy(self: PImGuiBoxSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiBoxSelectState_destroy';
+
+function ImGuiMultiSelectTempData_ImGuiMultiSelectTempData(): PImGuiMultiSelectTempData; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_ImGuiMultiSelectTempData';
+
+procedure ImGuiMultiSelectTempData_destroy(self: PImGuiMultiSelectTempData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_destroy';
+
+procedure ImGuiMultiSelectTempData_Clear(self: PImGuiMultiSelectTempData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_Clear';
+
+procedure ImGuiMultiSelectTempData_ClearIO(self: PImGuiMultiSelectTempData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectTempData_ClearIO';
+
+function ImGuiMultiSelectState_ImGuiMultiSelectState(): PImGuiMultiSelectState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectState_ImGuiMultiSelectState';
+
+procedure ImGuiMultiSelectState_destroy(self: PImGuiMultiSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiMultiSelectState_destroy';
+
 function ImGuiDockNode_ImGuiDockNode(id: ImGuiID): PImGuiDockNode; cdecl;
 function ImGuiDockNode_ImGuiDockNode(id: ImGuiID): PImGuiDockNode; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_ImGuiDockNode';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImGuiDockNode_ImGuiDockNode';
 
 
@@ -7963,6 +8233,9 @@ procedure igWindowRectRelToAbs(pOut: PImRect; window: PImGuiWindow; r: ImRect);
 procedure igWindowPosRelToAbs(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
 procedure igWindowPosRelToAbs(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosRelToAbs';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosRelToAbs';
 
 
+procedure igWindowPosAbsToRel(pOut: PImVec2; window: PImGuiWindow; p: ImVec2); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igWindowPosAbsToRel';
+
 procedure igFocusWindow(window: PImGuiWindow; flags: ImGuiFocusRequestFlags); cdecl;
 procedure igFocusWindow(window: PImGuiWindow; flags: ImGuiFocusRequestFlags); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusWindow';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igFocusWindow';
 
 
@@ -8191,21 +8464,9 @@ function igCalcWrapWidthForPos(pos: ImVec2; wrap_pos_x: Single): Single; cdecl;
 procedure igPushMultiItemsWidths(components: Integer; width_full: Single); cdecl;
 procedure igPushMultiItemsWidths(components: Integer; width_full: Single); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushMultiItemsWidths';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushMultiItemsWidths';
 
 
-function igIsItemToggledSelection(): Boolean; cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igIsItemToggledSelection';
-
-procedure igGetContentRegionMaxAbs(pOut: PImVec2); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetContentRegionMaxAbs';
-
 procedure igShrinkWidths(items: PImGuiShrinkWidthItem; count: Integer; width_excess: Single); cdecl;
 procedure igShrinkWidths(items: PImGuiShrinkWidthItem; count: Integer; width_excess: Single); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShrinkWidths';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igShrinkWidths';
 
 
-procedure igPushItemFlag(option: ImGuiItemFlags; enabled: Boolean); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPushItemFlag';
-
-procedure igPopItemFlag(); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igPopItemFlag';
-
 function igGetStyleVarInfo(idx: ImGuiStyleVar): PImGuiDataVarInfo; cdecl;
 function igGetStyleVarInfo(idx: ImGuiStyleVar): PImGuiDataVarInfo; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleVarInfo';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetStyleVarInfo';
 
 
@@ -8308,7 +8569,7 @@ procedure igNavMoveRequestForward(move_dir: ImGuiDir; clip_dir: ImGuiDir; move_f
 procedure igNavMoveRequestResolveWithLastItem(result: PImGuiNavItemData); cdecl;
 procedure igNavMoveRequestResolveWithLastItem(result: PImGuiNavItemData); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithLastItem';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithLastItem';
 
 
-procedure igNavMoveRequestResolveWithPastTreeNode(result: PImGuiNavItemData; tree_node_data: PImGuiNavTreeNodeData); cdecl;
+procedure igNavMoveRequestResolveWithPastTreeNode(result: PImGuiNavItemData; tree_node_data: PImGuiTreeNodeStackData); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithPastTreeNode';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igNavMoveRequestResolveWithPastTreeNode';
 
 
 procedure igNavMoveRequestCancel(); cdecl;
 procedure igNavMoveRequestCancel(); cdecl;
@@ -8422,8 +8683,8 @@ procedure igSetKeyOwner(key: ImGuiKey; owner_id: ImGuiID; flags: ImGuiInputFlags
 procedure igSetKeyOwnersForKeyChord(key: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
 procedure igSetKeyOwnersForKeyChord(key: ImGuiKeyChord; owner_id: ImGuiID; flags: ImGuiInputFlags); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwnersForKeyChord';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetKeyOwnersForKeyChord';
 
 
-procedure igSetItemKeyOwner(key: ImGuiKey; flags: ImGuiInputFlags); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner';
+procedure igSetItemKeyOwner_InputFlags(key: ImGuiKey; flags: ImGuiInputFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetItemKeyOwner_InputFlags';
 
 
 function igTestKeyOwner(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
 function igTestKeyOwner(key: ImGuiKey; owner_id: ImGuiID): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestKeyOwner';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTestKeyOwner';
@@ -8638,6 +8899,30 @@ type
 function igTypingSelectFindBestLeadingMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindBestLeadingMatch_get_item_name_func; user_data: Pointer): Integer; cdecl;
 function igTypingSelectFindBestLeadingMatch(req: PImGuiTypingSelectRequest; items_count: Integer; get_item_name_func: igTypingSelectFindBestLeadingMatch_get_item_name_func; user_data: Pointer): Integer; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindBestLeadingMatch';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTypingSelectFindBestLeadingMatch';
 
 
+function igBeginBoxSelect(scope_rect: ImRect; window: PImGuiWindow; box_select_id: ImGuiID; ms_flags: ImGuiMultiSelectFlags): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igBeginBoxSelect';
+
+procedure igEndBoxSelect(scope_rect: ImRect; ms_flags: ImGuiMultiSelectFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igEndBoxSelect';
+
+procedure igMultiSelectItemHeader(id: ImGuiID; p_selected: PBoolean; p_button_flags: PImGuiButtonFlags); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectItemHeader';
+
+procedure igMultiSelectItemFooter(id: ImGuiID; p_selected: PBoolean; p_pressed: PBoolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectItemFooter';
+
+procedure igMultiSelectAddSetAll(ms: PImGuiMultiSelectTempData; selected: Boolean); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectAddSetAll';
+
+procedure igMultiSelectAddSetRange(ms: PImGuiMultiSelectTempData; selected: Boolean; range_dir: Integer; first_item: ImGuiSelectionUserData; last_item: ImGuiSelectionUserData); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igMultiSelectAddSetRange';
+
+function igGetBoxSelectState(id: ImGuiID): PImGuiBoxSelectState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetBoxSelectState';
+
+function igGetMultiSelectState(id: ImGuiID): PImGuiMultiSelectState; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGetMultiSelectState';
+
 procedure igSetWindowClipRectBeforeSetChannel(window: PImGuiWindow; clip_rect: ImRect); cdecl;
 procedure igSetWindowClipRectBeforeSetChannel(window: PImGuiWindow; clip_rect: ImRect); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowClipRectBeforeSetChannel';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetWindowClipRectBeforeSetChannel';
 
 
@@ -9001,15 +9286,15 @@ function igTreeNodeBehavior(id: ImGuiID; flags: ImGuiTreeNodeFlags; const label_
 procedure igTreePushOverrideID(id: ImGuiID); cdecl;
 procedure igTreePushOverrideID(id: ImGuiID); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePushOverrideID';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreePushOverrideID';
 
 
-procedure igTreeNodeSetOpen(id: ImGuiID; open: Boolean); cdecl;
+function igTreeNodeGetOpen(storage_id: ImGuiID): Boolean; cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeGetOpen';
+
+procedure igTreeNodeSetOpen(storage_id: ImGuiID; open: Boolean); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeSetOpen';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeSetOpen';
 
 
-function igTreeNodeUpdateNextOpen(id: ImGuiID; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
+function igTreeNodeUpdateNextOpen(storage_id: ImGuiID; flags: ImGuiTreeNodeFlags): Boolean; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeUpdateNextOpen';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igTreeNodeUpdateNextOpen';
 
 
-procedure igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igSetNextItemSelectionUserData';
-
 function igDataTypeGetInfo(data_type: ImGuiDataType): PImGuiDataTypeInfo; cdecl;
 function igDataTypeGetInfo(data_type: ImGuiDataType): PImGuiDataTypeInfo; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeGetInfo';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDataTypeGetInfo';
 
 
@@ -9082,12 +9367,6 @@ procedure igGcCompactTransientWindowBuffers(window: PImGuiWindow); cdecl;
 procedure igGcAwakeTransientWindowBuffers(window: PImGuiWindow); cdecl;
 procedure igGcAwakeTransientWindowBuffers(window: PImGuiWindow); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcAwakeTransientWindowBuffers';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igGcAwakeTransientWindowBuffers';
 
 
-procedure igDebugLog(const fmt: PAnsiChar) varargs; cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLog';
-
-procedure igDebugLogV(const fmt: PAnsiChar; args: Pointer); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugLogV';
-
 procedure igDebugAllocHook(info: PImGuiDebugAllocInfo; frame_count: Integer; ptr: Pointer; size: NativeUInt); cdecl;
 procedure igDebugAllocHook(info: PImGuiDebugAllocInfo; frame_count: Integer; ptr: Pointer; size: NativeUInt); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugAllocHook';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugAllocHook';
 
 
@@ -9172,6 +9451,9 @@ procedure igDebugNodeInputTextState(state: PImGuiInputTextState); cdecl;
 procedure igDebugNodeTypingSelectState(state: PImGuiTypingSelectState); cdecl;
 procedure igDebugNodeTypingSelectState(state: PImGuiTypingSelectState); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTypingSelectState';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeTypingSelectState';
 
 
+procedure igDebugNodeMultiSelectState(state: PImGuiMultiSelectState); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeMultiSelectState';
+
 procedure igDebugNodeWindow(window: PImGuiWindow; const label_: PAnsiChar); cdecl;
 procedure igDebugNodeWindow(window: PImGuiWindow; const label_: PAnsiChar); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindow';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeWindow';
 
 
@@ -9187,6 +9469,9 @@ procedure igDebugNodeWindowsListByBeginStackParent(windows: PPImGuiWindow; windo
 procedure igDebugNodeViewport(viewport: PImGuiViewportP); cdecl;
 procedure igDebugNodeViewport(viewport: PImGuiViewportP); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeViewport';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodeViewport';
 
 
+procedure igDebugNodePlatformMonitor(monitor: PImGuiPlatformMonitor; const label_: PAnsiChar; idx: Integer); cdecl;
+  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugNodePlatformMonitor';
+
 procedure igDebugRenderKeyboardPreview(draw_list: PImDrawList); cdecl;
 procedure igDebugRenderKeyboardPreview(draw_list: PImDrawList); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderKeyboardPreview';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'igDebugRenderKeyboardPreview';
 
 
@@ -10418,9 +10703,6 @@ procedure ImPlot_ShowUserGuide(); cdecl;
 procedure ImPlot_ShowMetricsWindow(p_popen: PBoolean); cdecl;
 procedure ImPlot_ShowMetricsWindow(p_popen: PBoolean); cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowMetricsWindow';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowMetricsWindow';
 
 
-procedure ImPlot_ShowDemoWindow(p_open: PBoolean); cdecl;
-  external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ShowDemoWindow';
-
 function ImPlot_ImLog10_Float(x: Single): Single; cdecl;
 function ImPlot_ImLog10_Float(x: Single): Single; cdecl;
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_Float';
   external {$IFDEF DYNAMIC_LINK}CIMGUI_LIB{$ENDIF} name _PU + 'ImPlot_ImLog10_Float';
 
 

+ 8 - 62
src/PasImGui.pas

@@ -29,7 +29,7 @@ Interface
 Uses
 Uses
   SysUtils, Math;
   SysUtils, Math;
 
 
-{$IfDef DYNAMIC_LINK}
+  {$IfDef DYNAMIC_LINK}
 Const
 Const
   {$if defined(Darwin)}
   {$if defined(Darwin)}
     SharedSuffix = 'dylib';
     SharedSuffix = 'dylib';
@@ -43,7 +43,6 @@ Const
     {$IfDef FPC}
     {$IfDef FPC}
     {$LinkLib libcimgui.a}
     {$LinkLib libcimgui.a}
     {$IfDef MSWINDOWS}
     {$IfDef MSWINDOWS}
-      {$linklib stdc++}
       {$linklib mingwex}
       {$linklib mingwex}
       {$linklib mingw32}
       {$linklib mingw32}
       {$linklib gcc}
       {$linklib gcc}
@@ -55,7 +54,6 @@ Const
       {$LinkLib gdi32}
       {$LinkLib gdi32}
       {$LinkLib ole32}
       {$LinkLib ole32}
       {$linklib msvcrt}
       {$linklib msvcrt}
-      {$LinkLib msvcrt_atexit}
       {$linklib kernel32}
       {$linklib kernel32}
       {$linklib advapi32}
       {$linklib advapi32}
       {$linklib user32}
       {$linklib user32}
@@ -89,15 +87,15 @@ Type
   End;
   End;
 
 
 Const
 Const
-  IMGUI_VERSION = '1.90.9';
-  IMGUI_VERSION_NUM = 19009;
+  IMGUI_VERSION = '1.91.0';
+  IMGUI_VERSION_NUM = 19100;
 
 
-{$J+}
   // We set default values but we try to get the values using - igGET_FLT_MAX & igGET_FLT_MIN for maximum compatibility.
   // We set default values but we try to get the values using - igGET_FLT_MAX & igGET_FLT_MIN for maximum compatibility.
 Const
 Const
+  {$J+}
   FLT_MAX: Single = 3.40282347e+38;
   FLT_MAX: Single = 3.40282347e+38;
   FLT_MIN: Single = 1.17549435e-38;
   FLT_MIN: Single = 1.17549435e-38;
-{$J-}
+  {$J-}
 
 
 
 
 Type
 Type
@@ -201,13 +199,10 @@ Type
       extra_flags: ImGuiWindowFlags): Boolean;
       extra_flags: ImGuiWindowFlags): Boolean;
     {$IfDef INLINE} inline;{$EndIf}
     {$IfDef INLINE} inline;{$EndIf}
     Class Procedure EndChild; {$IfDef INLINE} inline;{$EndIf}
     Class Procedure EndChild; {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure GetContentRegionMax(out_: PImVec2); {$IfDef INLINE} inline;{$EndIf}
+    //Class Procedure GetContentRegionMax(out_: PImVec2); {$IfDef INLINE} inline;{$EndIf}
     Class Function GetContentRegionAvail: ImVec2; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetContentRegionAvail: ImVec2; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetContentRegionAvailWidth: Single; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetContentRegionAvailWidth: Single; {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure GetWindowContentRegionMin(out_: PImVec2);
     {$IfDef INLINE} inline;{$EndIf}
     {$IfDef INLINE} inline;{$EndIf}
-    Class Function GetWindowContentRegionMax(): ImVec2; {$IfDef INLINE} inline;{$EndIf}
-    Class Function GetWindowContentRegionWidth: Single; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowDrawList(): PImDrawList; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowDrawList(): PImDrawList; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowPos: ImVec2; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowPos: ImVec2; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowSize: ImVec2; {$IfDef INLINE} inline;{$EndIf}
     Class Function GetWindowSize: ImVec2; {$IfDef INLINE} inline;{$EndIf}
@@ -287,10 +282,6 @@ Type
     Class Function CalcItemWidth(): Single; {$IfDef INLINE} inline;{$EndIf}
     Class Function CalcItemWidth(): Single; {$IfDef INLINE} inline;{$EndIf}
     Class Procedure PushTextWrapPos(wrap_pos_x: Single); {$IfDef INLINE} inline;{$EndIf}
     Class Procedure PushTextWrapPos(wrap_pos_x: Single); {$IfDef INLINE} inline;{$EndIf}
     Class Procedure PopTextWrapPos(); {$IfDef INLINE} inline;{$EndIf}
     Class Procedure PopTextWrapPos(); {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure PushTabStop(v: Boolean); {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure PopTabStop(); {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure PushButtonRepeat(_repeat: Boolean); {$IfDef INLINE} inline;{$EndIf}
-    Class Procedure PopButtonRepeat(); {$IfDef INLINE} inline;{$EndIf}
 
 
     {Separator}
     {Separator}
     Class Procedure SeparatorText(label_: AnsiString); {$IfDef INLINE} inline;{$EndIf}
     Class Procedure SeparatorText(label_: AnsiString); {$IfDef INLINE} inline;{$EndIf}
@@ -967,11 +958,6 @@ Implementation
 Uses
 Uses
   PasImGui.Utils;
   PasImGui.Utils;
 
 
-function ZNew(Size : NativeInt): Pointer;
-begin
-
-end;
-
 Class Function TImVec2.New(Const _x, _y: Single): ImVec2;
 Class Function TImVec2.New(Const _x, _y: Single): ImVec2;
 Begin
 Begin
   Result.x := _x;
   Result.x := _x;
@@ -1272,11 +1258,6 @@ Begin
   igEndChild;
   igEndChild;
 End;
 End;
 
 
-Class Procedure ImGui.GetContentRegionMax(out_: PImVec2);
-Begin
-  igGetContentRegionMax(out_);
-End;
-
 Class Function ImGui.GetContentRegionAvail: ImVec2;
 Class Function ImGui.GetContentRegionAvail: ImVec2;
 Begin
 Begin
   igGetContentRegionAvail(@Result);
   igGetContentRegionAvail(@Result);
@@ -1287,21 +1268,6 @@ Begin
   Result := GetContentRegionAvail().x;
   Result := GetContentRegionAvail().x;
 End;
 End;
 
 
-Class Procedure ImGui.GetWindowContentRegionMin(out_: PImVec2);
-Begin
-  igGetWindowContentRegionMin(out_);
-End;
-
-Class Function ImGui.GetWindowContentRegionMax: ImVec2;
-Begin
-  igGetWindowContentRegionMax(@Result);
-End;
-
-Class Function ImGui.GetWindowContentRegionWidth: Single;
-Begin
-  Result := GetWindowContentRegionMax().x;
-End;
-
 Class Function ImGui.GetWindowDrawList: PImDrawList;
 Class Function ImGui.GetWindowDrawList: PImDrawList;
 Begin
 Begin
   Result := igGetWindowDrawList;
   Result := igGetWindowDrawList;
@@ -1584,26 +1550,6 @@ Begin
   igPopTextWrapPos;
   igPopTextWrapPos;
 End;
 End;
 
 
-Class Procedure ImGui.PushTabStop(v: Boolean);
-Begin
-  igPushTabStop(v);
-End;
-
-Class Procedure ImGui.PopTabStop;
-Begin
-  igPopTabStop;
-End;
-
-Class Procedure ImGui.PushButtonRepeat(_repeat: Boolean);
-Begin
-  igPushButtonRepeat(_repeat);
-End;
-
-Class Procedure ImGui.PopButtonRepeat;
-Begin
-  igPopButtonRepeat;
-End;
-
 Class Procedure ImGui.SeparatorText(label_: AnsiString);
 Class Procedure ImGui.SeparatorText(label_: AnsiString);
 Begin
 Begin
   igSeparatorText(PAnsiChar(label_));
   igSeparatorText(PAnsiChar(label_));
@@ -2969,8 +2915,8 @@ Begin
   ImDrawList_AddTriangleFilled(@self, a, b, c, col);
   ImDrawList_AddTriangleFilled(@self, a, b, c, col);
 End;
 End;
 
 
-Procedure TImDrawListHelper.AddCircle(centre: ImVec2; radius: Single; col: ImU32; num_segments: Longint;
-  thickness: Single);
+Procedure TImDrawListHelper.AddCircle(centre: ImVec2; radius: Single; col: ImU32;
+  num_segments: Longint; thickness: Single);
 Begin
 Begin
   ImDrawList_AddCircle(@self, centre, radius, col, num_segments, thickness);
   ImDrawList_AddCircle(@self, centre, radius, col, num_segments, thickness);
 End;
 End;