diff --git a/.gitmodules b/.gitmodules index b599f50..ab4caae 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "cimgui"] path = dependencies/cimgui - url = https://github.com/cimgui/cimgui + url = https://github.com/Fexty12573/cimgui + branch = docking_inter diff --git a/Assets/DebugAssets/ImGui.NET.dll b/Assets/DebugAssets/ImGui.NET.dll index bd8de55..ad23562 100644 Binary files a/Assets/DebugAssets/ImGui.NET.dll and b/Assets/DebugAssets/ImGui.NET.dll differ diff --git a/Assets/DebugAssets/cimgui.debug.dll b/Assets/DebugAssets/cimgui.debug.dll index 4f363a3..fc9d8f7 100644 Binary files a/Assets/DebugAssets/cimgui.debug.dll and b/Assets/DebugAssets/cimgui.debug.dll differ diff --git a/Assets/ReleaseAssets/ImGui.NET.dll b/Assets/ReleaseAssets/ImGui.NET.dll index 2f878ff..74252d1 100644 Binary files a/Assets/ReleaseAssets/ImGui.NET.dll and b/Assets/ReleaseAssets/ImGui.NET.dll differ diff --git a/Assets/ReleaseAssets/cimgui.dll b/Assets/ReleaseAssets/cimgui.dll index cbbd516..e9d757a 100644 Binary files a/Assets/ReleaseAssets/cimgui.dll and b/Assets/ReleaseAssets/cimgui.dll differ diff --git a/Examples/DtiHierarchyVisualizer/DtiHierarchyVisualizer.csproj b/Examples/DtiHierarchyVisualizer/DtiHierarchyVisualizer.csproj index 8f3d888..cad27d6 100644 --- a/Examples/DtiHierarchyVisualizer/DtiHierarchyVisualizer.csproj +++ b/Examples/DtiHierarchyVisualizer/DtiHierarchyVisualizer.csproj @@ -8,6 +8,7 @@ + diff --git a/Examples/ExperimentalTesting/ExperimentalTesting.csproj b/Examples/ExperimentalTesting/ExperimentalTesting.csproj index dcfb1d6..0ff9843 100644 --- a/Examples/ExperimentalTesting/ExperimentalTesting.csproj +++ b/Examples/ExperimentalTesting/ExperimentalTesting.csproj @@ -8,14 +8,16 @@ true + + + + False False - + diff --git a/Examples/PlayerAnimationViewer/PlayerAnimationViewer.csproj b/Examples/PlayerAnimationViewer/PlayerAnimationViewer.csproj index c5026a8..5800fac 100644 --- a/Examples/PlayerAnimationViewer/PlayerAnimationViewer.csproj +++ b/Examples/PlayerAnimationViewer/PlayerAnimationViewer.csproj @@ -8,7 +8,7 @@ - + diff --git a/SharpPluginLoader.Core/SharpPluginLoader.Core.csproj b/SharpPluginLoader.Core/SharpPluginLoader.Core.csproj index 63ffc2f..615cc7e 100644 --- a/SharpPluginLoader.Core/SharpPluginLoader.Core.csproj +++ b/SharpPluginLoader.Core/SharpPluginLoader.Core.csproj @@ -46,8 +46,8 @@ - + diff --git a/dependencies/cimgui b/dependencies/cimgui index 21e7106..63cf31a 160000 --- a/dependencies/cimgui +++ b/dependencies/cimgui @@ -1 +1 @@ -Subproject commit 21e7106aa1ad065e0eccf070ef256b4b27c8145b +Subproject commit 63cf31a8bbe36d6e03e3415759014ee666b2108b diff --git a/dependencies/generic/include/cimgui/cimgui.h b/dependencies/generic/include/cimgui/cimgui.h index d4fffd4..37a1291 100644 --- a/dependencies/generic/include/cimgui/cimgui.h +++ b/dependencies/generic/include/cimgui/cimgui.h @@ -1,6 +1,8 @@ //This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui -//based on imgui.h file version "1.90.0" 19000 from Dear ImGui https://github.com/ocornut/imgui +//based on imgui.h file version "1.90.2 WIP" 19013 from Dear ImGui https://github.com/ocornut/imgui //with imgui_internal.h api +//with imgui_stacklayout.h api +//with imgui_stacklayout_internal.h api //docking branch #ifndef CIMGUI_INCLUDED #define CIMGUI_INCLUDED @@ -184,9 +186,7 @@ typedef int ImGuiTableColumnFlags; typedef int ImGuiTableRowFlags; typedef int ImGuiTreeNodeFlags; typedef int ImGuiViewportFlags; -typedef int ImGuiWindowFlags; -typedef void* ImTextureID; -typedef unsigned short ImDrawIdx; +typedef int ImGuiWindowFlags;typedef void* ImTextureID;typedef unsigned short ImDrawIdx; typedef unsigned int ImGuiID; typedef signed char ImS8; typedef unsigned char ImU8; @@ -197,8 +197,7 @@ typedef unsigned int ImU32; typedef signed long long ImS64; typedef unsigned long long ImU64; typedef unsigned int ImWchar32; -typedef unsigned short ImWchar16; -typedef ImWchar16 ImWchar; +typedef unsigned short ImWchar16;typedef ImWchar16 ImWchar; typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData* data); typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); typedef void* (*ImGuiMemAllocFunc)(size_t sz, void* user_data); @@ -245,6 +244,9 @@ typedef enum { ImGuiWindowFlags_Modal = 1 << 27, ImGuiWindowFlags_ChildMenu = 1 << 28, ImGuiWindowFlags_DockNodeHost = 1 << 29, + + + }ImGuiWindowFlags_; typedef enum { ImGuiChildFlags_None = 0, @@ -299,6 +301,10 @@ typedef enum { ImGuiTreeNodeFlags_SpanAllColumns = 1 << 13, ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 14, ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog, + + + + }ImGuiTreeNodeFlags_; typedef enum { ImGuiPopupFlags_None = 0, @@ -320,6 +326,10 @@ typedef enum { ImGuiSelectableFlags_AllowDoubleClick = 1 << 2, ImGuiSelectableFlags_Disabled = 1 << 3, ImGuiSelectableFlags_AllowOverlap = 1 << 4, + + + + }ImGuiSelectableFlags_; typedef enum { ImGuiComboFlags_None = 0, @@ -356,86 +366,8 @@ typedef enum { ImGuiTabItemFlags_NoReorder = 1 << 5, ImGuiTabItemFlags_Leading = 1 << 6, ImGuiTabItemFlags_Trailing = 1 << 7, + ImGuiTabItemFlags_NoAssumedClosure = 1 << 8, }ImGuiTabItemFlags_; -typedef enum { - ImGuiTableFlags_None = 0, - ImGuiTableFlags_Resizable = 1 << 0, - ImGuiTableFlags_Reorderable = 1 << 1, - ImGuiTableFlags_Hideable = 1 << 2, - ImGuiTableFlags_Sortable = 1 << 3, - ImGuiTableFlags_NoSavedSettings = 1 << 4, - ImGuiTableFlags_ContextMenuInBody = 1 << 5, - ImGuiTableFlags_RowBg = 1 << 6, - ImGuiTableFlags_BordersInnerH = 1 << 7, - ImGuiTableFlags_BordersOuterH = 1 << 8, - ImGuiTableFlags_BordersInnerV = 1 << 9, - ImGuiTableFlags_BordersOuterV = 1 << 10, - ImGuiTableFlags_BordersH = ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH, - ImGuiTableFlags_BordersV = ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV, - ImGuiTableFlags_BordersInner = ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH, - ImGuiTableFlags_BordersOuter = ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH, - ImGuiTableFlags_Borders = ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter, - ImGuiTableFlags_NoBordersInBody = 1 << 11, - ImGuiTableFlags_NoBordersInBodyUntilResize = 1 << 12, - ImGuiTableFlags_SizingFixedFit = 1 << 13, - ImGuiTableFlags_SizingFixedSame = 2 << 13, - ImGuiTableFlags_SizingStretchProp = 3 << 13, - ImGuiTableFlags_SizingStretchSame = 4 << 13, - ImGuiTableFlags_NoHostExtendX = 1 << 16, - ImGuiTableFlags_NoHostExtendY = 1 << 17, - ImGuiTableFlags_NoKeepColumnsVisible = 1 << 18, - ImGuiTableFlags_PreciseWidths = 1 << 19, - ImGuiTableFlags_NoClip = 1 << 20, - ImGuiTableFlags_PadOuterX = 1 << 21, - ImGuiTableFlags_NoPadOuterX = 1 << 22, - ImGuiTableFlags_NoPadInnerX = 1 << 23, - ImGuiTableFlags_ScrollX = 1 << 24, - ImGuiTableFlags_ScrollY = 1 << 25, - ImGuiTableFlags_SortMulti = 1 << 26, - ImGuiTableFlags_SortTristate = 1 << 27, - ImGuiTableFlags_HighlightHoveredColumn = 1 << 28, - ImGuiTableFlags_SizingMask_ = ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame, -}ImGuiTableFlags_; -typedef enum { - ImGuiTableColumnFlags_None = 0, - ImGuiTableColumnFlags_Disabled = 1 << 0, - ImGuiTableColumnFlags_DefaultHide = 1 << 1, - ImGuiTableColumnFlags_DefaultSort = 1 << 2, - ImGuiTableColumnFlags_WidthStretch = 1 << 3, - ImGuiTableColumnFlags_WidthFixed = 1 << 4, - ImGuiTableColumnFlags_NoResize = 1 << 5, - ImGuiTableColumnFlags_NoReorder = 1 << 6, - ImGuiTableColumnFlags_NoHide = 1 << 7, - ImGuiTableColumnFlags_NoClip = 1 << 8, - ImGuiTableColumnFlags_NoSort = 1 << 9, - ImGuiTableColumnFlags_NoSortAscending = 1 << 10, - ImGuiTableColumnFlags_NoSortDescending = 1 << 11, - ImGuiTableColumnFlags_NoHeaderLabel = 1 << 12, - ImGuiTableColumnFlags_NoHeaderWidth = 1 << 13, - ImGuiTableColumnFlags_PreferSortAscending = 1 << 14, - ImGuiTableColumnFlags_PreferSortDescending = 1 << 15, - ImGuiTableColumnFlags_IndentEnable = 1 << 16, - ImGuiTableColumnFlags_IndentDisable = 1 << 17, - ImGuiTableColumnFlags_AngledHeader = 1 << 18, - ImGuiTableColumnFlags_IsEnabled = 1 << 24, - ImGuiTableColumnFlags_IsVisible = 1 << 25, - ImGuiTableColumnFlags_IsSorted = 1 << 26, - ImGuiTableColumnFlags_IsHovered = 1 << 27, - ImGuiTableColumnFlags_WidthMask_ = ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed, - ImGuiTableColumnFlags_IndentMask_ = ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable, - ImGuiTableColumnFlags_StatusMask_ = ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered, - ImGuiTableColumnFlags_NoDirectResize_ = 1 << 30, -}ImGuiTableColumnFlags_; -typedef enum { - ImGuiTableRowFlags_None = 0, - ImGuiTableRowFlags_Headers = 1 << 0, -}ImGuiTableRowFlags_; -typedef enum { - ImGuiTableBgTarget_None = 0, - ImGuiTableBgTarget_RowBg0 = 1, - ImGuiTableBgTarget_RowBg1 = 2, - ImGuiTableBgTarget_CellBg = 3, -}ImGuiTableBgTarget_; typedef enum { ImGuiFocusedFlags_None = 0, ImGuiFocusedFlags_ChildWindows = 1 << 0, @@ -477,6 +409,11 @@ typedef enum { ImGuiDockNodeFlags_NoResize = 1 << 5, ImGuiDockNodeFlags_AutoHideTabBar = 1 << 6, ImGuiDockNodeFlags_NoUndocking = 1 << 7, + + + + + }ImGuiDockNodeFlags_; typedef enum { ImGuiDragDropFlags_None = 0, @@ -801,6 +738,7 @@ typedef enum { ImGuiStyleVar_SeparatorTextAlign, ImGuiStyleVar_SeparatorTextPadding, ImGuiStyleVar_DockingSeparatorSize, + ImGuiStyleVar_LayoutAlign, ImGuiStyleVar_COUNT }ImGuiStyleVar_; typedef enum { @@ -882,6 +820,98 @@ typedef enum { ImGuiCond_FirstUseEver = 1 << 2, ImGuiCond_Appearing = 1 << 3, }ImGuiCond_; +typedef enum { + ImGuiTableFlags_None = 0, + ImGuiTableFlags_Resizable = 1 << 0, + ImGuiTableFlags_Reorderable = 1 << 1, + ImGuiTableFlags_Hideable = 1 << 2, + ImGuiTableFlags_Sortable = 1 << 3, + ImGuiTableFlags_NoSavedSettings = 1 << 4, + ImGuiTableFlags_ContextMenuInBody = 1 << 5, + ImGuiTableFlags_RowBg = 1 << 6, + ImGuiTableFlags_BordersInnerH = 1 << 7, + ImGuiTableFlags_BordersOuterH = 1 << 8, + ImGuiTableFlags_BordersInnerV = 1 << 9, + ImGuiTableFlags_BordersOuterV = 1 << 10, + ImGuiTableFlags_BordersH = ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH, + ImGuiTableFlags_BordersV = ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV, + ImGuiTableFlags_BordersInner = ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH, + ImGuiTableFlags_BordersOuter = ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH, + ImGuiTableFlags_Borders = ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter, + ImGuiTableFlags_NoBordersInBody = 1 << 11, + ImGuiTableFlags_NoBordersInBodyUntilResize = 1 << 12, + ImGuiTableFlags_SizingFixedFit = 1 << 13, + ImGuiTableFlags_SizingFixedSame = 2 << 13, + ImGuiTableFlags_SizingStretchProp = 3 << 13, + ImGuiTableFlags_SizingStretchSame = 4 << 13, + ImGuiTableFlags_NoHostExtendX = 1 << 16, + ImGuiTableFlags_NoHostExtendY = 1 << 17, + ImGuiTableFlags_NoKeepColumnsVisible = 1 << 18, + ImGuiTableFlags_PreciseWidths = 1 << 19, + ImGuiTableFlags_NoClip = 1 << 20, + ImGuiTableFlags_PadOuterX = 1 << 21, + ImGuiTableFlags_NoPadOuterX = 1 << 22, + ImGuiTableFlags_NoPadInnerX = 1 << 23, + ImGuiTableFlags_ScrollX = 1 << 24, + ImGuiTableFlags_ScrollY = 1 << 25, + ImGuiTableFlags_SortMulti = 1 << 26, + ImGuiTableFlags_SortTristate = 1 << 27, + ImGuiTableFlags_HighlightHoveredColumn = 1 << 28, + ImGuiTableFlags_SizingMask_ = ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame, +}ImGuiTableFlags_; +typedef enum { + ImGuiTableColumnFlags_None = 0, + ImGuiTableColumnFlags_Disabled = 1 << 0, + ImGuiTableColumnFlags_DefaultHide = 1 << 1, + ImGuiTableColumnFlags_DefaultSort = 1 << 2, + ImGuiTableColumnFlags_WidthStretch = 1 << 3, + ImGuiTableColumnFlags_WidthFixed = 1 << 4, + ImGuiTableColumnFlags_NoResize = 1 << 5, + ImGuiTableColumnFlags_NoReorder = 1 << 6, + ImGuiTableColumnFlags_NoHide = 1 << 7, + ImGuiTableColumnFlags_NoClip = 1 << 8, + ImGuiTableColumnFlags_NoSort = 1 << 9, + ImGuiTableColumnFlags_NoSortAscending = 1 << 10, + ImGuiTableColumnFlags_NoSortDescending = 1 << 11, + ImGuiTableColumnFlags_NoHeaderLabel = 1 << 12, + ImGuiTableColumnFlags_NoHeaderWidth = 1 << 13, + ImGuiTableColumnFlags_PreferSortAscending = 1 << 14, + ImGuiTableColumnFlags_PreferSortDescending = 1 << 15, + ImGuiTableColumnFlags_IndentEnable = 1 << 16, + ImGuiTableColumnFlags_IndentDisable = 1 << 17, + ImGuiTableColumnFlags_AngledHeader = 1 << 18, + ImGuiTableColumnFlags_IsEnabled = 1 << 24, + ImGuiTableColumnFlags_IsVisible = 1 << 25, + ImGuiTableColumnFlags_IsSorted = 1 << 26, + ImGuiTableColumnFlags_IsHovered = 1 << 27, + ImGuiTableColumnFlags_WidthMask_ = ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed, + ImGuiTableColumnFlags_IndentMask_ = ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable, + ImGuiTableColumnFlags_StatusMask_ = ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered, + ImGuiTableColumnFlags_NoDirectResize_ = 1 << 30, +}ImGuiTableColumnFlags_; +typedef enum { + ImGuiTableRowFlags_None = 0, + ImGuiTableRowFlags_Headers = 1 << 0, +}ImGuiTableRowFlags_; +typedef enum { + ImGuiTableBgTarget_None = 0, + ImGuiTableBgTarget_RowBg0 = 1, + ImGuiTableBgTarget_RowBg1 = 2, + ImGuiTableBgTarget_CellBg = 3, +}ImGuiTableBgTarget_; +struct ImGuiTableSortSpecs +{ + const ImGuiTableColumnSortSpecs* Specs; + int SpecsCount; + bool SpecsDirty; +}; +struct ImGuiTableColumnSortSpecs +{ + ImGuiID ColumnUserID; + ImS16 ColumnIndex; + ImS16 SortOrder; + ImGuiSortDirection SortDirection : 8; +}; struct ImGuiStyle { float Alpha; @@ -909,6 +939,7 @@ struct ImGuiStyle float ScrollbarRounding; float GrabMinSize; float GrabRounding; + float LayoutAlign; float LogSliderDeadzone; float TabRounding; float TabBorderSize; @@ -947,16 +978,14 @@ struct ImGuiKeyData typedef struct ImVector_ImWchar {int Size;int Capacity;ImWchar* Data;} ImVector_ImWchar; struct ImGuiIO -{ - ImGuiConfigFlags ConfigFlags; +{ ImGuiConfigFlags ConfigFlags; ImGuiBackendFlags BackendFlags; ImVec2 DisplaySize; float DeltaTime; float IniSavingRate; const char* IniFilename; const char* LogFilename; - void* UserData; - ImFontAtlas*Fonts; + void* UserData; ImFontAtlas*Fonts; float FontGlobalScale; bool FontAllowUserScaling; ImFont* FontDefault; @@ -983,6 +1012,7 @@ struct ImGuiIO float MouseDragThreshold; float KeyRepeatDelay; float KeyRepeatRate; + bool ConfigDebugIsDebuggerPresent; bool ConfigDebugBeginReturnValueOnce; bool ConfigDebugBeginReturnValueLoop; bool ConfigDebugIgnoreFocusLoss; @@ -996,8 +1026,7 @@ struct ImGuiIO void (*SetClipboardTextFn)(void* user_data, const char* text); void* ClipboardUserData; void (*SetPlatformImeDataFn)(ImGuiViewport* viewport, ImGuiPlatformImeData* data); - ImWchar PlatformLocaleDecimalPoint; - bool WantCaptureMouse; + ImWchar PlatformLocaleDecimalPoint; bool WantCaptureMouse; bool WantCaptureKeyboard; bool WantTextInput; bool WantSetMousePos; @@ -1009,9 +1038,7 @@ struct ImGuiIO int MetricsRenderIndices; int MetricsRenderWindows; int MetricsActiveWindows; - ImVec2 MouseDelta; - void* _UnusedPadding; - ImGuiContext* Ctx; + ImVec2 MouseDelta; ImGuiContext* Ctx; ImVec2 MousePos; bool MouseDown[5]; float MouseWheel; @@ -1075,6 +1102,7 @@ struct ImGuiWindowClass { ImGuiID ClassId; ImGuiID ParentViewportId; + ImGuiID FocusRouteParentWindowId; ImGuiViewportFlags ViewportFlagsOverrideSet; ImGuiViewportFlags ViewportFlagsOverrideClear; ImGuiTabItemFlags TabItemFlagsOverrideSet; @@ -1093,19 +1121,6 @@ struct ImGuiPayload bool Preview; bool Delivery; }; -struct ImGuiTableColumnSortSpecs -{ - ImGuiID ColumnUserID; - ImS16 ColumnIndex; - ImS16 SortOrder; - ImGuiSortDirection SortDirection : 8; -}; -struct ImGuiTableSortSpecs -{ - const ImGuiTableColumnSortSpecs* Specs; - int SpecsCount; - bool SpecsDirty; -}; struct ImGuiOnceUponAFrame { int RefFrame; @@ -1142,8 +1157,7 @@ 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 @@ -1325,8 +1339,7 @@ typedef struct ImVector_ImFontAtlasCustomRect {int Size;int Capacity;ImFontAtlas typedef struct ImVector_ImFontConfig {int Size;int Capacity;ImFontConfig* Data;} ImVector_ImFontConfig; struct ImFontAtlas -{ - ImFontAtlasFlags Flags; +{ ImFontAtlasFlags Flags; ImTextureID TexID; int TexDesiredWidth; int TexGlyphPadding; @@ -1456,8 +1469,7 @@ struct ImGuiPlatformImeData bool WantVisible; ImVec2 InputPos; float InputLineHeight; -}; -struct ImBitVector; +};struct ImBitVector; struct ImRect; struct ImDrawDataBuilder; struct ImDrawListSharedData; @@ -1518,8 +1530,7 @@ typedef int ImGuiSeparatorFlags; typedef int ImGuiTextFlags; typedef int ImGuiTooltipFlags; typedef int ImGuiTypingSelectFlags; -typedef void (*ImGuiErrorLogCallback)(void* user_data, const char* fmt, ...); -extern ImGuiContext* GImGui; +typedef void (*ImGuiErrorLogCallback)(void* user_data, const char* fmt, ...);extern ImGuiContext* GImGui; typedef struct StbUndoRecord StbUndoRecord; struct StbUndoRecord { @@ -1538,12 +1549,8 @@ struct StbUndoState }; 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; +{ 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; @@ -1575,8 +1582,7 @@ struct ImRect { ImVec2 Min; ImVec2 Max; -}; -typedef ImU32* ImBitArrayPtr; +};typedef ImU32* ImBitArrayPtr; struct ImBitVector { ImVector_ImU32 Storage; @@ -1635,8 +1641,15 @@ typedef enum { ImGuiItemStatusFlags_HasDeactivated = 1 << 5, ImGuiItemStatusFlags_Deactivated = 1 << 6, ImGuiItemStatusFlags_HoveredWindow = 1 << 7, - ImGuiItemStatusFlags_FocusedByTabbing = 1 << 8, - ImGuiItemStatusFlags_Visible = 1 << 9, + ImGuiItemStatusFlags_Visible = 1 << 8, + ImGuiItemStatusFlags_HasClipRect = 1 << 9, + + + + + + + }ImGuiItemStatusFlags_; typedef enum { ImGuiHoveredFlags_DelayMask_ = ImGuiHoveredFlags_DelayNone | ImGuiHoveredFlags_DelayShort | ImGuiHoveredFlags_DelayNormal | ImGuiHoveredFlags_NoSharedDelay, @@ -1888,10 +1901,10 @@ struct ImGuiNextItemData { ImGuiNextItemDataFlags Flags; ImGuiItemFlags ItemFlags; - float Width; ImGuiSelectionUserData SelectionUserData; - ImGuiCond OpenCond; + float Width; bool OpenVal; + ImGuiCond OpenCond : 8; }; struct ImGuiLastItemData { @@ -1901,6 +1914,7 @@ struct ImGuiLastItemData ImRect Rect; ImRect NavRect; ImRect DisplayRect; + ImRect ClipRect; }; struct ImGuiNavTreeNodeData { @@ -2007,13 +2021,13 @@ struct ImGuiInputEvent ImGuiInputEventAppFocused AppFocused; }; bool AddedByTestEngine; -}; -typedef ImS16 ImGuiKeyRoutingIndex; +};typedef ImS16 ImGuiKeyRoutingIndex; typedef struct ImGuiKeyRoutingData ImGuiKeyRoutingData; struct ImGuiKeyRoutingData { ImGuiKeyRoutingIndex NextEntryIndex; ImU16 Mods; + ImU8 RoutingCurrScore; ImU8 RoutingNextScore; ImGuiID RoutingCurr; ImGuiID RoutingNext; @@ -2041,23 +2055,29 @@ typedef enum { ImGuiInputFlags_RepeatRateDefault = 1 << 1, ImGuiInputFlags_RepeatRateNavMove = 1 << 2, ImGuiInputFlags_RepeatRateNavTweak = 1 << 3, - ImGuiInputFlags_RepeatRateMask_ = ImGuiInputFlags_RepeatRateDefault | ImGuiInputFlags_RepeatRateNavMove | ImGuiInputFlags_RepeatRateNavTweak, - ImGuiInputFlags_CondHovered = 1 << 4, - ImGuiInputFlags_CondActive = 1 << 5, + ImGuiInputFlags_RepeatUntilRelease = 1 << 4, + ImGuiInputFlags_RepeatUntilKeyModsChange = 1 << 5, + ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone = 1 << 6, + ImGuiInputFlags_RepeatUntilOtherKeyPress = 1 << 7, + ImGuiInputFlags_CondHovered = 1 << 8, + ImGuiInputFlags_CondActive = 1 << 9, 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_LockThisFrame = 1 << 6, - ImGuiInputFlags_LockUntilRelease = 1 << 7, - ImGuiInputFlags_RouteFocused = 1 << 8, - ImGuiInputFlags_RouteGlobalLow = 1 << 9, - ImGuiInputFlags_RouteGlobal = 1 << 10, - ImGuiInputFlags_RouteGlobalHigh = 1 << 11, ImGuiInputFlags_RouteMask_ = ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteGlobalLow | ImGuiInputFlags_RouteGlobalHigh, - ImGuiInputFlags_RouteAlways = 1 << 12, - ImGuiInputFlags_RouteUnlessBgFocused= 1 << 13, - ImGuiInputFlags_RouteExtraMask_ = ImGuiInputFlags_RouteAlways | ImGuiInputFlags_RouteUnlessBgFocused, - ImGuiInputFlags_SupportedByIsKeyPressed = ImGuiInputFlags_Repeat | ImGuiInputFlags_RepeatRateMask_, - ImGuiInputFlags_SupportedByShortcut = ImGuiInputFlags_Repeat | ImGuiInputFlags_RepeatRateMask_ | ImGuiInputFlags_RouteMask_ | ImGuiInputFlags_RouteExtraMask_, + ImGuiInputFlags_SupportedByIsKeyPressed = ImGuiInputFlags_RepeatMask_, + ImGuiInputFlags_SupportedByIsMouseClicked = ImGuiInputFlags_Repeat, + ImGuiInputFlags_SupportedByShortcut = ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteMask_ | ImGuiInputFlags_RouteAlways | ImGuiInputFlags_RouteUnlessBgFocused, ImGuiInputFlags_SupportedBySetKeyOwner = ImGuiInputFlags_LockThisFrame | ImGuiInputFlags_LockUntilRelease, ImGuiInputFlags_SupportedBySetItemKeyOwner = ImGuiInputFlags_SupportedBySetKeyOwner | ImGuiInputFlags_CondMask_, }ImGuiInputFlags_; @@ -2086,6 +2106,7 @@ typedef enum { ImGuiActivateFlags_PreferInput = 1 << 0, ImGuiActivateFlags_PreferTweak = 1 << 1, ImGuiActivateFlags_TryToPreserveState = 1 << 2, + ImGuiActivateFlags_FromTabbing = 1 << 3, }ImGuiActivateFlags_; typedef enum { ImGuiScrollFlags_None = 0, @@ -2142,6 +2163,12 @@ struct ImGuiNavItemData float DistCenter; float DistAxial; }; +typedef struct ImGuiFocusScopeData ImGuiFocusScopeData; +struct ImGuiFocusScopeData +{ + ImGuiID ID; + ImGuiID WindowID; +}; typedef enum { ImGuiTypingSelectFlags_None = 0, ImGuiTypingSelectFlags_AllowBackspace = 1 << 0, @@ -2209,6 +2236,7 @@ typedef enum { ImGuiDockNodeFlags_NoCloseButton = 1 << 15, ImGuiDockNodeFlags_NoResizeX = 1 << 16, ImGuiDockNodeFlags_NoResizeY = 1 << 17, + ImGuiDockNodeFlags_DockedWindowsInFocusRoute= 1 << 18, ImGuiDockNodeFlags_NoDockingSplitOther = 1 << 19, ImGuiDockNodeFlags_NoDockingOverMe = 1 << 20, ImGuiDockNodeFlags_NoDockingOverOther = 1 << 21, @@ -2249,8 +2277,7 @@ struct ImGuiDockNode ImVec2 SizeRef; ImGuiAxis SplitAxis; ImGuiWindowClass WindowClass; - ImU32 LastBgColor; - ImGuiWindow* HostWindow; + ImU32 LastBgColor; ImGuiWindow* HostWindow; ImGuiWindow* VisibleWindow; ImGuiDockNode* CentralNode; ImGuiDockNode* OnlyNodeWithWindows; @@ -2383,11 +2410,13 @@ typedef enum { ImGuiDebugLogFlags_EventClipper = 1 << 4, ImGuiDebugLogFlags_EventSelection = 1 << 5, ImGuiDebugLogFlags_EventIO = 1 << 6, - ImGuiDebugLogFlags_EventDocking = 1 << 7, - ImGuiDebugLogFlags_EventViewport = 1 << 8, - ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventDocking | ImGuiDebugLogFlags_EventViewport, - ImGuiDebugLogFlags_OutputToTTY = 1 << 10, - ImGuiDebugLogFlags_OutputToTestEngine = 1 << 11, + ImGuiDebugLogFlags_EventInputRouting = 1 << 7, + ImGuiDebugLogFlags_EventDocking = 1 << 8, + ImGuiDebugLogFlags_EventViewport = 1 << 9, + + ImGuiDebugLogFlags_EventMask_ = ImGuiDebugLogFlags_EventActiveId | ImGuiDebugLogFlags_EventFocus | ImGuiDebugLogFlags_EventPopup | ImGuiDebugLogFlags_EventNav | ImGuiDebugLogFlags_EventClipper | ImGuiDebugLogFlags_EventSelection | ImGuiDebugLogFlags_EventIO | ImGuiDebugLogFlags_EventInputRouting | ImGuiDebugLogFlags_EventDocking | ImGuiDebugLogFlags_EventViewport, + ImGuiDebugLogFlags_OutputToTTY = 1 << 20, + ImGuiDebugLogFlags_OutputToTestEngine = 1 << 21, }ImGuiDebugLogFlags_; typedef struct ImGuiDebugAllocEntry ImGuiDebugAllocEntry; struct ImGuiDebugAllocEntry @@ -2413,6 +2442,7 @@ struct ImGuiMetricsConfig bool ShowTablesRects; bool ShowDrawCmdMesh; bool ShowDrawCmdBoundingBoxes; + bool ShowTextEncodingViewer; bool ShowAtlasTintedWithTextColor; bool ShowDockingNodes; int ShowWindowsRectsType; @@ -2457,7 +2487,7 @@ typedef struct ImVector_ImGuiColorMod {int Size;int Capacity;ImGuiColorMod* Data typedef struct ImVector_ImGuiStyleMod {int Size;int Capacity;ImGuiStyleMod* Data;} ImVector_ImGuiStyleMod; -typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; +typedef struct ImVector_ImGuiFocusScopeData {int Size;int Capacity;ImGuiFocusScopeData* Data;} ImVector_ImGuiFocusScopeData; typedef struct ImVector_ImGuiItemFlags {int Size;int Capacity;ImGuiItemFlags* Data;} ImVector_ImGuiItemFlags; @@ -2487,6 +2517,8 @@ typedef struct ImVector_ImGuiPtrOrIndex {int Size;int Capacity;ImGuiPtrOrIndex* typedef struct ImVector_ImGuiShrinkWidthItem {int Size;int Capacity;ImGuiShrinkWidthItem* Data;} ImVector_ImGuiShrinkWidthItem; +typedef struct ImVector_ImGuiID {int Size;int Capacity;ImGuiID* Data;} ImVector_ImGuiID; + typedef struct ImVector_ImGuiSettingsHandler {int Size;int Capacity;ImGuiSettingsHandler* Data;} ImVector_ImGuiSettingsHandler; typedef struct ImChunkStream_ImGuiWindowSettings {ImVector_char Buf;} ImChunkStream_ImGuiWindowSettings; @@ -2530,6 +2562,7 @@ struct ImGuiContext ImGuiStorage WindowsById; int WindowsActiveCount; ImVec2 WindowsHoverPadding; + ImGuiID DebugBreakInWindow; ImGuiWindow* CurrentWindow; ImGuiWindow* HoveredWindow; ImGuiWindow* HoveredWindowUnderMovingWindow; @@ -2567,10 +2600,15 @@ struct ImGuiContext ImGuiWindow* ActiveIdPreviousFrameWindow; ImGuiID LastActiveId; float LastActiveIdTimer; + double LastKeyModsChangeTime; + double LastKeyModsChangeFromNoneTime; + double LastKeyboardKeyPressTime; + ImBitArrayForNamedKeys KeysMayBeCharInput; ImGuiKeyOwnerData KeysOwnerData[ImGuiKey_NamedKey_COUNT]; ImGuiKeyRoutingTable KeysRoutingTable; ImU32 ActiveIdUsingNavDirMask; bool ActiveIdUsingAllKeyboardKeys; + ImGuiKeyChord DebugBreakInShortcutRouting; ImGuiID CurrentFocusScopeId; ImGuiItemFlags CurrentItemFlags; ImGuiID DebugLocateId; @@ -2578,16 +2616,16 @@ struct ImGuiContext ImGuiLastItemData LastItemData; ImGuiNextWindowData NextWindowData; bool DebugShowGroupRects; + ImGuiCol DebugFlashStyleColorIdx; ImVector_ImGuiColorMod ColorStack; ImVector_ImGuiStyleMod StyleVarStack; ImVector_ImFontPtr FontStack; - ImVector_ImGuiID FocusScopeStack; + ImVector_ImGuiFocusScopeData FocusScopeStack; ImVector_ImGuiItemFlags ItemFlagsStack; ImVector_ImGuiGroupData GroupStack; ImVector_ImGuiPopupData OpenPopupStack; ImVector_ImGuiPopupData BeginPopupStack; - ImVector_ImGuiNavTreeNodeData NavTreeNodeStack; - int BeginMenuCount; + ImVector_ImGuiNavTreeNodeData NavTreeNodeStack; int BeginMenuCount; ImVector_ImGuiViewportPPtr Viewports; float CurrentDpiScale; ImGuiViewportP* CurrentViewport; @@ -2601,6 +2639,7 @@ struct ImGuiContext ImGuiWindow* NavWindow; ImGuiID NavId; ImGuiID NavFocusScopeId; + ImVector_ImGuiFocusScopeData NavFocusRoute; ImGuiID NavActivateId; ImGuiID NavActivateDownId; ImGuiID NavActivatePressedId; @@ -2658,6 +2697,7 @@ struct ImGuiContext int DragDropMouseButton; ImGuiPayload DragDropPayload; ImRect DragDropTargetRect; + ImRect DragDropTargetClipRect; ImGuiID DragDropTargetId; ImGuiDragDropFlags DragDropAcceptFlags; float DragDropAcceptIdCurrRectSurface; @@ -2670,6 +2710,7 @@ struct ImGuiContext int ClipperTempDataStacked; ImVector_ImGuiListClipperData ClipperTempData; ImGuiTable* CurrentTable; + ImGuiID DebugBreakInTable; int TablesTempDataStacked; ImVector_ImGuiTableTempData TablesTempData; ImPool_ImGuiTable Tables; @@ -2744,12 +2785,17 @@ struct ImGuiContext ImGuiDebugLogFlags DebugLogFlags; ImGuiTextBuffer DebugLogBuf; ImGuiTextIndex DebugLogIndex; - ImU8 DebugLogClipperAutoDisableFrames; + ImGuiDebugLogFlags DebugLogAutoDisableFlags; + ImU8 DebugLogAutoDisableFrames; ImU8 DebugLocateFrames; + bool DebugBreakInLocateId; + ImGuiKeyChord DebugBreakKeyChord; ImS8 DebugBeginReturnValueCullDepth; bool DebugItemPickerActive; ImU8 DebugItemPickerMouseButton; ImGuiID DebugItemPickerBreakId; + float DebugFlashStyleColorTime; + ImVec4 DebugFlashStyleColorBackup; ImGuiMetricsConfig DebugMetricsConfig; ImGuiIDStackTool DebugIDStackTool; ImGuiDebugAllocInfo DebugAllocInfo; @@ -2762,6 +2808,7 @@ struct ImGuiContext int WantCaptureKeyboardNextFrame; int WantTextInputNextFrame; ImVector_char TempBuffer; + char TempKeychordName[64]; }; struct ImGuiWindowTempData { @@ -2871,8 +2918,7 @@ struct ImGuiWindow ImGuiCond SetWindowCollapsedAllowFlags : 8; ImGuiCond SetWindowDockAllowFlags : 8; ImVec2 SetWindowPosVal; - ImVec2 SetWindowPosPivot; - ImVector_ImGuiID IDStack; + ImVec2 SetWindowPosPivot; ImVector_ImGuiID IDStack; ImGuiWindowTempData DC; ImRect OuterRectClipped; ImRect InnerRect; @@ -2882,8 +2928,7 @@ struct ImGuiWindow ImRect ClipRect; ImRect ContentRegionRect; ImVec2ih HitTestHoleSize; - ImVec2ih HitTestHoleOffset; - int LastFrameActive; + ImVec2ih HitTestHoleOffset; int LastFrameActive; int LastFrameJustFocused; float LastTimeActive; float ItemWidthDefault; @@ -2891,8 +2936,7 @@ struct ImGuiWindow ImVector_ImGuiOldColumns ColumnsStorage; float FontWindowScale; float FontDpiScale; - int SettingsOffset; - ImDrawList* DrawList; + int SettingsOffset; ImDrawList* DrawList; ImDrawList DrawListInst; ImGuiWindow* ParentWindow; ImGuiWindow* ParentWindowInBeginStack; @@ -2901,12 +2945,11 @@ struct ImGuiWindow ImGuiWindow* RootWindowDockTree; ImGuiWindow* RootWindowForTitleBarHighlight; ImGuiWindow* RootWindowForNav; - ImGuiWindow* NavLastChildNavWindow; + ImGuiWindow* ParentWindowForFocusRoute; ImGuiWindow* NavLastChildNavWindow; ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; ImRect NavRectRel[ImGuiNavLayer_COUNT]; ImVec2 NavPreferredScoringPosRel[ImGuiNavLayer_COUNT]; - ImGuiID NavRootFocusScopeId; - int MemoryDrawListIdxCapacity; + ImGuiID NavRootFocusScopeId; int MemoryDrawListIdxCapacity; int MemoryDrawListVtxCapacity; bool MemoryCompacted; bool DockIsActive :1; @@ -3176,10 +3219,8 @@ struct ImGuiTableTempData { int TableIndex; float LastTimeActive; - float AngledheadersExtraWidth; - ImVec2 UserOuterSize; - ImDrawListSplitter DrawSplitter; - ImRect HostBackupWorkRect; + float AngledheadersExtraWidth; ImVec2 UserOuterSize; + ImDrawListSplitter DrawSplitter; ImRect HostBackupWorkRect; ImRect HostBackupParentWorkRect; ImVec2 HostBackupPrevLineSize; ImVec2 HostBackupCurrLineSize; @@ -3224,6 +3265,10 @@ typedef union SDL_Event SDL_Event; #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_ImGuiTabBar; @@ -3244,6 +3289,7 @@ typedef ImVector ImVector_ImGuiColorMod; typedef ImVector ImVector_ImGuiContextHook; typedef ImVector ImVector_ImGuiDockNodeSettings; typedef ImVector ImVector_ImGuiDockRequest; +typedef ImVector ImVector_ImGuiFocusScopeData; typedef ImVector ImVector_ImGuiGroupData; typedef ImVector ImVector_ImGuiID; typedef ImVector ImVector_ImGuiInputEvent; @@ -3440,7 +3486,7 @@ 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 void igImage(ImTextureID user_texture_id,const ImVec2 size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col); +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); CIMGUI_API void igEndCombo(void); @@ -3673,6 +3719,7 @@ CIMGUI_API void igLoadIniSettingsFromMemory(const char* ini_data,size_t ini_size CIMGUI_API void igSaveIniSettingsToDisk(const char* ini_filename); CIMGUI_API const char* igSaveIniSettingsToMemory(size_t* out_ini_size); CIMGUI_API void igDebugTextEncoding(const char* text); +CIMGUI_API void igDebugFlashStyleColor(ImGuiCol idx); 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 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); @@ -3684,6 +3731,10 @@ CIMGUI_API void igRenderPlatformWindowsDefault(void* platform_render_arg,void* r CIMGUI_API void igDestroyPlatformWindows(void); CIMGUI_API ImGuiViewport* igFindViewportByID(ImGuiID id); CIMGUI_API ImGuiViewport* igFindViewportByPlatformHandle(void* platform_handle); +CIMGUI_API ImGuiTableSortSpecs* ImGuiTableSortSpecs_ImGuiTableSortSpecs(void); +CIMGUI_API void ImGuiTableSortSpecs_destroy(ImGuiTableSortSpecs* self); +CIMGUI_API ImGuiTableColumnSortSpecs* ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs(void); +CIMGUI_API void ImGuiTableColumnSortSpecs_destroy(ImGuiTableColumnSortSpecs* self); CIMGUI_API ImGuiStyle* ImGuiStyle_ImGuiStyle(void); CIMGUI_API void ImGuiStyle_destroy(ImGuiStyle* self); CIMGUI_API void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self,float scale_factor); @@ -3719,10 +3770,6 @@ CIMGUI_API void ImGuiPayload_Clear(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDataType(ImGuiPayload* self,const char* type); CIMGUI_API bool ImGuiPayload_IsPreview(ImGuiPayload* self); CIMGUI_API bool ImGuiPayload_IsDelivery(ImGuiPayload* self); -CIMGUI_API ImGuiTableColumnSortSpecs* ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs(void); -CIMGUI_API void ImGuiTableColumnSortSpecs_destroy(ImGuiTableColumnSortSpecs* self); -CIMGUI_API ImGuiTableSortSpecs* ImGuiTableSortSpecs_ImGuiTableSortSpecs(void); -CIMGUI_API void ImGuiTableSortSpecs_destroy(ImGuiTableSortSpecs* self); CIMGUI_API ImGuiOnceUponAFrame* ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(void); CIMGUI_API void ImGuiOnceUponAFrame_destroy(ImGuiOnceUponAFrame* self); CIMGUI_API ImGuiTextFilter* ImGuiTextFilter_ImGuiTextFilter(const char* default_filter); @@ -3939,6 +3986,19 @@ 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 void igBeginHorizontal_Str(const char* str_id,const ImVec2 size,float align); +CIMGUI_API void igBeginHorizontal_Ptr(const void* ptr_id,const ImVec2 size,float align); +CIMGUI_API void igBeginHorizontal_Int(int id,const ImVec2 size,float align); +CIMGUI_API void igEndHorizontal(void); +CIMGUI_API void igBeginVertical_Str(const char* str_id,const ImVec2 size,float align); +CIMGUI_API void igBeginVertical_Ptr(const void* ptr_id,const ImVec2 size,float align); +CIMGUI_API void igBeginVertical_Int(int id,const ImVec2 size,float align); +CIMGUI_API void igEndVertical(void); +CIMGUI_API void igSpring(float weight,float spacing); +CIMGUI_API void igSuspendLayout(void); +CIMGUI_API void igResumeLayout(void); +CIMGUI_API ImGuiLayoutType ImGuiInternal_GetCurrentLayoutType(ImGuiID window_id); +CIMGUI_API void ImGuiInternal_UpdateItemRect(ImGuiID window_id,const ImVec2 min,const ImVec2 max); 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*)); @@ -4238,7 +4298,8 @@ CIMGUI_API void igSetWindowPos_WindowPtr(ImGuiWindow* window,const ImVec2 pos,Im CIMGUI_API void igSetWindowSize_WindowPtr(ImGuiWindow* window,const ImVec2 size,ImGuiCond cond); CIMGUI_API void igSetWindowCollapsed_WindowPtr(ImGuiWindow* window,bool collapsed,ImGuiCond cond); CIMGUI_API void igSetWindowHitTestHole(ImGuiWindow* window,const ImVec2 pos,const ImVec2 size); -CIMGUI_API void igSetWindowHiddendAndSkipItemsForCurrentFrame(ImGuiWindow* window); +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 igWindowPosRelToAbs(ImVec2 *pOut,ImGuiWindow* window,const ImVec2 p); @@ -4362,6 +4423,7 @@ CIMGUI_API void igNavRestoreHighlightAfterMove(void); CIMGUI_API void igNavUpdateCurrentWindowIsScrollPushableX(void); CIMGUI_API void igSetNavWindow(ImGuiWindow* window); CIMGUI_API void igSetNavID(ImGuiID id,ImGuiNavLayer nav_layer,ImGuiID focus_scope_id,const ImRect rect_rel); +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); @@ -4375,7 +4437,7 @@ CIMGUI_API ImGuiKeyChord igConvertShortcutMod(ImGuiKeyChord key_chord); CIMGUI_API ImGuiKey igConvertSingleModFlagToKey(ImGuiContext* ctx,ImGuiKey key); CIMGUI_API ImGuiKeyData* igGetKeyData_ContextPtr(ImGuiContext* ctx,ImGuiKey key); CIMGUI_API ImGuiKeyData* igGetKeyData_Key(ImGuiKey key); -CIMGUI_API void igGetKeyChordName(ImGuiKeyChord key_chord,char* out_buf,int out_buf_size); +CIMGUI_API const char* igGetKeyChordName(ImGuiKeyChord key_chord); CIMGUI_API ImGuiKey igMouseButtonToKey(ImGuiMouseButton button); CIMGUI_API bool igIsMouseDragPastThreshold(ImGuiMouseButton button,float lock_threshold); CIMGUI_API void igGetKeyMagnitude2d(ImVec2 *pOut,ImGuiKey key_left,ImGuiKey key_right,ImGuiKey key_up,ImGuiKey key_down); @@ -4452,7 +4514,7 @@ CIMGUI_API bool igIsDragDropActive(void); CIMGUI_API bool igBeginDragDropTargetCustom(const ImRect bb,ImGuiID id); CIMGUI_API void igClearDragDrop(void); CIMGUI_API bool igIsDragDropPayloadBeingAccepted(void); -CIMGUI_API void igRenderDragDropTargetRect(const ImRect bb); +CIMGUI_API void igRenderDragDropTargetRect(const ImRect bb,const ImRect item_clip_rect); CIMGUI_API ImGuiTypingSelectRequest* igGetTypingSelectRequest(ImGuiTypingSelectFlags flags); 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); @@ -4616,6 +4678,9 @@ CIMGUI_API void igDebugDrawItemRect(ImU32 col); CIMGUI_API void igDebugLocateItem(ImGuiID target_id); CIMGUI_API void igDebugLocateItemOnHover(ImGuiID target_id); CIMGUI_API void igDebugLocateItemResolveWithLastItem(void); +CIMGUI_API void igDebugBreakClearData(void); +CIMGUI_API bool igDebugBreakButton(const char* label,const char* description_of_location); +CIMGUI_API void igDebugBreakButtonTooltip(bool keyboard_only,const char* description_of_location); CIMGUI_API void igDebugStartItemPicker(void); CIMGUI_API void igShowFontAtlas(ImFontAtlas* atlas); CIMGUI_API void igDebugHookIdInfo(ImGuiID id,ImGuiDataType data_type,const void* data_id,const void* data_id_end); diff --git a/dependencies/imgui/imgui_impl.h b/dependencies/imgui/imgui_impl.h index 4283953..358735f 100644 --- a/dependencies/imgui/imgui_impl.h +++ b/dependencies/imgui/imgui_impl.h @@ -6,9 +6,6 @@ #define CIMGUI_DEFINE_ENUMS_AND_STRUCTS #include #else -#define IMGUI_DISABLE_OBSOLETE_KEYIO -#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS -#define IMGUI_DEFINE_MATH_OPERATORS #include #include #include diff --git a/docs/Development/ImGui.md b/docs/Development/ImGui.md index abc85df..5bc9612 100644 --- a/docs/Development/ImGui.md +++ b/docs/Development/ImGui.md @@ -3,9 +3,9 @@ ## Introduction The framework also provides a way to render your own UI to the screen using [Dear ImGui](https://github.com/ocornut/imgui/tree/master). ImGui is a very powerful UI library that is very easy to use and has a lot of features. -To get started add the `ImGui.NET` NuGet package to your project. You can do this by right-clicking your project in the solution explorer and selecting "Manage NuGet Packages". Then search for `ImGui.NET` and install it. +To get started add the `SharpPluginLoader.ImGui` NuGet package to your project. You can do this by right-clicking your project in the solution explorer and selecting "Manage NuGet Packages". Then search for `SharpPluginLoader.ImGui` and install it. -Next add an event handler for the `OnRender` event to your plugin. This event is called every frame and is where you will do all your rendering. +Next add an event handler for the `OnImGuiRender` event to your plugin. This event is called every frame and is where you will do all your rendering. ```csharp public PluginData Inititalize() diff --git a/mhw-cs-plugin-loader/mhw-cs-plugin-loader.vcxproj b/mhw-cs-plugin-loader/mhw-cs-plugin-loader.vcxproj index 3588c22..843e10f 100644 --- a/mhw-cs-plugin-loader/mhw-cs-plugin-loader.vcxproj +++ b/mhw-cs-plugin-loader/mhw-cs-plugin-loader.vcxproj @@ -117,7 +117,7 @@ Level3 true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN + _DEBUG;_CONSOLE;%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;IMGUI_DISABLE_OBSOLETE_KEYIO;IMGUI_DISABLE_OBSOLETE_FUNCTIONS;IMGUI_DEFINE_MATH_OPERATORS true MultiThreadedDebugDLL $(SolutionDir)dependencies\safetyhook\include;$(SolutionDir)dependencies\generic\include;$(SolutionDir)dependencies\imgui;$(SolutionDir)dependencies\cimgui\imgui;$(SolutionDir)dependencies\imgui-notify;$(SolutionDir)dependencies\loader\include @@ -137,7 +137,7 @@ true true true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN + NDEBUG;_CONSOLE;%(PreprocessorDefinitions);WIN32_LEAN_AND_MEAN;IMGUI_DISABLE_OBSOLETE_KEYIO;IMGUI_DISABLE_OBSOLETE_FUNCTIONS;IMGUI_DEFINE_MATH_OPERATORS true MultiThreadedDLL $(SolutionDir)dependencies\safetyhook\include;$(SolutionDir)dependencies\generic\include;$(SolutionDir)dependencies\imgui;$(SolutionDir)dependencies\cimgui\imgui;$(SolutionDir)dependencies\imgui-notify;$(SolutionDir)dependencies\loader\include