diff --git a/CHANGELOG.md b/CHANGELOG.md index 73a8f79..57c1cd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Fixed null pointers in zero-sized slices - [PR #779](https://github.com/imgui-rs/imgui-rs/pull/779) - Fixed `NewFrame` doc alias typo - [PR #791](https://github.com/imgui-rs/imgui-rs/pull/791) +- Removed `GetWindowContentRegionMax`, `GetWindowContentRegionMin`, `GetContentRegionMax` -- + see https://github.com/ocornut/imgui/issues/7838 for more information. ## [0.12.0] - 2024-05-05 diff --git a/imgui-sys/src/bindings.rs b/imgui-sys/src/bindings.rs index 9879b87..e3b4035 100644 --- a/imgui-sys/src/bindings.rs +++ b/imgui-sys/src/bindings.rs @@ -97,13 +97,18 @@ pub struct ImFontBuilderIO { pub struct ImGuiContext { _unused: [u8; 0], } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -111,15 +116,19 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -132,15 +141,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImU32 = cty::c_uint; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -183,47 +187,66 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -234,7 +257,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -243,18 +268,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -264,6 +291,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -273,10 +301,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -287,80 +316,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -375,14 +332,19 @@ pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -390,7 +352,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -406,19 +370,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -492,106 +457,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -599,6 +571,7 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576; pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152; pub type ImGuiConfigFlags_ = cty::c_uint; @@ -641,27 +614,30 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 38; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 39; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 40; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 41; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 42; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 43; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 44; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 45; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 46; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 47; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 48; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 49; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 50; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 51; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 52; -pub const ImGuiCol_COUNT: ImGuiCol_ = 53; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; +pub const ImGuiCol_TextLink: ImGuiCol_ = 49; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 50; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 51; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 52; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 53; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 54; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 55; +pub const ImGuiCol_COUNT: ImGuiCol_ = 56; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -686,16 +662,23 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 33; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -732,6 +715,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -751,12 +735,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -789,9 +886,16 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, pub MouseCursorScale: f32, @@ -800,7 +904,12 @@ pub struct ImGuiStyle { pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 53usize], + pub Colors: [ImVec4; 56usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -845,13 +954,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -860,6 +962,7 @@ pub struct ImGuiIO { pub DisplayFramebufferScale: ImVec2, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -867,22 +970,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -895,21 +998,19 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -921,6 +1022,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceSqr: [f32; 5usize], @@ -932,6 +1035,7 @@ pub struct ImGuiIO { pub InputQueueSurrogate: ImWchar16, pub InputQueueCharacters: ImVector_ImWchar, } + impl Default for ImGuiIO { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); @@ -944,6 +1048,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1006,56 +1111,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1214,11 +1269,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1235,6 +1292,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1399,6 +1573,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1430,13 +1620,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1446,25 +1648,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1480,10 +1670,11 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, + pub OwnerViewport: *mut ImGuiViewport, } impl Default for ImDrawData { fn default() -> Self { @@ -1513,6 +1704,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1782,7 +1974,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1807,11 +2001,13 @@ pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewport { + pub ID: ImGuiID, pub Flags: ImGuiViewportFlags, pub Pos: ImVec2, pub Size: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, + pub PlatformHandle: *mut cty::c_void, pub PlatformHandleRaw: *mut cty::c_void, } impl Default for ImGuiViewport { @@ -1824,6 +2020,38 @@ impl Default for ImGuiViewport { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, +} +impl Default for ImGuiPlatformIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiPlatformImeData { pub WantVisible: bool, @@ -1863,6 +2091,9 @@ extern "C" { extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -1888,7 +2119,7 @@ extern "C" { pub fn igShowDebugLogWindow(p_open: *mut bool); } extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); @@ -1927,16 +2158,16 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { @@ -2025,18 +2256,6 @@ extern "C" { extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} extern "C" { pub fn igGetScrollX() -> f32; } @@ -2088,20 +2307,20 @@ extern "C" { extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} extern "C" { pub fn igPopStyleVar(count: cty::c_int); } extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } extern "C" { pub fn igPushItemWidth(item_width: f32); @@ -2137,11 +2356,41 @@ extern "C" { pub fn igGetColorU32_Vec4(col: ImVec4) -> ImU32; } extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} extern "C" { pub fn igSeparator(); } @@ -2169,33 +2418,6 @@ extern "C" { extern "C" { pub fn igEndGroup(); } -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} extern "C" { pub fn igAlignTextToFramePadding(); } @@ -2238,6 +2460,9 @@ extern "C" { extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -2259,6 +2484,9 @@ extern "C" { extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2308,10 +2536,16 @@ extern "C" { extern "C" { pub fn igBullet(); } +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -2322,7 +2556,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -2357,17 +2591,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -2883,6 +3116,9 @@ extern "C" { extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -2899,6 +3135,22 @@ extern "C" { size: ImVec2, ) -> bool; } +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2915,17 +3167,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -3033,7 +3284,7 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } extern "C" { pub fn igEndTooltip(); @@ -3041,6 +3292,12 @@ extern "C" { extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -3090,7 +3347,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -3119,11 +3376,14 @@ extern "C" { extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} extern "C" { pub fn igTableHeadersRow(); } extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } extern "C" { pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs; @@ -3146,11 +3406,14 @@ extern "C" { extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } extern "C" { pub fn igNextColumn(); @@ -3261,6 +3524,9 @@ extern "C" { extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -3312,9 +3578,6 @@ extern "C" { extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } -extern "C" { - pub fn igSetItemAllowOverlap(); -} extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } @@ -3348,12 +3611,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igEndChildFrame(); -} extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -3398,6 +3655,9 @@ extern "C" { extern "C" { pub fn igIsKeyReleased(key: ImGuiKey) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed(key_chord: ImGuiKeyChord) -> bool; +} extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -3407,6 +3667,15 @@ extern "C" { extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } +extern "C" { + pub fn igShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner(key: ImGuiKey); +} extern "C" { pub fn igIsMouseDown(button: ImGuiMouseButton) -> bool; } @@ -3476,6 +3745,12 @@ extern "C" { extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +extern "C" { + pub fn igDebugStartItemPicker(); +} extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -3487,6 +3762,9 @@ extern "C" { sz_drawidx: usize, ) -> bool; } +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -3507,6 +3785,18 @@ extern "C" { extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -3529,7 +3819,10 @@ extern "C" { pub fn ImGuiIO_AddMouseButtonEvent(self_: *mut ImGuiIO, button: cty::c_int, down: bool); } extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } extern "C" { pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); @@ -3556,11 +3849,14 @@ extern "C" { pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool); } extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -3615,18 +3911,6 @@ extern "C" { extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -3723,7 +4007,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -3732,13 +4016,13 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -3801,10 +4085,10 @@ extern "C" { ) -> *mut *mut cty::c_void; } extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } extern "C" { pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper; @@ -3826,12 +4110,21 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -3861,6 +4154,66 @@ extern "C" { extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -4050,6 +4403,27 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -4072,24 +4446,6 @@ extern "C" { cpu_fine_clip_rect: *const ImVec4, ); } -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -4113,6 +4469,32 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -4164,6 +4546,9 @@ extern "C" { extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -4191,6 +4576,17 @@ extern "C" { a_max_of_12: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -4310,6 +4706,9 @@ extern "C" { extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -4345,6 +4744,9 @@ extern "C" { extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -4434,7 +4836,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -4444,7 +4846,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -4685,15 +5087,18 @@ extern "C" { extern "C" { pub fn ImGuiViewport_GetWorkCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport); } +extern "C" { + pub fn ImGuiPlatformIO_ImGuiPlatformIO() -> *mut ImGuiPlatformIO; +} +extern "C" { + pub fn ImGuiPlatformIO_destroy(self_: *mut ImGuiPlatformIO); +} extern "C" { pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData; } extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } -extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; -} extern "C" { pub fn igLogText(fmt: *const cty::c_char, ...); } diff --git a/imgui-sys/src/docking_bindings.rs b/imgui-sys/src/docking_bindings.rs index 38df9a3..4abe1e5 100644 --- a/imgui-sys/src/docking_bindings.rs +++ b/imgui-sys/src/docking_bindings.rs @@ -82,59 +82,16 @@ where } } } -pub type __off_t = cty::c_long; -pub type __off64_t = cty::c_long; -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = cty::c_void; +pub type __int64_t = cty::c_longlong; +pub type __darwin_off_t = __int64_t; +pub type fpos_t = __darwin_off_t; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct _IO_FILE { - pub _flags: cty::c_int, - pub _IO_read_ptr: *mut cty::c_char, - pub _IO_read_end: *mut cty::c_char, - pub _IO_read_base: *mut cty::c_char, - pub _IO_write_base: *mut cty::c_char, - pub _IO_write_ptr: *mut cty::c_char, - pub _IO_write_end: *mut cty::c_char, - pub _IO_buf_base: *mut cty::c_char, - pub _IO_buf_end: *mut cty::c_char, - pub _IO_save_base: *mut cty::c_char, - pub _IO_backup_base: *mut cty::c_char, - pub _IO_save_end: *mut cty::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: cty::c_int, - pub _flags2: cty::c_int, - pub _old_offset: __off_t, - pub _cur_column: cty::c_ushort, - pub _vtable_offset: cty::c_schar, - pub _shortbuf: [cty::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut cty::c_void, - pub __pad5: usize, - pub _mode: cty::c_int, - pub _unused2: [cty::c_char; 20usize], +pub struct __sbuf { + pub _base: *mut cty::c_uchar, + pub _size: cty::c_int, } -impl Default for _IO_FILE { +impl Default for __sbuf { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -145,6 +102,59 @@ impl Default for _IO_FILE { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct __sFILEX { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct __sFILE { + pub _p: *mut cty::c_uchar, + pub _r: cty::c_int, + pub _w: cty::c_int, + pub _flags: cty::c_short, + pub _file: cty::c_short, + pub _bf: __sbuf, + pub _lbfsize: cty::c_int, + pub _cookie: *mut cty::c_void, + pub _close: ::core::option::Option cty::c_int>, + pub _read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *mut cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _seek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: fpos_t, arg3: cty::c_int) -> fpos_t, + >, + pub _write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *const cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _ub: __sbuf, + pub _extra: *mut __sFILEX, + pub _ur: cty::c_int, + pub _ubuf: [cty::c_uchar; 3usize], + pub _nbuf: [cty::c_uchar; 1usize], + pub _lb: __sbuf, + pub _blksize: cty::c_int, + pub _offset: fpos_t, +} +impl Default for __sFILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type FILE = __sFILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct ImGuiDockRequest { _unused: [u8; 0], } @@ -154,6 +164,11 @@ pub struct ImGuiDockNodeSettings { _unused: [u8; 0], } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct STB_TexteditState { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_const_charPtr { pub Size: cty::c_int, @@ -169,13 +184,20 @@ impl Default for ImVector_const_charPtr { } } } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImS32 = cty::c_int; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; +pub type ImU64 = cty::c_ulonglong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -183,6 +205,7 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; @@ -190,9 +213,12 @@ pub type ImGuiDockNodeFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -205,18 +231,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImS32 = cty::c_int; -pub type ImU32 = cty::c_uint; -pub type ImS64 = cty::c_longlong; -pub type ImU64 = cty::c_ulonglong; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -259,15 +277,13 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 2097152; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 524288; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; @@ -275,33 +291,54 @@ pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub const ImGuiWindowFlags_DockNodeHost: ImGuiWindowFlags_ = 536870912; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -312,7 +349,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -321,18 +360,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -342,6 +383,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -351,10 +393,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -365,80 +408,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -455,22 +426,28 @@ pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; pub const ImGuiDockNodeFlags_KeepAliveOnly: ImGuiDockNodeFlags_ = 1; -pub const ImGuiDockNodeFlags_NoDockingInCentralNode: ImGuiDockNodeFlags_ = 4; +pub const ImGuiDockNodeFlags_NoDockingOverCentralNode: ImGuiDockNodeFlags_ = 4; pub const ImGuiDockNodeFlags_PassthruCentralNode: ImGuiDockNodeFlags_ = 8; -pub const ImGuiDockNodeFlags_NoSplit: ImGuiDockNodeFlags_ = 16; +pub const ImGuiDockNodeFlags_NoDockingSplit: ImGuiDockNodeFlags_ = 16; pub const ImGuiDockNodeFlags_NoResize: ImGuiDockNodeFlags_ = 32; pub const ImGuiDockNodeFlags_AutoHideTabBar: ImGuiDockNodeFlags_ = 64; +pub const ImGuiDockNodeFlags_NoUndocking: ImGuiDockNodeFlags_ = 128; pub type ImGuiDockNodeFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -478,7 +455,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -494,19 +473,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -580,106 +560,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -687,7 +674,8 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; -pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 128; pub const ImGuiConfigFlags_ViewportsEnable: ImGuiConfigFlags_ = 1024; pub const ImGuiConfigFlags_DpiEnableScaleViewports: ImGuiConfigFlags_ = 16384; pub const ImGuiConfigFlags_DpiEnableScaleFonts: ImGuiConfigFlags_ = 32768; @@ -736,29 +724,32 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_DockingPreview: ImGuiCol_ = 38; -pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 39; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 49; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 50; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 51; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 52; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 53; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 54; -pub const ImGuiCol_COUNT: ImGuiCol_ = 55; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_DockingPreview: ImGuiCol_ = 40; +pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 41; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 42; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 43; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 44; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 45; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 46; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 47; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 48; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 49; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 50; +pub const ImGuiCol_TextLink: ImGuiCol_ = 51; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 52; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 53; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 54; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 55; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 56; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 57; +pub const ImGuiCol_COUNT: ImGuiCol_ = 58; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -783,16 +774,24 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_DockingSeparatorSize: ImGuiStyleVar_ = 33; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 34; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -829,6 +828,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -848,12 +848,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -886,18 +999,31 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, + pub DockingSeparatorSize: f32, pub MouseCursorScale: f32, pub AntiAliasedLines: bool, pub AntiAliasedLinesUseTex: bool, pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 55usize], + pub Colors: [ImVec4; 58usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -942,13 +1068,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -965,6 +1084,7 @@ pub struct ImGuiIO { pub ConfigViewportsNoDefaultParent: bool, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -972,22 +1092,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -1000,22 +1120,20 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub MouseHoveredViewport: ImGuiID, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -1027,6 +1145,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1051,6 +1171,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1095,6 +1216,7 @@ impl Default for ImGuiSizeCallbackData { pub struct ImGuiWindowClass { pub ClassId: ImGuiID, pub ParentViewportId: ImGuiID, + pub FocusRouteParentWindowId: ImGuiID, pub ViewportFlagsOverrideSet: ImGuiViewportFlags, pub ViewportFlagsOverrideClear: ImGuiViewportFlags, pub TabItemFlagsOverrideSet: ImGuiTabItemFlags, @@ -1125,56 +1247,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1333,11 +1405,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1354,6 +1428,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1518,6 +1709,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1549,13 +1756,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1565,25 +1784,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1599,7 +1806,7 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, @@ -1633,6 +1840,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1902,7 +2110,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1929,10 +2139,11 @@ pub const ImGuiViewportFlags_NoFocusOnAppearing: ImGuiViewportFlags_ = 32; pub const ImGuiViewportFlags_NoFocusOnClick: ImGuiViewportFlags_ = 64; pub const ImGuiViewportFlags_NoInputs: ImGuiViewportFlags_ = 128; pub const ImGuiViewportFlags_NoRendererClear: ImGuiViewportFlags_ = 256; -pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 512; -pub const ImGuiViewportFlags_Minimized: ImGuiViewportFlags_ = 1024; -pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 2048; -pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 512; +pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 1024; +pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 2048; +pub const ImGuiViewportFlags_IsMinimized: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_IsFocused: ImGuiViewportFlags_ = 8192; pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -1999,6 +2210,25 @@ impl Default for ImVector_ImGuiViewportPtr { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, pub Platform_CreateWindow: ::core::option::Option, pub Platform_DestroyWindow: ::core::option::Option, @@ -2033,6 +2263,8 @@ pub struct ImGuiPlatformIO { ::core::option::Option f32>, pub Platform_OnChangedViewport: ::core::option::Option, + pub Platform_GetWindowWorkAreaInsets: + ::core::option::Option ImVec4>, pub Platform_CreateVkSurface: ::core::option::Option< unsafe extern "C" fn( vp: *mut ImGuiViewport, @@ -2065,13 +2297,23 @@ impl Default for ImGuiPlatformIO { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiPlatformMonitor { pub MainPos: ImVec2, pub MainSize: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, pub DpiScale: f32, + pub PlatformHandle: *mut cty::c_void, +} +impl Default for ImGuiPlatformMonitor { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2084,8 +2326,7 @@ pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiDebugLogFlags = cty::c_int; -pub type ImGuiInputFlags = cty::c_int; -pub type ImGuiItemFlags = cty::c_int; +pub type ImGuiFocusRequestFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -2096,73 +2337,11 @@ pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; +pub type ImGuiTypingSelectFlags = cty::c_int; +pub type ImGuiWindowRefreshFlags = cty::c_int; pub type ImGuiErrorLogCallback = ::core::option::Option< unsafe extern "C" fn(user_data: *mut cty::c_void, fmt: *const cty::c_char, ...), >; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoRecord { - pub where_: cty::c_int, - pub insert_length: cty::c_int, - pub delete_length: cty::c_int, - pub char_storage: cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoState { - pub undo_rec: [StbUndoRecord; 99usize], - pub undo_char: [ImWchar; 999usize], - pub undo_point: cty::c_short, - pub redo_point: cty::c_short, - pub undo_char_point: cty::c_int, - pub redo_char_point: cty::c_int, -} -impl Default for StbUndoState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct STB_TexteditState { - pub cursor: cty::c_int, - pub select_start: cty::c_int, - pub select_end: cty::c_int, - pub insert_mode: cty::c_uchar, - pub row_count_per_page: cty::c_int, - pub cursor_at_end_of_line: cty::c_uchar, - pub initialized: cty::c_uchar, - pub has_preferred_x: cty::c_uchar, - pub single_line: cty::c_uchar, - pub padding1: cty::c_uchar, - pub padding2: cty::c_uchar, - pub padding3: cty::c_uchar, - pub preferred_x: f32, - pub undostate: StbUndoState, -} -impl Default for STB_TexteditState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] -pub struct StbTexteditRow { - pub x0: f32, - pub x1: f32, - pub baseline_y_delta: f32, - pub ymin: f32, - pub ymax: f32, - pub num_chars: cty::c_int, -} pub type ImFileHandle = *mut FILE; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2181,6 +2360,7 @@ pub struct ImRect { pub Min: ImVec2, pub Max: ImVec2, } +pub type ImBitArrayPtr = *mut ImU32; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImBitVector { @@ -2233,6 +2413,7 @@ pub struct ImDrawListSharedData { pub TexUvWhitePixel: ImVec2, pub Font: *mut ImFont, pub FontSize: f32, + pub FontScale: f32, pub CurveTessellationTol: f32, pub CircleSegmentMaxError: f32, pub ClipRectFullscreen: ImVec4, @@ -2254,24 +2435,9 @@ impl Default for ImDrawListSharedData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImDrawListPtr { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut *mut ImDrawList, -} -impl Default for ImVector_ImDrawListPtr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImDrawDataBuilder { - pub Layers: [ImVector_ImDrawListPtr; 2usize], + pub Layers: [*mut ImVector_ImDrawListPtr; 2usize], + pub LayerData1: ImVector_ImDrawListPtr, } impl Default for ImDrawDataBuilder { fn default() -> Self { @@ -2282,18 +2448,49 @@ impl Default for ImDrawDataBuilder { } } } -pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; -pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; -pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 2; -pub const ImGuiItemFlags_Disabled: ImGuiItemFlags_ = 4; -pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 8; -pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; -pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; -pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; -pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; -pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlags_ = 256; -pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 1024; -pub type ImGuiItemFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataVarInfo { + pub Type: ImGuiDataType, + pub Count: ImU32, + pub Offset: ImU32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeStorage { + pub Data: [ImU8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeInfo { + pub Size: usize, + pub Name: *const cty::c_char, + pub PrintFmt: *const cty::c_char, + pub ScanFmt: *const cty::c_char, +} +impl Default for ImGuiDataTypeInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 12; +pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 13; +pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 14; +pub type ImGuiDataTypePrivate_ = cty::c_uint; +pub const ImGuiItemFlags_Disabled: ImGuiItemFlagsPrivate_ = 1024; +pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlagsPrivate_ = 2048; +pub const ImGuiItemFlags_MixedValue: ImGuiItemFlagsPrivate_ = 4096; +pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlagsPrivate_ = 8192; +pub const ImGuiItemFlags_AllowOverlap: ImGuiItemFlagsPrivate_ = 16384; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlagsPrivate_ = 1048576; +pub const ImGuiItemFlags_HasSelectionUserData: ImGuiItemFlagsPrivate_ = 2097152; +pub const ImGuiItemFlags_IsMultiSelect: ImGuiItemFlagsPrivate_ = 4194304; +pub const ImGuiItemFlags_Default_: ImGuiItemFlagsPrivate_ = 16; +pub type ImGuiItemFlagsPrivate_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2303,12 +2500,18 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 256; +pub const ImGuiItemStatusFlags_HasClipRect: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_HasShortcut: ImGuiItemStatusFlags_ = 1024; pub type ImGuiItemStatusFlags_ = cty::c_uint; +pub const ImGuiHoveredFlags_DelayMask_: ImGuiHoveredFlagsPrivate_ = 245760; +pub const ImGuiHoveredFlags_AllowedMaskForIsWindowHovered: ImGuiHoveredFlagsPrivate_ = 12479; +pub const ImGuiHoveredFlags_AllowedMaskForIsItemHovered: ImGuiHoveredFlagsPrivate_ = 262048; +pub type ImGuiHoveredFlagsPrivate_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; pub const ImGuiInputTextFlags_MergedItem: ImGuiInputTextFlagsPrivate_ = 268435456; +pub const ImGuiInputTextFlags_LocalizeDecimalPoint: ImGuiInputTextFlagsPrivate_ = 536870912; pub type ImGuiInputTextFlagsPrivate_ = cty::c_uint; pub const ImGuiButtonFlags_PressedOnClick: ImGuiButtonFlagsPrivate_ = 16; pub const ImGuiButtonFlags_PressedOnClickRelease: ImGuiButtonFlagsPrivate_ = 32; @@ -2318,7 +2521,7 @@ pub const ImGuiButtonFlags_PressedOnDoubleClick: ImGuiButtonFlagsPrivate_ = 256; pub const ImGuiButtonFlags_PressedOnDragDropHold: ImGuiButtonFlagsPrivate_ = 512; pub const ImGuiButtonFlags_Repeat: ImGuiButtonFlagsPrivate_ = 1024; pub const ImGuiButtonFlags_FlattenChildren: ImGuiButtonFlagsPrivate_ = 2048; -pub const ImGuiButtonFlags_AllowItemOverlap: ImGuiButtonFlagsPrivate_ = 4096; +pub const ImGuiButtonFlags_AllowOverlap: ImGuiButtonFlagsPrivate_ = 4096; pub const ImGuiButtonFlags_DontClosePopups: ImGuiButtonFlagsPrivate_ = 8192; pub const ImGuiButtonFlags_AlignTextBaseLine: ImGuiButtonFlagsPrivate_ = 32768; pub const ImGuiButtonFlags_NoKeyModifiers: ImGuiButtonFlagsPrivate_ = 65536; @@ -2344,18 +2547,24 @@ pub const ImGuiSelectableFlags_SetNavIdOnHover: ImGuiSelectableFlagsPrivate_ = 3 pub const ImGuiSelectableFlags_NoPadWithHalfSpacing: ImGuiSelectableFlagsPrivate_ = 67108864; pub const ImGuiSelectableFlags_NoSetKeyOwner: ImGuiSelectableFlagsPrivate_ = 134217728; pub type ImGuiSelectableFlagsPrivate_ = cty::c_uint; -pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 1048576; +pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 268435456; +pub const ImGuiTreeNodeFlags_UpsideDownArrow: ImGuiTreeNodeFlagsPrivate_ = 536870912; +pub const ImGuiTreeNodeFlags_OpenOnMask_: ImGuiTreeNodeFlagsPrivate_ = 192; pub type ImGuiTreeNodeFlagsPrivate_ = cty::c_uint; pub const ImGuiSeparatorFlags_None: ImGuiSeparatorFlags_ = 0; pub const ImGuiSeparatorFlags_Horizontal: ImGuiSeparatorFlags_ = 1; pub const ImGuiSeparatorFlags_Vertical: ImGuiSeparatorFlags_ = 2; pub const ImGuiSeparatorFlags_SpanAllColumns: ImGuiSeparatorFlags_ = 4; pub type ImGuiSeparatorFlags_ = cty::c_uint; +pub const ImGuiFocusRequestFlags_None: ImGuiFocusRequestFlags_ = 0; +pub const ImGuiFocusRequestFlags_RestoreFocusedChild: ImGuiFocusRequestFlags_ = 1; +pub const ImGuiFocusRequestFlags_UnlessBelowModal: ImGuiFocusRequestFlags_ = 2; +pub type ImGuiFocusRequestFlags_ = cty::c_uint; pub const ImGuiTextFlags_None: ImGuiTextFlags_ = 0; pub const ImGuiTextFlags_NoWidthForLargeClippedText: ImGuiTextFlags_ = 1; pub type ImGuiTextFlags_ = cty::c_uint; pub const ImGuiTooltipFlags_None: ImGuiTooltipFlags_ = 0; -pub const ImGuiTooltipFlags_OverridePreviousTooltip: ImGuiTooltipFlags_ = 1; +pub const ImGuiTooltipFlags_OverridePrevious: ImGuiTooltipFlags_ = 2; pub type ImGuiTooltipFlags_ = cty::c_uint; pub const ImGuiLayoutType_Horizontal: ImGuiLayoutType_ = 0; pub const ImGuiLayoutType_Vertical: ImGuiLayoutType_ = 1; @@ -2373,36 +2582,6 @@ pub type ImGuiAxis = cty::c_int; pub const ImGuiPlotType_Lines: ImGuiPlotType = 0; pub const ImGuiPlotType_Histogram: ImGuiPlotType = 1; pub type ImGuiPlotType = cty::c_uint; -pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; -pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; -pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; -pub type ImGuiPopupPositionPolicy = cty::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeTempStorage { - pub Data: [ImU8; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeInfo { - pub Size: usize, - pub Name: *const cty::c_char, - pub PrintFmt: *const cty::c_char, - pub ScanFmt: *const cty::c_char, -} -impl Default for ImGuiDataTypeInfo { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 11; -pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 12; -pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 13; -pub type ImGuiDataTypePrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiColorMod { @@ -2469,6 +2648,7 @@ pub struct ImGuiGroupData { pub WindowID: ImGuiID, pub BackupCursorPos: ImVec2, pub BackupCursorMaxPos: ImVec2, + pub BackupCursorPosPrevLine: ImVec2, pub BackupIndent: ImVec1, pub BackupGroupOffset: ImVec1, pub BackupCurrLineSize: ImVec2, @@ -2476,6 +2656,7 @@ pub struct ImGuiGroupData { pub BackupActiveIdIsAlive: ImGuiID, pub BackupActiveIdPreviousFrameIsAlive: bool, pub BackupHoveredIdIsAlive: bool, + pub BackupIsSameLine: bool, pub EmitItem: bool, } #[repr(C)] @@ -2491,24 +2672,41 @@ pub struct ImGuiMenuColumns { pub Widths: [ImU16; 4usize], } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiInputTextDeactivatedState { + pub ID: ImGuiID, + pub TextA: ImVector_char, +} +impl Default for ImGuiInputTextDeactivatedState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ImStbTexteditState = STB_TexteditState; +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputTextState { pub Ctx: *mut ImGuiContext, + pub Stb: *mut ImStbTexteditState, pub ID: ImGuiID, - pub CurLenW: cty::c_int, pub CurLenA: cty::c_int, - pub TextW: ImVector_ImWchar, pub TextA: ImVector_char, pub InitialTextA: ImVector_char, - pub TextAIsValid: bool, + pub CallbackTextBackup: ImVector_char, pub BufCapacityA: cty::c_int, - pub ScrollX: f32, - pub Stb: STB_TexteditState, + pub Scroll: ImVec2, pub CursorAnim: f32, pub CursorFollow: bool, pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, + pub ReloadUserBuf: bool, + pub ReloadSelectionStart: cty::c_int, + pub ReloadSelectionEnd: cty::c_int, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2519,27 +2717,11 @@ impl Default for ImGuiInputTextState { } } } -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiPopupData { - pub PopupId: ImGuiID, - pub Window: *mut ImGuiWindow, - pub BackupNavWindow: *mut ImGuiWindow, - pub ParentNavLayer: cty::c_int, - pub OpenFrameCount: cty::c_int, - pub OpenParentId: ImGuiID, - pub OpenPopupPos: ImVec2, - pub OpenMousePos: ImVec2, -} -impl Default for ImGuiPopupData { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} +pub const ImGuiWindowRefreshFlags_None: ImGuiWindowRefreshFlags_ = 0; +pub const ImGuiWindowRefreshFlags_TryToAvoidRefresh: ImGuiWindowRefreshFlags_ = 1; +pub const ImGuiWindowRefreshFlags_RefreshOnHover: ImGuiWindowRefreshFlags_ = 2; +pub const ImGuiWindowRefreshFlags_RefreshOnFocus: ImGuiWindowRefreshFlags_ = 4; +pub type ImGuiWindowRefreshFlags_ = cty::c_uint; pub const ImGuiNextWindowDataFlags_None: ImGuiNextWindowDataFlags_ = 0; pub const ImGuiNextWindowDataFlags_HasPos: ImGuiNextWindowDataFlags_ = 1; pub const ImGuiNextWindowDataFlags_HasSize: ImGuiNextWindowDataFlags_ = 2; @@ -2549,9 +2731,11 @@ pub const ImGuiNextWindowDataFlags_HasSizeConstraint: ImGuiNextWindowDataFlags_ pub const ImGuiNextWindowDataFlags_HasFocus: ImGuiNextWindowDataFlags_ = 32; pub const ImGuiNextWindowDataFlags_HasBgAlpha: ImGuiNextWindowDataFlags_ = 64; pub const ImGuiNextWindowDataFlags_HasScroll: ImGuiNextWindowDataFlags_ = 128; -pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 256; -pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 512; -pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasChildFlags: ImGuiNextWindowDataFlags_ = 256; +pub const ImGuiNextWindowDataFlags_HasRefreshPolicy: ImGuiNextWindowDataFlags_ = 512; +pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 2048; +pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 4096; pub type ImGuiNextWindowDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -2566,6 +2750,7 @@ pub struct ImGuiNextWindowData { pub SizeVal: ImVec2, pub ContentSizeVal: ImVec2, pub ScrollVal: ImVec2, + pub ChildFlags: ImGuiChildFlags, pub PosUndock: bool, pub CollapsedVal: bool, pub SizeConstraintRect: ImRect, @@ -2576,6 +2761,7 @@ pub struct ImGuiNextWindowData { pub DockId: ImGuiID, pub WindowClass: ImGuiWindowClass, pub MenuBarOffsetMinVal: ImVec2, + pub RefreshFlagsVal: ImGuiWindowRefreshFlags, } impl Default for ImGuiNextWindowData { fn default() -> Self { @@ -2589,15 +2775,24 @@ impl Default for ImGuiNextWindowData { pub const ImGuiNextItemDataFlags_None: ImGuiNextItemDataFlags_ = 0; pub const ImGuiNextItemDataFlags_HasWidth: ImGuiNextItemDataFlags_ = 1; pub const ImGuiNextItemDataFlags_HasOpen: ImGuiNextItemDataFlags_ = 2; +pub const ImGuiNextItemDataFlags_HasShortcut: ImGuiNextItemDataFlags_ = 4; +pub const ImGuiNextItemDataFlags_HasRefVal: ImGuiNextItemDataFlags_ = 8; +pub const ImGuiNextItemDataFlags_HasStorageID: ImGuiNextItemDataFlags_ = 16; pub type ImGuiNextItemDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiNextItemData { pub Flags: ImGuiNextItemDataFlags, - pub Width: f32, + pub ItemFlags: ImGuiItemFlags, pub FocusScopeId: ImGuiID, - pub OpenCond: ImGuiCond, + pub SelectionUserData: ImGuiSelectionUserData, + pub Width: f32, + pub Shortcut: ImGuiKeyChord, + pub ShortcutFlags: ImGuiInputFlags, pub OpenVal: bool, + pub OpenCond: ImU8, + pub RefVal: ImGuiDataTypeStorage, + pub StorageId: ImGuiID, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2608,6 +2803,16 @@ pub struct ImGuiLastItemData { pub Rect: ImRect, pub NavRect: ImRect, pub DisplayRect: ImRect, + pub ClipRect: ImRect, + pub Shortcut: ImGuiKeyChord, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct ImGuiTreeNodeStackData { + pub ID: ImGuiID, + pub TreeFlags: ImGuiTreeNodeFlags, + pub InFlags: ImGuiItemFlags, + pub NavRect: ImRect, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2628,6 +2833,7 @@ pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, pub StackSizesOnBegin: ImGuiStackSizes, + pub DisabledOverrideReenable: bool, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2660,6 +2866,37 @@ impl Default for ImGuiPtrOrIndex { } } } +pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; +pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; +pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; +pub type ImGuiPopupPositionPolicy = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiPopupData { + pub PopupId: ImGuiID, + pub Window: *mut ImGuiWindow, + pub RestoreNavWindow: *mut ImGuiWindow, + pub ParentNavLayer: cty::c_int, + pub OpenFrameCount: cty::c_int, + pub OpenParentId: ImGuiID, + pub OpenPopupPos: ImVec2, + pub OpenMousePos: ImVec2, +} +impl Default for ImGuiPopupData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN { + pub Storage: [ImU32; 5usize], +} +pub type ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN; pub const ImGuiInputEventType_None: ImGuiInputEventType = 0; pub const ImGuiInputEventType_MousePos: ImGuiInputEventType = 1; pub const ImGuiInputEventType_MouseWheel: ImGuiInputEventType = 2; @@ -2674,27 +2911,55 @@ pub const ImGuiInputSource_None: ImGuiInputSource = 0; pub const ImGuiInputSource_Mouse: ImGuiInputSource = 1; pub const ImGuiInputSource_Keyboard: ImGuiInputSource = 2; pub const ImGuiInputSource_Gamepad: ImGuiInputSource = 3; -pub const ImGuiInputSource_Clipboard: ImGuiInputSource = 4; -pub const ImGuiInputSource_Nav: ImGuiInputSource = 5; -pub const ImGuiInputSource_COUNT: ImGuiInputSource = 6; +pub const ImGuiInputSource_COUNT: ImGuiInputSource = 4; pub type ImGuiInputSource = cty::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMousePos { pub PosX: f32, pub PosY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMousePos { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMouseWheel { pub WheelX: f32, pub WheelY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseWheel { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputEventMouseButton { pub Button: cty::c_int, pub Down: bool, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseButton { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2732,6 +2997,7 @@ pub struct ImGuiInputEventAppFocused { pub struct ImGuiInputEvent { pub Type: ImGuiInputEventType, pub Source: ImGuiInputSource, + pub EventId: ImU32, pub __bindgen_anon_1: ImGuiInputEvent__bindgen_ty_1, pub AddedByTestEngine: bool, } @@ -2771,7 +3037,7 @@ impl Default for ImGuiInputEvent { } impl ::core::fmt::Debug for ImGuiInputEvent { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . __bindgen_anon_1 , self . AddedByTestEngine) + write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, EventId: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . EventId , self . __bindgen_anon_1 , self . AddedByTestEngine) } } pub type ImGuiKeyRoutingIndex = ImS16; @@ -2780,6 +3046,7 @@ pub type ImGuiKeyRoutingIndex = ImS16; pub struct ImGuiKeyRoutingData { pub NextEntryIndex: ImGuiKeyRoutingIndex, pub Mods: ImU16, + pub RoutingCurrScore: ImU8, pub RoutingNextScore: ImU8, pub RoutingCurr: ImGuiID, pub RoutingNext: ImGuiID, @@ -2803,7 +3070,7 @@ impl Default for ImVector_ImGuiKeyRoutingData { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiKeyRoutingTable { - pub Index: [ImGuiKeyRoutingIndex; 140usize], + pub Index: [ImGuiKeyRoutingIndex; 154usize], pub Entries: ImVector_ImGuiKeyRoutingData, pub EntriesNext: ImVector_ImGuiKeyRoutingData, } @@ -2824,31 +3091,31 @@ pub struct ImGuiKeyOwnerData { pub LockThisFrame: bool, pub LockUntilRelease: bool, } -pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; -pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; -pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlags_ = 2; -pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlags_ = 4; -pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlags_ = 8; -pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlags_ = 14; -pub const ImGuiInputFlags_CondHovered: ImGuiInputFlags_ = 16; -pub const ImGuiInputFlags_CondActive: ImGuiInputFlags_ = 32; -pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_CondMask_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlags_ = 64; -pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlags_ = 128; -pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 256; -pub const ImGuiInputFlags_RouteGlobalLow: ImGuiInputFlags_ = 512; -pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 1024; -pub const ImGuiInputFlags_RouteGlobalHigh: ImGuiInputFlags_ = 2048; -pub const ImGuiInputFlags_RouteMask_: ImGuiInputFlags_ = 3840; -pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 4096; -pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 8192; -pub const ImGuiInputFlags_RouteExtraMask_: ImGuiInputFlags_ = 12288; -pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlags_ = 15; -pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlags_ = 16143; -pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlags_ = 192; -pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlags_ = 240; -pub type ImGuiInputFlags_ = cty::c_uint; +pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlagsPrivate_ = 2; +pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlagsPrivate_ = 4; +pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlagsPrivate_ = 8; +pub const ImGuiInputFlags_RepeatUntilRelease: ImGuiInputFlagsPrivate_ = 16; +pub const ImGuiInputFlags_RepeatUntilKeyModsChange: ImGuiInputFlagsPrivate_ = 32; +pub const ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone: ImGuiInputFlagsPrivate_ = 64; +pub const ImGuiInputFlags_RepeatUntilOtherKeyPress: ImGuiInputFlagsPrivate_ = 128; +pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlagsPrivate_ = 1048576; +pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlagsPrivate_ = 2097152; +pub const ImGuiInputFlags_CondHovered: ImGuiInputFlagsPrivate_ = 4194304; +pub const ImGuiInputFlags_CondActive: ImGuiInputFlagsPrivate_ = 8388608; +pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlagsPrivate_ = 14; +pub const ImGuiInputFlags_RepeatUntilMask_: ImGuiInputFlagsPrivate_ = 240; +pub const ImGuiInputFlags_RepeatMask_: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_CondMask_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RouteTypeMask_: ImGuiInputFlagsPrivate_ = 15360; +pub const ImGuiInputFlags_RouteOptionsMask_: ImGuiInputFlagsPrivate_ = 245760; +pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_SupportedByIsMouseClicked: ImGuiInputFlagsPrivate_ = 1; +pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlagsPrivate_ = 261375; +pub const ImGuiInputFlags_SupportedBySetNextItemShortcut: ImGuiInputFlagsPrivate_ = 523519; +pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlagsPrivate_ = 3145728; +pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlagsPrivate_ = 15728640; +pub type ImGuiInputFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiListClipperRange { @@ -2896,6 +3163,8 @@ pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub const ImGuiActivateFlags_FromTabbing: ImGuiActivateFlags_ = 8; +pub const ImGuiActivateFlags_FromShortcut: ImGuiActivateFlags_ = 16; pub type ImGuiActivateFlags_ = cty::c_uint; pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; @@ -2909,8 +3178,7 @@ pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; -pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; -pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; +pub const ImGuiNavHighlightFlags_Compact: ImGuiNavHighlightFlags_ = 2; pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; @@ -2919,15 +3187,19 @@ pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; pub const ImGuiNavMoveFlags_LoopY: ImGuiNavMoveFlags_ = 2; pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; +pub const ImGuiNavMoveFlags_WrapMask_: ImGuiNavMoveFlags_ = 15; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; -pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; -pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; -pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_IsTabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_IsPageMove: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_NoSelect: ImGuiNavMoveFlags_ = 8192; +pub const ImGuiNavMoveFlags_NoSetNavHighlight: ImGuiNavMoveFlags_ = 16384; +pub const ImGuiNavMoveFlags_NoClearActiveId: ImGuiNavMoveFlags_ = 32768; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -2944,6 +3216,7 @@ pub struct ImGuiNavItemData { pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, + pub SelectionUserData: ImGuiSelectionUserData, } impl Default for ImGuiNavItemData { fn default() -> Self { @@ -2954,6 +3227,54 @@ impl Default for ImGuiNavItemData { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiFocusScopeData { + pub ID: ImGuiID, + pub WindowID: ImGuiID, +} +pub const ImGuiTypingSelectFlags_None: ImGuiTypingSelectFlags_ = 0; +pub const ImGuiTypingSelectFlags_AllowBackspace: ImGuiTypingSelectFlags_ = 1; +pub const ImGuiTypingSelectFlags_AllowSingleCharMode: ImGuiTypingSelectFlags_ = 2; +pub type ImGuiTypingSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTypingSelectRequest { + pub Flags: ImGuiTypingSelectFlags, + pub SearchBufferLen: cty::c_int, + pub SearchBuffer: *const cty::c_char, + pub SelectRequest: bool, + pub SingleCharMode: bool, + pub SingleCharSize: ImS8, +} +impl Default for ImGuiTypingSelectRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiTypingSelectState { + pub Request: ImGuiTypingSelectRequest, + pub SearchBuffer: [cty::c_char; 64usize], + pub FocusScope: ImGuiID, + pub LastRequestFrame: cty::c_int, + pub LastRequestTime: f32, + pub SingleCharModeLock: bool, +} +impl Default for ImGuiTypingSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiOldColumnFlags_None: ImGuiOldColumnFlags_ = 0; pub const ImGuiOldColumnFlags_NoBorder: ImGuiOldColumnFlags_ = 1; pub const ImGuiOldColumnFlags_NoResize: ImGuiOldColumnFlags_ = 2; @@ -3015,25 +3336,125 @@ impl Default for ImGuiOldColumns { } } } +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiBoxSelectState { + pub ID: ImGuiID, + pub IsActive: bool, + pub IsStarting: bool, + pub IsStartedFromVoid: bool, + pub IsStartedSetNavIdOnce: bool, + pub RequestClear: bool, + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub StartPosRel: ImVec2, + pub EndPosRel: ImVec2, + pub ScrollAccum: ImVec2, + pub Window: *mut ImGuiWindow, + pub UnclipMode: bool, + pub UnclipRect: ImRect, + pub BoxSelectRectPrev: ImRect, + pub BoxSelectRectCurr: ImRect, +} +impl Default for ImGuiBoxSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl ImGuiBoxSelectState { + #[inline] + pub fn KeyMods(&self) -> ImGuiKeyChord { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_KeyMods(&mut self, val: ImGuiKeyChord) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(KeyMods: ImGuiKeyChord) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let KeyMods: u32 = unsafe { ::core::mem::transmute(KeyMods) }; + KeyMods as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiMultiSelectTempData { + pub IO: ImGuiMultiSelectIO, + pub Storage: *mut ImGuiMultiSelectState, + pub FocusScopeId: ImGuiID, + pub Flags: ImGuiMultiSelectFlags, + pub ScopeRectMin: ImVec2, + pub BackupCursorMaxPos: ImVec2, + pub LastSubmittedItem: ImGuiSelectionUserData, + pub BoxSelectId: ImGuiID, + pub KeyMods: ImGuiKeyChord, + pub LoopRequestSetAll: ImS8, + pub IsEndIO: bool, + pub IsFocused: bool, + pub IsKeyboardSetRange: bool, + pub NavIdPassedBy: bool, + pub RangeSrcPassedBy: bool, + pub RangeDstPassedBy: bool, +} +impl Default for ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectState { + pub Window: *mut ImGuiWindow, + pub ID: ImGuiID, + pub LastFrameActive: cty::c_int, + pub LastSelectionSize: cty::c_int, + pub RangeSelected: ImS8, + pub NavIdSelected: ImS8, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, +} +impl Default for ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiDockNodeFlags_DockSpace: ImGuiDockNodeFlagsPrivate_ = 1024; pub const ImGuiDockNodeFlags_CentralNode: ImGuiDockNodeFlagsPrivate_ = 2048; pub const ImGuiDockNodeFlags_NoTabBar: ImGuiDockNodeFlagsPrivate_ = 4096; pub const ImGuiDockNodeFlags_HiddenTabBar: ImGuiDockNodeFlagsPrivate_ = 8192; pub const ImGuiDockNodeFlags_NoWindowMenuButton: ImGuiDockNodeFlagsPrivate_ = 16384; pub const ImGuiDockNodeFlags_NoCloseButton: ImGuiDockNodeFlagsPrivate_ = 32768; -pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 65536; -pub const ImGuiDockNodeFlags_NoDockingSplitMe: ImGuiDockNodeFlagsPrivate_ = 131072; -pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 262144; -pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 524288; -pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 1048576; -pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 2097152; -pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 4194304; -pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 8388608; +pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 65536; +pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 131072; +pub const ImGuiDockNodeFlags_DockedWindowsInFocusRoute: ImGuiDockNodeFlagsPrivate_ = 262144; +pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 524288; +pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 1048576; +pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 2097152; +pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 4194304; +pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 7864336; pub const ImGuiDockNodeFlags_SharedFlagsInheritMask_: ImGuiDockNodeFlagsPrivate_ = -1; -pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12582944; -pub const ImGuiDockNodeFlags_LocalFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12713072; -pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 12712048; -pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12712992; +pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 196640; +pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 260208; +pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 261152; pub type ImGuiDockNodeFlagsPrivate_ = cty::c_int; pub const ImGuiDataAuthority_Auto: ImGuiDataAuthority_ = 0; pub const ImGuiDataAuthority_DockNode: ImGuiDataAuthority_ = 1; @@ -3090,9 +3511,10 @@ pub struct ImGuiDockNode { pub LastFocusedNodeId: ImGuiID, pub SelectedTabId: ImGuiID, pub WantCloseTabId: ImGuiID, + pub RefViewportId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: u8, + pub __bindgen_padding_0: [u8; 5usize], } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3338,17 +3760,19 @@ impl ImGuiDockNode { } } pub const ImGuiWindowDockStyleCol_Text: ImGuiWindowDockStyleCol = 0; -pub const ImGuiWindowDockStyleCol_Tab: ImGuiWindowDockStyleCol = 1; -pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 2; -pub const ImGuiWindowDockStyleCol_TabActive: ImGuiWindowDockStyleCol = 3; -pub const ImGuiWindowDockStyleCol_TabUnfocused: ImGuiWindowDockStyleCol = 4; -pub const ImGuiWindowDockStyleCol_TabUnfocusedActive: ImGuiWindowDockStyleCol = 5; -pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 1; +pub const ImGuiWindowDockStyleCol_TabFocused: ImGuiWindowDockStyleCol = 2; +pub const ImGuiWindowDockStyleCol_TabSelected: ImGuiWindowDockStyleCol = 3; +pub const ImGuiWindowDockStyleCol_TabSelectedOverline: ImGuiWindowDockStyleCol = 4; +pub const ImGuiWindowDockStyleCol_TabDimmed: ImGuiWindowDockStyleCol = 5; +pub const ImGuiWindowDockStyleCol_TabDimmedSelected: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabDimmedSelectedOverline: ImGuiWindowDockStyleCol = 7; +pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 8; pub type ImGuiWindowDockStyleCol = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiWindowDockStyle { - pub Colors: [ImU32; 6usize], + pub Colors: [ImU32; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3403,26 +3827,28 @@ impl Default for ImGuiDockContext { #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewportP { pub _ImGuiViewport: ImGuiViewport, + pub Window: *mut ImGuiWindow, pub Idx: cty::c_int, pub LastFrameActive: cty::c_int, - pub LastFrontMostStampCount: cty::c_int, + pub LastFocusedStampCount: cty::c_int, pub LastNameHash: ImGuiID, pub LastPos: ImVec2, + pub LastSize: ImVec2, pub Alpha: f32, pub LastAlpha: f32, + pub LastFocusedHadNavWindow: bool, pub PlatformMonitor: cty::c_short, - pub Window: *mut ImGuiWindow, - pub DrawListsLastFrame: [cty::c_int; 2usize], - pub DrawLists: [*mut ImDrawList; 2usize], + pub BgFgDrawListsLastFrame: [cty::c_int; 2usize], + pub BgFgDrawLists: [*mut ImDrawList; 2usize], pub DrawDataP: ImDrawData, pub DrawDataBuilder: ImDrawDataBuilder, pub LastPlatformPos: ImVec2, pub LastPlatformSize: ImVec2, pub LastRendererSize: ImVec2, - pub WorkOffsetMin: ImVec2, - pub WorkOffsetMax: ImVec2, - pub BuildWorkOffsetMin: ImVec2, - pub BuildWorkOffsetMax: ImVec2, + pub WorkInsetMin: ImVec2, + pub WorkInsetMax: ImVec2, + pub BuildWorkInsetMin: ImVec2, + pub BuildWorkInsetMax: ImVec2, } impl Default for ImGuiViewportP { fn default() -> Self { @@ -3445,7 +3871,9 @@ pub struct ImGuiWindowSettings { pub ClassId: ImGuiID, pub DockOrder: cty::c_short, pub Collapsed: bool, + pub IsChild: bool, pub WantApply: bool, + pub WantDelete: bool, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3494,15 +3922,20 @@ impl Default for ImGuiSettingsHandler { } } } -pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 0; -pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 1; -pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 2; -pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 3; -pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 4; -pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 5; -pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 6; -pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 7; -pub const ImGuiLocKey_COUNT: ImGuiLocKey = 8; +pub const ImGuiLocKey_VersionStr: ImGuiLocKey = 0; +pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 1; +pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 2; +pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 3; +pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 4; +pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 5; +pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 6; +pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 7; +pub const ImGuiLocKey_OpenLink_s: ImGuiLocKey = 8; +pub const ImGuiLocKey_CopyLink: ImGuiLocKey = 9; +pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 10; +pub const ImGuiLocKey_DockingHoldShiftToDock: ImGuiLocKey = 11; +pub const ImGuiLocKey_DockingDragToUndockOrMoveNode: ImGuiLocKey = 12; +pub const ImGuiLocKey_COUNT: ImGuiLocKey = 13; pub type ImGuiLocKey = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3525,25 +3958,47 @@ pub const ImGuiDebugLogFlags_EventFocus: ImGuiDebugLogFlags_ = 2; pub const ImGuiDebugLogFlags_EventPopup: ImGuiDebugLogFlags_ = 4; pub const ImGuiDebugLogFlags_EventNav: ImGuiDebugLogFlags_ = 8; pub const ImGuiDebugLogFlags_EventClipper: ImGuiDebugLogFlags_ = 16; -pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 32; -pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 64; -pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 128; -pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 255; -pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1024; +pub const ImGuiDebugLogFlags_EventSelection: ImGuiDebugLogFlags_ = 32; +pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 64; +pub const ImGuiDebugLogFlags_EventInputRouting: ImGuiDebugLogFlags_ = 128; +pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 256; +pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 512; +pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 1023; +pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1048576; +pub const ImGuiDebugLogFlags_OutputToTestEngine: ImGuiDebugLogFlags_ = 2097152; pub type ImGuiDebugLogFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocEntry { + pub FrameCount: cty::c_int, + pub AllocCount: ImS16, + pub FreeCount: ImS16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocInfo { + pub TotalAllocCount: cty::c_int, + pub TotalFreeCount: cty::c_int, + pub LastEntriesIdx: ImS16, + pub LastEntriesBuf: [ImGuiDebugAllocEntry; 6usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { pub ShowDebugLog: bool, - pub ShowStackTool: bool, + pub ShowIDStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, pub ShowDrawCmdMesh: bool, pub ShowDrawCmdBoundingBoxes: bool, + pub ShowTextEncodingViewer: bool, + pub ShowAtlasTintedWithTextColor: bool, pub ShowDockingNodes: bool, pub ShowWindowsRectsType: cty::c_int, pub ShowTablesRectsType: cty::c_int, + pub HighlightMonitorIdx: cty::c_int, + pub HighlightViewportID: ImGuiID, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3604,7 +4059,7 @@ impl Default for ImVector_ImGuiStackLevelInfo { } #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiStackTool { +pub struct ImGuiIDStackTool { pub LastActiveFrame: cty::c_int, pub StackLevel: cty::c_int, pub QueryId: ImGuiID, @@ -3612,7 +4067,7 @@ pub struct ImGuiStackTool { pub CopyToClipboardOnCtrlC: bool, pub CopyToClipboardLastTime: f32, } -impl Default for ImGuiStackTool { +impl Default for ImGuiIDStackTool { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3717,12 +4172,12 @@ impl Default for ImVector_ImGuiStyleMod { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImGuiID { +pub struct ImVector_ImGuiFocusScopeData { pub Size: cty::c_int, pub Capacity: cty::c_int, - pub Data: *mut ImGuiID, + pub Data: *mut ImGuiFocusScopeData, } -impl Default for ImVector_ImGuiID { +impl Default for ImVector_ImGuiFocusScopeData { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3781,6 +4236,22 @@ impl Default for ImVector_ImGuiPopupData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTreeNodeStackData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTreeNodeStackData, +} +impl Default for ImVector_ImGuiTreeNodeStackData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiViewportPPtr { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -3943,6 +4414,71 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectTempData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectTempData, +} +impl Default for ImVector_ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectState { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectState, +} +impl Default for ImVector_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImPool_ImGuiMultiSelectState { + pub Buf: ImVector_ImGuiMultiSelectState, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +impl Default for ImPool_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiID { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiID, +} +impl Default for ImVector_ImGuiID { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiSettingsHandler { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -4008,14 +4544,14 @@ pub struct ImGuiContext { pub FontAtlasOwnedByContext: bool, pub IO: ImGuiIO, pub PlatformIO: ImGuiPlatformIO, - pub InputEventsQueue: ImVector_ImGuiInputEvent, - pub InputEventsTrail: ImVector_ImGuiInputEvent, pub Style: ImGuiStyle, pub ConfigFlagsCurrFrame: ImGuiConfigFlags, pub ConfigFlagsLastFrame: ImGuiConfigFlags, pub Font: *mut ImFont, pub FontSize: f32, pub FontBaseSize: f32, + pub FontScale: f32, + pub CurrentDpiScale: f32, pub DrawListSharedData: ImDrawListSharedData, pub Time: f64, pub FrameCount: cty::c_int, @@ -4028,6 +4564,11 @@ pub struct ImGuiContext { pub GcCompactAll: bool, pub TestEngineHookItems: bool, pub TestEngine: *mut cty::c_void, + pub ContextName: [cty::c_char; 16usize], + pub InputEventsQueue: ImVector_ImGuiInputEvent, + pub InputEventsTrail: ImVector_ImGuiInputEvent, + pub InputEventsNextMouseSource: ImGuiMouseSource, + pub InputEventsNextEventId: ImU32, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, pub WindowsTempSortBuffer: ImVector_ImGuiWindowPtr, @@ -4035,23 +4576,29 @@ pub struct ImGuiContext { pub WindowsById: ImGuiStorage, pub WindowsActiveCount: cty::c_int, pub WindowsHoverPadding: ImVec2, + pub DebugBreakInWindow: ImGuiID, pub CurrentWindow: *mut ImGuiWindow, pub HoveredWindow: *mut ImGuiWindow, pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow, + pub HoveredWindowBeforeClear: *mut ImGuiWindow, pub MovingWindow: *mut ImGuiWindow, pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowStartFrame: cty::c_int, + pub WheelingWindowScrolledFrame: cty::c_int, pub WheelingWindowReleaseTimer: f32, pub WheelingWindowWheelRemainder: ImVec2, pub WheelingAxisAvg: ImVec2, + pub DebugDrawIdConflicts: ImGuiID, pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, - pub HoveredIdAllowOverlap: bool, - pub HoveredIdDisabled: bool, + pub HoveredIdPreviousFrameItemCount: cty::c_int, pub HoveredIdTimer: f32, pub HoveredIdNotActiveTimer: f32, + pub HoveredIdAllowOverlap: bool, + pub HoveredIdIsDisabled: bool, + pub ItemUnclipByLog: bool, pub ActiveId: ImGuiID, pub ActiveIdIsAlive: ImGuiID, pub ActiveIdTimer: f32, @@ -4061,59 +4608,69 @@ pub struct ImGuiContext { pub ActiveIdHasBeenPressedBefore: bool, pub ActiveIdHasBeenEditedBefore: bool, pub ActiveIdHasBeenEditedThisFrame: bool, + pub ActiveIdFromShortcut: bool, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub ActiveIdClickOffset: ImVec2, pub ActiveIdWindow: *mut ImGuiWindow, pub ActiveIdSource: ImGuiInputSource, - pub ActiveIdMouseButton: cty::c_int, pub ActiveIdPreviousFrame: ImGuiID, pub ActiveIdPreviousFrameIsAlive: bool, pub ActiveIdPreviousFrameHasBeenEditedBefore: bool, pub ActiveIdPreviousFrameWindow: *mut ImGuiWindow, pub LastActiveId: ImGuiID, pub LastActiveIdTimer: f32, - pub KeysOwnerData: [ImGuiKeyOwnerData; 140usize], + pub LastKeyModsChangeTime: f64, + pub LastKeyModsChangeFromNoneTime: f64, + pub LastKeyboardKeyPressTime: f64, + pub KeysMayBeCharInput: ImBitArrayForNamedKeys, + pub KeysOwnerData: [ImGuiKeyOwnerData; 154usize], pub KeysRoutingTable: ImGuiKeyRoutingTable, pub ActiveIdUsingNavDirMask: ImU32, pub ActiveIdUsingAllKeyboardKeys: bool, - pub ActiveIdUsingNavInputMask: ImU32, + pub DebugBreakInShortcutRouting: ImGuiKeyChord, pub CurrentFocusScopeId: ImGuiID, pub CurrentItemFlags: ImGuiItemFlags, pub DebugLocateId: ImGuiID, pub NextItemData: ImGuiNextItemData, pub LastItemData: ImGuiLastItemData, pub NextWindowData: ImGuiNextWindowData, + pub DebugShowGroupRects: bool, + pub DebugFlashStyleColorIdx: ImGuiCol, pub ColorStack: ImVector_ImGuiColorMod, pub StyleVarStack: ImVector_ImGuiStyleMod, pub FontStack: ImVector_ImFontPtr, - pub FocusScopeStack: ImVector_ImGuiID, + pub FocusScopeStack: ImVector_ImGuiFocusScopeData, pub ItemFlagsStack: ImVector_ImGuiItemFlags, pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, - pub BeginMenuCount: cty::c_int, + pub TreeNodeStack: ImVector_ImGuiTreeNodeStackData, pub Viewports: ImVector_ImGuiViewportPPtr, - pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, pub MouseViewport: *mut ImGuiViewportP, pub MouseLastHoveredViewport: *mut ImGuiViewportP, pub PlatformLastFocusedViewportId: ImGuiID, pub FallbackMonitor: ImGuiPlatformMonitor, - pub ViewportFrontMostStampCount: cty::c_int, + pub PlatformMonitorsFullWorkRect: ImRect, + pub ViewportCreatedCount: cty::c_int, + pub PlatformWindowsCreatedCount: cty::c_int, + pub ViewportFocusedStampCount: cty::c_int, pub NavWindow: *mut ImGuiWindow, pub NavId: ImGuiID, pub NavFocusScopeId: ImGuiID, + pub NavLayer: ImGuiNavLayer, pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavActivateInputId: ImGuiID, pub NavActivateFlags: ImGuiActivateFlags, - pub NavJustMovedToId: ImGuiID, - pub NavJustMovedToFocusScopeId: ImGuiID, - pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavFocusRoute: ImVector_ImGuiFocusScopeData, + pub NavHighlightActivatedId: ImGuiID, + pub NavHighlightActivatedTimer: f32, pub NavNextActivateId: ImGuiID, pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavLayer: ImGuiNavLayer, + pub NavLastValidSelectionUserData: ImGuiSelectionUserData, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -4121,8 +4678,7 @@ pub struct ImGuiContext { pub NavAnyRequest: bool, pub NavInitRequest: bool, pub NavInitRequestFromMove: bool, - pub NavInitResultId: ImGuiID, - pub NavInitResultRectRel: ImRect, + pub NavInitResult: ImGuiNavItemData, pub NavMoveSubmitted: bool, pub NavMoveScoringItems: bool, pub NavMoveForwardToNextFrame: bool, @@ -4141,6 +4697,12 @@ pub struct ImGuiContext { pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, pub NavTabbingResultFirst: ImGuiNavItemData, + pub NavJustMovedFromFocusScopeId: ImGuiID, + pub NavJustMovedToId: ImGuiID, + pub NavJustMovedToFocusScopeId: ImGuiID, + pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavJustMovedToIsTabbing: bool, + pub NavJustMovedToHasSelectionData: bool, pub ConfigNavWindowingKeyNext: ImGuiKeyChord, pub ConfigNavWindowingKeyPrev: ImGuiKeyChord, pub NavWindowingTarget: *mut ImGuiWindow, @@ -4149,10 +4711,10 @@ pub struct ImGuiContext { pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, + pub NavWindowingToggleKey: ImGuiKey, pub NavWindowingAccumDeltaPos: ImVec2, pub NavWindowingAccumDeltaSize: ImVec2, pub DimBgRatio: f32, - pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, pub DragDropWithinSource: bool, pub DragDropWithinTarget: bool, @@ -4161,6 +4723,7 @@ pub struct ImGuiContext { pub DragDropMouseButton: cty::c_int, pub DragDropPayload: ImGuiPayload, pub DragDropTargetRect: ImRect, + pub DragDropTargetClipRect: ImRect, pub DragDropTargetId: ImGuiID, pub DragDropAcceptFlags: ImGuiDragDropFlags, pub DragDropAcceptIdCurrRectSurface: f32, @@ -4173,6 +4736,7 @@ pub struct ImGuiContext { pub ClipperTempDataStacked: cty::c_int, pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, + pub DebugBreakInTable: ImGuiID, pub TablesTempDataStacked: cty::c_int, pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, @@ -4182,37 +4746,63 @@ pub struct ImGuiContext { pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub HoverDelayId: ImGuiID, - pub HoverDelayIdPreviousFrame: ImGuiID, - pub HoverDelayTimer: f32, - pub HoverDelayClearTimer: f32, + pub BoxSelectState: ImGuiBoxSelectState, + pub CurrentMultiSelect: *mut ImGuiMultiSelectTempData, + pub MultiSelectTempDataStacked: cty::c_int, + pub MultiSelectTempData: ImVector_ImGuiMultiSelectTempData, + pub MultiSelectStorage: ImPool_ImGuiMultiSelectState, + pub HoverItemDelayId: ImGuiID, + pub HoverItemDelayIdPreviousFrame: ImGuiID, + pub HoverItemDelayTimer: f32, + pub HoverItemDelayClearTimer: f32, + pub HoverItemUnlockedStationaryId: ImGuiID, + pub HoverWindowUnlockedStationaryId: ImGuiID, + pub MouseCursor: ImGuiMouseCursor, + pub MouseStationaryTimer: f32, pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, + pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, + pub DataTypeZeroValue: ImGuiDataTypeStorage, + pub BeginMenuDepth: cty::c_int, + pub BeginComboDepth: cty::c_int, pub ColorEditOptions: ImGuiColorEditFlags, - pub ColorEditLastHue: f32, - pub ColorEditLastSat: f32, - pub ColorEditLastColor: ImU32, + pub ColorEditCurrentID: ImGuiID, + pub ColorEditSavedID: ImGuiID, + pub ColorEditSavedHue: f32, + pub ColorEditSavedSat: f32, + pub ColorEditSavedColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, + pub WindowResizeBorderExpectedRect: ImRect, + pub WindowResizeRelativeMode: bool, + pub ScrollbarSeekMode: cty::c_short, + pub ScrollbarClickDeltaToGrabCenter: f32, pub SliderGrabClickOffset: f32, pub SliderCurrentAccum: f32, pub SliderCurrentAccumDirty: bool, pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub ScrollbarClickDeltaToGrabCenter: f32, pub DisabledAlphaBackup: f32, pub DisabledStackSize: cty::c_short, + pub LockMarkEdited: cty::c_short, pub TooltipOverrideCount: cty::c_short, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, + pub TypingSelectState: ImGuiTypingSelectState, pub PlatformImeData: ImGuiPlatformImeData, pub PlatformImeDataPrev: ImGuiPlatformImeData, pub PlatformImeViewport: ImGuiID, - pub PlatformLocaleDecimalPoint: cty::c_char, pub DockContext: ImGuiDockContext, + pub DockNodeWindowMenuHandler: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ), + >, pub SettingsLoaded: bool, pub SettingsDirtyTimer: f32, pub SettingsIniData: ImGuiTextBuffer, @@ -4221,7 +4811,7 @@ pub struct ImGuiContext { pub SettingsTables: ImChunkStream_ImGuiTableSettings, pub Hooks: ImVector_ImGuiContextHook, pub HookIdNext: ImGuiID, - pub LocalizationTable: [*const cty::c_char; 8usize], + pub LocalizationTable: [*const cty::c_char; 13usize], pub LogEnabled: bool, pub LogType: ImGuiLogType, pub LogFile: ImFileHandle, @@ -4236,12 +4826,20 @@ pub struct ImGuiContext { pub DebugLogFlags: ImGuiDebugLogFlags, pub DebugLogBuf: ImGuiTextBuffer, pub DebugLogIndex: ImGuiTextIndex, + pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags, + pub DebugLogAutoDisableFrames: ImU8, pub DebugLocateFrames: ImU8, + pub DebugBreakInLocateId: bool, + pub DebugBreakKeyChord: ImGuiKeyChord, + pub DebugBeginReturnValueCullDepth: ImS8, pub DebugItemPickerActive: bool, pub DebugItemPickerMouseButton: ImU8, pub DebugItemPickerBreakId: ImGuiID, + pub DebugFlashStyleColorTime: f32, + pub DebugFlashStyleColorBackup: ImVec4, pub DebugMetricsConfig: ImGuiMetricsConfig, - pub DebugStackTool: ImGuiStackTool, + pub DebugIDStackTool: ImGuiIDStackTool, + pub DebugAllocInfo: ImGuiDebugAllocInfo, pub DebugHoveredDockNode: *mut ImGuiDockNode, pub FramerateSecPerFrame: [f32; 60usize], pub FramerateSecPerFrameIdx: cty::c_int, @@ -4251,6 +4849,7 @@ pub struct ImGuiContext { pub WantCaptureKeyboardNextFrame: cty::c_int, pub WantTextInputNextFrame: cty::c_int, pub TempBuffer: ImVector_char, + pub TempKeychordName: [cty::c_char; 64usize], } impl Default for ImGuiContext { fn default() -> Self { @@ -4261,6 +4860,28 @@ impl Default for ImGuiContext { } } } +impl ImGuiContext { + #[inline] + pub fn ActiveIdMouseButton(&self) -> cty::c_int { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_ActiveIdMouseButton(&mut self, val: cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(ActiveIdMouseButton: cty::c_int) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let ActiveIdMouseButton: u32 = unsafe { ::core::mem::transmute(ActiveIdMouseButton) }; + ActiveIdMouseButton as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowTempData { @@ -4282,19 +4903,21 @@ pub struct ImGuiWindowTempData { pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, + pub NavIsScrollPushableX: bool, pub NavHideHighlightOneFrame: bool, - pub NavHasScroll: bool, + pub NavWindowHasScrollY: bool, pub MenuBarAppending: bool, pub MenuBarOffset: ImVec2, pub MenuColumns: ImGuiMenuColumns, pub TreeDepth: cty::c_int, - pub TreeJumpToParentOnPopMask: ImU32, + pub TreeHasStackDataDepthMask: ImU32, pub ChildWindows: ImVector_ImGuiWindowPtr, pub StateStorage: *mut ImGuiStorage, pub CurrentColumns: *mut ImGuiOldColumns, pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, + pub ModalDimBgColor: ImU32, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, @@ -4328,10 +4951,12 @@ impl Default for ImVector_ImGuiOldColumns { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindow { + pub Ctx: *mut ImGuiContext, pub Name: *mut cty::c_char, pub ID: ImGuiID, pub Flags: ImGuiWindowFlags, pub FlagsPreviousFrame: ImGuiWindowFlags, + pub ChildFlags: ImGuiChildFlags, pub WindowClass: ImGuiWindowClass, pub Viewport: *mut ImGuiViewportP, pub ViewportId: ImGuiID, @@ -4346,6 +4971,8 @@ pub struct ImGuiWindow { pub WindowPadding: ImVec2, pub WindowRounding: f32, pub WindowBorderSize: f32, + pub TitleBarHeight: f32, + pub MenuBarHeight: f32, pub DecoOuterSizeX1: f32, pub DecoOuterSizeY1: f32, pub DecoOuterSizeX2: f32, @@ -4356,6 +4983,7 @@ pub struct ImGuiWindow { pub MoveId: ImGuiID, pub TabId: ImGuiID, pub ChildId: ImGuiID, + pub PopupId: ImGuiID, pub Scroll: ImVec2, pub ScrollMax: ImVec2, pub ScrollTarget: ImVec2, @@ -4371,21 +4999,21 @@ pub struct ImGuiWindow { pub Collapsed: bool, pub WantCollapseToggle: bool, pub SkipItems: bool, + pub SkipRefresh: bool, pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, pub IsExplicitChild: bool, pub HasCloseButton: bool, + pub ResizeBorderHovered: cty::c_schar, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, pub BeginCountPreviousFrame: cty::c_short, pub BeginOrderWithinParent: cty::c_short, pub BeginOrderWithinContext: cty::c_short, pub FocusOrder: cty::c_short, - pub PopupId: ImGuiID, pub AutoFitFramesX: ImS8, pub AutoFitFramesY: ImS8, - pub AutoFitChildAxises: ImS8, pub AutoFitOnlyGrows: bool, pub AutoPosLastDirection: ImGuiDir, pub HiddenFramesCanSkipItems: ImS8, @@ -4425,9 +5053,11 @@ pub struct ImGuiWindow { pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, + pub ParentWindowForFocusRoute: *mut ImGuiWindow, pub NavLastChildNavWindow: *mut ImGuiWindow, pub NavLastIds: [ImGuiID; 2usize], pub NavRectRel: [ImRect; 2usize], + pub NavPreferredScoringPosRel: [ImVec2; 2usize], pub NavRootFocusScopeId: ImGuiID, pub MemoryDrawListIdxCapacity: cty::c_int, pub MemoryDrawListVtxCapacity: cty::c_int, @@ -4605,7 +5235,6 @@ pub const ImGuiTabItemFlags_SectionMask_: ImGuiTabItemFlagsPrivate_ = 192; pub const ImGuiTabItemFlags_NoCloseButton: ImGuiTabItemFlagsPrivate_ = 1048576; pub const ImGuiTabItemFlags_Button: ImGuiTabItemFlagsPrivate_ = 2097152; pub const ImGuiTabItemFlags_Unsorted: ImGuiTabItemFlagsPrivate_ = 4194304; -pub const ImGuiTabItemFlags_Preview: ImGuiTabItemFlagsPrivate_ = 8388608; pub type ImGuiTabItemFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -4671,6 +5300,8 @@ pub struct ImGuiTabBar { pub ScrollingSpeed: f32, pub ScrollingRectMinX: f32, pub ScrollingRectMaxX: f32, + pub SeparatorMinX: f32, + pub SeparatorMaxX: f32, pub ReorderRequestTabId: ImGuiID, pub ReorderRequestOffset: ImS16, pub BeginCount: ImS8, @@ -4693,8 +5324,8 @@ impl Default for ImGuiTabBar { } } } -pub type ImGuiTableColumnIdx = ImS8; -pub type ImGuiTableDrawChannelIdx = ImU8; +pub type ImGuiTableColumnIdx = ImS16; +pub type ImGuiTableDrawChannelIdx = ImU16; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableColumn { @@ -4704,6 +5335,7 @@ pub struct ImGuiTableColumn { pub MaxX: f32, pub WidthRequest: f32, pub WidthAuto: f32, + pub WidthMax: f32, pub StretchWeight: f32, pub InitStretchWeightOrWidth: f32, pub ClipRect: ImRect, @@ -4804,11 +5436,22 @@ pub struct ImGuiTableCellData { pub Column: ImGuiTableColumnIdx, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableHeaderData { + pub Index: ImGuiTableColumnIdx, + pub TextColor: ImU32, + pub BgColor0: ImU32, + pub BgColor1: ImU32, +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableInstanceData { + pub TableInstanceID: ImGuiID, pub LastOuterHeight: f32, - pub LastFirstRowHeight: f32, + pub LastTopHeadersRowHeight: f32, pub LastFrozenHeight: f32, + pub HoveredRowLast: cty::c_int, + pub HoveredRowNext: cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -4897,10 +5540,9 @@ pub struct ImGuiTable { pub Columns: ImSpan_ImGuiTableColumn, pub DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx, pub RowCellData: ImSpan_ImGuiTableCellData, - pub EnabledMaskByDisplayOrder: ImU64, - pub EnabledMaskByIndex: ImU64, - pub VisibleMaskByIndex: ImU64, - pub RequestOutputMaskByIndex: ImU64, + pub EnabledMaskByDisplayOrder: ImBitArrayPtr, + pub EnabledMaskByIndex: ImBitArrayPtr, + pub VisibleMaskByIndex: ImBitArrayPtr, pub SettingsLoadedFlags: ImGuiTableFlags, pub SettingsOffset: cty::c_int, pub LastFrameActive: cty::c_int, @@ -4912,6 +5554,7 @@ pub struct ImGuiTable { pub RowPosY1: f32, pub RowPosY2: f32, pub RowMinHeight: f32, + pub RowCellPaddingY: f32, pub RowTextBaseline: f32, pub RowIndentOffsetX: f32, pub _bitfield_align_1: [u16; 0], @@ -4926,7 +5569,6 @@ pub struct ImGuiTable { pub MinColumnWidth: f32, pub OuterPaddingX: f32, pub CellPaddingX: f32, - pub CellPaddingY: f32, pub CellSpacingX1: f32, pub CellSpacingX2: f32, pub InnerWidth: f32, @@ -4936,6 +5578,8 @@ pub struct ImGuiTable { pub ResizedColumnNextWidth: f32, pub ResizeLockMinContentsX2: f32, pub RefScale: f32, + pub AngledHeadersHeight: f32, + pub AngledHeadersSlope: f32, pub OuterRect: ImRect, pub InnerRect: ImRect, pub WorkRect: ImRect, @@ -4958,8 +5602,10 @@ pub struct ImGuiTable { pub ColumnsEnabledCount: ImGuiTableColumnIdx, pub ColumnsEnabledFixedCount: ImGuiTableColumnIdx, pub DeclColumnsCount: ImGuiTableColumnIdx, + pub AngledHeadersCount: ImGuiTableColumnIdx, pub HoveredColumnBody: ImGuiTableColumnIdx, pub HoveredColumnBorder: ImGuiTableColumnIdx, + pub HighlightColumnHeader: ImGuiTableColumnIdx, pub AutoFitSingleColumn: ImGuiTableColumnIdx, pub ResizedColumn: ImGuiTableColumnIdx, pub LastResizedColumn: ImGuiTableColumnIdx, @@ -4985,6 +5631,7 @@ pub struct ImGuiTable { pub IsSortSpecsDirty: bool, pub IsUsingHeaders: bool, pub IsContextPopupOpen: bool, + pub DisableDefaultContextMenu: bool, pub IsSettingsRequestLoad: bool, pub IsSettingsDirty: bool, pub IsDefaultDisplayOrder: bool, @@ -4992,6 +5639,8 @@ pub struct ImGuiTable { pub IsResetDisplayOrderRequest: bool, pub IsUnfrozenRows: bool, pub IsDefaultSizingPolicy: bool, + pub IsActiveIdAliveBeforeTable: bool, + pub IsActiveIdInTable: bool, pub HasScrollbarYCurr: bool, pub HasScrollbarYPrev: bool, pub MemoryCompacted: bool, @@ -5047,10 +5696,28 @@ impl ImGuiTable { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTableHeaderData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTableHeaderData, +} +impl Default for ImVector_ImGuiTableHeaderData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiTableTempData { pub TableIndex: cty::c_int, pub LastTimeActive: f32, + pub AngledHeadersExtraWidth: f32, + pub AngledHeadersRequests: ImVector_ImGuiTableHeaderData, pub UserOuterSize: ImVec2, pub DrawSplitter: ImDrawListSplitter, pub HostBackupWorkRect: ImRect, @@ -5081,6 +5748,7 @@ pub struct ImGuiTableColumnSettings { pub SortOrder: ImGuiTableColumnIdx, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, } impl ImGuiTableColumnSettings { #[inline] @@ -5187,6 +5855,9 @@ extern "C" { extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -5212,7 +5883,7 @@ extern "C" { pub fn igShowDebugLogWindow(p_open: *mut bool); } extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); @@ -5251,16 +5922,16 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { @@ -5358,18 +6029,6 @@ extern "C" { extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} extern "C" { pub fn igGetScrollX() -> f32; } @@ -5421,20 +6080,20 @@ extern "C" { extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} extern "C" { pub fn igPopStyleVar(count: cty::c_int); } extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } extern "C" { pub fn igPushItemWidth(item_width: f32); @@ -5470,11 +6129,41 @@ extern "C" { pub fn igGetColorU32_Vec4(col: ImVec4) -> ImU32; } extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} extern "C" { pub fn igSeparator(); } @@ -5502,33 +6191,6 @@ extern "C" { extern "C" { pub fn igEndGroup(); } -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} extern "C" { pub fn igAlignTextToFramePadding(); } @@ -5571,6 +6233,9 @@ extern "C" { extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -5592,6 +6257,9 @@ extern "C" { extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -5641,10 +6309,16 @@ extern "C" { extern "C" { pub fn igBullet(); } +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -5655,7 +6329,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -5690,17 +6364,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -6216,6 +6889,9 @@ extern "C" { extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -6232,6 +6908,22 @@ extern "C" { size: ImVec2, ) -> bool; } +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -6248,17 +6940,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -6366,7 +7057,7 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } extern "C" { pub fn igEndTooltip(); @@ -6374,6 +7065,12 @@ extern "C" { extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -6423,7 +7120,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -6452,11 +7149,14 @@ extern "C" { extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} extern "C" { pub fn igTableHeadersRow(); } extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } extern "C" { pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs; @@ -6479,11 +7179,14 @@ extern "C" { extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } extern "C" { pub fn igNextColumn(); @@ -6530,7 +7233,7 @@ extern "C" { } extern "C" { pub fn igDockSpace( - id: ImGuiID, + dockspace_id: ImGuiID, size: ImVec2, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6538,6 +7241,7 @@ extern "C" { } extern "C" { pub fn igDockSpaceOverViewport( + dockspace_id: ImGuiID, viewport: *const ImGuiViewport, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6621,6 +7325,9 @@ extern "C" { extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -6672,20 +7379,11 @@ extern "C" { extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } -extern "C" { - pub fn igSetItemAllowOverlap(); -} extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } extern "C" { - pub fn igGetBackgroundDrawList_Nil() -> *mut ImDrawList; -} -extern "C" { - pub fn igGetForegroundDrawList_Nil() -> *mut ImDrawList; -} -extern "C" { - pub fn igGetBackgroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; + pub fn igGetBackgroundDrawList(viewport: *mut ImGuiViewport) -> *mut ImDrawList; } extern "C" { pub fn igGetForegroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; @@ -6714,12 +7412,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igEndChildFrame(); -} extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -6764,6 +7456,9 @@ extern "C" { extern "C" { pub fn igIsKeyReleased_Nil(key: ImGuiKey) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord) -> bool; +} extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -6773,6 +7468,15 @@ extern "C" { extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } +extern "C" { + pub fn igShortcut_Nil(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner_Nil(key: ImGuiKey); +} extern "C" { pub fn igIsMouseDown_Nil(button: ImGuiMouseButton) -> bool; } @@ -6783,7 +7487,7 @@ extern "C" { pub fn igIsMouseReleased_Nil(button: ImGuiMouseButton) -> bool; } extern "C" { - pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; + pub fn igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton) -> bool; } extern "C" { pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; @@ -6842,6 +7546,12 @@ extern "C" { extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +extern "C" { + pub fn igDebugStartItemPicker(); +} extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -6853,6 +7563,9 @@ extern "C" { sz_drawidx: usize, ) -> bool; } +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -6873,9 +7586,6 @@ extern "C" { extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } -extern "C" { - pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; -} extern "C" { pub fn igUpdatePlatformWindows(); } @@ -6894,6 +7604,18 @@ extern "C" { extern "C" { pub fn igFindViewportByPlatformHandle(platform_handle: *mut cty::c_void) -> *mut ImGuiViewport; } +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -6916,7 +7638,10 @@ extern "C" { pub fn ImGuiIO_AddMouseButtonEvent(self_: *mut ImGuiIO, button: cty::c_int, down: bool); } extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } extern "C" { pub fn ImGuiIO_AddMouseViewportEvent(self_: *mut ImGuiIO, id: ImGuiID); @@ -6946,11 +7671,14 @@ extern "C" { pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool); } extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -7011,18 +7739,6 @@ extern "C" { extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -7119,7 +7835,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -7128,13 +7844,13 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -7197,10 +7913,10 @@ extern "C" { ) -> *mut *mut cty::c_void; } extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } extern "C" { pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper; @@ -7222,12 +7938,21 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -7257,6 +7982,66 @@ extern "C" { extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -7446,6 +8231,27 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -7468,24 +8274,6 @@ extern "C" { cpu_fine_clip_rect: *const ImVec4, ); } -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -7509,6 +8297,32 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -7560,6 +8374,9 @@ extern "C" { extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -7587,6 +8404,17 @@ extern "C" { a_max_of_12: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -7706,6 +8534,9 @@ extern "C" { extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -7741,6 +8572,9 @@ extern "C" { extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -7830,7 +8664,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -7840,7 +8674,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8100,13 +8934,10 @@ extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; + pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImGuiID) -> ImGuiID; } extern "C" { - pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImU32) -> ImGuiID; -} -extern "C" { - pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; + pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImGuiID) -> ImGuiID; } extern "C" { pub fn igImQsort( @@ -8160,18 +8991,12 @@ extern "C" { c: cty::c_char, ) -> *const cty::c_char; } -extern "C" { - pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; -} extern "C" { pub fn igImStreolRange( str_: *const cty::c_char, str_end: *const cty::c_char, ) -> *const cty::c_char; } -extern "C" { - pub fn igImStrbolW(buf_mid_line: *const ImWchar, buf_begin: *const ImWchar) -> *const ImWchar; -} extern "C" { pub fn igImStristr( haystack: *const cty::c_char, @@ -8186,6 +9011,15 @@ extern "C" { extern "C" { pub fn igImStrSkipBlank(str_: *const cty::c_char) -> *const cty::c_char; } +extern "C" { + pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; +} +extern "C" { + pub fn igImStrbol( + buf_mid_line: *const cty::c_char, + buf_begin: *const cty::c_char, + ) -> *const cty::c_char; +} extern "C" { pub fn igImToUpper(c: cty::c_char) -> cty::c_char; } @@ -8195,6 +9029,9 @@ extern "C" { extern "C" { pub fn igImCharIsBlankW(c: cty::c_uint) -> bool; } +extern "C" { + pub fn igImCharIsXdigitA(c: cty::c_char) -> bool; +} extern "C" { pub fn igImFormatString( buf: *mut cty::c_char, @@ -8289,6 +9126,18 @@ extern "C" { in_text_end: *const ImWchar, ) -> cty::c_int; } +extern "C" { + pub fn igImTextFindPreviousUtf8Codepoint( + in_text_start: *const cty::c_char, + in_text_curr: *const cty::c_char, + ) -> *const cty::c_char; +} +extern "C" { + pub fn igImTextCountLines( + in_text: *const cty::c_char, + in_text_end: *const cty::c_char, + ) -> cty::c_int; +} extern "C" { pub fn igImFileOpen(filename: *const cty::c_char, mode: *const cty::c_char) -> ImFileHandle; } @@ -8385,18 +9234,18 @@ extern "C" { extern "C" { pub fn igImInvLength(lhs: ImVec2, fail_value: f32) -> f32; } +extern "C" { + pub fn igImTrunc_Float(f: f32) -> f32; +} +extern "C" { + pub fn igImTrunc_Vec2(pOut: *mut ImVec2, v: ImVec2); +} extern "C" { pub fn igImFloor_Float(f: f32) -> f32; } -extern "C" { - pub fn igImFloorSigned_Float(f: f32) -> f32; -} extern "C" { pub fn igImFloor_Vec2(pOut: *mut ImVec2, v: ImVec2); } -extern "C" { - pub fn igImFloorSigned_Vec2(pOut: *mut ImVec2, v: ImVec2); -} extern "C" { pub fn igImModPositive(a: cty::c_int, b: cty::c_int) -> cty::c_int; } @@ -8409,6 +9258,9 @@ extern "C" { extern "C" { pub fn igImLinearSweep(current: f32, target: f32, speed: f32) -> f32; } +extern "C" { + pub fn igImLinearRemapClamp(s0: f32, s1: f32, d0: f32, d1: f32, x: f32) -> f32; +} extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } @@ -8477,7 +9329,7 @@ extern "C" { pub fn igImTriangleArea(a: ImVec2, b: ImVec2, c: ImVec2) -> f32; } extern "C" { - pub fn igImGetDirQuadrantFromDelta(dx: f32, dy: f32) -> ImGuiDir; + pub fn igImTriangleIsClockwise(a: ImVec2, b: ImVec2, c: ImVec2) -> bool; } extern "C" { pub fn ImVec1_ImVec1_Nil() -> *mut ImVec1; @@ -8548,6 +9400,9 @@ extern "C" { extern "C" { pub fn ImRect_Contains_Rect(self_: *mut ImRect, r: ImRect) -> bool; } +extern "C" { + pub fn ImRect_ContainsWithPad(self_: *mut ImRect, p: ImVec2, pad: ImVec2) -> bool; +} extern "C" { pub fn ImRect_Overlaps(self_: *mut ImRect, r: ImRect) -> bool; } @@ -8587,6 +9442,12 @@ extern "C" { extern "C" { pub fn ImRect_ToVec4(pOut: *mut ImVec4, self_: *mut ImRect); } +extern "C" { + pub fn igImBitArrayGetStorageSizeInBytes(bitcount: cty::c_int) -> usize; +} +extern "C" { + pub fn igImBitArrayClearAllBits(arr: *mut ImU32, bitcount: cty::c_int); +} extern "C" { pub fn igImBitArrayTestBit(arr: *const ImU32, n: cty::c_int) -> bool; } @@ -8642,6 +9503,13 @@ extern "C" { new_size: cty::c_int, ); } +extern "C" { + pub fn igImLowerBound( + in_begin: *mut ImGuiStoragePair, + in_end: *mut ImGuiStoragePair, + key: ImGuiID, + ) -> *mut ImGuiStoragePair; +} extern "C" { pub fn ImDrawListSharedData_ImDrawListSharedData() -> *mut ImDrawListSharedData; } @@ -8655,16 +9523,16 @@ extern "C" { ); } extern "C" { - pub fn ImDrawDataBuilder_Clear(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_ImDrawDataBuilder() -> *mut ImDrawDataBuilder; } extern "C" { - pub fn ImDrawDataBuilder_ClearFreeMemory(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_destroy(self_: *mut ImDrawDataBuilder); } extern "C" { - pub fn ImDrawDataBuilder_GetDrawListCount(self_: *mut ImDrawDataBuilder) -> cty::c_int; -} -extern "C" { - pub fn ImDrawDataBuilder_FlattenIntoSingleLayer(self_: *mut ImDrawDataBuilder); + pub fn ImGuiDataVarInfo_GetVarPtr( + self_: *mut ImGuiDataVarInfo, + parent: *mut cty::c_void, + ) -> *mut cty::c_void; } extern "C" { pub fn ImGuiStyleMod_ImGuiStyleMod_Int(idx: ImGuiStyleVar, v: cty::c_int) @@ -8711,9 +9579,19 @@ extern "C" { pub fn ImGuiMenuColumns_CalcNextTotalWidth(self_: *mut ImGuiMenuColumns, update_offsets: bool); } extern "C" { - pub fn ImGuiInputTextState_ImGuiInputTextState( - ctx: *mut ImGuiContext, - ) -> *mut ImGuiInputTextState; + pub fn ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState( + ) -> *mut ImGuiInputTextDeactivatedState; +} +extern "C" { + pub fn ImGuiInputTextDeactivatedState_destroy(self_: *mut ImGuiInputTextDeactivatedState); +} +extern "C" { + pub fn ImGuiInputTextDeactivatedState_ClearFreeMemory( + self_: *mut ImGuiInputTextDeactivatedState, + ); +} +extern "C" { + pub fn ImGuiInputTextState_ImGuiInputTextState() -> *mut ImGuiInputTextState; } extern "C" { pub fn ImGuiInputTextState_destroy(self_: *mut ImGuiInputTextState); @@ -8724,15 +9602,12 @@ extern "C" { extern "C" { pub fn ImGuiInputTextState_ClearFreeMemory(self_: *mut ImGuiInputTextState); } -extern "C" { - pub fn ImGuiInputTextState_GetUndoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -extern "C" { - pub fn ImGuiInputTextState_GetRedoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} extern "C" { pub fn ImGuiInputTextState_OnKeyPressed(self_: *mut ImGuiInputTextState, key: cty::c_int); } +extern "C" { + pub fn ImGuiInputTextState_OnCharPressed(self_: *mut ImGuiInputTextState, c: cty::c_uint); +} extern "C" { pub fn ImGuiInputTextState_CursorAnimReset(self_: *mut ImGuiInputTextState); } @@ -8758,10 +9633,13 @@ extern "C" { pub fn ImGuiInputTextState_SelectAll(self_: *mut ImGuiInputTextState); } extern "C" { - pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; + pub fn ImGuiInputTextState_ReloadUserBufAndSelectAll(self_: *mut ImGuiInputTextState); } extern "C" { - pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); + pub fn ImGuiInputTextState_ReloadUserBufAndKeepSelection(self_: *mut ImGuiInputTextState); +} +extern "C" { + pub fn ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self_: *mut ImGuiInputTextState); } extern "C" { pub fn ImGuiNextWindowData_ImGuiNextWindowData() -> *mut ImGuiNextWindowData; @@ -8794,10 +9672,13 @@ extern "C" { pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); } extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_SetToContextState(self_: *mut ImGuiStackSizes, ctx: *mut ImGuiContext); } extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_CompareWithContextState( + self_: *mut ImGuiStackSizes, + ctx: *mut ImGuiContext, + ); } extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(ptr: *mut cty::c_void) -> *mut ImGuiPtrOrIndex; @@ -8808,6 +9689,12 @@ extern "C" { extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } +extern "C" { + pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; +} +extern "C" { + pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); +} extern "C" { pub fn ImGuiInputEvent_ImGuiInputEvent() -> *mut ImGuiInputEvent; } @@ -8870,6 +9757,15 @@ extern "C" { extern "C" { pub fn ImGuiNavItemData_Clear(self_: *mut ImGuiNavItemData); } +extern "C" { + pub fn ImGuiTypingSelectState_ImGuiTypingSelectState() -> *mut ImGuiTypingSelectState; +} +extern "C" { + pub fn ImGuiTypingSelectState_destroy(self_: *mut ImGuiTypingSelectState); +} +extern "C" { + pub fn ImGuiTypingSelectState_Clear(self_: *mut ImGuiTypingSelectState); +} extern "C" { pub fn ImGuiOldColumnData_ImGuiOldColumnData() -> *mut ImGuiOldColumnData; } @@ -8882,6 +9778,30 @@ extern "C" { extern "C" { pub fn ImGuiOldColumns_destroy(self_: *mut ImGuiOldColumns); } +extern "C" { + pub fn ImGuiBoxSelectState_ImGuiBoxSelectState() -> *mut ImGuiBoxSelectState; +} +extern "C" { + pub fn ImGuiBoxSelectState_destroy(self_: *mut ImGuiBoxSelectState); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_ImGuiMultiSelectTempData() -> *mut ImGuiMultiSelectTempData; +} +extern "C" { + pub fn ImGuiMultiSelectTempData_destroy(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_Clear(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_ClearIO(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectState_ImGuiMultiSelectState() -> *mut ImGuiMultiSelectState; +} +extern "C" { + pub fn ImGuiMultiSelectState_destroy(self_: *mut ImGuiMultiSelectState); +} extern "C" { pub fn ImGuiDockNode_ImGuiDockNode(id: ImGuiID) -> *mut ImGuiDockNode; } @@ -8943,15 +9863,15 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectPos( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, + inset_min: ImVec2, ); } extern "C" { pub fn ImGuiViewportP_CalcWorkRectSize( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, - off_max: ImVec2, + inset_min: ImVec2, + inset_max: ImVec2, ); } extern "C" { @@ -8982,10 +9902,10 @@ extern "C" { pub fn ImGuiSettingsHandler_destroy(self_: *mut ImGuiSettingsHandler); } extern "C" { - pub fn ImGuiMetricsConfig_ImGuiMetricsConfig() -> *mut ImGuiMetricsConfig; + pub fn ImGuiDebugAllocInfo_ImGuiDebugAllocInfo() -> *mut ImGuiDebugAllocInfo; } extern "C" { - pub fn ImGuiMetricsConfig_destroy(self_: *mut ImGuiMetricsConfig); + pub fn ImGuiDebugAllocInfo_destroy(self_: *mut ImGuiDebugAllocInfo); } extern "C" { pub fn ImGuiStackLevelInfo_ImGuiStackLevelInfo() -> *mut ImGuiStackLevelInfo; @@ -8994,10 +9914,10 @@ extern "C" { pub fn ImGuiStackLevelInfo_destroy(self_: *mut ImGuiStackLevelInfo); } extern "C" { - pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; + pub fn ImGuiIDStackTool_ImGuiIDStackTool() -> *mut ImGuiIDStackTool; } extern "C" { - pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); + pub fn ImGuiIDStackTool_destroy(self_: *mut ImGuiIDStackTool); } extern "C" { pub fn ImGuiContextHook_ImGuiContextHook() -> *mut ImGuiContextHook; @@ -9033,6 +9953,9 @@ extern "C" { extern "C" { pub fn ImGuiWindow_GetID_Int(self_: *mut ImGuiWindow, n: cty::c_int) -> ImGuiID; } +extern "C" { + pub fn ImGuiWindow_GetIDFromPos(self_: *mut ImGuiWindow, p_abs: ImVec2) -> ImGuiID; +} extern "C" { pub fn ImGuiWindow_GetIDFromRectangle(self_: *mut ImGuiWindow, r_abs: ImRect) -> ImGuiID; } @@ -9042,15 +9965,9 @@ extern "C" { extern "C" { pub fn ImGuiWindow_CalcFontSize(self_: *mut ImGuiWindow) -> f32; } -extern "C" { - pub fn ImGuiWindow_TitleBarHeight(self_: *mut ImGuiWindow) -> f32; -} extern "C" { pub fn ImGuiWindow_TitleBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } -extern "C" { - pub fn ImGuiWindow_MenuBarHeight(self_: *mut ImGuiWindow) -> f32; -} extern "C" { pub fn ImGuiWindow_MenuBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } @@ -9066,16 +9983,6 @@ extern "C" { extern "C" { pub fn ImGuiTabBar_destroy(self_: *mut ImGuiTabBar); } -extern "C" { - pub fn ImGuiTabBar_GetTabOrder(self_: *mut ImGuiTabBar, tab: *const ImGuiTabItem) - -> cty::c_int; -} -extern "C" { - pub fn ImGuiTabBar_GetTabName( - self_: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, - ) -> *const cty::c_char; -} extern "C" { pub fn ImGuiTableColumn_ImGuiTableColumn() -> *mut ImGuiTableColumn; } @@ -9136,6 +10043,9 @@ extern "C" { parent_window: *mut ImGuiWindow, ); } +extern "C" { + pub fn igUpdateWindowSkipRefresh(window: *mut ImGuiWindow); +} extern "C" { pub fn igCalcWindowNextAutoFitSize(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -9178,6 +10088,15 @@ extern "C" { extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } +extern "C" { + pub fn igSetWindowHiddenAndSkipItemsForCurrentFrame(window: *mut ImGuiWindow); +} +extern "C" { + pub fn igSetWindowParentWindowForFocusRoute( + window: *mut ImGuiWindow, + parent_window: *mut ImGuiWindow, + ); +} extern "C" { pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } @@ -9185,12 +10104,20 @@ extern "C" { pub fn igWindowRectRelToAbs(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } extern "C" { - pub fn igFocusWindow(window: *mut ImGuiWindow); + pub fn igWindowPosAbsToRel(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +extern "C" { + pub fn igWindowPosRelToAbs(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +extern "C" { + pub fn igFocusWindow(window: *mut ImGuiWindow, flags: ImGuiFocusRequestFlags); } extern "C" { pub fn igFocusTopMostWindowUnderOne( under_this_window: *mut ImGuiWindow, ignore_window: *mut ImGuiWindow, + filter_viewport: *mut ImGuiViewport, + flags: ImGuiFocusRequestFlags, ); } extern "C" { @@ -9213,6 +10140,9 @@ extern "C" { window: *mut ImGuiWindow, ) -> *mut ImGuiWindow; } +extern "C" { + pub fn igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags); +} extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -9222,6 +10152,13 @@ extern "C" { extern "C" { pub fn igGetForegroundDrawList_WindowPtr(window: *mut ImGuiWindow) -> *mut ImDrawList; } +extern "C" { + pub fn igAddDrawListToDrawDataEx( + draw_data: *mut ImDrawData, + out_list: *mut ImVector_ImDrawListPtr, + draw_list: *mut ImDrawList, + ); +} extern "C" { pub fn igInitialize(); } @@ -9234,6 +10171,14 @@ extern "C" { extern "C" { pub fn igUpdateHoveredWindowAndCaptureFlags(); } +extern "C" { + pub fn igFindHoveredWindowEx( + pos: ImVec2, + find_first_and_in_any_viewport: bool, + out_hovered_window: *mut *mut ImGuiWindow, + out_hovered_window_under_moving_window: *mut *mut ImGuiWindow, + ); +} extern "C" { pub fn igStartMouseMovingWindow(window: *mut ImGuiWindow); } @@ -9241,7 +10186,7 @@ extern "C" { pub fn igStartMouseMovingWindowOrNode( window: *mut ImGuiWindow, node: *mut ImGuiDockNode, - undock_floating_node: bool, + undock: bool, ); } extern "C" { @@ -9264,6 +10209,8 @@ extern "C" { viewport: *mut ImGuiViewportP, old_pos: ImVec2, new_pos: ImVec2, + old_size: ImVec2, + new_size: ImVec2, ); } extern "C" { @@ -9297,15 +10244,6 @@ extern "C" { extern "C" { pub fn igClearIniSettings(); } -extern "C" { - pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -extern "C" { - pub fn igFindWindowSettings(id: ImGuiID) -> *mut ImGuiWindowSettings; -} -extern "C" { - pub fn igFindOrCreateWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} extern "C" { pub fn igAddSettingsHandler(handler: *const ImGuiSettingsHandler); } @@ -9315,6 +10253,18 @@ extern "C" { extern "C" { pub fn igFindSettingsHandler(type_name: *const cty::c_char) -> *mut ImGuiSettingsHandler; } +extern "C" { + pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igFindWindowSettingsByID(id: ImGuiID) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igFindWindowSettingsByWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igClearWindowSettings(name: *const cty::c_char); +} extern "C" { pub fn igLocalizeRegisterEntries(entries: *const ImGuiLocEntry, count: cty::c_int); } @@ -9395,12 +10345,15 @@ extern "C" { pub fn igPushOverrideID(id: ImGuiID); } extern "C" { - pub fn igGetIDWithSeed( + pub fn igGetIDWithSeed_Str( str_id_begin: *const cty::c_char, str_id_end: *const cty::c_char, seed: ImGuiID, ) -> ImGuiID; } +extern "C" { + pub fn igGetIDWithSeed_Int(n: cty::c_int, seed: ImGuiID) -> ImGuiID; +} extern "C" { pub fn igItemSize_Vec2(size: ImVec2, text_baseline_y: f32); } @@ -9416,7 +10369,10 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igItemHoverable(bb: ImRect, id: ImGuiID) -> bool; + pub fn igItemHoverable(bb: ImRect, id: ImGuiID, item_flags: ImGuiItemFlags) -> bool; +} +extern "C" { + pub fn igIsWindowContentHoverable(window: *mut ImGuiWindow, flags: ImGuiHoveredFlags) -> bool; } extern "C" { pub fn igIsClippedEx(bb: ImRect, id: ImGuiID) -> bool; @@ -9438,20 +10394,17 @@ extern "C" { extern "C" { pub fn igPushMultiItemsWidths(components: cty::c_int, width_full: f32); } -extern "C" { - pub fn igIsItemToggledSelection() -> bool; -} -extern "C" { - pub fn igGetContentRegionMaxAbs(pOut: *mut ImVec2); -} extern "C" { pub fn igShrinkWidths(items: *mut ImGuiShrinkWidthItem, count: cty::c_int, width_excess: f32); } extern "C" { - pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); + pub fn igGetStyleVarInfo(idx: ImGuiStyleVar) -> *const ImGuiDataVarInfo; } extern "C" { - pub fn igPopItemFlag(); + pub fn igBeginDisabledOverrideReenable(); +} +extern "C" { + pub fn igEndDisabledOverrideReenable(); } extern "C" { pub fn igLogBegin(type_: ImGuiLogType, auto_open_depth: cty::c_int); @@ -9474,10 +10427,13 @@ extern "C" { name: *const cty::c_char, id: ImGuiID, size_arg: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } +extern "C" { + pub fn igBeginPopupEx(id: ImGuiID, extra_window_flags: ImGuiWindowFlags) -> bool; +} extern "C" { pub fn igOpenPopupEx(id: ImGuiID, popup_flags: ImGuiPopupFlags); } @@ -9496,12 +10452,6 @@ extern "C" { extern "C" { pub fn igIsPopupOpen_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } -extern "C" { - pub fn igBeginPopupEx(id: ImGuiID, extra_flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); -} extern "C" { pub fn igGetPopupAllowedExtentRect(pOut: *mut ImRect, window: *mut ImGuiWindow); } @@ -9511,6 +10461,9 @@ extern "C" { extern "C" { pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; } +extern "C" { + pub fn igFindBlockingModal(window: *mut ImGuiWindow) -> *mut ImGuiWindow; +} extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -9525,6 +10478,15 @@ extern "C" { policy: ImGuiPopupPositionPolicy, ); } +extern "C" { + pub fn igBeginTooltipEx( + tooltip_flags: ImGuiTooltipFlags, + extra_window_flags: ImGuiWindowFlags, + ) -> bool; +} +extern "C" { + pub fn igBeginTooltipHidden() -> bool; +} extern "C" { pub fn igBeginViewportSideBar( name: *const cty::c_char, @@ -9587,6 +10549,12 @@ extern "C" { extern "C" { pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); } +extern "C" { + pub fn igNavMoveRequestResolveWithPastTreeNode( + result: *mut ImGuiNavItemData, + tree_node_data: *mut ImGuiTreeNodeStackData, + ); +} extern "C" { pub fn igNavMoveRequestCancel(); } @@ -9597,7 +10565,16 @@ extern "C" { pub fn igNavMoveRequestTryWrapping(window: *mut ImGuiWindow, move_flags: ImGuiNavMoveFlags); } extern "C" { - pub fn igActivateItem(id: ImGuiID); + pub fn igNavHighlightActivated(id: ImGuiID); +} +extern "C" { + pub fn igNavClearPreferredPosForAxis(axis: ImGuiAxis); +} +extern "C" { + pub fn igNavRestoreHighlightAfterMove(); +} +extern "C" { + pub fn igNavUpdateCurrentWindowIsScrollPushableX(); } extern "C" { pub fn igSetNavWindow(window: *mut ImGuiWindow); @@ -9610,11 +10587,20 @@ extern "C" { rect_rel: ImRect, ); } +extern "C" { + pub fn igSetNavFocusScope(focus_scope_id: ImGuiID); +} +extern "C" { + pub fn igFocusItem(); +} +extern "C" { + pub fn igActivateItemByID(id: ImGuiID); +} extern "C" { pub fn igIsNamedKey(key: ImGuiKey) -> bool; } extern "C" { - pub fn igIsNamedKeyOrModKey(key: ImGuiKey) -> bool; + pub fn igIsNamedKeyOrMod(key: ImGuiKey) -> bool; } extern "C" { pub fn igIsLegacyKey(key: ImGuiKey) -> bool; @@ -9632,20 +10618,22 @@ extern "C" { pub fn igIsAliasKey(key: ImGuiKey) -> bool; } extern "C" { - pub fn igConvertShortcutMod(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; + pub fn igIsLRModKey(key: ImGuiKey) -> bool; +} +extern "C" { + pub fn igFixupKeyChord(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; } extern "C" { pub fn igConvertSingleModFlagToKey(key: ImGuiKey) -> ImGuiKey; } extern "C" { - pub fn igGetKeyData(key: ImGuiKey) -> *mut ImGuiKeyData; + pub fn igGetKeyData_ContextPtr(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyData; } extern "C" { - pub fn igGetKeyChordName( - key_chord: ImGuiKeyChord, - out_buf: *mut cty::c_char, - out_buf_size: cty::c_int, - ); + pub fn igGetKeyData_Key(key: ImGuiKey) -> *mut ImGuiKeyData; +} +extern "C" { + pub fn igGetKeyChordName(key_chord: ImGuiKeyChord) -> *const cty::c_char; } extern "C" { pub fn igMouseButtonToKey(button: ImGuiMouseButton) -> ImGuiKey; @@ -9680,6 +10668,9 @@ extern "C" { repeat_rate: *mut f32, ); } +extern "C" { + pub fn igTeleportMousePos(pos: ImVec2); +} extern "C" { pub fn igSetActiveIdUsingAllKeyboardKeys(); } @@ -9693,44 +10684,65 @@ extern "C" { pub fn igSetKeyOwner(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags); } extern "C" { - pub fn igSetItemKeyOwner(key: ImGuiKey, flags: ImGuiInputFlags); + pub fn igSetKeyOwnersForKeyChord(key: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner_InputFlags(key: ImGuiKey, flags: ImGuiInputFlags); } extern "C" { pub fn igTestKeyOwner(key: ImGuiKey, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igGetKeyOwnerData(key: ImGuiKey) -> *mut ImGuiKeyOwnerData; + pub fn igGetKeyOwnerData(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyOwnerData; } extern "C" { pub fn igIsKeyDown_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igIsKeyPressed_ID(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsKeyPressed_InputFlags( + key: ImGuiKey, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } extern "C" { pub fn igIsKeyReleased_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed_InputFlags( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; +} extern "C" { pub fn igIsMouseDown_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igIsMouseClicked_ID( + pub fn igIsMouseClicked_InputFlags( button: ImGuiMouseButton, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } extern "C" { pub fn igIsMouseReleased_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igShortcut(key_chord: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsMouseDoubleClicked_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; +} +extern "C" { + pub fn igShortcut_ID( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } extern "C" { pub fn igSetShortcutRouting( key_chord: ImGuiKeyChord, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } extern "C" { @@ -9784,6 +10796,16 @@ extern "C" { extern "C" { pub fn igDockContextQueueUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); } +extern "C" { + pub fn igDockContextProcessUndockWindow( + ctx: *mut ImGuiContext, + window: *mut ImGuiWindow, + clear_persistent_docking_ref: bool, + ); +} +extern "C" { + pub fn igDockContextProcessUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); +} extern "C" { pub fn igDockContextCalcDropPosForDocking( target: *mut ImGuiWindow, @@ -9798,6 +10820,13 @@ extern "C" { extern "C" { pub fn igDockContextFindNodeByID(ctx: *mut ImGuiContext, id: ImGuiID) -> *mut ImGuiDockNode; } +extern "C" { + pub fn igDockNodeWindowMenuHandler_Default( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ); +} extern "C" { pub fn igDockNodeBeginAmendTabBar(node: *mut ImGuiDockNode) -> bool; } @@ -9915,7 +10944,82 @@ extern "C" { pub fn igIsDragDropPayloadBeingAccepted() -> bool; } extern "C" { - pub fn igRenderDragDropTargetRect(bb: ImRect); + pub fn igRenderDragDropTargetRect(bb: ImRect, item_clip_rect: ImRect); +} +extern "C" { + pub fn igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags) + -> *mut ImGuiTypingSelectRequest; +} +extern "C" { + pub fn igTypingSelectFindMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +extern "C" { + pub fn igTypingSelectFindNextSingleCharMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +extern "C" { + pub fn igTypingSelectFindBestLeadingMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + ) -> cty::c_int; +} +extern "C" { + pub fn igBeginBoxSelect( + scope_rect: ImRect, + window: *mut ImGuiWindow, + box_select_id: ImGuiID, + ms_flags: ImGuiMultiSelectFlags, + ) -> bool; +} +extern "C" { + pub fn igEndBoxSelect(scope_rect: ImRect, ms_flags: ImGuiMultiSelectFlags); +} +extern "C" { + pub fn igMultiSelectItemHeader( + id: ImGuiID, + p_selected: *mut bool, + p_button_flags: *mut ImGuiButtonFlags, + ); +} +extern "C" { + pub fn igMultiSelectItemFooter(id: ImGuiID, p_selected: *mut bool, p_pressed: *mut bool); +} +extern "C" { + pub fn igMultiSelectAddSetAll(ms: *mut ImGuiMultiSelectTempData, selected: bool); +} +extern "C" { + pub fn igMultiSelectAddSetRange( + ms: *mut ImGuiMultiSelectTempData, + selected: bool, + range_dir: cty::c_int, + first_item: ImGuiSelectionUserData, + last_item: ImGuiSelectionUserData, + ); +} +extern "C" { + pub fn igGetBoxSelectState(id: ImGuiID) -> *mut ImGuiBoxSelectState; +} +extern "C" { + pub fn igGetMultiSelectState(id: ImGuiID) -> *mut ImGuiMultiSelectState; } extern "C" { pub fn igSetWindowClipRectBeforeSetChannel(window: *mut ImGuiWindow, clip_rect: ImRect); @@ -9965,17 +11069,29 @@ extern "C" { ); } extern "C" { - pub fn igTableGetHoveredColumn() -> cty::c_int; + pub fn igTableGetHoveredRow() -> cty::c_int; } extern "C" { pub fn igTableGetHeaderRowHeight() -> f32; } +extern "C" { + pub fn igTableGetHeaderAngledMaxLabelWidth() -> f32; +} extern "C" { pub fn igTablePushBackgroundChannel(); } extern "C" { pub fn igTablePopBackgroundChannel(); } +extern "C" { + pub fn igTableAngledHeadersRowEx( + row_id: ImGuiID, + angle: f32, + max_label_width: f32, + data: *const ImGuiTableHeaderData, + data_count: cty::c_int, + ); +} extern "C" { pub fn igGetCurrentTable() -> *mut ImGuiTable; } @@ -10014,7 +11130,10 @@ extern "C" { pub fn igTableDrawBorders(table: *mut ImGuiTable); } extern "C" { - pub fn igTableDrawContextMenu(table: *mut ImGuiTable); + pub fn igTableDrawDefaultContextMenu( + table: *mut ImGuiTable, + flags_for_section_to_display: ImGuiTableFlags, + ); } extern "C" { pub fn igTableBeginContextMenuPopup(table: *mut ImGuiTable) -> bool; @@ -10028,6 +11147,9 @@ extern "C" { instance_no: cty::c_int, ) -> *mut ImGuiTableInstanceData; } +extern "C" { + pub fn igTableGetInstanceID(table: *mut ImGuiTable, instance_no: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTableSortSpecsSanitize(table: *mut ImGuiTable); } @@ -10066,13 +11188,13 @@ extern "C" { } extern "C" { pub fn igTableGetColumnResizeID( - table: *const ImGuiTable, + table: *mut ImGuiTable, column_n: cty::c_int, instance_no: cty::c_int, ) -> ImGuiID; } extern "C" { - pub fn igTableGetMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; + pub fn igTableCalcMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; } extern "C" { pub fn igTableSetColumnWidthAutoSingle(table: *mut ImGuiTable, column_n: cty::c_int); @@ -10115,21 +11237,37 @@ extern "C" { pub fn igTableSettingsFindByID(id: ImGuiID) -> *mut ImGuiTableSettings; } extern "C" { - pub fn igBeginTabBarEx( - tab_bar: *mut ImGuiTabBar, - bb: ImRect, - flags: ImGuiTabBarFlags, - dock_node: *mut ImGuiDockNode, - ) -> bool; + pub fn igGetCurrentTabBar() -> *mut ImGuiTabBar; +} +extern "C" { + pub fn igBeginTabBarEx(tab_bar: *mut ImGuiTabBar, bb: ImRect, flags: ImGuiTabBarFlags) -> bool; } extern "C" { pub fn igTabBarFindTabByID(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID) -> *mut ImGuiTabItem; } +extern "C" { + pub fn igTabBarFindTabByOrder( + tab_bar: *mut ImGuiTabBar, + order: cty::c_int, + ) -> *mut ImGuiTabItem; +} extern "C" { pub fn igTabBarFindMostRecentlySelectedTabForActiveWindow( tab_bar: *mut ImGuiTabBar, ) -> *mut ImGuiTabItem; } +extern "C" { + pub fn igTabBarGetCurrentTab(tab_bar: *mut ImGuiTabBar) -> *mut ImGuiTabItem; +} +extern "C" { + pub fn igTabBarGetTabOrder(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem) -> cty::c_int; +} +extern "C" { + pub fn igTabBarGetTabName( + tab_bar: *mut ImGuiTabBar, + tab: *mut ImGuiTabItem, + ) -> *const cty::c_char; +} extern "C" { pub fn igTabBarAddTab( tab_bar: *mut ImGuiTabBar, @@ -10143,17 +11281,20 @@ extern "C" { extern "C" { pub fn igTabBarCloseTab(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); } +extern "C" { + pub fn igTabBarQueueFocus(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); +} extern "C" { pub fn igTabBarQueueReorder( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, offset: cty::c_int, ); } extern "C" { pub fn igTabBarQueueReorderFromMousePos( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, mouse_pos: ImVec2, ); } @@ -10257,7 +11398,7 @@ extern "C" { p_min: ImVec2, p_max: ImVec2, fill_col: ImU32, - border: bool, + borders: bool, rounding: f32, ); } @@ -10367,15 +11508,24 @@ extern "C" { pub fn igImageButtonEx( id: ImGuiID, texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, tint_col: ImVec4, + flags: ImGuiButtonFlags, ) -> bool; } extern "C" { - pub fn igSeparatorEx(flags: ImGuiSeparatorFlags); + pub fn igSeparatorEx(flags: ImGuiSeparatorFlags, thickness: f32); +} +extern "C" { + pub fn igSeparatorTextEx( + id: ImGuiID, + label: *const cty::c_char, + label_end: *const cty::c_char, + extra_width: f32, + ); } extern "C" { pub fn igCheckboxFlags_S64Ptr( @@ -10483,10 +11633,13 @@ extern "C" { pub fn igTreePushOverrideID(id: ImGuiID); } extern "C" { - pub fn igTreeNodeSetOpen(id: ImGuiID, open: bool); + pub fn igTreeNodeGetOpen(storage_id: ImGuiID) -> bool; } extern "C" { - pub fn igTreeNodeUpdateNextOpen(id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; + pub fn igTreeNodeSetOpen(storage_id: ImGuiID, open: bool); +} +extern "C" { + pub fn igTreeNodeUpdateNextOpen(storage_id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; } extern "C" { pub fn igDataTypeGetInfo(data_type: ImGuiDataType) -> *const ImGuiDataTypeInfo; @@ -10515,6 +11668,7 @@ extern "C" { data_type: ImGuiDataType, p_data: *mut cty::c_void, format: *const cty::c_char, + p_data_when_empty: *mut cty::c_void, ) -> bool; } extern "C" { @@ -10544,6 +11698,9 @@ extern "C" { user_data: *mut cty::c_void, ) -> bool; } +extern "C" { + pub fn igInputTextDeactivateHook(id: ImGuiID); +} extern "C" { pub fn igTempInputText( bb: ImRect, @@ -10572,6 +11729,9 @@ extern "C" { extern "C" { pub fn igGetInputTextState(id: ImGuiID) -> *mut ImGuiInputTextState; } +extern "C" { + pub fn igSetNextItemRefVal(data_type: ImGuiDataType, p_data: *mut cty::c_void); +} extern "C" { pub fn igColorTooltip(text: *const cty::c_char, col: *const f32, flags: ImGuiColorEditFlags); } @@ -10594,7 +11754,7 @@ extern "C" { overlay_text: *const cty::c_char, scale_min: f32, scale_max: f32, - frame_size: ImVec2, + size_arg: ImVec2, ) -> cty::c_int; } extern "C" { @@ -10620,6 +11780,17 @@ extern "C" { clamp: bool, ); } +extern "C" { + pub fn igShadeVertsTransformPos( + draw_list: *mut ImDrawList, + vert_start_idx: cty::c_int, + vert_end_idx: cty::c_int, + pivot_in: ImVec2, + cos_a: f32, + sin_a: f32, + pivot_out: ImVec2, + ); +} extern "C" { pub fn igGcCompactTransientMiscBuffers(); } @@ -10630,7 +11801,12 @@ extern "C" { pub fn igGcAwakeTransientWindowBuffers(window: *mut ImGuiWindow); } extern "C" { - pub fn igDebugLog(fmt: *const cty::c_char, ...); + pub fn igDebugAllocHook( + info: *mut ImGuiDebugAllocInfo, + frame_count: cty::c_int, + ptr: *mut cty::c_void, + size: usize, + ); } extern "C" { pub fn igErrorCheckEndFrameRecover( @@ -10647,6 +11823,21 @@ extern "C" { extern "C" { pub fn igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); } +extern "C" { + pub fn igDebugDrawCursorPos(col: ImU32); +} +extern "C" { + pub fn igDebugDrawLineExtents(col: ImU32); +} +extern "C" { + pub fn igDebugDrawItemRect(col: ImU32); +} +extern "C" { + pub fn igDebugTextUnformattedWithLocateItem( + line_begin: *const cty::c_char, + line_end: *const cty::c_char, + ); +} extern "C" { pub fn igDebugLocateItem(target_id: ImGuiID); } @@ -10657,10 +11848,19 @@ extern "C" { pub fn igDebugLocateItemResolveWithLastItem(); } extern "C" { - pub fn igDebugDrawItemRect(col: ImU32); + pub fn igDebugBreakClearData(); } extern "C" { - pub fn igDebugStartItemPicker(); + pub fn igDebugBreakButton( + label: *const cty::c_char, + description_of_location: *const cty::c_char, + ) -> bool; +} +extern "C" { + pub fn igDebugBreakButtonTooltip( + keyboard_only: bool, + description_of_location: *const cty::c_char, + ); } extern "C" { pub fn igShowFontAtlas(atlas: *mut ImFontAtlas); @@ -10717,6 +11917,12 @@ extern "C" { extern "C" { pub fn igDebugNodeInputTextState(state: *mut ImGuiInputTextState); } +extern "C" { + pub fn igDebugNodeTypingSelectState(state: *mut ImGuiTypingSelectState); +} +extern "C" { + pub fn igDebugNodeMultiSelectState(state: *mut ImGuiMultiSelectState); +} extern "C" { pub fn igDebugNodeWindow(window: *mut ImGuiWindow, label: *const cty::c_char); } @@ -10736,6 +11942,13 @@ extern "C" { extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } +extern "C" { + pub fn igDebugNodePlatformMonitor( + monitor: *mut ImGuiPlatformMonitor, + label: *const cty::c_char, + idx: cty::c_int, + ); +} extern "C" { pub fn igDebugRenderKeyboardPreview(draw_list: *mut ImDrawList); } @@ -10747,10 +11960,10 @@ extern "C" { ); } extern "C" { - pub fn igIsKeyPressedMap(key: ImGuiKey, repeat: bool) -> bool; + pub fn igImFontAtlasGetBuilderForStbTruetype() -> *const ImFontBuilderIO; } extern "C" { - pub fn igImFontAtlasGetBuilderForStbTruetype() -> *const ImFontBuilderIO; + pub fn igImFontAtlasUpdateConfigDataPointers(atlas: *mut ImFontAtlas); } extern "C" { pub fn igImFontAtlasBuildInit(atlas: *mut ImFontAtlas); diff --git a/imgui-sys/src/docking_freetype_bindings.rs b/imgui-sys/src/docking_freetype_bindings.rs index 04c0275..de4cd9f 100644 --- a/imgui-sys/src/docking_freetype_bindings.rs +++ b/imgui-sys/src/docking_freetype_bindings.rs @@ -82,59 +82,16 @@ where } } } -pub type __off_t = cty::c_long; -pub type __off64_t = cty::c_long; -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = cty::c_void; +pub type __int64_t = cty::c_longlong; +pub type __darwin_off_t = __int64_t; +pub type fpos_t = __darwin_off_t; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct _IO_FILE { - pub _flags: cty::c_int, - pub _IO_read_ptr: *mut cty::c_char, - pub _IO_read_end: *mut cty::c_char, - pub _IO_read_base: *mut cty::c_char, - pub _IO_write_base: *mut cty::c_char, - pub _IO_write_ptr: *mut cty::c_char, - pub _IO_write_end: *mut cty::c_char, - pub _IO_buf_base: *mut cty::c_char, - pub _IO_buf_end: *mut cty::c_char, - pub _IO_save_base: *mut cty::c_char, - pub _IO_backup_base: *mut cty::c_char, - pub _IO_save_end: *mut cty::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: cty::c_int, - pub _flags2: cty::c_int, - pub _old_offset: __off_t, - pub _cur_column: cty::c_ushort, - pub _vtable_offset: cty::c_schar, - pub _shortbuf: [cty::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut cty::c_void, - pub __pad5: usize, - pub _mode: cty::c_int, - pub _unused2: [cty::c_char; 20usize], +pub struct __sbuf { + pub _base: *mut cty::c_uchar, + pub _size: cty::c_int, } -impl Default for _IO_FILE { +impl Default for __sbuf { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -145,6 +102,59 @@ impl Default for _IO_FILE { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct __sFILEX { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct __sFILE { + pub _p: *mut cty::c_uchar, + pub _r: cty::c_int, + pub _w: cty::c_int, + pub _flags: cty::c_short, + pub _file: cty::c_short, + pub _bf: __sbuf, + pub _lbfsize: cty::c_int, + pub _cookie: *mut cty::c_void, + pub _close: ::core::option::Option cty::c_int>, + pub _read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *mut cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _seek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: fpos_t, arg3: cty::c_int) -> fpos_t, + >, + pub _write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *const cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _ub: __sbuf, + pub _extra: *mut __sFILEX, + pub _ur: cty::c_int, + pub _ubuf: [cty::c_uchar; 3usize], + pub _nbuf: [cty::c_uchar; 1usize], + pub _lb: __sbuf, + pub _blksize: cty::c_int, + pub _offset: fpos_t, +} +impl Default for __sFILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type FILE = __sFILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct ImGuiDockRequest { _unused: [u8; 0], } @@ -154,6 +164,11 @@ pub struct ImGuiDockNodeSettings { _unused: [u8; 0], } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct STB_TexteditState { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_const_charPtr { pub Size: cty::c_int, @@ -169,13 +184,20 @@ impl Default for ImVector_const_charPtr { } } } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImS32 = cty::c_int; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; +pub type ImU64 = cty::c_ulonglong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -183,6 +205,7 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; @@ -190,9 +213,12 @@ pub type ImGuiDockNodeFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -205,18 +231,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImS32 = cty::c_int; -pub type ImU32 = cty::c_uint; -pub type ImS64 = cty::c_longlong; -pub type ImU64 = cty::c_ulonglong; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -259,15 +277,13 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 2097152; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 524288; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; @@ -275,33 +291,54 @@ pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub const ImGuiWindowFlags_DockNodeHost: ImGuiWindowFlags_ = 536870912; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -312,7 +349,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -321,18 +360,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -342,6 +383,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -351,10 +393,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -365,80 +408,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -455,22 +426,28 @@ pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; pub const ImGuiDockNodeFlags_KeepAliveOnly: ImGuiDockNodeFlags_ = 1; -pub const ImGuiDockNodeFlags_NoDockingInCentralNode: ImGuiDockNodeFlags_ = 4; +pub const ImGuiDockNodeFlags_NoDockingOverCentralNode: ImGuiDockNodeFlags_ = 4; pub const ImGuiDockNodeFlags_PassthruCentralNode: ImGuiDockNodeFlags_ = 8; -pub const ImGuiDockNodeFlags_NoSplit: ImGuiDockNodeFlags_ = 16; +pub const ImGuiDockNodeFlags_NoDockingSplit: ImGuiDockNodeFlags_ = 16; pub const ImGuiDockNodeFlags_NoResize: ImGuiDockNodeFlags_ = 32; pub const ImGuiDockNodeFlags_AutoHideTabBar: ImGuiDockNodeFlags_ = 64; +pub const ImGuiDockNodeFlags_NoUndocking: ImGuiDockNodeFlags_ = 128; pub type ImGuiDockNodeFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -478,7 +455,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -494,19 +473,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -580,106 +560,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -687,7 +674,8 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; -pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 128; pub const ImGuiConfigFlags_ViewportsEnable: ImGuiConfigFlags_ = 1024; pub const ImGuiConfigFlags_DpiEnableScaleViewports: ImGuiConfigFlags_ = 16384; pub const ImGuiConfigFlags_DpiEnableScaleFonts: ImGuiConfigFlags_ = 32768; @@ -736,29 +724,32 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_DockingPreview: ImGuiCol_ = 38; -pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 39; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 49; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 50; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 51; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 52; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 53; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 54; -pub const ImGuiCol_COUNT: ImGuiCol_ = 55; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_DockingPreview: ImGuiCol_ = 40; +pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 41; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 42; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 43; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 44; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 45; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 46; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 47; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 48; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 49; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 50; +pub const ImGuiCol_TextLink: ImGuiCol_ = 51; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 52; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 53; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 54; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 55; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 56; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 57; +pub const ImGuiCol_COUNT: ImGuiCol_ = 58; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -783,16 +774,24 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_DockingSeparatorSize: ImGuiStyleVar_ = 33; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 34; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -829,6 +828,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -848,12 +848,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -886,18 +999,31 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, + pub DockingSeparatorSize: f32, pub MouseCursorScale: f32, pub AntiAliasedLines: bool, pub AntiAliasedLinesUseTex: bool, pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 55usize], + pub Colors: [ImVec4; 58usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -942,13 +1068,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -965,6 +1084,7 @@ pub struct ImGuiIO { pub ConfigViewportsNoDefaultParent: bool, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -972,22 +1092,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -1000,22 +1120,20 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub MouseHoveredViewport: ImGuiID, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -1027,6 +1145,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1051,6 +1171,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1095,6 +1216,7 @@ impl Default for ImGuiSizeCallbackData { pub struct ImGuiWindowClass { pub ClassId: ImGuiID, pub ParentViewportId: ImGuiID, + pub FocusRouteParentWindowId: ImGuiID, pub ViewportFlagsOverrideSet: ImGuiViewportFlags, pub ViewportFlagsOverrideClear: ImGuiViewportFlags, pub TabItemFlagsOverrideSet: ImGuiTabItemFlags, @@ -1125,56 +1247,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1333,11 +1405,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1354,6 +1428,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1518,6 +1709,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1549,13 +1756,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1565,25 +1784,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1599,7 +1806,7 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, @@ -1633,6 +1840,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1902,7 +2110,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1929,10 +2139,11 @@ pub const ImGuiViewportFlags_NoFocusOnAppearing: ImGuiViewportFlags_ = 32; pub const ImGuiViewportFlags_NoFocusOnClick: ImGuiViewportFlags_ = 64; pub const ImGuiViewportFlags_NoInputs: ImGuiViewportFlags_ = 128; pub const ImGuiViewportFlags_NoRendererClear: ImGuiViewportFlags_ = 256; -pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 512; -pub const ImGuiViewportFlags_Minimized: ImGuiViewportFlags_ = 1024; -pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 2048; -pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 512; +pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 1024; +pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 2048; +pub const ImGuiViewportFlags_IsMinimized: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_IsFocused: ImGuiViewportFlags_ = 8192; pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -1999,6 +2210,25 @@ impl Default for ImVector_ImGuiViewportPtr { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, pub Platform_CreateWindow: ::core::option::Option, pub Platform_DestroyWindow: ::core::option::Option, @@ -2033,6 +2263,8 @@ pub struct ImGuiPlatformIO { ::core::option::Option f32>, pub Platform_OnChangedViewport: ::core::option::Option, + pub Platform_GetWindowWorkAreaInsets: + ::core::option::Option ImVec4>, pub Platform_CreateVkSurface: ::core::option::Option< unsafe extern "C" fn( vp: *mut ImGuiViewport, @@ -2065,13 +2297,23 @@ impl Default for ImGuiPlatformIO { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiPlatformMonitor { pub MainPos: ImVec2, pub MainSize: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, pub DpiScale: f32, + pub PlatformHandle: *mut cty::c_void, +} +impl Default for ImGuiPlatformMonitor { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2084,8 +2326,7 @@ pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiDebugLogFlags = cty::c_int; -pub type ImGuiInputFlags = cty::c_int; -pub type ImGuiItemFlags = cty::c_int; +pub type ImGuiFocusRequestFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -2096,73 +2337,11 @@ pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; +pub type ImGuiTypingSelectFlags = cty::c_int; +pub type ImGuiWindowRefreshFlags = cty::c_int; pub type ImGuiErrorLogCallback = ::core::option::Option< unsafe extern "C" fn(user_data: *mut cty::c_void, fmt: *const cty::c_char, ...), >; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoRecord { - pub where_: cty::c_int, - pub insert_length: cty::c_int, - pub delete_length: cty::c_int, - pub char_storage: cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoState { - pub undo_rec: [StbUndoRecord; 99usize], - pub undo_char: [ImWchar; 999usize], - pub undo_point: cty::c_short, - pub redo_point: cty::c_short, - pub undo_char_point: cty::c_int, - pub redo_char_point: cty::c_int, -} -impl Default for StbUndoState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct STB_TexteditState { - pub cursor: cty::c_int, - pub select_start: cty::c_int, - pub select_end: cty::c_int, - pub insert_mode: cty::c_uchar, - pub row_count_per_page: cty::c_int, - pub cursor_at_end_of_line: cty::c_uchar, - pub initialized: cty::c_uchar, - pub has_preferred_x: cty::c_uchar, - pub single_line: cty::c_uchar, - pub padding1: cty::c_uchar, - pub padding2: cty::c_uchar, - pub padding3: cty::c_uchar, - pub preferred_x: f32, - pub undostate: StbUndoState, -} -impl Default for STB_TexteditState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] -pub struct StbTexteditRow { - pub x0: f32, - pub x1: f32, - pub baseline_y_delta: f32, - pub ymin: f32, - pub ymax: f32, - pub num_chars: cty::c_int, -} pub type ImFileHandle = *mut FILE; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2181,6 +2360,7 @@ pub struct ImRect { pub Min: ImVec2, pub Max: ImVec2, } +pub type ImBitArrayPtr = *mut ImU32; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImBitVector { @@ -2233,6 +2413,7 @@ pub struct ImDrawListSharedData { pub TexUvWhitePixel: ImVec2, pub Font: *mut ImFont, pub FontSize: f32, + pub FontScale: f32, pub CurveTessellationTol: f32, pub CircleSegmentMaxError: f32, pub ClipRectFullscreen: ImVec4, @@ -2254,24 +2435,9 @@ impl Default for ImDrawListSharedData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImDrawListPtr { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut *mut ImDrawList, -} -impl Default for ImVector_ImDrawListPtr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImDrawDataBuilder { - pub Layers: [ImVector_ImDrawListPtr; 2usize], + pub Layers: [*mut ImVector_ImDrawListPtr; 2usize], + pub LayerData1: ImVector_ImDrawListPtr, } impl Default for ImDrawDataBuilder { fn default() -> Self { @@ -2282,18 +2448,49 @@ impl Default for ImDrawDataBuilder { } } } -pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; -pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; -pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 2; -pub const ImGuiItemFlags_Disabled: ImGuiItemFlags_ = 4; -pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 8; -pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; -pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; -pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; -pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; -pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlags_ = 256; -pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 1024; -pub type ImGuiItemFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataVarInfo { + pub Type: ImGuiDataType, + pub Count: ImU32, + pub Offset: ImU32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeStorage { + pub Data: [ImU8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeInfo { + pub Size: usize, + pub Name: *const cty::c_char, + pub PrintFmt: *const cty::c_char, + pub ScanFmt: *const cty::c_char, +} +impl Default for ImGuiDataTypeInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 12; +pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 13; +pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 14; +pub type ImGuiDataTypePrivate_ = cty::c_uint; +pub const ImGuiItemFlags_Disabled: ImGuiItemFlagsPrivate_ = 1024; +pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlagsPrivate_ = 2048; +pub const ImGuiItemFlags_MixedValue: ImGuiItemFlagsPrivate_ = 4096; +pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlagsPrivate_ = 8192; +pub const ImGuiItemFlags_AllowOverlap: ImGuiItemFlagsPrivate_ = 16384; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlagsPrivate_ = 1048576; +pub const ImGuiItemFlags_HasSelectionUserData: ImGuiItemFlagsPrivate_ = 2097152; +pub const ImGuiItemFlags_IsMultiSelect: ImGuiItemFlagsPrivate_ = 4194304; +pub const ImGuiItemFlags_Default_: ImGuiItemFlagsPrivate_ = 16; +pub type ImGuiItemFlagsPrivate_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2303,12 +2500,18 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 256; +pub const ImGuiItemStatusFlags_HasClipRect: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_HasShortcut: ImGuiItemStatusFlags_ = 1024; pub type ImGuiItemStatusFlags_ = cty::c_uint; +pub const ImGuiHoveredFlags_DelayMask_: ImGuiHoveredFlagsPrivate_ = 245760; +pub const ImGuiHoveredFlags_AllowedMaskForIsWindowHovered: ImGuiHoveredFlagsPrivate_ = 12479; +pub const ImGuiHoveredFlags_AllowedMaskForIsItemHovered: ImGuiHoveredFlagsPrivate_ = 262048; +pub type ImGuiHoveredFlagsPrivate_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; pub const ImGuiInputTextFlags_MergedItem: ImGuiInputTextFlagsPrivate_ = 268435456; +pub const ImGuiInputTextFlags_LocalizeDecimalPoint: ImGuiInputTextFlagsPrivate_ = 536870912; pub type ImGuiInputTextFlagsPrivate_ = cty::c_uint; pub const ImGuiButtonFlags_PressedOnClick: ImGuiButtonFlagsPrivate_ = 16; pub const ImGuiButtonFlags_PressedOnClickRelease: ImGuiButtonFlagsPrivate_ = 32; @@ -2318,7 +2521,7 @@ pub const ImGuiButtonFlags_PressedOnDoubleClick: ImGuiButtonFlagsPrivate_ = 256; pub const ImGuiButtonFlags_PressedOnDragDropHold: ImGuiButtonFlagsPrivate_ = 512; pub const ImGuiButtonFlags_Repeat: ImGuiButtonFlagsPrivate_ = 1024; pub const ImGuiButtonFlags_FlattenChildren: ImGuiButtonFlagsPrivate_ = 2048; -pub const ImGuiButtonFlags_AllowItemOverlap: ImGuiButtonFlagsPrivate_ = 4096; +pub const ImGuiButtonFlags_AllowOverlap: ImGuiButtonFlagsPrivate_ = 4096; pub const ImGuiButtonFlags_DontClosePopups: ImGuiButtonFlagsPrivate_ = 8192; pub const ImGuiButtonFlags_AlignTextBaseLine: ImGuiButtonFlagsPrivate_ = 32768; pub const ImGuiButtonFlags_NoKeyModifiers: ImGuiButtonFlagsPrivate_ = 65536; @@ -2344,18 +2547,24 @@ pub const ImGuiSelectableFlags_SetNavIdOnHover: ImGuiSelectableFlagsPrivate_ = 3 pub const ImGuiSelectableFlags_NoPadWithHalfSpacing: ImGuiSelectableFlagsPrivate_ = 67108864; pub const ImGuiSelectableFlags_NoSetKeyOwner: ImGuiSelectableFlagsPrivate_ = 134217728; pub type ImGuiSelectableFlagsPrivate_ = cty::c_uint; -pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 1048576; +pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 268435456; +pub const ImGuiTreeNodeFlags_UpsideDownArrow: ImGuiTreeNodeFlagsPrivate_ = 536870912; +pub const ImGuiTreeNodeFlags_OpenOnMask_: ImGuiTreeNodeFlagsPrivate_ = 192; pub type ImGuiTreeNodeFlagsPrivate_ = cty::c_uint; pub const ImGuiSeparatorFlags_None: ImGuiSeparatorFlags_ = 0; pub const ImGuiSeparatorFlags_Horizontal: ImGuiSeparatorFlags_ = 1; pub const ImGuiSeparatorFlags_Vertical: ImGuiSeparatorFlags_ = 2; pub const ImGuiSeparatorFlags_SpanAllColumns: ImGuiSeparatorFlags_ = 4; pub type ImGuiSeparatorFlags_ = cty::c_uint; +pub const ImGuiFocusRequestFlags_None: ImGuiFocusRequestFlags_ = 0; +pub const ImGuiFocusRequestFlags_RestoreFocusedChild: ImGuiFocusRequestFlags_ = 1; +pub const ImGuiFocusRequestFlags_UnlessBelowModal: ImGuiFocusRequestFlags_ = 2; +pub type ImGuiFocusRequestFlags_ = cty::c_uint; pub const ImGuiTextFlags_None: ImGuiTextFlags_ = 0; pub const ImGuiTextFlags_NoWidthForLargeClippedText: ImGuiTextFlags_ = 1; pub type ImGuiTextFlags_ = cty::c_uint; pub const ImGuiTooltipFlags_None: ImGuiTooltipFlags_ = 0; -pub const ImGuiTooltipFlags_OverridePreviousTooltip: ImGuiTooltipFlags_ = 1; +pub const ImGuiTooltipFlags_OverridePrevious: ImGuiTooltipFlags_ = 2; pub type ImGuiTooltipFlags_ = cty::c_uint; pub const ImGuiLayoutType_Horizontal: ImGuiLayoutType_ = 0; pub const ImGuiLayoutType_Vertical: ImGuiLayoutType_ = 1; @@ -2373,36 +2582,6 @@ pub type ImGuiAxis = cty::c_int; pub const ImGuiPlotType_Lines: ImGuiPlotType = 0; pub const ImGuiPlotType_Histogram: ImGuiPlotType = 1; pub type ImGuiPlotType = cty::c_uint; -pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; -pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; -pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; -pub type ImGuiPopupPositionPolicy = cty::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeTempStorage { - pub Data: [ImU8; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeInfo { - pub Size: usize, - pub Name: *const cty::c_char, - pub PrintFmt: *const cty::c_char, - pub ScanFmt: *const cty::c_char, -} -impl Default for ImGuiDataTypeInfo { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 11; -pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 12; -pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 13; -pub type ImGuiDataTypePrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiColorMod { @@ -2469,6 +2648,7 @@ pub struct ImGuiGroupData { pub WindowID: ImGuiID, pub BackupCursorPos: ImVec2, pub BackupCursorMaxPos: ImVec2, + pub BackupCursorPosPrevLine: ImVec2, pub BackupIndent: ImVec1, pub BackupGroupOffset: ImVec1, pub BackupCurrLineSize: ImVec2, @@ -2476,6 +2656,7 @@ pub struct ImGuiGroupData { pub BackupActiveIdIsAlive: ImGuiID, pub BackupActiveIdPreviousFrameIsAlive: bool, pub BackupHoveredIdIsAlive: bool, + pub BackupIsSameLine: bool, pub EmitItem: bool, } #[repr(C)] @@ -2491,24 +2672,41 @@ pub struct ImGuiMenuColumns { pub Widths: [ImU16; 4usize], } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiInputTextDeactivatedState { + pub ID: ImGuiID, + pub TextA: ImVector_char, +} +impl Default for ImGuiInputTextDeactivatedState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ImStbTexteditState = STB_TexteditState; +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputTextState { pub Ctx: *mut ImGuiContext, + pub Stb: *mut ImStbTexteditState, pub ID: ImGuiID, - pub CurLenW: cty::c_int, pub CurLenA: cty::c_int, - pub TextW: ImVector_ImWchar, pub TextA: ImVector_char, pub InitialTextA: ImVector_char, - pub TextAIsValid: bool, + pub CallbackTextBackup: ImVector_char, pub BufCapacityA: cty::c_int, - pub ScrollX: f32, - pub Stb: STB_TexteditState, + pub Scroll: ImVec2, pub CursorAnim: f32, pub CursorFollow: bool, pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, + pub ReloadUserBuf: bool, + pub ReloadSelectionStart: cty::c_int, + pub ReloadSelectionEnd: cty::c_int, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2519,27 +2717,11 @@ impl Default for ImGuiInputTextState { } } } -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiPopupData { - pub PopupId: ImGuiID, - pub Window: *mut ImGuiWindow, - pub BackupNavWindow: *mut ImGuiWindow, - pub ParentNavLayer: cty::c_int, - pub OpenFrameCount: cty::c_int, - pub OpenParentId: ImGuiID, - pub OpenPopupPos: ImVec2, - pub OpenMousePos: ImVec2, -} -impl Default for ImGuiPopupData { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} +pub const ImGuiWindowRefreshFlags_None: ImGuiWindowRefreshFlags_ = 0; +pub const ImGuiWindowRefreshFlags_TryToAvoidRefresh: ImGuiWindowRefreshFlags_ = 1; +pub const ImGuiWindowRefreshFlags_RefreshOnHover: ImGuiWindowRefreshFlags_ = 2; +pub const ImGuiWindowRefreshFlags_RefreshOnFocus: ImGuiWindowRefreshFlags_ = 4; +pub type ImGuiWindowRefreshFlags_ = cty::c_uint; pub const ImGuiNextWindowDataFlags_None: ImGuiNextWindowDataFlags_ = 0; pub const ImGuiNextWindowDataFlags_HasPos: ImGuiNextWindowDataFlags_ = 1; pub const ImGuiNextWindowDataFlags_HasSize: ImGuiNextWindowDataFlags_ = 2; @@ -2549,9 +2731,11 @@ pub const ImGuiNextWindowDataFlags_HasSizeConstraint: ImGuiNextWindowDataFlags_ pub const ImGuiNextWindowDataFlags_HasFocus: ImGuiNextWindowDataFlags_ = 32; pub const ImGuiNextWindowDataFlags_HasBgAlpha: ImGuiNextWindowDataFlags_ = 64; pub const ImGuiNextWindowDataFlags_HasScroll: ImGuiNextWindowDataFlags_ = 128; -pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 256; -pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 512; -pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasChildFlags: ImGuiNextWindowDataFlags_ = 256; +pub const ImGuiNextWindowDataFlags_HasRefreshPolicy: ImGuiNextWindowDataFlags_ = 512; +pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 2048; +pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 4096; pub type ImGuiNextWindowDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -2566,6 +2750,7 @@ pub struct ImGuiNextWindowData { pub SizeVal: ImVec2, pub ContentSizeVal: ImVec2, pub ScrollVal: ImVec2, + pub ChildFlags: ImGuiChildFlags, pub PosUndock: bool, pub CollapsedVal: bool, pub SizeConstraintRect: ImRect, @@ -2576,6 +2761,7 @@ pub struct ImGuiNextWindowData { pub DockId: ImGuiID, pub WindowClass: ImGuiWindowClass, pub MenuBarOffsetMinVal: ImVec2, + pub RefreshFlagsVal: ImGuiWindowRefreshFlags, } impl Default for ImGuiNextWindowData { fn default() -> Self { @@ -2589,15 +2775,24 @@ impl Default for ImGuiNextWindowData { pub const ImGuiNextItemDataFlags_None: ImGuiNextItemDataFlags_ = 0; pub const ImGuiNextItemDataFlags_HasWidth: ImGuiNextItemDataFlags_ = 1; pub const ImGuiNextItemDataFlags_HasOpen: ImGuiNextItemDataFlags_ = 2; +pub const ImGuiNextItemDataFlags_HasShortcut: ImGuiNextItemDataFlags_ = 4; +pub const ImGuiNextItemDataFlags_HasRefVal: ImGuiNextItemDataFlags_ = 8; +pub const ImGuiNextItemDataFlags_HasStorageID: ImGuiNextItemDataFlags_ = 16; pub type ImGuiNextItemDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiNextItemData { pub Flags: ImGuiNextItemDataFlags, - pub Width: f32, + pub ItemFlags: ImGuiItemFlags, pub FocusScopeId: ImGuiID, - pub OpenCond: ImGuiCond, + pub SelectionUserData: ImGuiSelectionUserData, + pub Width: f32, + pub Shortcut: ImGuiKeyChord, + pub ShortcutFlags: ImGuiInputFlags, pub OpenVal: bool, + pub OpenCond: ImU8, + pub RefVal: ImGuiDataTypeStorage, + pub StorageId: ImGuiID, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2608,6 +2803,16 @@ pub struct ImGuiLastItemData { pub Rect: ImRect, pub NavRect: ImRect, pub DisplayRect: ImRect, + pub ClipRect: ImRect, + pub Shortcut: ImGuiKeyChord, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct ImGuiTreeNodeStackData { + pub ID: ImGuiID, + pub TreeFlags: ImGuiTreeNodeFlags, + pub InFlags: ImGuiItemFlags, + pub NavRect: ImRect, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2628,6 +2833,7 @@ pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, pub StackSizesOnBegin: ImGuiStackSizes, + pub DisabledOverrideReenable: bool, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2660,6 +2866,37 @@ impl Default for ImGuiPtrOrIndex { } } } +pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; +pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; +pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; +pub type ImGuiPopupPositionPolicy = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiPopupData { + pub PopupId: ImGuiID, + pub Window: *mut ImGuiWindow, + pub RestoreNavWindow: *mut ImGuiWindow, + pub ParentNavLayer: cty::c_int, + pub OpenFrameCount: cty::c_int, + pub OpenParentId: ImGuiID, + pub OpenPopupPos: ImVec2, + pub OpenMousePos: ImVec2, +} +impl Default for ImGuiPopupData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN { + pub Storage: [ImU32; 5usize], +} +pub type ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN; pub const ImGuiInputEventType_None: ImGuiInputEventType = 0; pub const ImGuiInputEventType_MousePos: ImGuiInputEventType = 1; pub const ImGuiInputEventType_MouseWheel: ImGuiInputEventType = 2; @@ -2674,27 +2911,55 @@ pub const ImGuiInputSource_None: ImGuiInputSource = 0; pub const ImGuiInputSource_Mouse: ImGuiInputSource = 1; pub const ImGuiInputSource_Keyboard: ImGuiInputSource = 2; pub const ImGuiInputSource_Gamepad: ImGuiInputSource = 3; -pub const ImGuiInputSource_Clipboard: ImGuiInputSource = 4; -pub const ImGuiInputSource_Nav: ImGuiInputSource = 5; -pub const ImGuiInputSource_COUNT: ImGuiInputSource = 6; +pub const ImGuiInputSource_COUNT: ImGuiInputSource = 4; pub type ImGuiInputSource = cty::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMousePos { pub PosX: f32, pub PosY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMousePos { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMouseWheel { pub WheelX: f32, pub WheelY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseWheel { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputEventMouseButton { pub Button: cty::c_int, pub Down: bool, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseButton { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2732,6 +2997,7 @@ pub struct ImGuiInputEventAppFocused { pub struct ImGuiInputEvent { pub Type: ImGuiInputEventType, pub Source: ImGuiInputSource, + pub EventId: ImU32, pub __bindgen_anon_1: ImGuiInputEvent__bindgen_ty_1, pub AddedByTestEngine: bool, } @@ -2771,7 +3037,7 @@ impl Default for ImGuiInputEvent { } impl ::core::fmt::Debug for ImGuiInputEvent { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . __bindgen_anon_1 , self . AddedByTestEngine) + write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, EventId: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . EventId , self . __bindgen_anon_1 , self . AddedByTestEngine) } } pub type ImGuiKeyRoutingIndex = ImS16; @@ -2780,6 +3046,7 @@ pub type ImGuiKeyRoutingIndex = ImS16; pub struct ImGuiKeyRoutingData { pub NextEntryIndex: ImGuiKeyRoutingIndex, pub Mods: ImU16, + pub RoutingCurrScore: ImU8, pub RoutingNextScore: ImU8, pub RoutingCurr: ImGuiID, pub RoutingNext: ImGuiID, @@ -2803,7 +3070,7 @@ impl Default for ImVector_ImGuiKeyRoutingData { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiKeyRoutingTable { - pub Index: [ImGuiKeyRoutingIndex; 140usize], + pub Index: [ImGuiKeyRoutingIndex; 154usize], pub Entries: ImVector_ImGuiKeyRoutingData, pub EntriesNext: ImVector_ImGuiKeyRoutingData, } @@ -2824,31 +3091,31 @@ pub struct ImGuiKeyOwnerData { pub LockThisFrame: bool, pub LockUntilRelease: bool, } -pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; -pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; -pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlags_ = 2; -pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlags_ = 4; -pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlags_ = 8; -pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlags_ = 14; -pub const ImGuiInputFlags_CondHovered: ImGuiInputFlags_ = 16; -pub const ImGuiInputFlags_CondActive: ImGuiInputFlags_ = 32; -pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_CondMask_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlags_ = 64; -pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlags_ = 128; -pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 256; -pub const ImGuiInputFlags_RouteGlobalLow: ImGuiInputFlags_ = 512; -pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 1024; -pub const ImGuiInputFlags_RouteGlobalHigh: ImGuiInputFlags_ = 2048; -pub const ImGuiInputFlags_RouteMask_: ImGuiInputFlags_ = 3840; -pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 4096; -pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 8192; -pub const ImGuiInputFlags_RouteExtraMask_: ImGuiInputFlags_ = 12288; -pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlags_ = 15; -pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlags_ = 16143; -pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlags_ = 192; -pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlags_ = 240; -pub type ImGuiInputFlags_ = cty::c_uint; +pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlagsPrivate_ = 2; +pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlagsPrivate_ = 4; +pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlagsPrivate_ = 8; +pub const ImGuiInputFlags_RepeatUntilRelease: ImGuiInputFlagsPrivate_ = 16; +pub const ImGuiInputFlags_RepeatUntilKeyModsChange: ImGuiInputFlagsPrivate_ = 32; +pub const ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone: ImGuiInputFlagsPrivate_ = 64; +pub const ImGuiInputFlags_RepeatUntilOtherKeyPress: ImGuiInputFlagsPrivate_ = 128; +pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlagsPrivate_ = 1048576; +pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlagsPrivate_ = 2097152; +pub const ImGuiInputFlags_CondHovered: ImGuiInputFlagsPrivate_ = 4194304; +pub const ImGuiInputFlags_CondActive: ImGuiInputFlagsPrivate_ = 8388608; +pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlagsPrivate_ = 14; +pub const ImGuiInputFlags_RepeatUntilMask_: ImGuiInputFlagsPrivate_ = 240; +pub const ImGuiInputFlags_RepeatMask_: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_CondMask_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RouteTypeMask_: ImGuiInputFlagsPrivate_ = 15360; +pub const ImGuiInputFlags_RouteOptionsMask_: ImGuiInputFlagsPrivate_ = 245760; +pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_SupportedByIsMouseClicked: ImGuiInputFlagsPrivate_ = 1; +pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlagsPrivate_ = 261375; +pub const ImGuiInputFlags_SupportedBySetNextItemShortcut: ImGuiInputFlagsPrivate_ = 523519; +pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlagsPrivate_ = 3145728; +pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlagsPrivate_ = 15728640; +pub type ImGuiInputFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiListClipperRange { @@ -2896,6 +3163,8 @@ pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub const ImGuiActivateFlags_FromTabbing: ImGuiActivateFlags_ = 8; +pub const ImGuiActivateFlags_FromShortcut: ImGuiActivateFlags_ = 16; pub type ImGuiActivateFlags_ = cty::c_uint; pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; @@ -2909,8 +3178,7 @@ pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; -pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; -pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; +pub const ImGuiNavHighlightFlags_Compact: ImGuiNavHighlightFlags_ = 2; pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; @@ -2919,15 +3187,19 @@ pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; pub const ImGuiNavMoveFlags_LoopY: ImGuiNavMoveFlags_ = 2; pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; +pub const ImGuiNavMoveFlags_WrapMask_: ImGuiNavMoveFlags_ = 15; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; -pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; -pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; -pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_IsTabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_IsPageMove: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_NoSelect: ImGuiNavMoveFlags_ = 8192; +pub const ImGuiNavMoveFlags_NoSetNavHighlight: ImGuiNavMoveFlags_ = 16384; +pub const ImGuiNavMoveFlags_NoClearActiveId: ImGuiNavMoveFlags_ = 32768; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -2944,6 +3216,7 @@ pub struct ImGuiNavItemData { pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, + pub SelectionUserData: ImGuiSelectionUserData, } impl Default for ImGuiNavItemData { fn default() -> Self { @@ -2954,6 +3227,54 @@ impl Default for ImGuiNavItemData { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiFocusScopeData { + pub ID: ImGuiID, + pub WindowID: ImGuiID, +} +pub const ImGuiTypingSelectFlags_None: ImGuiTypingSelectFlags_ = 0; +pub const ImGuiTypingSelectFlags_AllowBackspace: ImGuiTypingSelectFlags_ = 1; +pub const ImGuiTypingSelectFlags_AllowSingleCharMode: ImGuiTypingSelectFlags_ = 2; +pub type ImGuiTypingSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTypingSelectRequest { + pub Flags: ImGuiTypingSelectFlags, + pub SearchBufferLen: cty::c_int, + pub SearchBuffer: *const cty::c_char, + pub SelectRequest: bool, + pub SingleCharMode: bool, + pub SingleCharSize: ImS8, +} +impl Default for ImGuiTypingSelectRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiTypingSelectState { + pub Request: ImGuiTypingSelectRequest, + pub SearchBuffer: [cty::c_char; 64usize], + pub FocusScope: ImGuiID, + pub LastRequestFrame: cty::c_int, + pub LastRequestTime: f32, + pub SingleCharModeLock: bool, +} +impl Default for ImGuiTypingSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiOldColumnFlags_None: ImGuiOldColumnFlags_ = 0; pub const ImGuiOldColumnFlags_NoBorder: ImGuiOldColumnFlags_ = 1; pub const ImGuiOldColumnFlags_NoResize: ImGuiOldColumnFlags_ = 2; @@ -3015,25 +3336,125 @@ impl Default for ImGuiOldColumns { } } } +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiBoxSelectState { + pub ID: ImGuiID, + pub IsActive: bool, + pub IsStarting: bool, + pub IsStartedFromVoid: bool, + pub IsStartedSetNavIdOnce: bool, + pub RequestClear: bool, + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub StartPosRel: ImVec2, + pub EndPosRel: ImVec2, + pub ScrollAccum: ImVec2, + pub Window: *mut ImGuiWindow, + pub UnclipMode: bool, + pub UnclipRect: ImRect, + pub BoxSelectRectPrev: ImRect, + pub BoxSelectRectCurr: ImRect, +} +impl Default for ImGuiBoxSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl ImGuiBoxSelectState { + #[inline] + pub fn KeyMods(&self) -> ImGuiKeyChord { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_KeyMods(&mut self, val: ImGuiKeyChord) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(KeyMods: ImGuiKeyChord) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let KeyMods: u32 = unsafe { ::core::mem::transmute(KeyMods) }; + KeyMods as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiMultiSelectTempData { + pub IO: ImGuiMultiSelectIO, + pub Storage: *mut ImGuiMultiSelectState, + pub FocusScopeId: ImGuiID, + pub Flags: ImGuiMultiSelectFlags, + pub ScopeRectMin: ImVec2, + pub BackupCursorMaxPos: ImVec2, + pub LastSubmittedItem: ImGuiSelectionUserData, + pub BoxSelectId: ImGuiID, + pub KeyMods: ImGuiKeyChord, + pub LoopRequestSetAll: ImS8, + pub IsEndIO: bool, + pub IsFocused: bool, + pub IsKeyboardSetRange: bool, + pub NavIdPassedBy: bool, + pub RangeSrcPassedBy: bool, + pub RangeDstPassedBy: bool, +} +impl Default for ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectState { + pub Window: *mut ImGuiWindow, + pub ID: ImGuiID, + pub LastFrameActive: cty::c_int, + pub LastSelectionSize: cty::c_int, + pub RangeSelected: ImS8, + pub NavIdSelected: ImS8, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, +} +impl Default for ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiDockNodeFlags_DockSpace: ImGuiDockNodeFlagsPrivate_ = 1024; pub const ImGuiDockNodeFlags_CentralNode: ImGuiDockNodeFlagsPrivate_ = 2048; pub const ImGuiDockNodeFlags_NoTabBar: ImGuiDockNodeFlagsPrivate_ = 4096; pub const ImGuiDockNodeFlags_HiddenTabBar: ImGuiDockNodeFlagsPrivate_ = 8192; pub const ImGuiDockNodeFlags_NoWindowMenuButton: ImGuiDockNodeFlagsPrivate_ = 16384; pub const ImGuiDockNodeFlags_NoCloseButton: ImGuiDockNodeFlagsPrivate_ = 32768; -pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 65536; -pub const ImGuiDockNodeFlags_NoDockingSplitMe: ImGuiDockNodeFlagsPrivate_ = 131072; -pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 262144; -pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 524288; -pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 1048576; -pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 2097152; -pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 4194304; -pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 8388608; +pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 65536; +pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 131072; +pub const ImGuiDockNodeFlags_DockedWindowsInFocusRoute: ImGuiDockNodeFlagsPrivate_ = 262144; +pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 524288; +pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 1048576; +pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 2097152; +pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 4194304; +pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 7864336; pub const ImGuiDockNodeFlags_SharedFlagsInheritMask_: ImGuiDockNodeFlagsPrivate_ = -1; -pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12582944; -pub const ImGuiDockNodeFlags_LocalFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12713072; -pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 12712048; -pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12712992; +pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 196640; +pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 260208; +pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 261152; pub type ImGuiDockNodeFlagsPrivate_ = cty::c_int; pub const ImGuiDataAuthority_Auto: ImGuiDataAuthority_ = 0; pub const ImGuiDataAuthority_DockNode: ImGuiDataAuthority_ = 1; @@ -3090,9 +3511,10 @@ pub struct ImGuiDockNode { pub LastFocusedNodeId: ImGuiID, pub SelectedTabId: ImGuiID, pub WantCloseTabId: ImGuiID, + pub RefViewportId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: u8, + pub __bindgen_padding_0: [u8; 5usize], } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3338,17 +3760,19 @@ impl ImGuiDockNode { } } pub const ImGuiWindowDockStyleCol_Text: ImGuiWindowDockStyleCol = 0; -pub const ImGuiWindowDockStyleCol_Tab: ImGuiWindowDockStyleCol = 1; -pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 2; -pub const ImGuiWindowDockStyleCol_TabActive: ImGuiWindowDockStyleCol = 3; -pub const ImGuiWindowDockStyleCol_TabUnfocused: ImGuiWindowDockStyleCol = 4; -pub const ImGuiWindowDockStyleCol_TabUnfocusedActive: ImGuiWindowDockStyleCol = 5; -pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 1; +pub const ImGuiWindowDockStyleCol_TabFocused: ImGuiWindowDockStyleCol = 2; +pub const ImGuiWindowDockStyleCol_TabSelected: ImGuiWindowDockStyleCol = 3; +pub const ImGuiWindowDockStyleCol_TabSelectedOverline: ImGuiWindowDockStyleCol = 4; +pub const ImGuiWindowDockStyleCol_TabDimmed: ImGuiWindowDockStyleCol = 5; +pub const ImGuiWindowDockStyleCol_TabDimmedSelected: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabDimmedSelectedOverline: ImGuiWindowDockStyleCol = 7; +pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 8; pub type ImGuiWindowDockStyleCol = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiWindowDockStyle { - pub Colors: [ImU32; 6usize], + pub Colors: [ImU32; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3403,26 +3827,28 @@ impl Default for ImGuiDockContext { #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewportP { pub _ImGuiViewport: ImGuiViewport, + pub Window: *mut ImGuiWindow, pub Idx: cty::c_int, pub LastFrameActive: cty::c_int, - pub LastFrontMostStampCount: cty::c_int, + pub LastFocusedStampCount: cty::c_int, pub LastNameHash: ImGuiID, pub LastPos: ImVec2, + pub LastSize: ImVec2, pub Alpha: f32, pub LastAlpha: f32, + pub LastFocusedHadNavWindow: bool, pub PlatformMonitor: cty::c_short, - pub Window: *mut ImGuiWindow, - pub DrawListsLastFrame: [cty::c_int; 2usize], - pub DrawLists: [*mut ImDrawList; 2usize], + pub BgFgDrawListsLastFrame: [cty::c_int; 2usize], + pub BgFgDrawLists: [*mut ImDrawList; 2usize], pub DrawDataP: ImDrawData, pub DrawDataBuilder: ImDrawDataBuilder, pub LastPlatformPos: ImVec2, pub LastPlatformSize: ImVec2, pub LastRendererSize: ImVec2, - pub WorkOffsetMin: ImVec2, - pub WorkOffsetMax: ImVec2, - pub BuildWorkOffsetMin: ImVec2, - pub BuildWorkOffsetMax: ImVec2, + pub WorkInsetMin: ImVec2, + pub WorkInsetMax: ImVec2, + pub BuildWorkInsetMin: ImVec2, + pub BuildWorkInsetMax: ImVec2, } impl Default for ImGuiViewportP { fn default() -> Self { @@ -3445,7 +3871,9 @@ pub struct ImGuiWindowSettings { pub ClassId: ImGuiID, pub DockOrder: cty::c_short, pub Collapsed: bool, + pub IsChild: bool, pub WantApply: bool, + pub WantDelete: bool, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3494,15 +3922,20 @@ impl Default for ImGuiSettingsHandler { } } } -pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 0; -pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 1; -pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 2; -pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 3; -pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 4; -pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 5; -pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 6; -pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 7; -pub const ImGuiLocKey_COUNT: ImGuiLocKey = 8; +pub const ImGuiLocKey_VersionStr: ImGuiLocKey = 0; +pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 1; +pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 2; +pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 3; +pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 4; +pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 5; +pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 6; +pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 7; +pub const ImGuiLocKey_OpenLink_s: ImGuiLocKey = 8; +pub const ImGuiLocKey_CopyLink: ImGuiLocKey = 9; +pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 10; +pub const ImGuiLocKey_DockingHoldShiftToDock: ImGuiLocKey = 11; +pub const ImGuiLocKey_DockingDragToUndockOrMoveNode: ImGuiLocKey = 12; +pub const ImGuiLocKey_COUNT: ImGuiLocKey = 13; pub type ImGuiLocKey = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3525,25 +3958,47 @@ pub const ImGuiDebugLogFlags_EventFocus: ImGuiDebugLogFlags_ = 2; pub const ImGuiDebugLogFlags_EventPopup: ImGuiDebugLogFlags_ = 4; pub const ImGuiDebugLogFlags_EventNav: ImGuiDebugLogFlags_ = 8; pub const ImGuiDebugLogFlags_EventClipper: ImGuiDebugLogFlags_ = 16; -pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 32; -pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 64; -pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 128; -pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 255; -pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1024; +pub const ImGuiDebugLogFlags_EventSelection: ImGuiDebugLogFlags_ = 32; +pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 64; +pub const ImGuiDebugLogFlags_EventInputRouting: ImGuiDebugLogFlags_ = 128; +pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 256; +pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 512; +pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 1023; +pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1048576; +pub const ImGuiDebugLogFlags_OutputToTestEngine: ImGuiDebugLogFlags_ = 2097152; pub type ImGuiDebugLogFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocEntry { + pub FrameCount: cty::c_int, + pub AllocCount: ImS16, + pub FreeCount: ImS16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocInfo { + pub TotalAllocCount: cty::c_int, + pub TotalFreeCount: cty::c_int, + pub LastEntriesIdx: ImS16, + pub LastEntriesBuf: [ImGuiDebugAllocEntry; 6usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { pub ShowDebugLog: bool, - pub ShowStackTool: bool, + pub ShowIDStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, pub ShowDrawCmdMesh: bool, pub ShowDrawCmdBoundingBoxes: bool, + pub ShowTextEncodingViewer: bool, + pub ShowAtlasTintedWithTextColor: bool, pub ShowDockingNodes: bool, pub ShowWindowsRectsType: cty::c_int, pub ShowTablesRectsType: cty::c_int, + pub HighlightMonitorIdx: cty::c_int, + pub HighlightViewportID: ImGuiID, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3604,7 +4059,7 @@ impl Default for ImVector_ImGuiStackLevelInfo { } #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiStackTool { +pub struct ImGuiIDStackTool { pub LastActiveFrame: cty::c_int, pub StackLevel: cty::c_int, pub QueryId: ImGuiID, @@ -3612,7 +4067,7 @@ pub struct ImGuiStackTool { pub CopyToClipboardOnCtrlC: bool, pub CopyToClipboardLastTime: f32, } -impl Default for ImGuiStackTool { +impl Default for ImGuiIDStackTool { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3717,12 +4172,12 @@ impl Default for ImVector_ImGuiStyleMod { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImGuiID { +pub struct ImVector_ImGuiFocusScopeData { pub Size: cty::c_int, pub Capacity: cty::c_int, - pub Data: *mut ImGuiID, + pub Data: *mut ImGuiFocusScopeData, } -impl Default for ImVector_ImGuiID { +impl Default for ImVector_ImGuiFocusScopeData { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3781,6 +4236,22 @@ impl Default for ImVector_ImGuiPopupData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTreeNodeStackData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTreeNodeStackData, +} +impl Default for ImVector_ImGuiTreeNodeStackData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiViewportPPtr { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -3943,6 +4414,71 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectTempData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectTempData, +} +impl Default for ImVector_ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectState { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectState, +} +impl Default for ImVector_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImPool_ImGuiMultiSelectState { + pub Buf: ImVector_ImGuiMultiSelectState, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +impl Default for ImPool_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiID { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiID, +} +impl Default for ImVector_ImGuiID { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiSettingsHandler { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -4008,14 +4544,14 @@ pub struct ImGuiContext { pub FontAtlasOwnedByContext: bool, pub IO: ImGuiIO, pub PlatformIO: ImGuiPlatformIO, - pub InputEventsQueue: ImVector_ImGuiInputEvent, - pub InputEventsTrail: ImVector_ImGuiInputEvent, pub Style: ImGuiStyle, pub ConfigFlagsCurrFrame: ImGuiConfigFlags, pub ConfigFlagsLastFrame: ImGuiConfigFlags, pub Font: *mut ImFont, pub FontSize: f32, pub FontBaseSize: f32, + pub FontScale: f32, + pub CurrentDpiScale: f32, pub DrawListSharedData: ImDrawListSharedData, pub Time: f64, pub FrameCount: cty::c_int, @@ -4028,6 +4564,11 @@ pub struct ImGuiContext { pub GcCompactAll: bool, pub TestEngineHookItems: bool, pub TestEngine: *mut cty::c_void, + pub ContextName: [cty::c_char; 16usize], + pub InputEventsQueue: ImVector_ImGuiInputEvent, + pub InputEventsTrail: ImVector_ImGuiInputEvent, + pub InputEventsNextMouseSource: ImGuiMouseSource, + pub InputEventsNextEventId: ImU32, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, pub WindowsTempSortBuffer: ImVector_ImGuiWindowPtr, @@ -4035,23 +4576,29 @@ pub struct ImGuiContext { pub WindowsById: ImGuiStorage, pub WindowsActiveCount: cty::c_int, pub WindowsHoverPadding: ImVec2, + pub DebugBreakInWindow: ImGuiID, pub CurrentWindow: *mut ImGuiWindow, pub HoveredWindow: *mut ImGuiWindow, pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow, + pub HoveredWindowBeforeClear: *mut ImGuiWindow, pub MovingWindow: *mut ImGuiWindow, pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowStartFrame: cty::c_int, + pub WheelingWindowScrolledFrame: cty::c_int, pub WheelingWindowReleaseTimer: f32, pub WheelingWindowWheelRemainder: ImVec2, pub WheelingAxisAvg: ImVec2, + pub DebugDrawIdConflicts: ImGuiID, pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, - pub HoveredIdAllowOverlap: bool, - pub HoveredIdDisabled: bool, + pub HoveredIdPreviousFrameItemCount: cty::c_int, pub HoveredIdTimer: f32, pub HoveredIdNotActiveTimer: f32, + pub HoveredIdAllowOverlap: bool, + pub HoveredIdIsDisabled: bool, + pub ItemUnclipByLog: bool, pub ActiveId: ImGuiID, pub ActiveIdIsAlive: ImGuiID, pub ActiveIdTimer: f32, @@ -4061,59 +4608,69 @@ pub struct ImGuiContext { pub ActiveIdHasBeenPressedBefore: bool, pub ActiveIdHasBeenEditedBefore: bool, pub ActiveIdHasBeenEditedThisFrame: bool, + pub ActiveIdFromShortcut: bool, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub ActiveIdClickOffset: ImVec2, pub ActiveIdWindow: *mut ImGuiWindow, pub ActiveIdSource: ImGuiInputSource, - pub ActiveIdMouseButton: cty::c_int, pub ActiveIdPreviousFrame: ImGuiID, pub ActiveIdPreviousFrameIsAlive: bool, pub ActiveIdPreviousFrameHasBeenEditedBefore: bool, pub ActiveIdPreviousFrameWindow: *mut ImGuiWindow, pub LastActiveId: ImGuiID, pub LastActiveIdTimer: f32, - pub KeysOwnerData: [ImGuiKeyOwnerData; 140usize], + pub LastKeyModsChangeTime: f64, + pub LastKeyModsChangeFromNoneTime: f64, + pub LastKeyboardKeyPressTime: f64, + pub KeysMayBeCharInput: ImBitArrayForNamedKeys, + pub KeysOwnerData: [ImGuiKeyOwnerData; 154usize], pub KeysRoutingTable: ImGuiKeyRoutingTable, pub ActiveIdUsingNavDirMask: ImU32, pub ActiveIdUsingAllKeyboardKeys: bool, - pub ActiveIdUsingNavInputMask: ImU32, + pub DebugBreakInShortcutRouting: ImGuiKeyChord, pub CurrentFocusScopeId: ImGuiID, pub CurrentItemFlags: ImGuiItemFlags, pub DebugLocateId: ImGuiID, pub NextItemData: ImGuiNextItemData, pub LastItemData: ImGuiLastItemData, pub NextWindowData: ImGuiNextWindowData, + pub DebugShowGroupRects: bool, + pub DebugFlashStyleColorIdx: ImGuiCol, pub ColorStack: ImVector_ImGuiColorMod, pub StyleVarStack: ImVector_ImGuiStyleMod, pub FontStack: ImVector_ImFontPtr, - pub FocusScopeStack: ImVector_ImGuiID, + pub FocusScopeStack: ImVector_ImGuiFocusScopeData, pub ItemFlagsStack: ImVector_ImGuiItemFlags, pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, - pub BeginMenuCount: cty::c_int, + pub TreeNodeStack: ImVector_ImGuiTreeNodeStackData, pub Viewports: ImVector_ImGuiViewportPPtr, - pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, pub MouseViewport: *mut ImGuiViewportP, pub MouseLastHoveredViewport: *mut ImGuiViewportP, pub PlatformLastFocusedViewportId: ImGuiID, pub FallbackMonitor: ImGuiPlatformMonitor, - pub ViewportFrontMostStampCount: cty::c_int, + pub PlatformMonitorsFullWorkRect: ImRect, + pub ViewportCreatedCount: cty::c_int, + pub PlatformWindowsCreatedCount: cty::c_int, + pub ViewportFocusedStampCount: cty::c_int, pub NavWindow: *mut ImGuiWindow, pub NavId: ImGuiID, pub NavFocusScopeId: ImGuiID, + pub NavLayer: ImGuiNavLayer, pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavActivateInputId: ImGuiID, pub NavActivateFlags: ImGuiActivateFlags, - pub NavJustMovedToId: ImGuiID, - pub NavJustMovedToFocusScopeId: ImGuiID, - pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavFocusRoute: ImVector_ImGuiFocusScopeData, + pub NavHighlightActivatedId: ImGuiID, + pub NavHighlightActivatedTimer: f32, pub NavNextActivateId: ImGuiID, pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavLayer: ImGuiNavLayer, + pub NavLastValidSelectionUserData: ImGuiSelectionUserData, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -4121,8 +4678,7 @@ pub struct ImGuiContext { pub NavAnyRequest: bool, pub NavInitRequest: bool, pub NavInitRequestFromMove: bool, - pub NavInitResultId: ImGuiID, - pub NavInitResultRectRel: ImRect, + pub NavInitResult: ImGuiNavItemData, pub NavMoveSubmitted: bool, pub NavMoveScoringItems: bool, pub NavMoveForwardToNextFrame: bool, @@ -4141,6 +4697,12 @@ pub struct ImGuiContext { pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, pub NavTabbingResultFirst: ImGuiNavItemData, + pub NavJustMovedFromFocusScopeId: ImGuiID, + pub NavJustMovedToId: ImGuiID, + pub NavJustMovedToFocusScopeId: ImGuiID, + pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavJustMovedToIsTabbing: bool, + pub NavJustMovedToHasSelectionData: bool, pub ConfigNavWindowingKeyNext: ImGuiKeyChord, pub ConfigNavWindowingKeyPrev: ImGuiKeyChord, pub NavWindowingTarget: *mut ImGuiWindow, @@ -4149,10 +4711,10 @@ pub struct ImGuiContext { pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, + pub NavWindowingToggleKey: ImGuiKey, pub NavWindowingAccumDeltaPos: ImVec2, pub NavWindowingAccumDeltaSize: ImVec2, pub DimBgRatio: f32, - pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, pub DragDropWithinSource: bool, pub DragDropWithinTarget: bool, @@ -4161,6 +4723,7 @@ pub struct ImGuiContext { pub DragDropMouseButton: cty::c_int, pub DragDropPayload: ImGuiPayload, pub DragDropTargetRect: ImRect, + pub DragDropTargetClipRect: ImRect, pub DragDropTargetId: ImGuiID, pub DragDropAcceptFlags: ImGuiDragDropFlags, pub DragDropAcceptIdCurrRectSurface: f32, @@ -4173,6 +4736,7 @@ pub struct ImGuiContext { pub ClipperTempDataStacked: cty::c_int, pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, + pub DebugBreakInTable: ImGuiID, pub TablesTempDataStacked: cty::c_int, pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, @@ -4182,37 +4746,63 @@ pub struct ImGuiContext { pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub HoverDelayId: ImGuiID, - pub HoverDelayIdPreviousFrame: ImGuiID, - pub HoverDelayTimer: f32, - pub HoverDelayClearTimer: f32, + pub BoxSelectState: ImGuiBoxSelectState, + pub CurrentMultiSelect: *mut ImGuiMultiSelectTempData, + pub MultiSelectTempDataStacked: cty::c_int, + pub MultiSelectTempData: ImVector_ImGuiMultiSelectTempData, + pub MultiSelectStorage: ImPool_ImGuiMultiSelectState, + pub HoverItemDelayId: ImGuiID, + pub HoverItemDelayIdPreviousFrame: ImGuiID, + pub HoverItemDelayTimer: f32, + pub HoverItemDelayClearTimer: f32, + pub HoverItemUnlockedStationaryId: ImGuiID, + pub HoverWindowUnlockedStationaryId: ImGuiID, + pub MouseCursor: ImGuiMouseCursor, + pub MouseStationaryTimer: f32, pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, + pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, + pub DataTypeZeroValue: ImGuiDataTypeStorage, + pub BeginMenuDepth: cty::c_int, + pub BeginComboDepth: cty::c_int, pub ColorEditOptions: ImGuiColorEditFlags, - pub ColorEditLastHue: f32, - pub ColorEditLastSat: f32, - pub ColorEditLastColor: ImU32, + pub ColorEditCurrentID: ImGuiID, + pub ColorEditSavedID: ImGuiID, + pub ColorEditSavedHue: f32, + pub ColorEditSavedSat: f32, + pub ColorEditSavedColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, + pub WindowResizeBorderExpectedRect: ImRect, + pub WindowResizeRelativeMode: bool, + pub ScrollbarSeekMode: cty::c_short, + pub ScrollbarClickDeltaToGrabCenter: f32, pub SliderGrabClickOffset: f32, pub SliderCurrentAccum: f32, pub SliderCurrentAccumDirty: bool, pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub ScrollbarClickDeltaToGrabCenter: f32, pub DisabledAlphaBackup: f32, pub DisabledStackSize: cty::c_short, + pub LockMarkEdited: cty::c_short, pub TooltipOverrideCount: cty::c_short, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, + pub TypingSelectState: ImGuiTypingSelectState, pub PlatformImeData: ImGuiPlatformImeData, pub PlatformImeDataPrev: ImGuiPlatformImeData, pub PlatformImeViewport: ImGuiID, - pub PlatformLocaleDecimalPoint: cty::c_char, pub DockContext: ImGuiDockContext, + pub DockNodeWindowMenuHandler: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ), + >, pub SettingsLoaded: bool, pub SettingsDirtyTimer: f32, pub SettingsIniData: ImGuiTextBuffer, @@ -4221,7 +4811,7 @@ pub struct ImGuiContext { pub SettingsTables: ImChunkStream_ImGuiTableSettings, pub Hooks: ImVector_ImGuiContextHook, pub HookIdNext: ImGuiID, - pub LocalizationTable: [*const cty::c_char; 8usize], + pub LocalizationTable: [*const cty::c_char; 13usize], pub LogEnabled: bool, pub LogType: ImGuiLogType, pub LogFile: ImFileHandle, @@ -4236,12 +4826,20 @@ pub struct ImGuiContext { pub DebugLogFlags: ImGuiDebugLogFlags, pub DebugLogBuf: ImGuiTextBuffer, pub DebugLogIndex: ImGuiTextIndex, + pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags, + pub DebugLogAutoDisableFrames: ImU8, pub DebugLocateFrames: ImU8, + pub DebugBreakInLocateId: bool, + pub DebugBreakKeyChord: ImGuiKeyChord, + pub DebugBeginReturnValueCullDepth: ImS8, pub DebugItemPickerActive: bool, pub DebugItemPickerMouseButton: ImU8, pub DebugItemPickerBreakId: ImGuiID, + pub DebugFlashStyleColorTime: f32, + pub DebugFlashStyleColorBackup: ImVec4, pub DebugMetricsConfig: ImGuiMetricsConfig, - pub DebugStackTool: ImGuiStackTool, + pub DebugIDStackTool: ImGuiIDStackTool, + pub DebugAllocInfo: ImGuiDebugAllocInfo, pub DebugHoveredDockNode: *mut ImGuiDockNode, pub FramerateSecPerFrame: [f32; 60usize], pub FramerateSecPerFrameIdx: cty::c_int, @@ -4251,6 +4849,7 @@ pub struct ImGuiContext { pub WantCaptureKeyboardNextFrame: cty::c_int, pub WantTextInputNextFrame: cty::c_int, pub TempBuffer: ImVector_char, + pub TempKeychordName: [cty::c_char; 64usize], } impl Default for ImGuiContext { fn default() -> Self { @@ -4261,6 +4860,28 @@ impl Default for ImGuiContext { } } } +impl ImGuiContext { + #[inline] + pub fn ActiveIdMouseButton(&self) -> cty::c_int { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_ActiveIdMouseButton(&mut self, val: cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(ActiveIdMouseButton: cty::c_int) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let ActiveIdMouseButton: u32 = unsafe { ::core::mem::transmute(ActiveIdMouseButton) }; + ActiveIdMouseButton as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowTempData { @@ -4282,19 +4903,21 @@ pub struct ImGuiWindowTempData { pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, + pub NavIsScrollPushableX: bool, pub NavHideHighlightOneFrame: bool, - pub NavHasScroll: bool, + pub NavWindowHasScrollY: bool, pub MenuBarAppending: bool, pub MenuBarOffset: ImVec2, pub MenuColumns: ImGuiMenuColumns, pub TreeDepth: cty::c_int, - pub TreeJumpToParentOnPopMask: ImU32, + pub TreeHasStackDataDepthMask: ImU32, pub ChildWindows: ImVector_ImGuiWindowPtr, pub StateStorage: *mut ImGuiStorage, pub CurrentColumns: *mut ImGuiOldColumns, pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, + pub ModalDimBgColor: ImU32, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, @@ -4328,10 +4951,12 @@ impl Default for ImVector_ImGuiOldColumns { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindow { + pub Ctx: *mut ImGuiContext, pub Name: *mut cty::c_char, pub ID: ImGuiID, pub Flags: ImGuiWindowFlags, pub FlagsPreviousFrame: ImGuiWindowFlags, + pub ChildFlags: ImGuiChildFlags, pub WindowClass: ImGuiWindowClass, pub Viewport: *mut ImGuiViewportP, pub ViewportId: ImGuiID, @@ -4346,6 +4971,8 @@ pub struct ImGuiWindow { pub WindowPadding: ImVec2, pub WindowRounding: f32, pub WindowBorderSize: f32, + pub TitleBarHeight: f32, + pub MenuBarHeight: f32, pub DecoOuterSizeX1: f32, pub DecoOuterSizeY1: f32, pub DecoOuterSizeX2: f32, @@ -4356,6 +4983,7 @@ pub struct ImGuiWindow { pub MoveId: ImGuiID, pub TabId: ImGuiID, pub ChildId: ImGuiID, + pub PopupId: ImGuiID, pub Scroll: ImVec2, pub ScrollMax: ImVec2, pub ScrollTarget: ImVec2, @@ -4371,21 +4999,21 @@ pub struct ImGuiWindow { pub Collapsed: bool, pub WantCollapseToggle: bool, pub SkipItems: bool, + pub SkipRefresh: bool, pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, pub IsExplicitChild: bool, pub HasCloseButton: bool, + pub ResizeBorderHovered: cty::c_schar, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, pub BeginCountPreviousFrame: cty::c_short, pub BeginOrderWithinParent: cty::c_short, pub BeginOrderWithinContext: cty::c_short, pub FocusOrder: cty::c_short, - pub PopupId: ImGuiID, pub AutoFitFramesX: ImS8, pub AutoFitFramesY: ImS8, - pub AutoFitChildAxises: ImS8, pub AutoFitOnlyGrows: bool, pub AutoPosLastDirection: ImGuiDir, pub HiddenFramesCanSkipItems: ImS8, @@ -4425,9 +5053,11 @@ pub struct ImGuiWindow { pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, + pub ParentWindowForFocusRoute: *mut ImGuiWindow, pub NavLastChildNavWindow: *mut ImGuiWindow, pub NavLastIds: [ImGuiID; 2usize], pub NavRectRel: [ImRect; 2usize], + pub NavPreferredScoringPosRel: [ImVec2; 2usize], pub NavRootFocusScopeId: ImGuiID, pub MemoryDrawListIdxCapacity: cty::c_int, pub MemoryDrawListVtxCapacity: cty::c_int, @@ -4605,7 +5235,6 @@ pub const ImGuiTabItemFlags_SectionMask_: ImGuiTabItemFlagsPrivate_ = 192; pub const ImGuiTabItemFlags_NoCloseButton: ImGuiTabItemFlagsPrivate_ = 1048576; pub const ImGuiTabItemFlags_Button: ImGuiTabItemFlagsPrivate_ = 2097152; pub const ImGuiTabItemFlags_Unsorted: ImGuiTabItemFlagsPrivate_ = 4194304; -pub const ImGuiTabItemFlags_Preview: ImGuiTabItemFlagsPrivate_ = 8388608; pub type ImGuiTabItemFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -4671,6 +5300,8 @@ pub struct ImGuiTabBar { pub ScrollingSpeed: f32, pub ScrollingRectMinX: f32, pub ScrollingRectMaxX: f32, + pub SeparatorMinX: f32, + pub SeparatorMaxX: f32, pub ReorderRequestTabId: ImGuiID, pub ReorderRequestOffset: ImS16, pub BeginCount: ImS8, @@ -4693,8 +5324,8 @@ impl Default for ImGuiTabBar { } } } -pub type ImGuiTableColumnIdx = ImS8; -pub type ImGuiTableDrawChannelIdx = ImU8; +pub type ImGuiTableColumnIdx = ImS16; +pub type ImGuiTableDrawChannelIdx = ImU16; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableColumn { @@ -4704,6 +5335,7 @@ pub struct ImGuiTableColumn { pub MaxX: f32, pub WidthRequest: f32, pub WidthAuto: f32, + pub WidthMax: f32, pub StretchWeight: f32, pub InitStretchWeightOrWidth: f32, pub ClipRect: ImRect, @@ -4804,11 +5436,22 @@ pub struct ImGuiTableCellData { pub Column: ImGuiTableColumnIdx, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableHeaderData { + pub Index: ImGuiTableColumnIdx, + pub TextColor: ImU32, + pub BgColor0: ImU32, + pub BgColor1: ImU32, +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableInstanceData { + pub TableInstanceID: ImGuiID, pub LastOuterHeight: f32, - pub LastFirstRowHeight: f32, + pub LastTopHeadersRowHeight: f32, pub LastFrozenHeight: f32, + pub HoveredRowLast: cty::c_int, + pub HoveredRowNext: cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -4897,10 +5540,9 @@ pub struct ImGuiTable { pub Columns: ImSpan_ImGuiTableColumn, pub DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx, pub RowCellData: ImSpan_ImGuiTableCellData, - pub EnabledMaskByDisplayOrder: ImU64, - pub EnabledMaskByIndex: ImU64, - pub VisibleMaskByIndex: ImU64, - pub RequestOutputMaskByIndex: ImU64, + pub EnabledMaskByDisplayOrder: ImBitArrayPtr, + pub EnabledMaskByIndex: ImBitArrayPtr, + pub VisibleMaskByIndex: ImBitArrayPtr, pub SettingsLoadedFlags: ImGuiTableFlags, pub SettingsOffset: cty::c_int, pub LastFrameActive: cty::c_int, @@ -4912,6 +5554,7 @@ pub struct ImGuiTable { pub RowPosY1: f32, pub RowPosY2: f32, pub RowMinHeight: f32, + pub RowCellPaddingY: f32, pub RowTextBaseline: f32, pub RowIndentOffsetX: f32, pub _bitfield_align_1: [u16; 0], @@ -4926,7 +5569,6 @@ pub struct ImGuiTable { pub MinColumnWidth: f32, pub OuterPaddingX: f32, pub CellPaddingX: f32, - pub CellPaddingY: f32, pub CellSpacingX1: f32, pub CellSpacingX2: f32, pub InnerWidth: f32, @@ -4936,6 +5578,8 @@ pub struct ImGuiTable { pub ResizedColumnNextWidth: f32, pub ResizeLockMinContentsX2: f32, pub RefScale: f32, + pub AngledHeadersHeight: f32, + pub AngledHeadersSlope: f32, pub OuterRect: ImRect, pub InnerRect: ImRect, pub WorkRect: ImRect, @@ -4958,8 +5602,10 @@ pub struct ImGuiTable { pub ColumnsEnabledCount: ImGuiTableColumnIdx, pub ColumnsEnabledFixedCount: ImGuiTableColumnIdx, pub DeclColumnsCount: ImGuiTableColumnIdx, + pub AngledHeadersCount: ImGuiTableColumnIdx, pub HoveredColumnBody: ImGuiTableColumnIdx, pub HoveredColumnBorder: ImGuiTableColumnIdx, + pub HighlightColumnHeader: ImGuiTableColumnIdx, pub AutoFitSingleColumn: ImGuiTableColumnIdx, pub ResizedColumn: ImGuiTableColumnIdx, pub LastResizedColumn: ImGuiTableColumnIdx, @@ -4985,6 +5631,7 @@ pub struct ImGuiTable { pub IsSortSpecsDirty: bool, pub IsUsingHeaders: bool, pub IsContextPopupOpen: bool, + pub DisableDefaultContextMenu: bool, pub IsSettingsRequestLoad: bool, pub IsSettingsDirty: bool, pub IsDefaultDisplayOrder: bool, @@ -4992,6 +5639,8 @@ pub struct ImGuiTable { pub IsResetDisplayOrderRequest: bool, pub IsUnfrozenRows: bool, pub IsDefaultSizingPolicy: bool, + pub IsActiveIdAliveBeforeTable: bool, + pub IsActiveIdInTable: bool, pub HasScrollbarYCurr: bool, pub HasScrollbarYPrev: bool, pub MemoryCompacted: bool, @@ -5047,10 +5696,28 @@ impl ImGuiTable { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTableHeaderData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTableHeaderData, +} +impl Default for ImVector_ImGuiTableHeaderData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiTableTempData { pub TableIndex: cty::c_int, pub LastTimeActive: f32, + pub AngledHeadersExtraWidth: f32, + pub AngledHeadersRequests: ImVector_ImGuiTableHeaderData, pub UserOuterSize: ImVec2, pub DrawSplitter: ImDrawListSplitter, pub HostBackupWorkRect: ImRect, @@ -5081,6 +5748,7 @@ pub struct ImGuiTableColumnSettings { pub SortOrder: ImGuiTableColumnIdx, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, } impl ImGuiTableColumnSettings { #[inline] @@ -5198,6 +5866,9 @@ extern "C" { extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -5223,7 +5894,7 @@ extern "C" { pub fn igShowDebugLogWindow(p_open: *mut bool); } extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); @@ -5262,16 +5933,16 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { @@ -5369,18 +6040,6 @@ extern "C" { extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} extern "C" { pub fn igGetScrollX() -> f32; } @@ -5432,20 +6091,20 @@ extern "C" { extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} extern "C" { pub fn igPopStyleVar(count: cty::c_int); } extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } extern "C" { pub fn igPushItemWidth(item_width: f32); @@ -5481,11 +6140,41 @@ extern "C" { pub fn igGetColorU32_Vec4(col: ImVec4) -> ImU32; } extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} extern "C" { pub fn igSeparator(); } @@ -5513,33 +6202,6 @@ extern "C" { extern "C" { pub fn igEndGroup(); } -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} extern "C" { pub fn igAlignTextToFramePadding(); } @@ -5582,6 +6244,9 @@ extern "C" { extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -5603,6 +6268,9 @@ extern "C" { extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -5652,10 +6320,16 @@ extern "C" { extern "C" { pub fn igBullet(); } +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -5666,7 +6340,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -5701,17 +6375,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -6227,6 +6900,9 @@ extern "C" { extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -6243,6 +6919,22 @@ extern "C" { size: ImVec2, ) -> bool; } +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -6259,17 +6951,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -6377,7 +7068,7 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } extern "C" { pub fn igEndTooltip(); @@ -6385,6 +7076,12 @@ extern "C" { extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -6434,7 +7131,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -6463,11 +7160,14 @@ extern "C" { extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} extern "C" { pub fn igTableHeadersRow(); } extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } extern "C" { pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs; @@ -6490,11 +7190,14 @@ extern "C" { extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } extern "C" { pub fn igNextColumn(); @@ -6541,7 +7244,7 @@ extern "C" { } extern "C" { pub fn igDockSpace( - id: ImGuiID, + dockspace_id: ImGuiID, size: ImVec2, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6549,6 +7252,7 @@ extern "C" { } extern "C" { pub fn igDockSpaceOverViewport( + dockspace_id: ImGuiID, viewport: *const ImGuiViewport, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6632,6 +7336,9 @@ extern "C" { extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -6683,20 +7390,11 @@ extern "C" { extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } -extern "C" { - pub fn igSetItemAllowOverlap(); -} extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } extern "C" { - pub fn igGetBackgroundDrawList_Nil() -> *mut ImDrawList; -} -extern "C" { - pub fn igGetForegroundDrawList_Nil() -> *mut ImDrawList; -} -extern "C" { - pub fn igGetBackgroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; + pub fn igGetBackgroundDrawList(viewport: *mut ImGuiViewport) -> *mut ImDrawList; } extern "C" { pub fn igGetForegroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; @@ -6725,12 +7423,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igEndChildFrame(); -} extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -6775,6 +7467,9 @@ extern "C" { extern "C" { pub fn igIsKeyReleased_Nil(key: ImGuiKey) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord) -> bool; +} extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -6784,6 +7479,15 @@ extern "C" { extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } +extern "C" { + pub fn igShortcut_Nil(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner_Nil(key: ImGuiKey); +} extern "C" { pub fn igIsMouseDown_Nil(button: ImGuiMouseButton) -> bool; } @@ -6794,7 +7498,7 @@ extern "C" { pub fn igIsMouseReleased_Nil(button: ImGuiMouseButton) -> bool; } extern "C" { - pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; + pub fn igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton) -> bool; } extern "C" { pub fn igGetMouseClickedCount(button: ImGuiMouseButton) -> cty::c_int; @@ -6853,6 +7557,12 @@ extern "C" { extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +extern "C" { + pub fn igDebugStartItemPicker(); +} extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -6864,6 +7574,9 @@ extern "C" { sz_drawidx: usize, ) -> bool; } +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -6884,9 +7597,6 @@ extern "C" { extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } -extern "C" { - pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; -} extern "C" { pub fn igUpdatePlatformWindows(); } @@ -6905,6 +7615,18 @@ extern "C" { extern "C" { pub fn igFindViewportByPlatformHandle(platform_handle: *mut cty::c_void) -> *mut ImGuiViewport; } +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -6927,7 +7649,10 @@ extern "C" { pub fn ImGuiIO_AddMouseButtonEvent(self_: *mut ImGuiIO, button: cty::c_int, down: bool); } extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } extern "C" { pub fn ImGuiIO_AddMouseViewportEvent(self_: *mut ImGuiIO, id: ImGuiID); @@ -6957,11 +7682,14 @@ extern "C" { pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool); } extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -7022,18 +7750,6 @@ extern "C" { extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -7130,7 +7846,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -7139,13 +7855,13 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -7208,10 +7924,10 @@ extern "C" { ) -> *mut *mut cty::c_void; } extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } extern "C" { pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper; @@ -7233,12 +7949,21 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -7268,6 +7993,66 @@ extern "C" { extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -7457,6 +8242,27 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -7479,24 +8285,6 @@ extern "C" { cpu_fine_clip_rect: *const ImVec4, ); } -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -7520,6 +8308,32 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -7571,6 +8385,9 @@ extern "C" { extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -7598,6 +8415,17 @@ extern "C" { a_max_of_12: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -7717,6 +8545,9 @@ extern "C" { extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -7752,6 +8583,9 @@ extern "C" { extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -7841,7 +8675,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -7851,7 +8685,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8111,13 +8945,10 @@ extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; + pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImGuiID) -> ImGuiID; } extern "C" { - pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImU32) -> ImGuiID; -} -extern "C" { - pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; + pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImGuiID) -> ImGuiID; } extern "C" { pub fn igImQsort( @@ -8171,18 +9002,12 @@ extern "C" { c: cty::c_char, ) -> *const cty::c_char; } -extern "C" { - pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; -} extern "C" { pub fn igImStreolRange( str_: *const cty::c_char, str_end: *const cty::c_char, ) -> *const cty::c_char; } -extern "C" { - pub fn igImStrbolW(buf_mid_line: *const ImWchar, buf_begin: *const ImWchar) -> *const ImWchar; -} extern "C" { pub fn igImStristr( haystack: *const cty::c_char, @@ -8197,6 +9022,15 @@ extern "C" { extern "C" { pub fn igImStrSkipBlank(str_: *const cty::c_char) -> *const cty::c_char; } +extern "C" { + pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; +} +extern "C" { + pub fn igImStrbol( + buf_mid_line: *const cty::c_char, + buf_begin: *const cty::c_char, + ) -> *const cty::c_char; +} extern "C" { pub fn igImToUpper(c: cty::c_char) -> cty::c_char; } @@ -8206,6 +9040,9 @@ extern "C" { extern "C" { pub fn igImCharIsBlankW(c: cty::c_uint) -> bool; } +extern "C" { + pub fn igImCharIsXdigitA(c: cty::c_char) -> bool; +} extern "C" { pub fn igImFormatString( buf: *mut cty::c_char, @@ -8300,6 +9137,18 @@ extern "C" { in_text_end: *const ImWchar, ) -> cty::c_int; } +extern "C" { + pub fn igImTextFindPreviousUtf8Codepoint( + in_text_start: *const cty::c_char, + in_text_curr: *const cty::c_char, + ) -> *const cty::c_char; +} +extern "C" { + pub fn igImTextCountLines( + in_text: *const cty::c_char, + in_text_end: *const cty::c_char, + ) -> cty::c_int; +} extern "C" { pub fn igImFileOpen(filename: *const cty::c_char, mode: *const cty::c_char) -> ImFileHandle; } @@ -8396,18 +9245,18 @@ extern "C" { extern "C" { pub fn igImInvLength(lhs: ImVec2, fail_value: f32) -> f32; } +extern "C" { + pub fn igImTrunc_Float(f: f32) -> f32; +} +extern "C" { + pub fn igImTrunc_Vec2(pOut: *mut ImVec2, v: ImVec2); +} extern "C" { pub fn igImFloor_Float(f: f32) -> f32; } -extern "C" { - pub fn igImFloorSigned_Float(f: f32) -> f32; -} extern "C" { pub fn igImFloor_Vec2(pOut: *mut ImVec2, v: ImVec2); } -extern "C" { - pub fn igImFloorSigned_Vec2(pOut: *mut ImVec2, v: ImVec2); -} extern "C" { pub fn igImModPositive(a: cty::c_int, b: cty::c_int) -> cty::c_int; } @@ -8420,6 +9269,9 @@ extern "C" { extern "C" { pub fn igImLinearSweep(current: f32, target: f32, speed: f32) -> f32; } +extern "C" { + pub fn igImLinearRemapClamp(s0: f32, s1: f32, d0: f32, d1: f32, x: f32) -> f32; +} extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } @@ -8488,7 +9340,7 @@ extern "C" { pub fn igImTriangleArea(a: ImVec2, b: ImVec2, c: ImVec2) -> f32; } extern "C" { - pub fn igImGetDirQuadrantFromDelta(dx: f32, dy: f32) -> ImGuiDir; + pub fn igImTriangleIsClockwise(a: ImVec2, b: ImVec2, c: ImVec2) -> bool; } extern "C" { pub fn ImVec1_ImVec1_Nil() -> *mut ImVec1; @@ -8559,6 +9411,9 @@ extern "C" { extern "C" { pub fn ImRect_Contains_Rect(self_: *mut ImRect, r: ImRect) -> bool; } +extern "C" { + pub fn ImRect_ContainsWithPad(self_: *mut ImRect, p: ImVec2, pad: ImVec2) -> bool; +} extern "C" { pub fn ImRect_Overlaps(self_: *mut ImRect, r: ImRect) -> bool; } @@ -8598,6 +9453,12 @@ extern "C" { extern "C" { pub fn ImRect_ToVec4(pOut: *mut ImVec4, self_: *mut ImRect); } +extern "C" { + pub fn igImBitArrayGetStorageSizeInBytes(bitcount: cty::c_int) -> usize; +} +extern "C" { + pub fn igImBitArrayClearAllBits(arr: *mut ImU32, bitcount: cty::c_int); +} extern "C" { pub fn igImBitArrayTestBit(arr: *const ImU32, n: cty::c_int) -> bool; } @@ -8653,6 +9514,13 @@ extern "C" { new_size: cty::c_int, ); } +extern "C" { + pub fn igImLowerBound( + in_begin: *mut ImGuiStoragePair, + in_end: *mut ImGuiStoragePair, + key: ImGuiID, + ) -> *mut ImGuiStoragePair; +} extern "C" { pub fn ImDrawListSharedData_ImDrawListSharedData() -> *mut ImDrawListSharedData; } @@ -8666,16 +9534,16 @@ extern "C" { ); } extern "C" { - pub fn ImDrawDataBuilder_Clear(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_ImDrawDataBuilder() -> *mut ImDrawDataBuilder; } extern "C" { - pub fn ImDrawDataBuilder_ClearFreeMemory(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_destroy(self_: *mut ImDrawDataBuilder); } extern "C" { - pub fn ImDrawDataBuilder_GetDrawListCount(self_: *mut ImDrawDataBuilder) -> cty::c_int; -} -extern "C" { - pub fn ImDrawDataBuilder_FlattenIntoSingleLayer(self_: *mut ImDrawDataBuilder); + pub fn ImGuiDataVarInfo_GetVarPtr( + self_: *mut ImGuiDataVarInfo, + parent: *mut cty::c_void, + ) -> *mut cty::c_void; } extern "C" { pub fn ImGuiStyleMod_ImGuiStyleMod_Int(idx: ImGuiStyleVar, v: cty::c_int) @@ -8722,9 +9590,19 @@ extern "C" { pub fn ImGuiMenuColumns_CalcNextTotalWidth(self_: *mut ImGuiMenuColumns, update_offsets: bool); } extern "C" { - pub fn ImGuiInputTextState_ImGuiInputTextState( - ctx: *mut ImGuiContext, - ) -> *mut ImGuiInputTextState; + pub fn ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState( + ) -> *mut ImGuiInputTextDeactivatedState; +} +extern "C" { + pub fn ImGuiInputTextDeactivatedState_destroy(self_: *mut ImGuiInputTextDeactivatedState); +} +extern "C" { + pub fn ImGuiInputTextDeactivatedState_ClearFreeMemory( + self_: *mut ImGuiInputTextDeactivatedState, + ); +} +extern "C" { + pub fn ImGuiInputTextState_ImGuiInputTextState() -> *mut ImGuiInputTextState; } extern "C" { pub fn ImGuiInputTextState_destroy(self_: *mut ImGuiInputTextState); @@ -8735,15 +9613,12 @@ extern "C" { extern "C" { pub fn ImGuiInputTextState_ClearFreeMemory(self_: *mut ImGuiInputTextState); } -extern "C" { - pub fn ImGuiInputTextState_GetUndoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -extern "C" { - pub fn ImGuiInputTextState_GetRedoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} extern "C" { pub fn ImGuiInputTextState_OnKeyPressed(self_: *mut ImGuiInputTextState, key: cty::c_int); } +extern "C" { + pub fn ImGuiInputTextState_OnCharPressed(self_: *mut ImGuiInputTextState, c: cty::c_uint); +} extern "C" { pub fn ImGuiInputTextState_CursorAnimReset(self_: *mut ImGuiInputTextState); } @@ -8769,10 +9644,13 @@ extern "C" { pub fn ImGuiInputTextState_SelectAll(self_: *mut ImGuiInputTextState); } extern "C" { - pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; + pub fn ImGuiInputTextState_ReloadUserBufAndSelectAll(self_: *mut ImGuiInputTextState); } extern "C" { - pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); + pub fn ImGuiInputTextState_ReloadUserBufAndKeepSelection(self_: *mut ImGuiInputTextState); +} +extern "C" { + pub fn ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self_: *mut ImGuiInputTextState); } extern "C" { pub fn ImGuiNextWindowData_ImGuiNextWindowData() -> *mut ImGuiNextWindowData; @@ -8805,10 +9683,13 @@ extern "C" { pub fn ImGuiStackSizes_destroy(self_: *mut ImGuiStackSizes); } extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_SetToContextState(self_: *mut ImGuiStackSizes, ctx: *mut ImGuiContext); } extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_CompareWithContextState( + self_: *mut ImGuiStackSizes, + ctx: *mut ImGuiContext, + ); } extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Ptr(ptr: *mut cty::c_void) -> *mut ImGuiPtrOrIndex; @@ -8819,6 +9700,12 @@ extern "C" { extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } +extern "C" { + pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; +} +extern "C" { + pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); +} extern "C" { pub fn ImGuiInputEvent_ImGuiInputEvent() -> *mut ImGuiInputEvent; } @@ -8881,6 +9768,15 @@ extern "C" { extern "C" { pub fn ImGuiNavItemData_Clear(self_: *mut ImGuiNavItemData); } +extern "C" { + pub fn ImGuiTypingSelectState_ImGuiTypingSelectState() -> *mut ImGuiTypingSelectState; +} +extern "C" { + pub fn ImGuiTypingSelectState_destroy(self_: *mut ImGuiTypingSelectState); +} +extern "C" { + pub fn ImGuiTypingSelectState_Clear(self_: *mut ImGuiTypingSelectState); +} extern "C" { pub fn ImGuiOldColumnData_ImGuiOldColumnData() -> *mut ImGuiOldColumnData; } @@ -8893,6 +9789,30 @@ extern "C" { extern "C" { pub fn ImGuiOldColumns_destroy(self_: *mut ImGuiOldColumns); } +extern "C" { + pub fn ImGuiBoxSelectState_ImGuiBoxSelectState() -> *mut ImGuiBoxSelectState; +} +extern "C" { + pub fn ImGuiBoxSelectState_destroy(self_: *mut ImGuiBoxSelectState); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_ImGuiMultiSelectTempData() -> *mut ImGuiMultiSelectTempData; +} +extern "C" { + pub fn ImGuiMultiSelectTempData_destroy(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_Clear(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectTempData_ClearIO(self_: *mut ImGuiMultiSelectTempData); +} +extern "C" { + pub fn ImGuiMultiSelectState_ImGuiMultiSelectState() -> *mut ImGuiMultiSelectState; +} +extern "C" { + pub fn ImGuiMultiSelectState_destroy(self_: *mut ImGuiMultiSelectState); +} extern "C" { pub fn ImGuiDockNode_ImGuiDockNode(id: ImGuiID) -> *mut ImGuiDockNode; } @@ -8954,15 +9874,15 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectPos( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, + inset_min: ImVec2, ); } extern "C" { pub fn ImGuiViewportP_CalcWorkRectSize( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, - off_max: ImVec2, + inset_min: ImVec2, + inset_max: ImVec2, ); } extern "C" { @@ -8993,10 +9913,10 @@ extern "C" { pub fn ImGuiSettingsHandler_destroy(self_: *mut ImGuiSettingsHandler); } extern "C" { - pub fn ImGuiMetricsConfig_ImGuiMetricsConfig() -> *mut ImGuiMetricsConfig; + pub fn ImGuiDebugAllocInfo_ImGuiDebugAllocInfo() -> *mut ImGuiDebugAllocInfo; } extern "C" { - pub fn ImGuiMetricsConfig_destroy(self_: *mut ImGuiMetricsConfig); + pub fn ImGuiDebugAllocInfo_destroy(self_: *mut ImGuiDebugAllocInfo); } extern "C" { pub fn ImGuiStackLevelInfo_ImGuiStackLevelInfo() -> *mut ImGuiStackLevelInfo; @@ -9005,10 +9925,10 @@ extern "C" { pub fn ImGuiStackLevelInfo_destroy(self_: *mut ImGuiStackLevelInfo); } extern "C" { - pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; + pub fn ImGuiIDStackTool_ImGuiIDStackTool() -> *mut ImGuiIDStackTool; } extern "C" { - pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); + pub fn ImGuiIDStackTool_destroy(self_: *mut ImGuiIDStackTool); } extern "C" { pub fn ImGuiContextHook_ImGuiContextHook() -> *mut ImGuiContextHook; @@ -9044,6 +9964,9 @@ extern "C" { extern "C" { pub fn ImGuiWindow_GetID_Int(self_: *mut ImGuiWindow, n: cty::c_int) -> ImGuiID; } +extern "C" { + pub fn ImGuiWindow_GetIDFromPos(self_: *mut ImGuiWindow, p_abs: ImVec2) -> ImGuiID; +} extern "C" { pub fn ImGuiWindow_GetIDFromRectangle(self_: *mut ImGuiWindow, r_abs: ImRect) -> ImGuiID; } @@ -9053,15 +9976,9 @@ extern "C" { extern "C" { pub fn ImGuiWindow_CalcFontSize(self_: *mut ImGuiWindow) -> f32; } -extern "C" { - pub fn ImGuiWindow_TitleBarHeight(self_: *mut ImGuiWindow) -> f32; -} extern "C" { pub fn ImGuiWindow_TitleBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } -extern "C" { - pub fn ImGuiWindow_MenuBarHeight(self_: *mut ImGuiWindow) -> f32; -} extern "C" { pub fn ImGuiWindow_MenuBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } @@ -9077,16 +9994,6 @@ extern "C" { extern "C" { pub fn ImGuiTabBar_destroy(self_: *mut ImGuiTabBar); } -extern "C" { - pub fn ImGuiTabBar_GetTabOrder(self_: *mut ImGuiTabBar, tab: *const ImGuiTabItem) - -> cty::c_int; -} -extern "C" { - pub fn ImGuiTabBar_GetTabName( - self_: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, - ) -> *const cty::c_char; -} extern "C" { pub fn ImGuiTableColumn_ImGuiTableColumn() -> *mut ImGuiTableColumn; } @@ -9147,6 +10054,9 @@ extern "C" { parent_window: *mut ImGuiWindow, ); } +extern "C" { + pub fn igUpdateWindowSkipRefresh(window: *mut ImGuiWindow); +} extern "C" { pub fn igCalcWindowNextAutoFitSize(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -9189,6 +10099,15 @@ extern "C" { extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } +extern "C" { + pub fn igSetWindowHiddenAndSkipItemsForCurrentFrame(window: *mut ImGuiWindow); +} +extern "C" { + pub fn igSetWindowParentWindowForFocusRoute( + window: *mut ImGuiWindow, + parent_window: *mut ImGuiWindow, + ); +} extern "C" { pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } @@ -9196,12 +10115,20 @@ extern "C" { pub fn igWindowRectRelToAbs(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } extern "C" { - pub fn igFocusWindow(window: *mut ImGuiWindow); + pub fn igWindowPosAbsToRel(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +extern "C" { + pub fn igWindowPosRelToAbs(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +extern "C" { + pub fn igFocusWindow(window: *mut ImGuiWindow, flags: ImGuiFocusRequestFlags); } extern "C" { pub fn igFocusTopMostWindowUnderOne( under_this_window: *mut ImGuiWindow, ignore_window: *mut ImGuiWindow, + filter_viewport: *mut ImGuiViewport, + flags: ImGuiFocusRequestFlags, ); } extern "C" { @@ -9224,6 +10151,9 @@ extern "C" { window: *mut ImGuiWindow, ) -> *mut ImGuiWindow; } +extern "C" { + pub fn igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags); +} extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -9233,6 +10163,13 @@ extern "C" { extern "C" { pub fn igGetForegroundDrawList_WindowPtr(window: *mut ImGuiWindow) -> *mut ImDrawList; } +extern "C" { + pub fn igAddDrawListToDrawDataEx( + draw_data: *mut ImDrawData, + out_list: *mut ImVector_ImDrawListPtr, + draw_list: *mut ImDrawList, + ); +} extern "C" { pub fn igInitialize(); } @@ -9245,6 +10182,14 @@ extern "C" { extern "C" { pub fn igUpdateHoveredWindowAndCaptureFlags(); } +extern "C" { + pub fn igFindHoveredWindowEx( + pos: ImVec2, + find_first_and_in_any_viewport: bool, + out_hovered_window: *mut *mut ImGuiWindow, + out_hovered_window_under_moving_window: *mut *mut ImGuiWindow, + ); +} extern "C" { pub fn igStartMouseMovingWindow(window: *mut ImGuiWindow); } @@ -9252,7 +10197,7 @@ extern "C" { pub fn igStartMouseMovingWindowOrNode( window: *mut ImGuiWindow, node: *mut ImGuiDockNode, - undock_floating_node: bool, + undock: bool, ); } extern "C" { @@ -9275,6 +10220,8 @@ extern "C" { viewport: *mut ImGuiViewportP, old_pos: ImVec2, new_pos: ImVec2, + old_size: ImVec2, + new_size: ImVec2, ); } extern "C" { @@ -9308,15 +10255,6 @@ extern "C" { extern "C" { pub fn igClearIniSettings(); } -extern "C" { - pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -extern "C" { - pub fn igFindWindowSettings(id: ImGuiID) -> *mut ImGuiWindowSettings; -} -extern "C" { - pub fn igFindOrCreateWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} extern "C" { pub fn igAddSettingsHandler(handler: *const ImGuiSettingsHandler); } @@ -9326,6 +10264,18 @@ extern "C" { extern "C" { pub fn igFindSettingsHandler(type_name: *const cty::c_char) -> *mut ImGuiSettingsHandler; } +extern "C" { + pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igFindWindowSettingsByID(id: ImGuiID) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igFindWindowSettingsByWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindowSettings; +} +extern "C" { + pub fn igClearWindowSettings(name: *const cty::c_char); +} extern "C" { pub fn igLocalizeRegisterEntries(entries: *const ImGuiLocEntry, count: cty::c_int); } @@ -9406,12 +10356,15 @@ extern "C" { pub fn igPushOverrideID(id: ImGuiID); } extern "C" { - pub fn igGetIDWithSeed( + pub fn igGetIDWithSeed_Str( str_id_begin: *const cty::c_char, str_id_end: *const cty::c_char, seed: ImGuiID, ) -> ImGuiID; } +extern "C" { + pub fn igGetIDWithSeed_Int(n: cty::c_int, seed: ImGuiID) -> ImGuiID; +} extern "C" { pub fn igItemSize_Vec2(size: ImVec2, text_baseline_y: f32); } @@ -9427,7 +10380,10 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igItemHoverable(bb: ImRect, id: ImGuiID) -> bool; + pub fn igItemHoverable(bb: ImRect, id: ImGuiID, item_flags: ImGuiItemFlags) -> bool; +} +extern "C" { + pub fn igIsWindowContentHoverable(window: *mut ImGuiWindow, flags: ImGuiHoveredFlags) -> bool; } extern "C" { pub fn igIsClippedEx(bb: ImRect, id: ImGuiID) -> bool; @@ -9449,20 +10405,17 @@ extern "C" { extern "C" { pub fn igPushMultiItemsWidths(components: cty::c_int, width_full: f32); } -extern "C" { - pub fn igIsItemToggledSelection() -> bool; -} -extern "C" { - pub fn igGetContentRegionMaxAbs(pOut: *mut ImVec2); -} extern "C" { pub fn igShrinkWidths(items: *mut ImGuiShrinkWidthItem, count: cty::c_int, width_excess: f32); } extern "C" { - pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); + pub fn igGetStyleVarInfo(idx: ImGuiStyleVar) -> *const ImGuiDataVarInfo; } extern "C" { - pub fn igPopItemFlag(); + pub fn igBeginDisabledOverrideReenable(); +} +extern "C" { + pub fn igEndDisabledOverrideReenable(); } extern "C" { pub fn igLogBegin(type_: ImGuiLogType, auto_open_depth: cty::c_int); @@ -9485,10 +10438,13 @@ extern "C" { name: *const cty::c_char, id: ImGuiID, size_arg: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } +extern "C" { + pub fn igBeginPopupEx(id: ImGuiID, extra_window_flags: ImGuiWindowFlags) -> bool; +} extern "C" { pub fn igOpenPopupEx(id: ImGuiID, popup_flags: ImGuiPopupFlags); } @@ -9507,12 +10463,6 @@ extern "C" { extern "C" { pub fn igIsPopupOpen_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } -extern "C" { - pub fn igBeginPopupEx(id: ImGuiID, extra_flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); -} extern "C" { pub fn igGetPopupAllowedExtentRect(pOut: *mut ImRect, window: *mut ImGuiWindow); } @@ -9522,6 +10472,9 @@ extern "C" { extern "C" { pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; } +extern "C" { + pub fn igFindBlockingModal(window: *mut ImGuiWindow) -> *mut ImGuiWindow; +} extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -9536,6 +10489,15 @@ extern "C" { policy: ImGuiPopupPositionPolicy, ); } +extern "C" { + pub fn igBeginTooltipEx( + tooltip_flags: ImGuiTooltipFlags, + extra_window_flags: ImGuiWindowFlags, + ) -> bool; +} +extern "C" { + pub fn igBeginTooltipHidden() -> bool; +} extern "C" { pub fn igBeginViewportSideBar( name: *const cty::c_char, @@ -9598,6 +10560,12 @@ extern "C" { extern "C" { pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); } +extern "C" { + pub fn igNavMoveRequestResolveWithPastTreeNode( + result: *mut ImGuiNavItemData, + tree_node_data: *mut ImGuiTreeNodeStackData, + ); +} extern "C" { pub fn igNavMoveRequestCancel(); } @@ -9608,7 +10576,16 @@ extern "C" { pub fn igNavMoveRequestTryWrapping(window: *mut ImGuiWindow, move_flags: ImGuiNavMoveFlags); } extern "C" { - pub fn igActivateItem(id: ImGuiID); + pub fn igNavHighlightActivated(id: ImGuiID); +} +extern "C" { + pub fn igNavClearPreferredPosForAxis(axis: ImGuiAxis); +} +extern "C" { + pub fn igNavRestoreHighlightAfterMove(); +} +extern "C" { + pub fn igNavUpdateCurrentWindowIsScrollPushableX(); } extern "C" { pub fn igSetNavWindow(window: *mut ImGuiWindow); @@ -9621,11 +10598,20 @@ extern "C" { rect_rel: ImRect, ); } +extern "C" { + pub fn igSetNavFocusScope(focus_scope_id: ImGuiID); +} +extern "C" { + pub fn igFocusItem(); +} +extern "C" { + pub fn igActivateItemByID(id: ImGuiID); +} extern "C" { pub fn igIsNamedKey(key: ImGuiKey) -> bool; } extern "C" { - pub fn igIsNamedKeyOrModKey(key: ImGuiKey) -> bool; + pub fn igIsNamedKeyOrMod(key: ImGuiKey) -> bool; } extern "C" { pub fn igIsLegacyKey(key: ImGuiKey) -> bool; @@ -9643,20 +10629,22 @@ extern "C" { pub fn igIsAliasKey(key: ImGuiKey) -> bool; } extern "C" { - pub fn igConvertShortcutMod(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; + pub fn igIsLRModKey(key: ImGuiKey) -> bool; +} +extern "C" { + pub fn igFixupKeyChord(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; } extern "C" { pub fn igConvertSingleModFlagToKey(key: ImGuiKey) -> ImGuiKey; } extern "C" { - pub fn igGetKeyData(key: ImGuiKey) -> *mut ImGuiKeyData; + pub fn igGetKeyData_ContextPtr(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyData; } extern "C" { - pub fn igGetKeyChordName( - key_chord: ImGuiKeyChord, - out_buf: *mut cty::c_char, - out_buf_size: cty::c_int, - ); + pub fn igGetKeyData_Key(key: ImGuiKey) -> *mut ImGuiKeyData; +} +extern "C" { + pub fn igGetKeyChordName(key_chord: ImGuiKeyChord) -> *const cty::c_char; } extern "C" { pub fn igMouseButtonToKey(button: ImGuiMouseButton) -> ImGuiKey; @@ -9691,6 +10679,9 @@ extern "C" { repeat_rate: *mut f32, ); } +extern "C" { + pub fn igTeleportMousePos(pos: ImVec2); +} extern "C" { pub fn igSetActiveIdUsingAllKeyboardKeys(); } @@ -9704,44 +10695,65 @@ extern "C" { pub fn igSetKeyOwner(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags); } extern "C" { - pub fn igSetItemKeyOwner(key: ImGuiKey, flags: ImGuiInputFlags); + pub fn igSetKeyOwnersForKeyChord(key: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner_InputFlags(key: ImGuiKey, flags: ImGuiInputFlags); } extern "C" { pub fn igTestKeyOwner(key: ImGuiKey, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igGetKeyOwnerData(key: ImGuiKey) -> *mut ImGuiKeyOwnerData; + pub fn igGetKeyOwnerData(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyOwnerData; } extern "C" { pub fn igIsKeyDown_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igIsKeyPressed_ID(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsKeyPressed_InputFlags( + key: ImGuiKey, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } extern "C" { pub fn igIsKeyReleased_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed_InputFlags( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; +} extern "C" { pub fn igIsMouseDown_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igIsMouseClicked_ID( + pub fn igIsMouseClicked_InputFlags( button: ImGuiMouseButton, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } extern "C" { pub fn igIsMouseReleased_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } extern "C" { - pub fn igShortcut(key_chord: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsMouseDoubleClicked_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; +} +extern "C" { + pub fn igShortcut_ID( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } extern "C" { pub fn igSetShortcutRouting( key_chord: ImGuiKeyChord, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } extern "C" { @@ -9795,6 +10807,16 @@ extern "C" { extern "C" { pub fn igDockContextQueueUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); } +extern "C" { + pub fn igDockContextProcessUndockWindow( + ctx: *mut ImGuiContext, + window: *mut ImGuiWindow, + clear_persistent_docking_ref: bool, + ); +} +extern "C" { + pub fn igDockContextProcessUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); +} extern "C" { pub fn igDockContextCalcDropPosForDocking( target: *mut ImGuiWindow, @@ -9809,6 +10831,13 @@ extern "C" { extern "C" { pub fn igDockContextFindNodeByID(ctx: *mut ImGuiContext, id: ImGuiID) -> *mut ImGuiDockNode; } +extern "C" { + pub fn igDockNodeWindowMenuHandler_Default( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ); +} extern "C" { pub fn igDockNodeBeginAmendTabBar(node: *mut ImGuiDockNode) -> bool; } @@ -9926,7 +10955,82 @@ extern "C" { pub fn igIsDragDropPayloadBeingAccepted() -> bool; } extern "C" { - pub fn igRenderDragDropTargetRect(bb: ImRect); + pub fn igRenderDragDropTargetRect(bb: ImRect, item_clip_rect: ImRect); +} +extern "C" { + pub fn igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags) + -> *mut ImGuiTypingSelectRequest; +} +extern "C" { + pub fn igTypingSelectFindMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +extern "C" { + pub fn igTypingSelectFindNextSingleCharMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +extern "C" { + pub fn igTypingSelectFindBestLeadingMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + ) -> cty::c_int; +} +extern "C" { + pub fn igBeginBoxSelect( + scope_rect: ImRect, + window: *mut ImGuiWindow, + box_select_id: ImGuiID, + ms_flags: ImGuiMultiSelectFlags, + ) -> bool; +} +extern "C" { + pub fn igEndBoxSelect(scope_rect: ImRect, ms_flags: ImGuiMultiSelectFlags); +} +extern "C" { + pub fn igMultiSelectItemHeader( + id: ImGuiID, + p_selected: *mut bool, + p_button_flags: *mut ImGuiButtonFlags, + ); +} +extern "C" { + pub fn igMultiSelectItemFooter(id: ImGuiID, p_selected: *mut bool, p_pressed: *mut bool); +} +extern "C" { + pub fn igMultiSelectAddSetAll(ms: *mut ImGuiMultiSelectTempData, selected: bool); +} +extern "C" { + pub fn igMultiSelectAddSetRange( + ms: *mut ImGuiMultiSelectTempData, + selected: bool, + range_dir: cty::c_int, + first_item: ImGuiSelectionUserData, + last_item: ImGuiSelectionUserData, + ); +} +extern "C" { + pub fn igGetBoxSelectState(id: ImGuiID) -> *mut ImGuiBoxSelectState; +} +extern "C" { + pub fn igGetMultiSelectState(id: ImGuiID) -> *mut ImGuiMultiSelectState; } extern "C" { pub fn igSetWindowClipRectBeforeSetChannel(window: *mut ImGuiWindow, clip_rect: ImRect); @@ -9976,17 +11080,29 @@ extern "C" { ); } extern "C" { - pub fn igTableGetHoveredColumn() -> cty::c_int; + pub fn igTableGetHoveredRow() -> cty::c_int; } extern "C" { pub fn igTableGetHeaderRowHeight() -> f32; } +extern "C" { + pub fn igTableGetHeaderAngledMaxLabelWidth() -> f32; +} extern "C" { pub fn igTablePushBackgroundChannel(); } extern "C" { pub fn igTablePopBackgroundChannel(); } +extern "C" { + pub fn igTableAngledHeadersRowEx( + row_id: ImGuiID, + angle: f32, + max_label_width: f32, + data: *const ImGuiTableHeaderData, + data_count: cty::c_int, + ); +} extern "C" { pub fn igGetCurrentTable() -> *mut ImGuiTable; } @@ -10025,7 +11141,10 @@ extern "C" { pub fn igTableDrawBorders(table: *mut ImGuiTable); } extern "C" { - pub fn igTableDrawContextMenu(table: *mut ImGuiTable); + pub fn igTableDrawDefaultContextMenu( + table: *mut ImGuiTable, + flags_for_section_to_display: ImGuiTableFlags, + ); } extern "C" { pub fn igTableBeginContextMenuPopup(table: *mut ImGuiTable) -> bool; @@ -10039,6 +11158,9 @@ extern "C" { instance_no: cty::c_int, ) -> *mut ImGuiTableInstanceData; } +extern "C" { + pub fn igTableGetInstanceID(table: *mut ImGuiTable, instance_no: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTableSortSpecsSanitize(table: *mut ImGuiTable); } @@ -10077,13 +11199,13 @@ extern "C" { } extern "C" { pub fn igTableGetColumnResizeID( - table: *const ImGuiTable, + table: *mut ImGuiTable, column_n: cty::c_int, instance_no: cty::c_int, ) -> ImGuiID; } extern "C" { - pub fn igTableGetMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; + pub fn igTableCalcMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; } extern "C" { pub fn igTableSetColumnWidthAutoSingle(table: *mut ImGuiTable, column_n: cty::c_int); @@ -10126,21 +11248,37 @@ extern "C" { pub fn igTableSettingsFindByID(id: ImGuiID) -> *mut ImGuiTableSettings; } extern "C" { - pub fn igBeginTabBarEx( - tab_bar: *mut ImGuiTabBar, - bb: ImRect, - flags: ImGuiTabBarFlags, - dock_node: *mut ImGuiDockNode, - ) -> bool; + pub fn igGetCurrentTabBar() -> *mut ImGuiTabBar; +} +extern "C" { + pub fn igBeginTabBarEx(tab_bar: *mut ImGuiTabBar, bb: ImRect, flags: ImGuiTabBarFlags) -> bool; } extern "C" { pub fn igTabBarFindTabByID(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID) -> *mut ImGuiTabItem; } +extern "C" { + pub fn igTabBarFindTabByOrder( + tab_bar: *mut ImGuiTabBar, + order: cty::c_int, + ) -> *mut ImGuiTabItem; +} extern "C" { pub fn igTabBarFindMostRecentlySelectedTabForActiveWindow( tab_bar: *mut ImGuiTabBar, ) -> *mut ImGuiTabItem; } +extern "C" { + pub fn igTabBarGetCurrentTab(tab_bar: *mut ImGuiTabBar) -> *mut ImGuiTabItem; +} +extern "C" { + pub fn igTabBarGetTabOrder(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem) -> cty::c_int; +} +extern "C" { + pub fn igTabBarGetTabName( + tab_bar: *mut ImGuiTabBar, + tab: *mut ImGuiTabItem, + ) -> *const cty::c_char; +} extern "C" { pub fn igTabBarAddTab( tab_bar: *mut ImGuiTabBar, @@ -10154,17 +11292,20 @@ extern "C" { extern "C" { pub fn igTabBarCloseTab(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); } +extern "C" { + pub fn igTabBarQueueFocus(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); +} extern "C" { pub fn igTabBarQueueReorder( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, offset: cty::c_int, ); } extern "C" { pub fn igTabBarQueueReorderFromMousePos( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, mouse_pos: ImVec2, ); } @@ -10268,7 +11409,7 @@ extern "C" { p_min: ImVec2, p_max: ImVec2, fill_col: ImU32, - border: bool, + borders: bool, rounding: f32, ); } @@ -10378,15 +11519,24 @@ extern "C" { pub fn igImageButtonEx( id: ImGuiID, texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, tint_col: ImVec4, + flags: ImGuiButtonFlags, ) -> bool; } extern "C" { - pub fn igSeparatorEx(flags: ImGuiSeparatorFlags); + pub fn igSeparatorEx(flags: ImGuiSeparatorFlags, thickness: f32); +} +extern "C" { + pub fn igSeparatorTextEx( + id: ImGuiID, + label: *const cty::c_char, + label_end: *const cty::c_char, + extra_width: f32, + ); } extern "C" { pub fn igCheckboxFlags_S64Ptr( @@ -10494,10 +11644,13 @@ extern "C" { pub fn igTreePushOverrideID(id: ImGuiID); } extern "C" { - pub fn igTreeNodeSetOpen(id: ImGuiID, open: bool); + pub fn igTreeNodeGetOpen(storage_id: ImGuiID) -> bool; } extern "C" { - pub fn igTreeNodeUpdateNextOpen(id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; + pub fn igTreeNodeSetOpen(storage_id: ImGuiID, open: bool); +} +extern "C" { + pub fn igTreeNodeUpdateNextOpen(storage_id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; } extern "C" { pub fn igDataTypeGetInfo(data_type: ImGuiDataType) -> *const ImGuiDataTypeInfo; @@ -10526,6 +11679,7 @@ extern "C" { data_type: ImGuiDataType, p_data: *mut cty::c_void, format: *const cty::c_char, + p_data_when_empty: *mut cty::c_void, ) -> bool; } extern "C" { @@ -10555,6 +11709,9 @@ extern "C" { user_data: *mut cty::c_void, ) -> bool; } +extern "C" { + pub fn igInputTextDeactivateHook(id: ImGuiID); +} extern "C" { pub fn igTempInputText( bb: ImRect, @@ -10583,6 +11740,9 @@ extern "C" { extern "C" { pub fn igGetInputTextState(id: ImGuiID) -> *mut ImGuiInputTextState; } +extern "C" { + pub fn igSetNextItemRefVal(data_type: ImGuiDataType, p_data: *mut cty::c_void); +} extern "C" { pub fn igColorTooltip(text: *const cty::c_char, col: *const f32, flags: ImGuiColorEditFlags); } @@ -10605,7 +11765,7 @@ extern "C" { overlay_text: *const cty::c_char, scale_min: f32, scale_max: f32, - frame_size: ImVec2, + size_arg: ImVec2, ) -> cty::c_int; } extern "C" { @@ -10631,6 +11791,17 @@ extern "C" { clamp: bool, ); } +extern "C" { + pub fn igShadeVertsTransformPos( + draw_list: *mut ImDrawList, + vert_start_idx: cty::c_int, + vert_end_idx: cty::c_int, + pivot_in: ImVec2, + cos_a: f32, + sin_a: f32, + pivot_out: ImVec2, + ); +} extern "C" { pub fn igGcCompactTransientMiscBuffers(); } @@ -10641,7 +11812,12 @@ extern "C" { pub fn igGcAwakeTransientWindowBuffers(window: *mut ImGuiWindow); } extern "C" { - pub fn igDebugLog(fmt: *const cty::c_char, ...); + pub fn igDebugAllocHook( + info: *mut ImGuiDebugAllocInfo, + frame_count: cty::c_int, + ptr: *mut cty::c_void, + size: usize, + ); } extern "C" { pub fn igErrorCheckEndFrameRecover( @@ -10658,6 +11834,21 @@ extern "C" { extern "C" { pub fn igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); } +extern "C" { + pub fn igDebugDrawCursorPos(col: ImU32); +} +extern "C" { + pub fn igDebugDrawLineExtents(col: ImU32); +} +extern "C" { + pub fn igDebugDrawItemRect(col: ImU32); +} +extern "C" { + pub fn igDebugTextUnformattedWithLocateItem( + line_begin: *const cty::c_char, + line_end: *const cty::c_char, + ); +} extern "C" { pub fn igDebugLocateItem(target_id: ImGuiID); } @@ -10668,10 +11859,19 @@ extern "C" { pub fn igDebugLocateItemResolveWithLastItem(); } extern "C" { - pub fn igDebugDrawItemRect(col: ImU32); + pub fn igDebugBreakClearData(); } extern "C" { - pub fn igDebugStartItemPicker(); + pub fn igDebugBreakButton( + label: *const cty::c_char, + description_of_location: *const cty::c_char, + ) -> bool; +} +extern "C" { + pub fn igDebugBreakButtonTooltip( + keyboard_only: bool, + description_of_location: *const cty::c_char, + ); } extern "C" { pub fn igShowFontAtlas(atlas: *mut ImFontAtlas); @@ -10728,6 +11928,12 @@ extern "C" { extern "C" { pub fn igDebugNodeInputTextState(state: *mut ImGuiInputTextState); } +extern "C" { + pub fn igDebugNodeTypingSelectState(state: *mut ImGuiTypingSelectState); +} +extern "C" { + pub fn igDebugNodeMultiSelectState(state: *mut ImGuiMultiSelectState); +} extern "C" { pub fn igDebugNodeWindow(window: *mut ImGuiWindow, label: *const cty::c_char); } @@ -10747,6 +11953,13 @@ extern "C" { extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } +extern "C" { + pub fn igDebugNodePlatformMonitor( + monitor: *mut ImGuiPlatformMonitor, + label: *const cty::c_char, + idx: cty::c_int, + ); +} extern "C" { pub fn igDebugRenderKeyboardPreview(draw_list: *mut ImDrawList); } @@ -10758,7 +11971,7 @@ extern "C" { ); } extern "C" { - pub fn igIsKeyPressedMap(key: ImGuiKey, repeat: bool) -> bool; + pub fn igImFontAtlasUpdateConfigDataPointers(atlas: *mut ImFontAtlas); } extern "C" { pub fn igImFontAtlasBuildInit(atlas: *mut ImFontAtlas); diff --git a/imgui-sys/src/freetype_bindings.rs b/imgui-sys/src/freetype_bindings.rs index 6c63a91..a4ac598 100644 --- a/imgui-sys/src/freetype_bindings.rs +++ b/imgui-sys/src/freetype_bindings.rs @@ -97,13 +97,18 @@ pub struct ImFontBuilderIO { pub struct ImGuiContext { _unused: [u8; 0], } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -111,15 +116,19 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -132,15 +141,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImU32 = cty::c_uint; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -183,47 +187,66 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -234,7 +257,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -243,18 +268,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -264,6 +291,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -273,10 +301,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -287,80 +316,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -375,14 +332,19 @@ pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -390,7 +352,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -406,19 +370,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -492,106 +457,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -599,6 +571,7 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576; pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152; pub type ImGuiConfigFlags_ = cty::c_uint; @@ -641,27 +614,30 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 38; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 39; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 40; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 41; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 42; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 43; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 44; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 45; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 46; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 47; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 48; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 49; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 50; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 51; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 52; -pub const ImGuiCol_COUNT: ImGuiCol_ = 53; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; +pub const ImGuiCol_TextLink: ImGuiCol_ = 49; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 50; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 51; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 52; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 53; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 54; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 55; +pub const ImGuiCol_COUNT: ImGuiCol_ = 56; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -686,16 +662,23 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 33; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -732,6 +715,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -751,12 +735,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -789,9 +886,16 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, pub MouseCursorScale: f32, @@ -800,7 +904,12 @@ pub struct ImGuiStyle { pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 53usize], + pub Colors: [ImVec4; 56usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -845,13 +954,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -860,6 +962,7 @@ pub struct ImGuiIO { pub DisplayFramebufferScale: ImVec2, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -867,22 +970,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -895,21 +998,19 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -921,6 +1022,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceSqr: [f32; 5usize], @@ -944,6 +1047,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1006,56 +1110,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1214,11 +1268,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1235,6 +1291,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1399,6 +1572,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1430,13 +1619,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1446,25 +1647,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1480,10 +1669,11 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, + pub OwnerViewport: *mut ImGuiViewport, } impl Default for ImDrawData { fn default() -> Self { @@ -1513,6 +1703,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1782,7 +1973,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1807,11 +2000,13 @@ pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewport { + pub ID: ImGuiID, pub Flags: ImGuiViewportFlags, pub Pos: ImVec2, pub Size: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, + pub PlatformHandle: *mut cty::c_void, pub PlatformHandleRaw: *mut cty::c_void, } impl Default for ImGuiViewport { @@ -1824,6 +2019,38 @@ impl Default for ImGuiViewport { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, +} +impl Default for ImGuiPlatformIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiPlatformImeData { pub WantVisible: bool, @@ -1874,6 +2101,9 @@ extern "C" { extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -1899,7 +2129,7 @@ extern "C" { pub fn igShowDebugLogWindow(p_open: *mut bool); } extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } extern "C" { pub fn igShowAboutWindow(p_open: *mut bool); @@ -1938,16 +2168,16 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } extern "C" { @@ -2036,18 +2266,6 @@ extern "C" { extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} extern "C" { pub fn igGetScrollX() -> f32; } @@ -2099,20 +2317,20 @@ extern "C" { extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} extern "C" { pub fn igPopStyleVar(count: cty::c_int); } extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } extern "C" { pub fn igPushItemWidth(item_width: f32); @@ -2148,11 +2366,41 @@ extern "C" { pub fn igGetColorU32_Vec4(col: ImVec4) -> ImU32; } extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} extern "C" { pub fn igSeparator(); } @@ -2180,33 +2428,6 @@ extern "C" { extern "C" { pub fn igEndGroup(); } -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} extern "C" { pub fn igAlignTextToFramePadding(); } @@ -2249,6 +2470,9 @@ extern "C" { extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -2270,6 +2494,9 @@ extern "C" { extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2319,10 +2546,16 @@ extern "C" { extern "C" { pub fn igBullet(); } +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -2333,7 +2566,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -2368,17 +2601,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -2894,6 +3126,9 @@ extern "C" { extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -2910,6 +3145,22 @@ extern "C" { size: ImVec2, ) -> bool; } +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2926,17 +3177,16 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -3044,7 +3294,7 @@ extern "C" { ) -> bool; } extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } extern "C" { pub fn igEndTooltip(); @@ -3052,6 +3302,12 @@ extern "C" { extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -3101,7 +3357,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -3130,11 +3386,14 @@ extern "C" { extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} extern "C" { pub fn igTableHeadersRow(); } extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } extern "C" { pub fn igTableGetSortSpecs() -> *mut ImGuiTableSortSpecs; @@ -3157,11 +3416,14 @@ extern "C" { extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } extern "C" { pub fn igNextColumn(); @@ -3272,6 +3534,9 @@ extern "C" { extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -3323,9 +3588,6 @@ extern "C" { extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } -extern "C" { - pub fn igSetItemAllowOverlap(); -} extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } @@ -3359,12 +3621,6 @@ extern "C" { extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -extern "C" { - pub fn igEndChildFrame(); -} extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -3409,6 +3665,9 @@ extern "C" { extern "C" { pub fn igIsKeyReleased(key: ImGuiKey) -> bool; } +extern "C" { + pub fn igIsKeyChordPressed(key_chord: ImGuiKeyChord) -> bool; +} extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -3418,6 +3677,15 @@ extern "C" { extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } +extern "C" { + pub fn igShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +extern "C" { + pub fn igSetItemKeyOwner(key: ImGuiKey); +} extern "C" { pub fn igIsMouseDown(button: ImGuiMouseButton) -> bool; } @@ -3487,6 +3755,12 @@ extern "C" { extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +extern "C" { + pub fn igDebugStartItemPicker(); +} extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -3498,6 +3772,9 @@ extern "C" { sz_drawidx: usize, ) -> bool; } +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -3518,6 +3795,18 @@ extern "C" { extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -3540,7 +3829,10 @@ extern "C" { pub fn ImGuiIO_AddMouseButtonEvent(self_: *mut ImGuiIO, button: cty::c_int, down: bool); } extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } extern "C" { pub fn ImGuiIO_AddFocusEvent(self_: *mut ImGuiIO, focused: bool); @@ -3567,11 +3859,14 @@ extern "C" { pub fn ImGuiIO_SetAppAcceptingEvents(self_: *mut ImGuiIO, accepting_events: bool); } extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -3626,18 +3921,6 @@ extern "C" { extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -3734,7 +4017,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -3743,13 +4026,13 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } extern "C" { @@ -3812,10 +4095,10 @@ extern "C" { ) -> *mut *mut cty::c_void; } extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } extern "C" { pub fn ImGuiListClipper_ImGuiListClipper() -> *mut ImGuiListClipper; @@ -3837,12 +4120,21 @@ extern "C" { pub fn ImGuiListClipper_Step(self_: *mut ImGuiListClipper) -> bool; } extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -3872,6 +4164,66 @@ extern "C" { extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -4061,6 +4413,27 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -4083,24 +4456,6 @@ extern "C" { cpu_fine_clip_rect: *const ImVec4, ); } -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -4124,6 +4479,32 @@ extern "C" { num_segments: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -4175,6 +4556,9 @@ extern "C" { extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -4202,6 +4586,17 @@ extern "C" { a_max_of_12: cty::c_int, ); } +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -4321,6 +4716,9 @@ extern "C" { extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -4356,6 +4754,9 @@ extern "C" { extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -4445,7 +4846,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -4455,7 +4856,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -4696,15 +5097,18 @@ extern "C" { extern "C" { pub fn ImGuiViewport_GetWorkCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport); } +extern "C" { + pub fn ImGuiPlatformIO_ImGuiPlatformIO() -> *mut ImGuiPlatformIO; +} +extern "C" { + pub fn ImGuiPlatformIO_destroy(self_: *mut ImGuiPlatformIO); +} extern "C" { pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData; } extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } -extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; -} extern "C" { pub fn ImGuiFreeType_GetBuilderForFreeType() -> *const ImFontBuilderIO; } diff --git a/imgui-sys/src/wasm_bindings.rs b/imgui-sys/src/wasm_bindings.rs index 5e56d00..0799b82 100644 --- a/imgui-sys/src/wasm_bindings.rs +++ b/imgui-sys/src/wasm_bindings.rs @@ -97,13 +97,18 @@ pub struct ImFontBuilderIO { pub struct ImGuiContext { _unused: [u8; 0], } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -111,15 +116,19 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -132,15 +141,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImU32 = cty::c_uint; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -183,47 +187,66 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -234,7 +257,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -243,18 +268,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -264,6 +291,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -273,10 +301,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -287,80 +316,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -375,14 +332,19 @@ pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -390,7 +352,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -406,19 +370,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -492,106 +457,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -599,6 +571,7 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576; pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152; pub type ImGuiConfigFlags_ = cty::c_uint; @@ -641,27 +614,30 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 38; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 39; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 40; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 41; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 42; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 43; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 44; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 45; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 46; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 47; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 48; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 49; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 50; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 51; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 52; -pub const ImGuiCol_COUNT: ImGuiCol_ = 53; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; +pub const ImGuiCol_TextLink: ImGuiCol_ = 49; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 50; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 51; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 52; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 53; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 54; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 55; +pub const ImGuiCol_COUNT: ImGuiCol_ = 56; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -686,16 +662,23 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 33; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -732,6 +715,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -751,12 +735,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -789,9 +886,16 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, pub MouseCursorScale: f32, @@ -800,7 +904,12 @@ pub struct ImGuiStyle { pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 53usize], + pub Colors: [ImVec4; 56usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -845,13 +954,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -860,6 +962,7 @@ pub struct ImGuiIO { pub DisplayFramebufferScale: ImVec2, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -867,22 +970,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -895,21 +998,19 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -921,6 +1022,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceSqr: [f32; 5usize], @@ -944,6 +1047,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1006,56 +1110,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1214,11 +1268,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1235,6 +1291,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1399,6 +1572,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1430,13 +1619,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1446,25 +1647,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1480,10 +1669,11 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, + pub OwnerViewport: *mut ImGuiViewport, } impl Default for ImDrawData { fn default() -> Self { @@ -1513,6 +1703,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1782,7 +1973,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1807,11 +2000,13 @@ pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewport { + pub ID: ImGuiID, pub Flags: ImGuiViewportFlags, pub Pos: ImVec2, pub Size: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, + pub PlatformHandle: *mut cty::c_void, pub PlatformHandleRaw: *mut cty::c_void, } impl Default for ImGuiViewport { @@ -1824,6 +2019,38 @@ impl Default for ImGuiViewport { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, +} +impl Default for ImGuiPlatformIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiPlatformImeData { pub WantVisible: bool, @@ -1875,6 +2102,10 @@ extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -1908,7 +2139,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -1959,8 +2190,8 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -1968,8 +2199,8 @@ extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -2086,22 +2317,6 @@ extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetScrollX() -> f32; } @@ -2170,24 +2385,24 @@ extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igPopStyleVar(count: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -2235,13 +2450,53 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSeparator(); } @@ -2278,42 +2533,6 @@ extern "C" { pub fn igEndGroup(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAlignTextToFramePadding(); } @@ -2369,6 +2588,10 @@ extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -2397,6 +2620,10 @@ extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2457,10 +2684,18 @@ extern "C" { pub fn igBullet(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -2472,7 +2707,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -2512,17 +2747,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -3098,6 +3332,10 @@ extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -3116,6 +3354,26 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -3135,17 +3393,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -3270,7 +3527,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3281,6 +3538,14 @@ extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -3341,7 +3606,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -3377,12 +3642,16 @@ extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3413,12 +3682,16 @@ extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3561,6 +3834,10 @@ extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -3629,10 +3906,6 @@ extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetItemAllowOverlap(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } @@ -3677,14 +3950,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igEndChildFrame(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -3737,6 +4002,10 @@ extern "C" { pub fn igIsKeyReleased(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed(key_chord: ImGuiKeyChord) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -3749,6 +4018,18 @@ extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner(key: ImGuiKey); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown(button: ImGuiMouseButton) -> bool; } @@ -3841,6 +4122,14 @@ extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugStartItemPicker(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -3853,6 +4142,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -3877,6 +4170,22 @@ extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -3906,7 +4215,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3940,13 +4253,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -4016,22 +4333,6 @@ extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -4152,7 +4453,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -4163,14 +4464,14 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -4247,11 +4548,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -4279,13 +4580,24 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -4323,6 +4635,78 @@ extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -4543,6 +4927,29 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -4567,26 +4974,6 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -4612,6 +4999,35 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -4670,6 +5086,10 @@ extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -4700,6 +5120,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -4843,6 +5275,10 @@ extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -4884,6 +5320,10 @@ extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -4994,7 +5434,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -5005,7 +5445,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -5293,6 +5733,14 @@ extern "C" { pub fn ImGuiViewport_GetWorkCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPlatformIO_ImGuiPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPlatformIO_destroy(self_: *mut ImGuiPlatformIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData; } @@ -5301,10 +5749,6 @@ extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igLogText(fmt: *const cty::c_char, ...); } diff --git a/imgui-sys/src/wasm_docking_bindings.rs b/imgui-sys/src/wasm_docking_bindings.rs index f853ce1..e5cc2f6 100644 --- a/imgui-sys/src/wasm_docking_bindings.rs +++ b/imgui-sys/src/wasm_docking_bindings.rs @@ -82,59 +82,16 @@ where } } } -pub type __off_t = cty::c_long; -pub type __off64_t = cty::c_long; -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = cty::c_void; +pub type __int64_t = cty::c_longlong; +pub type __darwin_off_t = __int64_t; +pub type fpos_t = __darwin_off_t; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct _IO_FILE { - pub _flags: cty::c_int, - pub _IO_read_ptr: *mut cty::c_char, - pub _IO_read_end: *mut cty::c_char, - pub _IO_read_base: *mut cty::c_char, - pub _IO_write_base: *mut cty::c_char, - pub _IO_write_ptr: *mut cty::c_char, - pub _IO_write_end: *mut cty::c_char, - pub _IO_buf_base: *mut cty::c_char, - pub _IO_buf_end: *mut cty::c_char, - pub _IO_save_base: *mut cty::c_char, - pub _IO_backup_base: *mut cty::c_char, - pub _IO_save_end: *mut cty::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: cty::c_int, - pub _flags2: cty::c_int, - pub _old_offset: __off_t, - pub _cur_column: cty::c_ushort, - pub _vtable_offset: cty::c_schar, - pub _shortbuf: [cty::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut cty::c_void, - pub __pad5: usize, - pub _mode: cty::c_int, - pub _unused2: [cty::c_char; 20usize], +pub struct __sbuf { + pub _base: *mut cty::c_uchar, + pub _size: cty::c_int, } -impl Default for _IO_FILE { +impl Default for __sbuf { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -145,6 +102,59 @@ impl Default for _IO_FILE { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct __sFILEX { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct __sFILE { + pub _p: *mut cty::c_uchar, + pub _r: cty::c_int, + pub _w: cty::c_int, + pub _flags: cty::c_short, + pub _file: cty::c_short, + pub _bf: __sbuf, + pub _lbfsize: cty::c_int, + pub _cookie: *mut cty::c_void, + pub _close: ::core::option::Option cty::c_int>, + pub _read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *mut cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _seek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: fpos_t, arg3: cty::c_int) -> fpos_t, + >, + pub _write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *const cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _ub: __sbuf, + pub _extra: *mut __sFILEX, + pub _ur: cty::c_int, + pub _ubuf: [cty::c_uchar; 3usize], + pub _nbuf: [cty::c_uchar; 1usize], + pub _lb: __sbuf, + pub _blksize: cty::c_int, + pub _offset: fpos_t, +} +impl Default for __sFILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type FILE = __sFILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct ImGuiDockRequest { _unused: [u8; 0], } @@ -154,6 +164,11 @@ pub struct ImGuiDockNodeSettings { _unused: [u8; 0], } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct STB_TexteditState { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_const_charPtr { pub Size: cty::c_int, @@ -169,13 +184,20 @@ impl Default for ImVector_const_charPtr { } } } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImS32 = cty::c_int; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; +pub type ImU64 = cty::c_ulonglong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -183,6 +205,7 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; @@ -190,9 +213,12 @@ pub type ImGuiDockNodeFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -205,18 +231,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImS32 = cty::c_int; -pub type ImU32 = cty::c_uint; -pub type ImS64 = cty::c_longlong; -pub type ImU64 = cty::c_ulonglong; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -259,15 +277,13 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 2097152; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 524288; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; @@ -275,33 +291,54 @@ pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub const ImGuiWindowFlags_DockNodeHost: ImGuiWindowFlags_ = 536870912; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -312,7 +349,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -321,18 +360,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -342,6 +383,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -351,10 +393,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -365,80 +408,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -455,22 +426,28 @@ pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; pub const ImGuiDockNodeFlags_KeepAliveOnly: ImGuiDockNodeFlags_ = 1; -pub const ImGuiDockNodeFlags_NoDockingInCentralNode: ImGuiDockNodeFlags_ = 4; +pub const ImGuiDockNodeFlags_NoDockingOverCentralNode: ImGuiDockNodeFlags_ = 4; pub const ImGuiDockNodeFlags_PassthruCentralNode: ImGuiDockNodeFlags_ = 8; -pub const ImGuiDockNodeFlags_NoSplit: ImGuiDockNodeFlags_ = 16; +pub const ImGuiDockNodeFlags_NoDockingSplit: ImGuiDockNodeFlags_ = 16; pub const ImGuiDockNodeFlags_NoResize: ImGuiDockNodeFlags_ = 32; pub const ImGuiDockNodeFlags_AutoHideTabBar: ImGuiDockNodeFlags_ = 64; +pub const ImGuiDockNodeFlags_NoUndocking: ImGuiDockNodeFlags_ = 128; pub type ImGuiDockNodeFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -478,7 +455,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -494,19 +473,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -580,106 +560,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -687,7 +674,8 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; -pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 128; pub const ImGuiConfigFlags_ViewportsEnable: ImGuiConfigFlags_ = 1024; pub const ImGuiConfigFlags_DpiEnableScaleViewports: ImGuiConfigFlags_ = 16384; pub const ImGuiConfigFlags_DpiEnableScaleFonts: ImGuiConfigFlags_ = 32768; @@ -736,29 +724,32 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_DockingPreview: ImGuiCol_ = 38; -pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 39; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 49; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 50; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 51; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 52; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 53; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 54; -pub const ImGuiCol_COUNT: ImGuiCol_ = 55; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_DockingPreview: ImGuiCol_ = 40; +pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 41; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 42; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 43; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 44; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 45; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 46; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 47; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 48; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 49; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 50; +pub const ImGuiCol_TextLink: ImGuiCol_ = 51; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 52; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 53; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 54; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 55; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 56; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 57; +pub const ImGuiCol_COUNT: ImGuiCol_ = 58; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -783,16 +774,24 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_DockingSeparatorSize: ImGuiStyleVar_ = 33; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 34; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -829,6 +828,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -848,12 +848,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -886,18 +999,31 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, + pub DockingSeparatorSize: f32, pub MouseCursorScale: f32, pub AntiAliasedLines: bool, pub AntiAliasedLinesUseTex: bool, pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 55usize], + pub Colors: [ImVec4; 58usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -942,13 +1068,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -965,6 +1084,7 @@ pub struct ImGuiIO { pub ConfigViewportsNoDefaultParent: bool, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -972,22 +1092,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -1000,22 +1120,20 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub MouseHoveredViewport: ImGuiID, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -1027,6 +1145,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1051,6 +1171,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1095,6 +1216,7 @@ impl Default for ImGuiSizeCallbackData { pub struct ImGuiWindowClass { pub ClassId: ImGuiID, pub ParentViewportId: ImGuiID, + pub FocusRouteParentWindowId: ImGuiID, pub ViewportFlagsOverrideSet: ImGuiViewportFlags, pub ViewportFlagsOverrideClear: ImGuiViewportFlags, pub TabItemFlagsOverrideSet: ImGuiTabItemFlags, @@ -1125,56 +1247,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1333,11 +1405,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1354,6 +1428,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1518,6 +1709,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1549,13 +1756,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1565,25 +1784,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1599,7 +1806,7 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, @@ -1633,6 +1840,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1902,7 +2110,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1929,10 +2139,11 @@ pub const ImGuiViewportFlags_NoFocusOnAppearing: ImGuiViewportFlags_ = 32; pub const ImGuiViewportFlags_NoFocusOnClick: ImGuiViewportFlags_ = 64; pub const ImGuiViewportFlags_NoInputs: ImGuiViewportFlags_ = 128; pub const ImGuiViewportFlags_NoRendererClear: ImGuiViewportFlags_ = 256; -pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 512; -pub const ImGuiViewportFlags_Minimized: ImGuiViewportFlags_ = 1024; -pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 2048; -pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 512; +pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 1024; +pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 2048; +pub const ImGuiViewportFlags_IsMinimized: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_IsFocused: ImGuiViewportFlags_ = 8192; pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -1999,6 +2210,25 @@ impl Default for ImVector_ImGuiViewportPtr { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, pub Platform_CreateWindow: ::core::option::Option, pub Platform_DestroyWindow: ::core::option::Option, @@ -2033,6 +2263,8 @@ pub struct ImGuiPlatformIO { ::core::option::Option f32>, pub Platform_OnChangedViewport: ::core::option::Option, + pub Platform_GetWindowWorkAreaInsets: + ::core::option::Option ImVec4>, pub Platform_CreateVkSurface: ::core::option::Option< unsafe extern "C" fn( vp: *mut ImGuiViewport, @@ -2065,13 +2297,23 @@ impl Default for ImGuiPlatformIO { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiPlatformMonitor { pub MainPos: ImVec2, pub MainSize: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, pub DpiScale: f32, + pub PlatformHandle: *mut cty::c_void, +} +impl Default for ImGuiPlatformMonitor { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2084,8 +2326,7 @@ pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiDebugLogFlags = cty::c_int; -pub type ImGuiInputFlags = cty::c_int; -pub type ImGuiItemFlags = cty::c_int; +pub type ImGuiFocusRequestFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -2096,73 +2337,11 @@ pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; +pub type ImGuiTypingSelectFlags = cty::c_int; +pub type ImGuiWindowRefreshFlags = cty::c_int; pub type ImGuiErrorLogCallback = ::core::option::Option< unsafe extern "C" fn(user_data: *mut cty::c_void, fmt: *const cty::c_char, ...), >; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoRecord { - pub where_: cty::c_int, - pub insert_length: cty::c_int, - pub delete_length: cty::c_int, - pub char_storage: cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoState { - pub undo_rec: [StbUndoRecord; 99usize], - pub undo_char: [ImWchar; 999usize], - pub undo_point: cty::c_short, - pub redo_point: cty::c_short, - pub undo_char_point: cty::c_int, - pub redo_char_point: cty::c_int, -} -impl Default for StbUndoState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct STB_TexteditState { - pub cursor: cty::c_int, - pub select_start: cty::c_int, - pub select_end: cty::c_int, - pub insert_mode: cty::c_uchar, - pub row_count_per_page: cty::c_int, - pub cursor_at_end_of_line: cty::c_uchar, - pub initialized: cty::c_uchar, - pub has_preferred_x: cty::c_uchar, - pub single_line: cty::c_uchar, - pub padding1: cty::c_uchar, - pub padding2: cty::c_uchar, - pub padding3: cty::c_uchar, - pub preferred_x: f32, - pub undostate: StbUndoState, -} -impl Default for STB_TexteditState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] -pub struct StbTexteditRow { - pub x0: f32, - pub x1: f32, - pub baseline_y_delta: f32, - pub ymin: f32, - pub ymax: f32, - pub num_chars: cty::c_int, -} pub type ImFileHandle = *mut FILE; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2181,6 +2360,7 @@ pub struct ImRect { pub Min: ImVec2, pub Max: ImVec2, } +pub type ImBitArrayPtr = *mut ImU32; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImBitVector { @@ -2233,6 +2413,7 @@ pub struct ImDrawListSharedData { pub TexUvWhitePixel: ImVec2, pub Font: *mut ImFont, pub FontSize: f32, + pub FontScale: f32, pub CurveTessellationTol: f32, pub CircleSegmentMaxError: f32, pub ClipRectFullscreen: ImVec4, @@ -2254,24 +2435,9 @@ impl Default for ImDrawListSharedData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImDrawListPtr { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut *mut ImDrawList, -} -impl Default for ImVector_ImDrawListPtr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImDrawDataBuilder { - pub Layers: [ImVector_ImDrawListPtr; 2usize], + pub Layers: [*mut ImVector_ImDrawListPtr; 2usize], + pub LayerData1: ImVector_ImDrawListPtr, } impl Default for ImDrawDataBuilder { fn default() -> Self { @@ -2282,18 +2448,49 @@ impl Default for ImDrawDataBuilder { } } } -pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; -pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; -pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 2; -pub const ImGuiItemFlags_Disabled: ImGuiItemFlags_ = 4; -pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 8; -pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; -pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; -pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; -pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; -pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlags_ = 256; -pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 1024; -pub type ImGuiItemFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataVarInfo { + pub Type: ImGuiDataType, + pub Count: ImU32, + pub Offset: ImU32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeStorage { + pub Data: [ImU8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeInfo { + pub Size: usize, + pub Name: *const cty::c_char, + pub PrintFmt: *const cty::c_char, + pub ScanFmt: *const cty::c_char, +} +impl Default for ImGuiDataTypeInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 12; +pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 13; +pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 14; +pub type ImGuiDataTypePrivate_ = cty::c_uint; +pub const ImGuiItemFlags_Disabled: ImGuiItemFlagsPrivate_ = 1024; +pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlagsPrivate_ = 2048; +pub const ImGuiItemFlags_MixedValue: ImGuiItemFlagsPrivate_ = 4096; +pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlagsPrivate_ = 8192; +pub const ImGuiItemFlags_AllowOverlap: ImGuiItemFlagsPrivate_ = 16384; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlagsPrivate_ = 1048576; +pub const ImGuiItemFlags_HasSelectionUserData: ImGuiItemFlagsPrivate_ = 2097152; +pub const ImGuiItemFlags_IsMultiSelect: ImGuiItemFlagsPrivate_ = 4194304; +pub const ImGuiItemFlags_Default_: ImGuiItemFlagsPrivate_ = 16; +pub type ImGuiItemFlagsPrivate_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2303,12 +2500,18 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 256; +pub const ImGuiItemStatusFlags_HasClipRect: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_HasShortcut: ImGuiItemStatusFlags_ = 1024; pub type ImGuiItemStatusFlags_ = cty::c_uint; +pub const ImGuiHoveredFlags_DelayMask_: ImGuiHoveredFlagsPrivate_ = 245760; +pub const ImGuiHoveredFlags_AllowedMaskForIsWindowHovered: ImGuiHoveredFlagsPrivate_ = 12479; +pub const ImGuiHoveredFlags_AllowedMaskForIsItemHovered: ImGuiHoveredFlagsPrivate_ = 262048; +pub type ImGuiHoveredFlagsPrivate_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; pub const ImGuiInputTextFlags_MergedItem: ImGuiInputTextFlagsPrivate_ = 268435456; +pub const ImGuiInputTextFlags_LocalizeDecimalPoint: ImGuiInputTextFlagsPrivate_ = 536870912; pub type ImGuiInputTextFlagsPrivate_ = cty::c_uint; pub const ImGuiButtonFlags_PressedOnClick: ImGuiButtonFlagsPrivate_ = 16; pub const ImGuiButtonFlags_PressedOnClickRelease: ImGuiButtonFlagsPrivate_ = 32; @@ -2318,7 +2521,7 @@ pub const ImGuiButtonFlags_PressedOnDoubleClick: ImGuiButtonFlagsPrivate_ = 256; pub const ImGuiButtonFlags_PressedOnDragDropHold: ImGuiButtonFlagsPrivate_ = 512; pub const ImGuiButtonFlags_Repeat: ImGuiButtonFlagsPrivate_ = 1024; pub const ImGuiButtonFlags_FlattenChildren: ImGuiButtonFlagsPrivate_ = 2048; -pub const ImGuiButtonFlags_AllowItemOverlap: ImGuiButtonFlagsPrivate_ = 4096; +pub const ImGuiButtonFlags_AllowOverlap: ImGuiButtonFlagsPrivate_ = 4096; pub const ImGuiButtonFlags_DontClosePopups: ImGuiButtonFlagsPrivate_ = 8192; pub const ImGuiButtonFlags_AlignTextBaseLine: ImGuiButtonFlagsPrivate_ = 32768; pub const ImGuiButtonFlags_NoKeyModifiers: ImGuiButtonFlagsPrivate_ = 65536; @@ -2344,18 +2547,24 @@ pub const ImGuiSelectableFlags_SetNavIdOnHover: ImGuiSelectableFlagsPrivate_ = 3 pub const ImGuiSelectableFlags_NoPadWithHalfSpacing: ImGuiSelectableFlagsPrivate_ = 67108864; pub const ImGuiSelectableFlags_NoSetKeyOwner: ImGuiSelectableFlagsPrivate_ = 134217728; pub type ImGuiSelectableFlagsPrivate_ = cty::c_uint; -pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 1048576; +pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 268435456; +pub const ImGuiTreeNodeFlags_UpsideDownArrow: ImGuiTreeNodeFlagsPrivate_ = 536870912; +pub const ImGuiTreeNodeFlags_OpenOnMask_: ImGuiTreeNodeFlagsPrivate_ = 192; pub type ImGuiTreeNodeFlagsPrivate_ = cty::c_uint; pub const ImGuiSeparatorFlags_None: ImGuiSeparatorFlags_ = 0; pub const ImGuiSeparatorFlags_Horizontal: ImGuiSeparatorFlags_ = 1; pub const ImGuiSeparatorFlags_Vertical: ImGuiSeparatorFlags_ = 2; pub const ImGuiSeparatorFlags_SpanAllColumns: ImGuiSeparatorFlags_ = 4; pub type ImGuiSeparatorFlags_ = cty::c_uint; +pub const ImGuiFocusRequestFlags_None: ImGuiFocusRequestFlags_ = 0; +pub const ImGuiFocusRequestFlags_RestoreFocusedChild: ImGuiFocusRequestFlags_ = 1; +pub const ImGuiFocusRequestFlags_UnlessBelowModal: ImGuiFocusRequestFlags_ = 2; +pub type ImGuiFocusRequestFlags_ = cty::c_uint; pub const ImGuiTextFlags_None: ImGuiTextFlags_ = 0; pub const ImGuiTextFlags_NoWidthForLargeClippedText: ImGuiTextFlags_ = 1; pub type ImGuiTextFlags_ = cty::c_uint; pub const ImGuiTooltipFlags_None: ImGuiTooltipFlags_ = 0; -pub const ImGuiTooltipFlags_OverridePreviousTooltip: ImGuiTooltipFlags_ = 1; +pub const ImGuiTooltipFlags_OverridePrevious: ImGuiTooltipFlags_ = 2; pub type ImGuiTooltipFlags_ = cty::c_uint; pub const ImGuiLayoutType_Horizontal: ImGuiLayoutType_ = 0; pub const ImGuiLayoutType_Vertical: ImGuiLayoutType_ = 1; @@ -2373,36 +2582,6 @@ pub type ImGuiAxis = cty::c_int; pub const ImGuiPlotType_Lines: ImGuiPlotType = 0; pub const ImGuiPlotType_Histogram: ImGuiPlotType = 1; pub type ImGuiPlotType = cty::c_uint; -pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; -pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; -pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; -pub type ImGuiPopupPositionPolicy = cty::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeTempStorage { - pub Data: [ImU8; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeInfo { - pub Size: usize, - pub Name: *const cty::c_char, - pub PrintFmt: *const cty::c_char, - pub ScanFmt: *const cty::c_char, -} -impl Default for ImGuiDataTypeInfo { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 11; -pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 12; -pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 13; -pub type ImGuiDataTypePrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiColorMod { @@ -2469,6 +2648,7 @@ pub struct ImGuiGroupData { pub WindowID: ImGuiID, pub BackupCursorPos: ImVec2, pub BackupCursorMaxPos: ImVec2, + pub BackupCursorPosPrevLine: ImVec2, pub BackupIndent: ImVec1, pub BackupGroupOffset: ImVec1, pub BackupCurrLineSize: ImVec2, @@ -2476,6 +2656,7 @@ pub struct ImGuiGroupData { pub BackupActiveIdIsAlive: ImGuiID, pub BackupActiveIdPreviousFrameIsAlive: bool, pub BackupHoveredIdIsAlive: bool, + pub BackupIsSameLine: bool, pub EmitItem: bool, } #[repr(C)] @@ -2491,24 +2672,41 @@ pub struct ImGuiMenuColumns { pub Widths: [ImU16; 4usize], } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiInputTextDeactivatedState { + pub ID: ImGuiID, + pub TextA: ImVector_char, +} +impl Default for ImGuiInputTextDeactivatedState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ImStbTexteditState = STB_TexteditState; +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputTextState { pub Ctx: *mut ImGuiContext, + pub Stb: *mut ImStbTexteditState, pub ID: ImGuiID, - pub CurLenW: cty::c_int, pub CurLenA: cty::c_int, - pub TextW: ImVector_ImWchar, pub TextA: ImVector_char, pub InitialTextA: ImVector_char, - pub TextAIsValid: bool, + pub CallbackTextBackup: ImVector_char, pub BufCapacityA: cty::c_int, - pub ScrollX: f32, - pub Stb: STB_TexteditState, + pub Scroll: ImVec2, pub CursorAnim: f32, pub CursorFollow: bool, pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, + pub ReloadUserBuf: bool, + pub ReloadSelectionStart: cty::c_int, + pub ReloadSelectionEnd: cty::c_int, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2519,27 +2717,11 @@ impl Default for ImGuiInputTextState { } } } -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiPopupData { - pub PopupId: ImGuiID, - pub Window: *mut ImGuiWindow, - pub BackupNavWindow: *mut ImGuiWindow, - pub ParentNavLayer: cty::c_int, - pub OpenFrameCount: cty::c_int, - pub OpenParentId: ImGuiID, - pub OpenPopupPos: ImVec2, - pub OpenMousePos: ImVec2, -} -impl Default for ImGuiPopupData { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} +pub const ImGuiWindowRefreshFlags_None: ImGuiWindowRefreshFlags_ = 0; +pub const ImGuiWindowRefreshFlags_TryToAvoidRefresh: ImGuiWindowRefreshFlags_ = 1; +pub const ImGuiWindowRefreshFlags_RefreshOnHover: ImGuiWindowRefreshFlags_ = 2; +pub const ImGuiWindowRefreshFlags_RefreshOnFocus: ImGuiWindowRefreshFlags_ = 4; +pub type ImGuiWindowRefreshFlags_ = cty::c_uint; pub const ImGuiNextWindowDataFlags_None: ImGuiNextWindowDataFlags_ = 0; pub const ImGuiNextWindowDataFlags_HasPos: ImGuiNextWindowDataFlags_ = 1; pub const ImGuiNextWindowDataFlags_HasSize: ImGuiNextWindowDataFlags_ = 2; @@ -2549,9 +2731,11 @@ pub const ImGuiNextWindowDataFlags_HasSizeConstraint: ImGuiNextWindowDataFlags_ pub const ImGuiNextWindowDataFlags_HasFocus: ImGuiNextWindowDataFlags_ = 32; pub const ImGuiNextWindowDataFlags_HasBgAlpha: ImGuiNextWindowDataFlags_ = 64; pub const ImGuiNextWindowDataFlags_HasScroll: ImGuiNextWindowDataFlags_ = 128; -pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 256; -pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 512; -pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasChildFlags: ImGuiNextWindowDataFlags_ = 256; +pub const ImGuiNextWindowDataFlags_HasRefreshPolicy: ImGuiNextWindowDataFlags_ = 512; +pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 2048; +pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 4096; pub type ImGuiNextWindowDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -2566,6 +2750,7 @@ pub struct ImGuiNextWindowData { pub SizeVal: ImVec2, pub ContentSizeVal: ImVec2, pub ScrollVal: ImVec2, + pub ChildFlags: ImGuiChildFlags, pub PosUndock: bool, pub CollapsedVal: bool, pub SizeConstraintRect: ImRect, @@ -2576,6 +2761,7 @@ pub struct ImGuiNextWindowData { pub DockId: ImGuiID, pub WindowClass: ImGuiWindowClass, pub MenuBarOffsetMinVal: ImVec2, + pub RefreshFlagsVal: ImGuiWindowRefreshFlags, } impl Default for ImGuiNextWindowData { fn default() -> Self { @@ -2589,15 +2775,24 @@ impl Default for ImGuiNextWindowData { pub const ImGuiNextItemDataFlags_None: ImGuiNextItemDataFlags_ = 0; pub const ImGuiNextItemDataFlags_HasWidth: ImGuiNextItemDataFlags_ = 1; pub const ImGuiNextItemDataFlags_HasOpen: ImGuiNextItemDataFlags_ = 2; +pub const ImGuiNextItemDataFlags_HasShortcut: ImGuiNextItemDataFlags_ = 4; +pub const ImGuiNextItemDataFlags_HasRefVal: ImGuiNextItemDataFlags_ = 8; +pub const ImGuiNextItemDataFlags_HasStorageID: ImGuiNextItemDataFlags_ = 16; pub type ImGuiNextItemDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiNextItemData { pub Flags: ImGuiNextItemDataFlags, - pub Width: f32, + pub ItemFlags: ImGuiItemFlags, pub FocusScopeId: ImGuiID, - pub OpenCond: ImGuiCond, + pub SelectionUserData: ImGuiSelectionUserData, + pub Width: f32, + pub Shortcut: ImGuiKeyChord, + pub ShortcutFlags: ImGuiInputFlags, pub OpenVal: bool, + pub OpenCond: ImU8, + pub RefVal: ImGuiDataTypeStorage, + pub StorageId: ImGuiID, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2608,6 +2803,16 @@ pub struct ImGuiLastItemData { pub Rect: ImRect, pub NavRect: ImRect, pub DisplayRect: ImRect, + pub ClipRect: ImRect, + pub Shortcut: ImGuiKeyChord, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct ImGuiTreeNodeStackData { + pub ID: ImGuiID, + pub TreeFlags: ImGuiTreeNodeFlags, + pub InFlags: ImGuiItemFlags, + pub NavRect: ImRect, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2628,6 +2833,7 @@ pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, pub StackSizesOnBegin: ImGuiStackSizes, + pub DisabledOverrideReenable: bool, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2660,6 +2866,37 @@ impl Default for ImGuiPtrOrIndex { } } } +pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; +pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; +pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; +pub type ImGuiPopupPositionPolicy = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiPopupData { + pub PopupId: ImGuiID, + pub Window: *mut ImGuiWindow, + pub RestoreNavWindow: *mut ImGuiWindow, + pub ParentNavLayer: cty::c_int, + pub OpenFrameCount: cty::c_int, + pub OpenParentId: ImGuiID, + pub OpenPopupPos: ImVec2, + pub OpenMousePos: ImVec2, +} +impl Default for ImGuiPopupData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN { + pub Storage: [ImU32; 5usize], +} +pub type ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN; pub const ImGuiInputEventType_None: ImGuiInputEventType = 0; pub const ImGuiInputEventType_MousePos: ImGuiInputEventType = 1; pub const ImGuiInputEventType_MouseWheel: ImGuiInputEventType = 2; @@ -2674,27 +2911,55 @@ pub const ImGuiInputSource_None: ImGuiInputSource = 0; pub const ImGuiInputSource_Mouse: ImGuiInputSource = 1; pub const ImGuiInputSource_Keyboard: ImGuiInputSource = 2; pub const ImGuiInputSource_Gamepad: ImGuiInputSource = 3; -pub const ImGuiInputSource_Clipboard: ImGuiInputSource = 4; -pub const ImGuiInputSource_Nav: ImGuiInputSource = 5; -pub const ImGuiInputSource_COUNT: ImGuiInputSource = 6; +pub const ImGuiInputSource_COUNT: ImGuiInputSource = 4; pub type ImGuiInputSource = cty::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMousePos { pub PosX: f32, pub PosY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMousePos { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMouseWheel { pub WheelX: f32, pub WheelY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseWheel { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputEventMouseButton { pub Button: cty::c_int, pub Down: bool, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseButton { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2732,6 +2997,7 @@ pub struct ImGuiInputEventAppFocused { pub struct ImGuiInputEvent { pub Type: ImGuiInputEventType, pub Source: ImGuiInputSource, + pub EventId: ImU32, pub __bindgen_anon_1: ImGuiInputEvent__bindgen_ty_1, pub AddedByTestEngine: bool, } @@ -2771,7 +3037,7 @@ impl Default for ImGuiInputEvent { } impl ::core::fmt::Debug for ImGuiInputEvent { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . __bindgen_anon_1 , self . AddedByTestEngine) + write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, EventId: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . EventId , self . __bindgen_anon_1 , self . AddedByTestEngine) } } pub type ImGuiKeyRoutingIndex = ImS16; @@ -2780,6 +3046,7 @@ pub type ImGuiKeyRoutingIndex = ImS16; pub struct ImGuiKeyRoutingData { pub NextEntryIndex: ImGuiKeyRoutingIndex, pub Mods: ImU16, + pub RoutingCurrScore: ImU8, pub RoutingNextScore: ImU8, pub RoutingCurr: ImGuiID, pub RoutingNext: ImGuiID, @@ -2803,7 +3070,7 @@ impl Default for ImVector_ImGuiKeyRoutingData { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiKeyRoutingTable { - pub Index: [ImGuiKeyRoutingIndex; 140usize], + pub Index: [ImGuiKeyRoutingIndex; 154usize], pub Entries: ImVector_ImGuiKeyRoutingData, pub EntriesNext: ImVector_ImGuiKeyRoutingData, } @@ -2824,31 +3091,31 @@ pub struct ImGuiKeyOwnerData { pub LockThisFrame: bool, pub LockUntilRelease: bool, } -pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; -pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; -pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlags_ = 2; -pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlags_ = 4; -pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlags_ = 8; -pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlags_ = 14; -pub const ImGuiInputFlags_CondHovered: ImGuiInputFlags_ = 16; -pub const ImGuiInputFlags_CondActive: ImGuiInputFlags_ = 32; -pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_CondMask_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlags_ = 64; -pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlags_ = 128; -pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 256; -pub const ImGuiInputFlags_RouteGlobalLow: ImGuiInputFlags_ = 512; -pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 1024; -pub const ImGuiInputFlags_RouteGlobalHigh: ImGuiInputFlags_ = 2048; -pub const ImGuiInputFlags_RouteMask_: ImGuiInputFlags_ = 3840; -pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 4096; -pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 8192; -pub const ImGuiInputFlags_RouteExtraMask_: ImGuiInputFlags_ = 12288; -pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlags_ = 15; -pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlags_ = 16143; -pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlags_ = 192; -pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlags_ = 240; -pub type ImGuiInputFlags_ = cty::c_uint; +pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlagsPrivate_ = 2; +pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlagsPrivate_ = 4; +pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlagsPrivate_ = 8; +pub const ImGuiInputFlags_RepeatUntilRelease: ImGuiInputFlagsPrivate_ = 16; +pub const ImGuiInputFlags_RepeatUntilKeyModsChange: ImGuiInputFlagsPrivate_ = 32; +pub const ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone: ImGuiInputFlagsPrivate_ = 64; +pub const ImGuiInputFlags_RepeatUntilOtherKeyPress: ImGuiInputFlagsPrivate_ = 128; +pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlagsPrivate_ = 1048576; +pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlagsPrivate_ = 2097152; +pub const ImGuiInputFlags_CondHovered: ImGuiInputFlagsPrivate_ = 4194304; +pub const ImGuiInputFlags_CondActive: ImGuiInputFlagsPrivate_ = 8388608; +pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlagsPrivate_ = 14; +pub const ImGuiInputFlags_RepeatUntilMask_: ImGuiInputFlagsPrivate_ = 240; +pub const ImGuiInputFlags_RepeatMask_: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_CondMask_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RouteTypeMask_: ImGuiInputFlagsPrivate_ = 15360; +pub const ImGuiInputFlags_RouteOptionsMask_: ImGuiInputFlagsPrivate_ = 245760; +pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_SupportedByIsMouseClicked: ImGuiInputFlagsPrivate_ = 1; +pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlagsPrivate_ = 261375; +pub const ImGuiInputFlags_SupportedBySetNextItemShortcut: ImGuiInputFlagsPrivate_ = 523519; +pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlagsPrivate_ = 3145728; +pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlagsPrivate_ = 15728640; +pub type ImGuiInputFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiListClipperRange { @@ -2896,6 +3163,8 @@ pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub const ImGuiActivateFlags_FromTabbing: ImGuiActivateFlags_ = 8; +pub const ImGuiActivateFlags_FromShortcut: ImGuiActivateFlags_ = 16; pub type ImGuiActivateFlags_ = cty::c_uint; pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; @@ -2909,8 +3178,7 @@ pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; -pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; -pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; +pub const ImGuiNavHighlightFlags_Compact: ImGuiNavHighlightFlags_ = 2; pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; @@ -2919,15 +3187,19 @@ pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; pub const ImGuiNavMoveFlags_LoopY: ImGuiNavMoveFlags_ = 2; pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; +pub const ImGuiNavMoveFlags_WrapMask_: ImGuiNavMoveFlags_ = 15; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; -pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; -pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; -pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_IsTabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_IsPageMove: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_NoSelect: ImGuiNavMoveFlags_ = 8192; +pub const ImGuiNavMoveFlags_NoSetNavHighlight: ImGuiNavMoveFlags_ = 16384; +pub const ImGuiNavMoveFlags_NoClearActiveId: ImGuiNavMoveFlags_ = 32768; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -2944,6 +3216,7 @@ pub struct ImGuiNavItemData { pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, + pub SelectionUserData: ImGuiSelectionUserData, } impl Default for ImGuiNavItemData { fn default() -> Self { @@ -2954,6 +3227,54 @@ impl Default for ImGuiNavItemData { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiFocusScopeData { + pub ID: ImGuiID, + pub WindowID: ImGuiID, +} +pub const ImGuiTypingSelectFlags_None: ImGuiTypingSelectFlags_ = 0; +pub const ImGuiTypingSelectFlags_AllowBackspace: ImGuiTypingSelectFlags_ = 1; +pub const ImGuiTypingSelectFlags_AllowSingleCharMode: ImGuiTypingSelectFlags_ = 2; +pub type ImGuiTypingSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTypingSelectRequest { + pub Flags: ImGuiTypingSelectFlags, + pub SearchBufferLen: cty::c_int, + pub SearchBuffer: *const cty::c_char, + pub SelectRequest: bool, + pub SingleCharMode: bool, + pub SingleCharSize: ImS8, +} +impl Default for ImGuiTypingSelectRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiTypingSelectState { + pub Request: ImGuiTypingSelectRequest, + pub SearchBuffer: [cty::c_char; 64usize], + pub FocusScope: ImGuiID, + pub LastRequestFrame: cty::c_int, + pub LastRequestTime: f32, + pub SingleCharModeLock: bool, +} +impl Default for ImGuiTypingSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiOldColumnFlags_None: ImGuiOldColumnFlags_ = 0; pub const ImGuiOldColumnFlags_NoBorder: ImGuiOldColumnFlags_ = 1; pub const ImGuiOldColumnFlags_NoResize: ImGuiOldColumnFlags_ = 2; @@ -3015,25 +3336,125 @@ impl Default for ImGuiOldColumns { } } } +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiBoxSelectState { + pub ID: ImGuiID, + pub IsActive: bool, + pub IsStarting: bool, + pub IsStartedFromVoid: bool, + pub IsStartedSetNavIdOnce: bool, + pub RequestClear: bool, + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub StartPosRel: ImVec2, + pub EndPosRel: ImVec2, + pub ScrollAccum: ImVec2, + pub Window: *mut ImGuiWindow, + pub UnclipMode: bool, + pub UnclipRect: ImRect, + pub BoxSelectRectPrev: ImRect, + pub BoxSelectRectCurr: ImRect, +} +impl Default for ImGuiBoxSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl ImGuiBoxSelectState { + #[inline] + pub fn KeyMods(&self) -> ImGuiKeyChord { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_KeyMods(&mut self, val: ImGuiKeyChord) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(KeyMods: ImGuiKeyChord) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let KeyMods: u32 = unsafe { ::core::mem::transmute(KeyMods) }; + KeyMods as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiMultiSelectTempData { + pub IO: ImGuiMultiSelectIO, + pub Storage: *mut ImGuiMultiSelectState, + pub FocusScopeId: ImGuiID, + pub Flags: ImGuiMultiSelectFlags, + pub ScopeRectMin: ImVec2, + pub BackupCursorMaxPos: ImVec2, + pub LastSubmittedItem: ImGuiSelectionUserData, + pub BoxSelectId: ImGuiID, + pub KeyMods: ImGuiKeyChord, + pub LoopRequestSetAll: ImS8, + pub IsEndIO: bool, + pub IsFocused: bool, + pub IsKeyboardSetRange: bool, + pub NavIdPassedBy: bool, + pub RangeSrcPassedBy: bool, + pub RangeDstPassedBy: bool, +} +impl Default for ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectState { + pub Window: *mut ImGuiWindow, + pub ID: ImGuiID, + pub LastFrameActive: cty::c_int, + pub LastSelectionSize: cty::c_int, + pub RangeSelected: ImS8, + pub NavIdSelected: ImS8, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, +} +impl Default for ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiDockNodeFlags_DockSpace: ImGuiDockNodeFlagsPrivate_ = 1024; pub const ImGuiDockNodeFlags_CentralNode: ImGuiDockNodeFlagsPrivate_ = 2048; pub const ImGuiDockNodeFlags_NoTabBar: ImGuiDockNodeFlagsPrivate_ = 4096; pub const ImGuiDockNodeFlags_HiddenTabBar: ImGuiDockNodeFlagsPrivate_ = 8192; pub const ImGuiDockNodeFlags_NoWindowMenuButton: ImGuiDockNodeFlagsPrivate_ = 16384; pub const ImGuiDockNodeFlags_NoCloseButton: ImGuiDockNodeFlagsPrivate_ = 32768; -pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 65536; -pub const ImGuiDockNodeFlags_NoDockingSplitMe: ImGuiDockNodeFlagsPrivate_ = 131072; -pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 262144; -pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 524288; -pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 1048576; -pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 2097152; -pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 4194304; -pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 8388608; +pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 65536; +pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 131072; +pub const ImGuiDockNodeFlags_DockedWindowsInFocusRoute: ImGuiDockNodeFlagsPrivate_ = 262144; +pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 524288; +pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 1048576; +pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 2097152; +pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 4194304; +pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 7864336; pub const ImGuiDockNodeFlags_SharedFlagsInheritMask_: ImGuiDockNodeFlagsPrivate_ = -1; -pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12582944; -pub const ImGuiDockNodeFlags_LocalFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12713072; -pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 12712048; -pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12712992; +pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 196640; +pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 260208; +pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 261152; pub type ImGuiDockNodeFlagsPrivate_ = cty::c_int; pub const ImGuiDataAuthority_Auto: ImGuiDataAuthority_ = 0; pub const ImGuiDataAuthority_DockNode: ImGuiDataAuthority_ = 1; @@ -3090,9 +3511,10 @@ pub struct ImGuiDockNode { pub LastFocusedNodeId: ImGuiID, pub SelectedTabId: ImGuiID, pub WantCloseTabId: ImGuiID, + pub RefViewportId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: u8, + pub __bindgen_padding_0: [u8; 5usize], } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3338,17 +3760,19 @@ impl ImGuiDockNode { } } pub const ImGuiWindowDockStyleCol_Text: ImGuiWindowDockStyleCol = 0; -pub const ImGuiWindowDockStyleCol_Tab: ImGuiWindowDockStyleCol = 1; -pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 2; -pub const ImGuiWindowDockStyleCol_TabActive: ImGuiWindowDockStyleCol = 3; -pub const ImGuiWindowDockStyleCol_TabUnfocused: ImGuiWindowDockStyleCol = 4; -pub const ImGuiWindowDockStyleCol_TabUnfocusedActive: ImGuiWindowDockStyleCol = 5; -pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 1; +pub const ImGuiWindowDockStyleCol_TabFocused: ImGuiWindowDockStyleCol = 2; +pub const ImGuiWindowDockStyleCol_TabSelected: ImGuiWindowDockStyleCol = 3; +pub const ImGuiWindowDockStyleCol_TabSelectedOverline: ImGuiWindowDockStyleCol = 4; +pub const ImGuiWindowDockStyleCol_TabDimmed: ImGuiWindowDockStyleCol = 5; +pub const ImGuiWindowDockStyleCol_TabDimmedSelected: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabDimmedSelectedOverline: ImGuiWindowDockStyleCol = 7; +pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 8; pub type ImGuiWindowDockStyleCol = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiWindowDockStyle { - pub Colors: [ImU32; 6usize], + pub Colors: [ImU32; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3403,26 +3827,28 @@ impl Default for ImGuiDockContext { #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewportP { pub _ImGuiViewport: ImGuiViewport, + pub Window: *mut ImGuiWindow, pub Idx: cty::c_int, pub LastFrameActive: cty::c_int, - pub LastFrontMostStampCount: cty::c_int, + pub LastFocusedStampCount: cty::c_int, pub LastNameHash: ImGuiID, pub LastPos: ImVec2, + pub LastSize: ImVec2, pub Alpha: f32, pub LastAlpha: f32, + pub LastFocusedHadNavWindow: bool, pub PlatformMonitor: cty::c_short, - pub Window: *mut ImGuiWindow, - pub DrawListsLastFrame: [cty::c_int; 2usize], - pub DrawLists: [*mut ImDrawList; 2usize], + pub BgFgDrawListsLastFrame: [cty::c_int; 2usize], + pub BgFgDrawLists: [*mut ImDrawList; 2usize], pub DrawDataP: ImDrawData, pub DrawDataBuilder: ImDrawDataBuilder, pub LastPlatformPos: ImVec2, pub LastPlatformSize: ImVec2, pub LastRendererSize: ImVec2, - pub WorkOffsetMin: ImVec2, - pub WorkOffsetMax: ImVec2, - pub BuildWorkOffsetMin: ImVec2, - pub BuildWorkOffsetMax: ImVec2, + pub WorkInsetMin: ImVec2, + pub WorkInsetMax: ImVec2, + pub BuildWorkInsetMin: ImVec2, + pub BuildWorkInsetMax: ImVec2, } impl Default for ImGuiViewportP { fn default() -> Self { @@ -3445,7 +3871,9 @@ pub struct ImGuiWindowSettings { pub ClassId: ImGuiID, pub DockOrder: cty::c_short, pub Collapsed: bool, + pub IsChild: bool, pub WantApply: bool, + pub WantDelete: bool, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3494,15 +3922,20 @@ impl Default for ImGuiSettingsHandler { } } } -pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 0; -pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 1; -pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 2; -pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 3; -pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 4; -pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 5; -pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 6; -pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 7; -pub const ImGuiLocKey_COUNT: ImGuiLocKey = 8; +pub const ImGuiLocKey_VersionStr: ImGuiLocKey = 0; +pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 1; +pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 2; +pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 3; +pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 4; +pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 5; +pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 6; +pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 7; +pub const ImGuiLocKey_OpenLink_s: ImGuiLocKey = 8; +pub const ImGuiLocKey_CopyLink: ImGuiLocKey = 9; +pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 10; +pub const ImGuiLocKey_DockingHoldShiftToDock: ImGuiLocKey = 11; +pub const ImGuiLocKey_DockingDragToUndockOrMoveNode: ImGuiLocKey = 12; +pub const ImGuiLocKey_COUNT: ImGuiLocKey = 13; pub type ImGuiLocKey = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3525,25 +3958,47 @@ pub const ImGuiDebugLogFlags_EventFocus: ImGuiDebugLogFlags_ = 2; pub const ImGuiDebugLogFlags_EventPopup: ImGuiDebugLogFlags_ = 4; pub const ImGuiDebugLogFlags_EventNav: ImGuiDebugLogFlags_ = 8; pub const ImGuiDebugLogFlags_EventClipper: ImGuiDebugLogFlags_ = 16; -pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 32; -pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 64; -pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 128; -pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 255; -pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1024; +pub const ImGuiDebugLogFlags_EventSelection: ImGuiDebugLogFlags_ = 32; +pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 64; +pub const ImGuiDebugLogFlags_EventInputRouting: ImGuiDebugLogFlags_ = 128; +pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 256; +pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 512; +pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 1023; +pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1048576; +pub const ImGuiDebugLogFlags_OutputToTestEngine: ImGuiDebugLogFlags_ = 2097152; pub type ImGuiDebugLogFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocEntry { + pub FrameCount: cty::c_int, + pub AllocCount: ImS16, + pub FreeCount: ImS16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocInfo { + pub TotalAllocCount: cty::c_int, + pub TotalFreeCount: cty::c_int, + pub LastEntriesIdx: ImS16, + pub LastEntriesBuf: [ImGuiDebugAllocEntry; 6usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { pub ShowDebugLog: bool, - pub ShowStackTool: bool, + pub ShowIDStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, pub ShowDrawCmdMesh: bool, pub ShowDrawCmdBoundingBoxes: bool, + pub ShowTextEncodingViewer: bool, + pub ShowAtlasTintedWithTextColor: bool, pub ShowDockingNodes: bool, pub ShowWindowsRectsType: cty::c_int, pub ShowTablesRectsType: cty::c_int, + pub HighlightMonitorIdx: cty::c_int, + pub HighlightViewportID: ImGuiID, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3604,7 +4059,7 @@ impl Default for ImVector_ImGuiStackLevelInfo { } #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiStackTool { +pub struct ImGuiIDStackTool { pub LastActiveFrame: cty::c_int, pub StackLevel: cty::c_int, pub QueryId: ImGuiID, @@ -3612,7 +4067,7 @@ pub struct ImGuiStackTool { pub CopyToClipboardOnCtrlC: bool, pub CopyToClipboardLastTime: f32, } -impl Default for ImGuiStackTool { +impl Default for ImGuiIDStackTool { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3717,12 +4172,12 @@ impl Default for ImVector_ImGuiStyleMod { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImGuiID { +pub struct ImVector_ImGuiFocusScopeData { pub Size: cty::c_int, pub Capacity: cty::c_int, - pub Data: *mut ImGuiID, + pub Data: *mut ImGuiFocusScopeData, } -impl Default for ImVector_ImGuiID { +impl Default for ImVector_ImGuiFocusScopeData { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3781,6 +4236,22 @@ impl Default for ImVector_ImGuiPopupData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTreeNodeStackData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTreeNodeStackData, +} +impl Default for ImVector_ImGuiTreeNodeStackData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiViewportPPtr { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -3943,6 +4414,71 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectTempData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectTempData, +} +impl Default for ImVector_ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectState { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectState, +} +impl Default for ImVector_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImPool_ImGuiMultiSelectState { + pub Buf: ImVector_ImGuiMultiSelectState, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +impl Default for ImPool_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiID { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiID, +} +impl Default for ImVector_ImGuiID { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiSettingsHandler { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -4008,14 +4544,14 @@ pub struct ImGuiContext { pub FontAtlasOwnedByContext: bool, pub IO: ImGuiIO, pub PlatformIO: ImGuiPlatformIO, - pub InputEventsQueue: ImVector_ImGuiInputEvent, - pub InputEventsTrail: ImVector_ImGuiInputEvent, pub Style: ImGuiStyle, pub ConfigFlagsCurrFrame: ImGuiConfigFlags, pub ConfigFlagsLastFrame: ImGuiConfigFlags, pub Font: *mut ImFont, pub FontSize: f32, pub FontBaseSize: f32, + pub FontScale: f32, + pub CurrentDpiScale: f32, pub DrawListSharedData: ImDrawListSharedData, pub Time: f64, pub FrameCount: cty::c_int, @@ -4028,6 +4564,11 @@ pub struct ImGuiContext { pub GcCompactAll: bool, pub TestEngineHookItems: bool, pub TestEngine: *mut cty::c_void, + pub ContextName: [cty::c_char; 16usize], + pub InputEventsQueue: ImVector_ImGuiInputEvent, + pub InputEventsTrail: ImVector_ImGuiInputEvent, + pub InputEventsNextMouseSource: ImGuiMouseSource, + pub InputEventsNextEventId: ImU32, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, pub WindowsTempSortBuffer: ImVector_ImGuiWindowPtr, @@ -4035,23 +4576,29 @@ pub struct ImGuiContext { pub WindowsById: ImGuiStorage, pub WindowsActiveCount: cty::c_int, pub WindowsHoverPadding: ImVec2, + pub DebugBreakInWindow: ImGuiID, pub CurrentWindow: *mut ImGuiWindow, pub HoveredWindow: *mut ImGuiWindow, pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow, + pub HoveredWindowBeforeClear: *mut ImGuiWindow, pub MovingWindow: *mut ImGuiWindow, pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowStartFrame: cty::c_int, + pub WheelingWindowScrolledFrame: cty::c_int, pub WheelingWindowReleaseTimer: f32, pub WheelingWindowWheelRemainder: ImVec2, pub WheelingAxisAvg: ImVec2, + pub DebugDrawIdConflicts: ImGuiID, pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, - pub HoveredIdAllowOverlap: bool, - pub HoveredIdDisabled: bool, + pub HoveredIdPreviousFrameItemCount: cty::c_int, pub HoveredIdTimer: f32, pub HoveredIdNotActiveTimer: f32, + pub HoveredIdAllowOverlap: bool, + pub HoveredIdIsDisabled: bool, + pub ItemUnclipByLog: bool, pub ActiveId: ImGuiID, pub ActiveIdIsAlive: ImGuiID, pub ActiveIdTimer: f32, @@ -4061,59 +4608,69 @@ pub struct ImGuiContext { pub ActiveIdHasBeenPressedBefore: bool, pub ActiveIdHasBeenEditedBefore: bool, pub ActiveIdHasBeenEditedThisFrame: bool, + pub ActiveIdFromShortcut: bool, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub ActiveIdClickOffset: ImVec2, pub ActiveIdWindow: *mut ImGuiWindow, pub ActiveIdSource: ImGuiInputSource, - pub ActiveIdMouseButton: cty::c_int, pub ActiveIdPreviousFrame: ImGuiID, pub ActiveIdPreviousFrameIsAlive: bool, pub ActiveIdPreviousFrameHasBeenEditedBefore: bool, pub ActiveIdPreviousFrameWindow: *mut ImGuiWindow, pub LastActiveId: ImGuiID, pub LastActiveIdTimer: f32, - pub KeysOwnerData: [ImGuiKeyOwnerData; 140usize], + pub LastKeyModsChangeTime: f64, + pub LastKeyModsChangeFromNoneTime: f64, + pub LastKeyboardKeyPressTime: f64, + pub KeysMayBeCharInput: ImBitArrayForNamedKeys, + pub KeysOwnerData: [ImGuiKeyOwnerData; 154usize], pub KeysRoutingTable: ImGuiKeyRoutingTable, pub ActiveIdUsingNavDirMask: ImU32, pub ActiveIdUsingAllKeyboardKeys: bool, - pub ActiveIdUsingNavInputMask: ImU32, + pub DebugBreakInShortcutRouting: ImGuiKeyChord, pub CurrentFocusScopeId: ImGuiID, pub CurrentItemFlags: ImGuiItemFlags, pub DebugLocateId: ImGuiID, pub NextItemData: ImGuiNextItemData, pub LastItemData: ImGuiLastItemData, pub NextWindowData: ImGuiNextWindowData, + pub DebugShowGroupRects: bool, + pub DebugFlashStyleColorIdx: ImGuiCol, pub ColorStack: ImVector_ImGuiColorMod, pub StyleVarStack: ImVector_ImGuiStyleMod, pub FontStack: ImVector_ImFontPtr, - pub FocusScopeStack: ImVector_ImGuiID, + pub FocusScopeStack: ImVector_ImGuiFocusScopeData, pub ItemFlagsStack: ImVector_ImGuiItemFlags, pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, - pub BeginMenuCount: cty::c_int, + pub TreeNodeStack: ImVector_ImGuiTreeNodeStackData, pub Viewports: ImVector_ImGuiViewportPPtr, - pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, pub MouseViewport: *mut ImGuiViewportP, pub MouseLastHoveredViewport: *mut ImGuiViewportP, pub PlatformLastFocusedViewportId: ImGuiID, pub FallbackMonitor: ImGuiPlatformMonitor, - pub ViewportFrontMostStampCount: cty::c_int, + pub PlatformMonitorsFullWorkRect: ImRect, + pub ViewportCreatedCount: cty::c_int, + pub PlatformWindowsCreatedCount: cty::c_int, + pub ViewportFocusedStampCount: cty::c_int, pub NavWindow: *mut ImGuiWindow, pub NavId: ImGuiID, pub NavFocusScopeId: ImGuiID, + pub NavLayer: ImGuiNavLayer, pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavActivateInputId: ImGuiID, pub NavActivateFlags: ImGuiActivateFlags, - pub NavJustMovedToId: ImGuiID, - pub NavJustMovedToFocusScopeId: ImGuiID, - pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavFocusRoute: ImVector_ImGuiFocusScopeData, + pub NavHighlightActivatedId: ImGuiID, + pub NavHighlightActivatedTimer: f32, pub NavNextActivateId: ImGuiID, pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavLayer: ImGuiNavLayer, + pub NavLastValidSelectionUserData: ImGuiSelectionUserData, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -4121,8 +4678,7 @@ pub struct ImGuiContext { pub NavAnyRequest: bool, pub NavInitRequest: bool, pub NavInitRequestFromMove: bool, - pub NavInitResultId: ImGuiID, - pub NavInitResultRectRel: ImRect, + pub NavInitResult: ImGuiNavItemData, pub NavMoveSubmitted: bool, pub NavMoveScoringItems: bool, pub NavMoveForwardToNextFrame: bool, @@ -4141,6 +4697,12 @@ pub struct ImGuiContext { pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, pub NavTabbingResultFirst: ImGuiNavItemData, + pub NavJustMovedFromFocusScopeId: ImGuiID, + pub NavJustMovedToId: ImGuiID, + pub NavJustMovedToFocusScopeId: ImGuiID, + pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavJustMovedToIsTabbing: bool, + pub NavJustMovedToHasSelectionData: bool, pub ConfigNavWindowingKeyNext: ImGuiKeyChord, pub ConfigNavWindowingKeyPrev: ImGuiKeyChord, pub NavWindowingTarget: *mut ImGuiWindow, @@ -4149,10 +4711,10 @@ pub struct ImGuiContext { pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, + pub NavWindowingToggleKey: ImGuiKey, pub NavWindowingAccumDeltaPos: ImVec2, pub NavWindowingAccumDeltaSize: ImVec2, pub DimBgRatio: f32, - pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, pub DragDropWithinSource: bool, pub DragDropWithinTarget: bool, @@ -4161,6 +4723,7 @@ pub struct ImGuiContext { pub DragDropMouseButton: cty::c_int, pub DragDropPayload: ImGuiPayload, pub DragDropTargetRect: ImRect, + pub DragDropTargetClipRect: ImRect, pub DragDropTargetId: ImGuiID, pub DragDropAcceptFlags: ImGuiDragDropFlags, pub DragDropAcceptIdCurrRectSurface: f32, @@ -4173,6 +4736,7 @@ pub struct ImGuiContext { pub ClipperTempDataStacked: cty::c_int, pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, + pub DebugBreakInTable: ImGuiID, pub TablesTempDataStacked: cty::c_int, pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, @@ -4182,37 +4746,63 @@ pub struct ImGuiContext { pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub HoverDelayId: ImGuiID, - pub HoverDelayIdPreviousFrame: ImGuiID, - pub HoverDelayTimer: f32, - pub HoverDelayClearTimer: f32, + pub BoxSelectState: ImGuiBoxSelectState, + pub CurrentMultiSelect: *mut ImGuiMultiSelectTempData, + pub MultiSelectTempDataStacked: cty::c_int, + pub MultiSelectTempData: ImVector_ImGuiMultiSelectTempData, + pub MultiSelectStorage: ImPool_ImGuiMultiSelectState, + pub HoverItemDelayId: ImGuiID, + pub HoverItemDelayIdPreviousFrame: ImGuiID, + pub HoverItemDelayTimer: f32, + pub HoverItemDelayClearTimer: f32, + pub HoverItemUnlockedStationaryId: ImGuiID, + pub HoverWindowUnlockedStationaryId: ImGuiID, + pub MouseCursor: ImGuiMouseCursor, + pub MouseStationaryTimer: f32, pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, + pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, + pub DataTypeZeroValue: ImGuiDataTypeStorage, + pub BeginMenuDepth: cty::c_int, + pub BeginComboDepth: cty::c_int, pub ColorEditOptions: ImGuiColorEditFlags, - pub ColorEditLastHue: f32, - pub ColorEditLastSat: f32, - pub ColorEditLastColor: ImU32, + pub ColorEditCurrentID: ImGuiID, + pub ColorEditSavedID: ImGuiID, + pub ColorEditSavedHue: f32, + pub ColorEditSavedSat: f32, + pub ColorEditSavedColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, + pub WindowResizeBorderExpectedRect: ImRect, + pub WindowResizeRelativeMode: bool, + pub ScrollbarSeekMode: cty::c_short, + pub ScrollbarClickDeltaToGrabCenter: f32, pub SliderGrabClickOffset: f32, pub SliderCurrentAccum: f32, pub SliderCurrentAccumDirty: bool, pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub ScrollbarClickDeltaToGrabCenter: f32, pub DisabledAlphaBackup: f32, pub DisabledStackSize: cty::c_short, + pub LockMarkEdited: cty::c_short, pub TooltipOverrideCount: cty::c_short, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, + pub TypingSelectState: ImGuiTypingSelectState, pub PlatformImeData: ImGuiPlatformImeData, pub PlatformImeDataPrev: ImGuiPlatformImeData, pub PlatformImeViewport: ImGuiID, - pub PlatformLocaleDecimalPoint: cty::c_char, pub DockContext: ImGuiDockContext, + pub DockNodeWindowMenuHandler: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ), + >, pub SettingsLoaded: bool, pub SettingsDirtyTimer: f32, pub SettingsIniData: ImGuiTextBuffer, @@ -4221,7 +4811,7 @@ pub struct ImGuiContext { pub SettingsTables: ImChunkStream_ImGuiTableSettings, pub Hooks: ImVector_ImGuiContextHook, pub HookIdNext: ImGuiID, - pub LocalizationTable: [*const cty::c_char; 8usize], + pub LocalizationTable: [*const cty::c_char; 13usize], pub LogEnabled: bool, pub LogType: ImGuiLogType, pub LogFile: ImFileHandle, @@ -4236,12 +4826,20 @@ pub struct ImGuiContext { pub DebugLogFlags: ImGuiDebugLogFlags, pub DebugLogBuf: ImGuiTextBuffer, pub DebugLogIndex: ImGuiTextIndex, + pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags, + pub DebugLogAutoDisableFrames: ImU8, pub DebugLocateFrames: ImU8, + pub DebugBreakInLocateId: bool, + pub DebugBreakKeyChord: ImGuiKeyChord, + pub DebugBeginReturnValueCullDepth: ImS8, pub DebugItemPickerActive: bool, pub DebugItemPickerMouseButton: ImU8, pub DebugItemPickerBreakId: ImGuiID, + pub DebugFlashStyleColorTime: f32, + pub DebugFlashStyleColorBackup: ImVec4, pub DebugMetricsConfig: ImGuiMetricsConfig, - pub DebugStackTool: ImGuiStackTool, + pub DebugIDStackTool: ImGuiIDStackTool, + pub DebugAllocInfo: ImGuiDebugAllocInfo, pub DebugHoveredDockNode: *mut ImGuiDockNode, pub FramerateSecPerFrame: [f32; 60usize], pub FramerateSecPerFrameIdx: cty::c_int, @@ -4251,6 +4849,7 @@ pub struct ImGuiContext { pub WantCaptureKeyboardNextFrame: cty::c_int, pub WantTextInputNextFrame: cty::c_int, pub TempBuffer: ImVector_char, + pub TempKeychordName: [cty::c_char; 64usize], } impl Default for ImGuiContext { fn default() -> Self { @@ -4261,6 +4860,28 @@ impl Default for ImGuiContext { } } } +impl ImGuiContext { + #[inline] + pub fn ActiveIdMouseButton(&self) -> cty::c_int { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_ActiveIdMouseButton(&mut self, val: cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(ActiveIdMouseButton: cty::c_int) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let ActiveIdMouseButton: u32 = unsafe { ::core::mem::transmute(ActiveIdMouseButton) }; + ActiveIdMouseButton as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowTempData { @@ -4282,19 +4903,21 @@ pub struct ImGuiWindowTempData { pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, + pub NavIsScrollPushableX: bool, pub NavHideHighlightOneFrame: bool, - pub NavHasScroll: bool, + pub NavWindowHasScrollY: bool, pub MenuBarAppending: bool, pub MenuBarOffset: ImVec2, pub MenuColumns: ImGuiMenuColumns, pub TreeDepth: cty::c_int, - pub TreeJumpToParentOnPopMask: ImU32, + pub TreeHasStackDataDepthMask: ImU32, pub ChildWindows: ImVector_ImGuiWindowPtr, pub StateStorage: *mut ImGuiStorage, pub CurrentColumns: *mut ImGuiOldColumns, pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, + pub ModalDimBgColor: ImU32, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, @@ -4328,10 +4951,12 @@ impl Default for ImVector_ImGuiOldColumns { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindow { + pub Ctx: *mut ImGuiContext, pub Name: *mut cty::c_char, pub ID: ImGuiID, pub Flags: ImGuiWindowFlags, pub FlagsPreviousFrame: ImGuiWindowFlags, + pub ChildFlags: ImGuiChildFlags, pub WindowClass: ImGuiWindowClass, pub Viewport: *mut ImGuiViewportP, pub ViewportId: ImGuiID, @@ -4346,6 +4971,8 @@ pub struct ImGuiWindow { pub WindowPadding: ImVec2, pub WindowRounding: f32, pub WindowBorderSize: f32, + pub TitleBarHeight: f32, + pub MenuBarHeight: f32, pub DecoOuterSizeX1: f32, pub DecoOuterSizeY1: f32, pub DecoOuterSizeX2: f32, @@ -4356,6 +4983,7 @@ pub struct ImGuiWindow { pub MoveId: ImGuiID, pub TabId: ImGuiID, pub ChildId: ImGuiID, + pub PopupId: ImGuiID, pub Scroll: ImVec2, pub ScrollMax: ImVec2, pub ScrollTarget: ImVec2, @@ -4371,21 +4999,21 @@ pub struct ImGuiWindow { pub Collapsed: bool, pub WantCollapseToggle: bool, pub SkipItems: bool, + pub SkipRefresh: bool, pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, pub IsExplicitChild: bool, pub HasCloseButton: bool, + pub ResizeBorderHovered: cty::c_schar, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, pub BeginCountPreviousFrame: cty::c_short, pub BeginOrderWithinParent: cty::c_short, pub BeginOrderWithinContext: cty::c_short, pub FocusOrder: cty::c_short, - pub PopupId: ImGuiID, pub AutoFitFramesX: ImS8, pub AutoFitFramesY: ImS8, - pub AutoFitChildAxises: ImS8, pub AutoFitOnlyGrows: bool, pub AutoPosLastDirection: ImGuiDir, pub HiddenFramesCanSkipItems: ImS8, @@ -4425,9 +5053,11 @@ pub struct ImGuiWindow { pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, + pub ParentWindowForFocusRoute: *mut ImGuiWindow, pub NavLastChildNavWindow: *mut ImGuiWindow, pub NavLastIds: [ImGuiID; 2usize], pub NavRectRel: [ImRect; 2usize], + pub NavPreferredScoringPosRel: [ImVec2; 2usize], pub NavRootFocusScopeId: ImGuiID, pub MemoryDrawListIdxCapacity: cty::c_int, pub MemoryDrawListVtxCapacity: cty::c_int, @@ -4605,7 +5235,6 @@ pub const ImGuiTabItemFlags_SectionMask_: ImGuiTabItemFlagsPrivate_ = 192; pub const ImGuiTabItemFlags_NoCloseButton: ImGuiTabItemFlagsPrivate_ = 1048576; pub const ImGuiTabItemFlags_Button: ImGuiTabItemFlagsPrivate_ = 2097152; pub const ImGuiTabItemFlags_Unsorted: ImGuiTabItemFlagsPrivate_ = 4194304; -pub const ImGuiTabItemFlags_Preview: ImGuiTabItemFlagsPrivate_ = 8388608; pub type ImGuiTabItemFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -4671,6 +5300,8 @@ pub struct ImGuiTabBar { pub ScrollingSpeed: f32, pub ScrollingRectMinX: f32, pub ScrollingRectMaxX: f32, + pub SeparatorMinX: f32, + pub SeparatorMaxX: f32, pub ReorderRequestTabId: ImGuiID, pub ReorderRequestOffset: ImS16, pub BeginCount: ImS8, @@ -4693,8 +5324,8 @@ impl Default for ImGuiTabBar { } } } -pub type ImGuiTableColumnIdx = ImS8; -pub type ImGuiTableDrawChannelIdx = ImU8; +pub type ImGuiTableColumnIdx = ImS16; +pub type ImGuiTableDrawChannelIdx = ImU16; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableColumn { @@ -4704,6 +5335,7 @@ pub struct ImGuiTableColumn { pub MaxX: f32, pub WidthRequest: f32, pub WidthAuto: f32, + pub WidthMax: f32, pub StretchWeight: f32, pub InitStretchWeightOrWidth: f32, pub ClipRect: ImRect, @@ -4804,11 +5436,22 @@ pub struct ImGuiTableCellData { pub Column: ImGuiTableColumnIdx, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableHeaderData { + pub Index: ImGuiTableColumnIdx, + pub TextColor: ImU32, + pub BgColor0: ImU32, + pub BgColor1: ImU32, +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableInstanceData { + pub TableInstanceID: ImGuiID, pub LastOuterHeight: f32, - pub LastFirstRowHeight: f32, + pub LastTopHeadersRowHeight: f32, pub LastFrozenHeight: f32, + pub HoveredRowLast: cty::c_int, + pub HoveredRowNext: cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -4897,10 +5540,9 @@ pub struct ImGuiTable { pub Columns: ImSpan_ImGuiTableColumn, pub DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx, pub RowCellData: ImSpan_ImGuiTableCellData, - pub EnabledMaskByDisplayOrder: ImU64, - pub EnabledMaskByIndex: ImU64, - pub VisibleMaskByIndex: ImU64, - pub RequestOutputMaskByIndex: ImU64, + pub EnabledMaskByDisplayOrder: ImBitArrayPtr, + pub EnabledMaskByIndex: ImBitArrayPtr, + pub VisibleMaskByIndex: ImBitArrayPtr, pub SettingsLoadedFlags: ImGuiTableFlags, pub SettingsOffset: cty::c_int, pub LastFrameActive: cty::c_int, @@ -4912,6 +5554,7 @@ pub struct ImGuiTable { pub RowPosY1: f32, pub RowPosY2: f32, pub RowMinHeight: f32, + pub RowCellPaddingY: f32, pub RowTextBaseline: f32, pub RowIndentOffsetX: f32, pub _bitfield_align_1: [u16; 0], @@ -4926,7 +5569,6 @@ pub struct ImGuiTable { pub MinColumnWidth: f32, pub OuterPaddingX: f32, pub CellPaddingX: f32, - pub CellPaddingY: f32, pub CellSpacingX1: f32, pub CellSpacingX2: f32, pub InnerWidth: f32, @@ -4936,6 +5578,8 @@ pub struct ImGuiTable { pub ResizedColumnNextWidth: f32, pub ResizeLockMinContentsX2: f32, pub RefScale: f32, + pub AngledHeadersHeight: f32, + pub AngledHeadersSlope: f32, pub OuterRect: ImRect, pub InnerRect: ImRect, pub WorkRect: ImRect, @@ -4958,8 +5602,10 @@ pub struct ImGuiTable { pub ColumnsEnabledCount: ImGuiTableColumnIdx, pub ColumnsEnabledFixedCount: ImGuiTableColumnIdx, pub DeclColumnsCount: ImGuiTableColumnIdx, + pub AngledHeadersCount: ImGuiTableColumnIdx, pub HoveredColumnBody: ImGuiTableColumnIdx, pub HoveredColumnBorder: ImGuiTableColumnIdx, + pub HighlightColumnHeader: ImGuiTableColumnIdx, pub AutoFitSingleColumn: ImGuiTableColumnIdx, pub ResizedColumn: ImGuiTableColumnIdx, pub LastResizedColumn: ImGuiTableColumnIdx, @@ -4985,6 +5631,7 @@ pub struct ImGuiTable { pub IsSortSpecsDirty: bool, pub IsUsingHeaders: bool, pub IsContextPopupOpen: bool, + pub DisableDefaultContextMenu: bool, pub IsSettingsRequestLoad: bool, pub IsSettingsDirty: bool, pub IsDefaultDisplayOrder: bool, @@ -4992,6 +5639,8 @@ pub struct ImGuiTable { pub IsResetDisplayOrderRequest: bool, pub IsUnfrozenRows: bool, pub IsDefaultSizingPolicy: bool, + pub IsActiveIdAliveBeforeTable: bool, + pub IsActiveIdInTable: bool, pub HasScrollbarYCurr: bool, pub HasScrollbarYPrev: bool, pub MemoryCompacted: bool, @@ -5047,10 +5696,28 @@ impl ImGuiTable { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTableHeaderData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTableHeaderData, +} +impl Default for ImVector_ImGuiTableHeaderData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiTableTempData { pub TableIndex: cty::c_int, pub LastTimeActive: f32, + pub AngledHeadersExtraWidth: f32, + pub AngledHeadersRequests: ImVector_ImGuiTableHeaderData, pub UserOuterSize: ImVec2, pub DrawSplitter: ImDrawListSplitter, pub HostBackupWorkRect: ImRect, @@ -5081,6 +5748,7 @@ pub struct ImGuiTableColumnSettings { pub SortOrder: ImGuiTableColumnIdx, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, } impl ImGuiTableColumnSettings { #[inline] @@ -5199,6 +5867,10 @@ extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -5232,7 +5904,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -5283,8 +5955,8 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -5292,8 +5964,8 @@ extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -5422,22 +6094,6 @@ extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetScrollX() -> f32; } @@ -5506,24 +6162,24 @@ extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igPopStyleVar(count: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -5571,13 +6227,53 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSeparator(); } @@ -5614,42 +6310,6 @@ extern "C" { pub fn igEndGroup(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAlignTextToFramePadding(); } @@ -5705,6 +6365,10 @@ extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -5733,6 +6397,10 @@ extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -5793,10 +6461,18 @@ extern "C" { pub fn igBullet(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -5808,7 +6484,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -5848,17 +6524,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -6434,6 +7109,10 @@ extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -6452,6 +7131,26 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -6471,17 +7170,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -6606,7 +7304,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6617,6 +7315,14 @@ extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -6677,7 +7383,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -6713,12 +7419,16 @@ extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6749,12 +7459,16 @@ extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6815,7 +7529,7 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockSpace( - id: ImGuiID, + dockspace_id: ImGuiID, size: ImVec2, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6824,6 +7538,7 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockSpaceOverViewport( + dockspace_id: ImGuiID, viewport: *const ImGuiViewport, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6930,6 +7645,10 @@ extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -6998,24 +7717,12 @@ extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetItemAllowOverlap(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetBackgroundDrawList_Nil() -> *mut ImDrawList; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetForegroundDrawList_Nil() -> *mut ImDrawList; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetBackgroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; + pub fn igGetBackgroundDrawList(viewport: *mut ImGuiViewport) -> *mut ImDrawList; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7054,14 +7761,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igEndChildFrame(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -7114,6 +7813,10 @@ extern "C" { pub fn igIsKeyReleased_Nil(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -7126,6 +7829,18 @@ extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut_Nil(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner_Nil(key: ImGuiKey); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown_Nil(button: ImGuiMouseButton) -> bool; } @@ -7139,7 +7854,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; + pub fn igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7218,6 +7933,14 @@ extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugStartItemPicker(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -7230,6 +7953,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -7254,10 +7981,6 @@ extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igUpdatePlatformWindows(); } @@ -7281,6 +8004,22 @@ extern "C" { pub fn igFindViewportByPlatformHandle(platform_handle: *mut cty::c_void) -> *mut ImGuiViewport; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -7310,7 +8049,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7348,13 +8091,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -7432,22 +8179,6 @@ extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -7568,7 +8299,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -7579,14 +8310,14 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -7663,11 +8394,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7695,13 +8426,24 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -7739,6 +8481,78 @@ extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -7959,6 +8773,29 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -7983,26 +8820,6 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -8028,6 +8845,35 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -8086,6 +8932,10 @@ extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -8116,6 +8966,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -8259,6 +9121,10 @@ extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -8300,6 +9166,10 @@ extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -8410,7 +9280,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8421,7 +9291,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8734,15 +9604,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; + pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImGuiID) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImU32) -> ImGuiID; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; + pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImGuiID) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -8808,10 +9674,6 @@ extern "C" { ) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImStreolRange( str_: *const cty::c_char, @@ -8819,10 +9681,6 @@ extern "C" { ) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImStrbolW(buf_mid_line: *const ImWchar, buf_begin: *const ImWchar) -> *const ImWchar; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImStristr( haystack: *const cty::c_char, @@ -8840,6 +9698,17 @@ extern "C" { pub fn igImStrSkipBlank(str_: *const cty::c_char) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImStrbol( + buf_mid_line: *const cty::c_char, + buf_begin: *const cty::c_char, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImToUpper(c: cty::c_char) -> cty::c_char; } @@ -8852,6 +9721,10 @@ extern "C" { pub fn igImCharIsBlankW(c: cty::c_uint) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImCharIsXdigitA(c: cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFormatString( buf: *mut cty::c_char, @@ -8961,6 +9834,20 @@ extern "C" { ) -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTextFindPreviousUtf8Codepoint( + in_text_start: *const cty::c_char, + in_text_curr: *const cty::c_char, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTextCountLines( + in_text: *const cty::c_char, + in_text_end: *const cty::c_char, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFileOpen(filename: *const cty::c_char, mode: *const cty::c_char) -> ImFileHandle; } @@ -9084,22 +9971,22 @@ extern "C" { pub fn igImInvLength(lhs: ImVec2, fail_value: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTrunc_Float(f: f32) -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTrunc_Vec2(pOut: *mut ImVec2, v: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFloor_Float(f: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImFloorSigned_Float(f: f32) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFloor_Vec2(pOut: *mut ImVec2, v: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImFloorSigned_Vec2(pOut: *mut ImVec2, v: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImModPositive(a: cty::c_int, b: cty::c_int) -> cty::c_int; } @@ -9116,6 +10003,10 @@ extern "C" { pub fn igImLinearSweep(current: f32, target: f32, speed: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImLinearRemapClamp(s0: f32, s1: f32, d0: f32, d1: f32, x: f32) -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } @@ -9196,7 +10087,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igImGetDirQuadrantFromDelta(dx: f32, dy: f32) -> ImGuiDir; + pub fn igImTriangleIsClockwise(a: ImVec2, b: ImVec2, c: ImVec2) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9291,6 +10182,10 @@ extern "C" { pub fn ImRect_Contains_Rect(self_: *mut ImRect, r: ImRect) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImRect_ContainsWithPad(self_: *mut ImRect, p: ImVec2, pad: ImVec2) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImRect_Overlaps(self_: *mut ImRect, r: ImRect) -> bool; } @@ -9343,6 +10238,14 @@ extern "C" { pub fn ImRect_ToVec4(pOut: *mut ImVec4, self_: *mut ImRect); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImBitArrayGetStorageSizeInBytes(bitcount: cty::c_int) -> usize; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImBitArrayClearAllBits(arr: *mut ImU32, bitcount: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImBitArrayTestBit(arr: *const ImU32, n: cty::c_int) -> bool; } @@ -9412,6 +10315,14 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImLowerBound( + in_begin: *mut ImGuiStoragePair, + in_end: *mut ImGuiStoragePair, + key: ImGuiID, + ) -> *mut ImGuiStoragePair; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawListSharedData_ImDrawListSharedData() -> *mut ImDrawListSharedData; } @@ -9428,19 +10339,18 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_Clear(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_ImDrawDataBuilder() -> *mut ImDrawDataBuilder; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_ClearFreeMemory(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_destroy(self_: *mut ImDrawDataBuilder); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_GetDrawListCount(self_: *mut ImDrawDataBuilder) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawDataBuilder_FlattenIntoSingleLayer(self_: *mut ImDrawDataBuilder); + pub fn ImGuiDataVarInfo_GetVarPtr( + self_: *mut ImGuiDataVarInfo, + parent: *mut cty::c_void, + ) -> *mut cty::c_void; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9499,9 +10409,22 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiInputTextState_ImGuiInputTextState( - ctx: *mut ImGuiContext, - ) -> *mut ImGuiInputTextState; + pub fn ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState( + ) -> *mut ImGuiInputTextDeactivatedState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextDeactivatedState_destroy(self_: *mut ImGuiInputTextDeactivatedState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextDeactivatedState_ClearFreeMemory( + self_: *mut ImGuiInputTextDeactivatedState, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_ImGuiInputTextState() -> *mut ImGuiInputTextState; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9516,18 +10439,14 @@ extern "C" { pub fn ImGuiInputTextState_ClearFreeMemory(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiInputTextState_GetUndoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiInputTextState_GetRedoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputTextState_OnKeyPressed(self_: *mut ImGuiInputTextState, key: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_OnCharPressed(self_: *mut ImGuiInputTextState, c: cty::c_uint); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputTextState_CursorAnimReset(self_: *mut ImGuiInputTextState); } @@ -9561,11 +10480,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; + pub fn ImGuiInputTextState_ReloadUserBufAndSelectAll(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); + pub fn ImGuiInputTextState_ReloadUserBufAndKeepSelection(self_: *mut ImGuiInputTextState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9609,11 +10532,14 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_SetToContextState(self_: *mut ImGuiStackSizes, ctx: *mut ImGuiContext); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_CompareWithContextState( + self_: *mut ImGuiStackSizes, + ctx: *mut ImGuiContext, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9628,6 +10554,14 @@ extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputEvent_ImGuiInputEvent() -> *mut ImGuiInputEvent; } @@ -9707,6 +10641,18 @@ extern "C" { pub fn ImGuiNavItemData_Clear(self_: *mut ImGuiNavItemData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_ImGuiTypingSelectState() -> *mut ImGuiTypingSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_destroy(self_: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_Clear(self_: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOldColumnData_ImGuiOldColumnData() -> *mut ImGuiOldColumnData; } @@ -9723,6 +10669,38 @@ extern "C" { pub fn ImGuiOldColumns_destroy(self_: *mut ImGuiOldColumns); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiBoxSelectState_ImGuiBoxSelectState() -> *mut ImGuiBoxSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiBoxSelectState_destroy(self_: *mut ImGuiBoxSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_ImGuiMultiSelectTempData() -> *mut ImGuiMultiSelectTempData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_destroy(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_Clear(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_ClearIO(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectState_ImGuiMultiSelectState() -> *mut ImGuiMultiSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectState_destroy(self_: *mut ImGuiMultiSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiDockNode_ImGuiDockNode(id: ImGuiID) -> *mut ImGuiDockNode; } @@ -9803,7 +10781,7 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectPos( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, + inset_min: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -9811,8 +10789,8 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectSize( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, - off_max: ImVec2, + inset_min: ImVec2, + inset_max: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -9853,11 +10831,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiMetricsConfig_ImGuiMetricsConfig() -> *mut ImGuiMetricsConfig; + pub fn ImGuiDebugAllocInfo_ImGuiDebugAllocInfo() -> *mut ImGuiDebugAllocInfo; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiMetricsConfig_destroy(self_: *mut ImGuiMetricsConfig); + pub fn ImGuiDebugAllocInfo_destroy(self_: *mut ImGuiDebugAllocInfo); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9869,11 +10847,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; + pub fn ImGuiIDStackTool_ImGuiIDStackTool() -> *mut ImGuiIDStackTool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); + pub fn ImGuiIDStackTool_destroy(self_: *mut ImGuiIDStackTool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9919,6 +10897,10 @@ extern "C" { pub fn ImGuiWindow_GetID_Int(self_: *mut ImGuiWindow, n: cty::c_int) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiWindow_GetIDFromPos(self_: *mut ImGuiWindow, p_abs: ImVec2) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_GetIDFromRectangle(self_: *mut ImGuiWindow, r_abs: ImRect) -> ImGuiID; } @@ -9931,18 +10913,10 @@ extern "C" { pub fn ImGuiWindow_CalcFontSize(self_: *mut ImGuiWindow) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiWindow_TitleBarHeight(self_: *mut ImGuiWindow) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_TitleBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiWindow_MenuBarHeight(self_: *mut ImGuiWindow) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_MenuBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } @@ -9963,18 +10937,6 @@ extern "C" { pub fn ImGuiTabBar_destroy(self_: *mut ImGuiTabBar); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTabBar_GetTabOrder(self_: *mut ImGuiTabBar, tab: *const ImGuiTabItem) - -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTabBar_GetTabName( - self_: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, - ) -> *const cty::c_char; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiTableColumn_ImGuiTableColumn() -> *mut ImGuiTableColumn; } @@ -10053,6 +11015,10 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igUpdateWindowSkipRefresh(window: *mut ImGuiWindow); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcWindowNextAutoFitSize(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -10104,6 +11070,17 @@ extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetWindowHiddenAndSkipItemsForCurrentFrame(window: *mut ImGuiWindow); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetWindowParentWindowForFocusRoute( + window: *mut ImGuiWindow, + parent_window: *mut ImGuiWindow, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } @@ -10113,13 +11090,23 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igFocusWindow(window: *mut ImGuiWindow); + pub fn igWindowPosAbsToRel(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igWindowPosRelToAbs(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFocusWindow(window: *mut ImGuiWindow, flags: ImGuiFocusRequestFlags); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFocusTopMostWindowUnderOne( under_this_window: *mut ImGuiWindow, ignore_window: *mut ImGuiWindow, + filter_viewport: *mut ImGuiViewport, + flags: ImGuiFocusRequestFlags, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10149,6 +11136,10 @@ extern "C" { ) -> *mut ImGuiWindow; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -10161,6 +11152,14 @@ extern "C" { pub fn igGetForegroundDrawList_WindowPtr(window: *mut ImGuiWindow) -> *mut ImDrawList; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igAddDrawListToDrawDataEx( + draw_data: *mut ImDrawData, + out_list: *mut ImVector_ImDrawListPtr, + draw_list: *mut ImDrawList, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igInitialize(); } @@ -10177,6 +11176,15 @@ extern "C" { pub fn igUpdateHoveredWindowAndCaptureFlags(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindHoveredWindowEx( + pos: ImVec2, + find_first_and_in_any_viewport: bool, + out_hovered_window: *mut *mut ImGuiWindow, + out_hovered_window_under_moving_window: *mut *mut ImGuiWindow, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igStartMouseMovingWindow(window: *mut ImGuiWindow); } @@ -10185,7 +11193,7 @@ extern "C" { pub fn igStartMouseMovingWindowOrNode( window: *mut ImGuiWindow, node: *mut ImGuiDockNode, - undock_floating_node: bool, + undock: bool, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10214,6 +11222,8 @@ extern "C" { viewport: *mut ImGuiViewportP, old_pos: ImVec2, new_pos: ImVec2, + old_size: ImVec2, + new_size: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10257,18 +11267,6 @@ extern "C" { pub fn igClearIniSettings(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igFindWindowSettings(id: ImGuiID) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igFindOrCreateWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAddSettingsHandler(handler: *const ImGuiSettingsHandler); } @@ -10281,6 +11279,22 @@ extern "C" { pub fn igFindSettingsHandler(type_name: *const cty::c_char) -> *mut ImGuiSettingsHandler; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindWindowSettingsByID(id: ImGuiID) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindWindowSettingsByWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igClearWindowSettings(name: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igLocalizeRegisterEntries(entries: *const ImGuiLocEntry, count: cty::c_int); } @@ -10383,13 +11397,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetIDWithSeed( + pub fn igGetIDWithSeed_Str( str_id_begin: *const cty::c_char, str_id_end: *const cty::c_char, seed: ImGuiID, ) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetIDWithSeed_Int(n: cty::c_int, seed: ImGuiID) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igItemSize_Vec2(size: ImVec2, text_baseline_y: f32); } @@ -10408,7 +11426,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igItemHoverable(bb: ImRect, id: ImGuiID) -> bool; + pub fn igItemHoverable(bb: ImRect, id: ImGuiID, item_flags: ImGuiItemFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsWindowContentHoverable(window: *mut ImGuiWindow, flags: ImGuiHoveredFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10436,24 +11458,20 @@ extern "C" { pub fn igPushMultiItemsWidths(components: cty::c_int, width_full: f32); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igIsItemToggledSelection() -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMaxAbs(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igShrinkWidths(items: *mut ImGuiShrinkWidthItem, count: cty::c_int, width_excess: f32); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); + pub fn igGetStyleVarInfo(idx: ImGuiStyleVar) -> *const ImGuiDataVarInfo; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopItemFlag(); + pub fn igBeginDisabledOverrideReenable(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndDisabledOverrideReenable(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10481,11 +11499,15 @@ extern "C" { name: *const cty::c_char, id: ImGuiID, size_arg: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginPopupEx(id: ImGuiID, extra_window_flags: ImGuiWindowFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igOpenPopupEx(id: ImGuiID, popup_flags: ImGuiPopupFlags); } @@ -10509,14 +11531,6 @@ extern "C" { pub fn igIsPopupOpen_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginPopupEx(id: ImGuiID, extra_flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetPopupAllowedExtentRect(pOut: *mut ImRect, window: *mut ImGuiWindow); } @@ -10529,6 +11543,10 @@ extern "C" { pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindBlockingModal(window: *mut ImGuiWindow) -> *mut ImGuiWindow; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -10545,6 +11563,17 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTooltipEx( + tooltip_flags: ImGuiTooltipFlags, + extra_window_flags: ImGuiWindowFlags, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTooltipHidden() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginViewportSideBar( name: *const cty::c_char, @@ -10619,6 +11648,13 @@ extern "C" { pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavMoveRequestResolveWithPastTreeNode( + result: *mut ImGuiNavItemData, + tree_node_data: *mut ImGuiTreeNodeStackData, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igNavMoveRequestCancel(); } @@ -10632,7 +11668,19 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igActivateItem(id: ImGuiID); + pub fn igNavHighlightActivated(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavClearPreferredPosForAxis(axis: ImGuiAxis); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavRestoreHighlightAfterMove(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavUpdateCurrentWindowIsScrollPushableX(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10648,12 +11696,24 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNavFocusScope(focus_scope_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFocusItem(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igActivateItemByID(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsNamedKey(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsNamedKeyOrModKey(key: ImGuiKey) -> bool; + pub fn igIsNamedKeyOrMod(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10677,7 +11737,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igConvertShortcutMod(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; + pub fn igIsLRModKey(key: ImGuiKey) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFixupKeyChord(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10685,15 +11749,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyData(key: ImGuiKey) -> *mut ImGuiKeyData; + pub fn igGetKeyData_ContextPtr(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyData; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyChordName( - key_chord: ImGuiKeyChord, - out_buf: *mut cty::c_char, - out_buf_size: cty::c_int, - ); + pub fn igGetKeyData_Key(key: ImGuiKey) -> *mut ImGuiKeyData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetKeyChordName(key_chord: ImGuiKeyChord) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10735,6 +11799,10 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTeleportMousePos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetActiveIdUsingAllKeyboardKeys(); } @@ -10752,7 +11820,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igSetItemKeyOwner(key: ImGuiKey, flags: ImGuiInputFlags); + pub fn igSetKeyOwnersForKeyChord(key: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner_InputFlags(key: ImGuiKey, flags: ImGuiInputFlags); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10760,7 +11832,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyOwnerData(key: ImGuiKey) -> *mut ImGuiKeyOwnerData; + pub fn igGetKeyOwnerData(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyOwnerData; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10768,22 +11840,34 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsKeyPressed_ID(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsKeyPressed_InputFlags( + key: ImGuiKey, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsKeyReleased_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed_InputFlags( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsMouseClicked_ID( + pub fn igIsMouseClicked_InputFlags( button: ImGuiMouseButton, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10792,14 +11876,22 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShortcut(key_chord: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsMouseDoubleClicked_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut_ID( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetShortcutRouting( key_chord: ImGuiKeyChord, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10867,6 +11959,18 @@ extern "C" { pub fn igDockContextQueueUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockContextProcessUndockWindow( + ctx: *mut ImGuiContext, + window: *mut ImGuiWindow, + clear_persistent_docking_ref: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockContextProcessUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockContextCalcDropPosForDocking( target: *mut ImGuiWindow, @@ -10883,6 +11987,14 @@ extern "C" { pub fn igDockContextFindNodeByID(ctx: *mut ImGuiContext, id: ImGuiID) -> *mut ImGuiDockNode; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockNodeWindowMenuHandler_Default( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockNodeBeginAmendTabBar(node: *mut ImGuiDockNode) -> bool; } @@ -11033,7 +12145,94 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igRenderDragDropTargetRect(bb: ImRect); + pub fn igRenderDragDropTargetRect(bb: ImRect, item_clip_rect: ImRect); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags) + -> *mut ImGuiTypingSelectRequest; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindNextSingleCharMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindBestLeadingMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginBoxSelect( + scope_rect: ImRect, + window: *mut ImGuiWindow, + box_select_id: ImGuiID, + ms_flags: ImGuiMultiSelectFlags, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndBoxSelect(scope_rect: ImRect, ms_flags: ImGuiMultiSelectFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectItemHeader( + id: ImGuiID, + p_selected: *mut bool, + p_button_flags: *mut ImGuiButtonFlags, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectItemFooter(id: ImGuiID, p_selected: *mut bool, p_pressed: *mut bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectAddSetAll(ms: *mut ImGuiMultiSelectTempData, selected: bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectAddSetRange( + ms: *mut ImGuiMultiSelectTempData, + selected: bool, + range_dir: cty::c_int, + first_item: ImGuiSelectionUserData, + last_item: ImGuiSelectionUserData, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetBoxSelectState(id: ImGuiID) -> *mut ImGuiBoxSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetMultiSelectState(id: ImGuiID) -> *mut ImGuiMultiSelectState; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11097,13 +12296,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableGetHoveredColumn() -> cty::c_int; + pub fn igTableGetHoveredRow() -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableGetHeaderRowHeight() -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHeaderAngledMaxLabelWidth() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTablePushBackgroundChannel(); } @@ -11112,6 +12315,16 @@ extern "C" { pub fn igTablePopBackgroundChannel(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableAngledHeadersRowEx( + row_id: ImGuiID, + angle: f32, + max_label_width: f32, + data: *const ImGuiTableHeaderData, + data_count: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetCurrentTable() -> *mut ImGuiTable; } @@ -11160,7 +12373,10 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableDrawContextMenu(table: *mut ImGuiTable); + pub fn igTableDrawDefaultContextMenu( + table: *mut ImGuiTable, + flags_for_section_to_display: ImGuiTableFlags, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11178,6 +12394,10 @@ extern "C" { ) -> *mut ImGuiTableInstanceData; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetInstanceID(table: *mut ImGuiTable, instance_no: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSortSpecsSanitize(table: *mut ImGuiTable); } @@ -11227,14 +12447,14 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableGetColumnResizeID( - table: *const ImGuiTable, + table: *mut ImGuiTable, column_n: cty::c_int, instance_no: cty::c_int, ) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableGetMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; + pub fn igTableCalcMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11291,24 +12511,45 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTabBarEx( - tab_bar: *mut ImGuiTabBar, - bb: ImRect, - flags: ImGuiTabBarFlags, - dock_node: *mut ImGuiDockNode, - ) -> bool; + pub fn igGetCurrentTabBar() -> *mut ImGuiTabBar; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTabBarEx(tab_bar: *mut ImGuiTabBar, bb: ImRect, flags: ImGuiTabBarFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarFindTabByID(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID) -> *mut ImGuiTabItem; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarFindTabByOrder( + tab_bar: *mut ImGuiTabBar, + order: cty::c_int, + ) -> *mut ImGuiTabItem; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarFindMostRecentlySelectedTabForActiveWindow( tab_bar: *mut ImGuiTabBar, ) -> *mut ImGuiTabItem; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetCurrentTab(tab_bar: *mut ImGuiTabBar) -> *mut ImGuiTabItem; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetTabOrder(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetTabName( + tab_bar: *mut ImGuiTabBar, + tab: *mut ImGuiTabItem, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarAddTab( tab_bar: *mut ImGuiTabBar, @@ -11325,10 +12566,14 @@ extern "C" { pub fn igTabBarCloseTab(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarQueueFocus(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarQueueReorder( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, offset: cty::c_int, ); } @@ -11336,7 +12581,7 @@ extern "C" { extern "C" { pub fn igTabBarQueueReorderFromMousePos( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, mouse_pos: ImVec2, ); } @@ -11452,7 +12697,7 @@ extern "C" { p_min: ImVec2, p_max: ImVec2, fill_col: ImU32, - border: bool, + borders: bool, rounding: f32, ); } @@ -11579,16 +12824,26 @@ extern "C" { pub fn igImageButtonEx( id: ImGuiID, texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, tint_col: ImVec4, + flags: ImGuiButtonFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igSeparatorEx(flags: ImGuiSeparatorFlags); + pub fn igSeparatorEx(flags: ImGuiSeparatorFlags, thickness: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorTextEx( + id: ImGuiID, + label: *const cty::c_char, + label_end: *const cty::c_char, + extra_width: f32, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11713,11 +12968,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTreeNodeSetOpen(id: ImGuiID, open: bool); + pub fn igTreeNodeGetOpen(storage_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTreeNodeUpdateNextOpen(id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; + pub fn igTreeNodeSetOpen(storage_id: ImGuiID, open: bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTreeNodeUpdateNextOpen(storage_id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11750,6 +13009,7 @@ extern "C" { data_type: ImGuiDataType, p_data: *mut cty::c_void, format: *const cty::c_char, + p_data_when_empty: *mut cty::c_void, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -11783,6 +13043,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igInputTextDeactivateHook(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTempInputText( bb: ImRect, @@ -11815,6 +13079,10 @@ extern "C" { pub fn igGetInputTextState(id: ImGuiID) -> *mut ImGuiInputTextState; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemRefVal(data_type: ImGuiDataType, p_data: *mut cty::c_void); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igColorTooltip(text: *const cty::c_char, col: *const f32, flags: ImGuiColorEditFlags); } @@ -11840,7 +13108,7 @@ extern "C" { overlay_text: *const cty::c_char, scale_min: f32, scale_max: f32, - frame_size: ImVec2, + size_arg: ImVec2, ) -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -11869,6 +13137,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShadeVertsTransformPos( + draw_list: *mut ImDrawList, + vert_start_idx: cty::c_int, + vert_end_idx: cty::c_int, + pivot_in: ImVec2, + cos_a: f32, + sin_a: f32, + pivot_out: ImVec2, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGcCompactTransientMiscBuffers(); } @@ -11882,7 +13162,12 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugLog(fmt: *const cty::c_char, ...); + pub fn igDebugAllocHook( + info: *mut ImGuiDebugAllocInfo, + frame_count: cty::c_int, + ptr: *mut cty::c_void, + size: usize, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11903,6 +13188,25 @@ extern "C" { pub fn igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawCursorPos(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawLineExtents(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawItemRect(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugTextUnformattedWithLocateItem( + line_begin: *const cty::c_char, + line_end: *const cty::c_char, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugLocateItem(target_id: ImGuiID); } @@ -11916,11 +13220,21 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugDrawItemRect(col: ImU32); + pub fn igDebugBreakClearData(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugStartItemPicker(); + pub fn igDebugBreakButton( + label: *const cty::c_char, + description_of_location: *const cty::c_char, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugBreakButtonTooltip( + keyboard_only: bool, + description_of_location: *const cty::c_char, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11991,6 +13305,14 @@ extern "C" { pub fn igDebugNodeInputTextState(state: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodeTypingSelectState(state: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodeMultiSelectState(state: *mut ImGuiMultiSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugNodeWindow(window: *mut ImGuiWindow, label: *const cty::c_char); } @@ -12015,6 +13337,14 @@ extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodePlatformMonitor( + monitor: *mut ImGuiPlatformMonitor, + label: *const cty::c_char, + idx: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugRenderKeyboardPreview(draw_list: *mut ImDrawList); } @@ -12028,11 +13358,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsKeyPressedMap(key: ImGuiKey, repeat: bool) -> bool; + pub fn igImFontAtlasGetBuilderForStbTruetype() -> *const ImFontBuilderIO; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igImFontAtlasGetBuilderForStbTruetype() -> *const ImFontBuilderIO; + pub fn igImFontAtlasUpdateConfigDataPointers(atlas: *mut ImFontAtlas); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { diff --git a/imgui-sys/src/wasm_docking_freetype_bindings.rs b/imgui-sys/src/wasm_docking_freetype_bindings.rs index 12bb8cc..2f7a47e 100644 --- a/imgui-sys/src/wasm_docking_freetype_bindings.rs +++ b/imgui-sys/src/wasm_docking_freetype_bindings.rs @@ -82,59 +82,16 @@ where } } } -pub type __off_t = cty::c_long; -pub type __off64_t = cty::c_long; -pub type FILE = _IO_FILE; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_marker { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_codecvt { - _unused: [u8; 0], -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _IO_wide_data { - _unused: [u8; 0], -} -pub type _IO_lock_t = cty::c_void; +pub type __int64_t = cty::c_longlong; +pub type __darwin_off_t = __int64_t; +pub type fpos_t = __darwin_off_t; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct _IO_FILE { - pub _flags: cty::c_int, - pub _IO_read_ptr: *mut cty::c_char, - pub _IO_read_end: *mut cty::c_char, - pub _IO_read_base: *mut cty::c_char, - pub _IO_write_base: *mut cty::c_char, - pub _IO_write_ptr: *mut cty::c_char, - pub _IO_write_end: *mut cty::c_char, - pub _IO_buf_base: *mut cty::c_char, - pub _IO_buf_end: *mut cty::c_char, - pub _IO_save_base: *mut cty::c_char, - pub _IO_backup_base: *mut cty::c_char, - pub _IO_save_end: *mut cty::c_char, - pub _markers: *mut _IO_marker, - pub _chain: *mut _IO_FILE, - pub _fileno: cty::c_int, - pub _flags2: cty::c_int, - pub _old_offset: __off_t, - pub _cur_column: cty::c_ushort, - pub _vtable_offset: cty::c_schar, - pub _shortbuf: [cty::c_char; 1usize], - pub _lock: *mut _IO_lock_t, - pub _offset: __off64_t, - pub _codecvt: *mut _IO_codecvt, - pub _wide_data: *mut _IO_wide_data, - pub _freeres_list: *mut _IO_FILE, - pub _freeres_buf: *mut cty::c_void, - pub __pad5: usize, - pub _mode: cty::c_int, - pub _unused2: [cty::c_char; 20usize], +pub struct __sbuf { + pub _base: *mut cty::c_uchar, + pub _size: cty::c_int, } -impl Default for _IO_FILE { +impl Default for __sbuf { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -145,6 +102,59 @@ impl Default for _IO_FILE { } #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct __sFILEX { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct __sFILE { + pub _p: *mut cty::c_uchar, + pub _r: cty::c_int, + pub _w: cty::c_int, + pub _flags: cty::c_short, + pub _file: cty::c_short, + pub _bf: __sbuf, + pub _lbfsize: cty::c_int, + pub _cookie: *mut cty::c_void, + pub _close: ::core::option::Option cty::c_int>, + pub _read: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *mut cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _seek: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: fpos_t, arg3: cty::c_int) -> fpos_t, + >, + pub _write: ::core::option::Option< + unsafe extern "C" fn( + arg1: *mut cty::c_void, + arg2: *const cty::c_char, + arg3: cty::c_int, + ) -> cty::c_int, + >, + pub _ub: __sbuf, + pub _extra: *mut __sFILEX, + pub _ur: cty::c_int, + pub _ubuf: [cty::c_uchar; 3usize], + pub _nbuf: [cty::c_uchar; 1usize], + pub _lb: __sbuf, + pub _blksize: cty::c_int, + pub _offset: fpos_t, +} +impl Default for __sFILE { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type FILE = __sFILE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct ImGuiDockRequest { _unused: [u8; 0], } @@ -154,6 +164,11 @@ pub struct ImGuiDockNodeSettings { _unused: [u8; 0], } #[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct STB_TexteditState { + _unused: [u8; 0], +} +#[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_const_charPtr { pub Size: cty::c_int, @@ -169,13 +184,20 @@ impl Default for ImVector_const_charPtr { } } } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImS32 = cty::c_int; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; +pub type ImU64 = cty::c_ulonglong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -183,6 +205,7 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; @@ -190,9 +213,12 @@ pub type ImGuiDockNodeFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -205,18 +231,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImS32 = cty::c_int; -pub type ImU32 = cty::c_uint; -pub type ImS64 = cty::c_longlong; -pub type ImU64 = cty::c_ulonglong; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -259,15 +277,13 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 2097152; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoDocking: ImGuiWindowFlags_ = 524288; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; @@ -275,33 +291,54 @@ pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub const ImGuiWindowFlags_DockNodeHost: ImGuiWindowFlags_ = 536870912; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -312,7 +349,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -321,18 +360,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -342,6 +383,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -351,10 +393,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -365,80 +408,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -455,22 +426,28 @@ pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_DockHierarchy: ImGuiHoveredFlags_ = 16; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDockNodeFlags_None: ImGuiDockNodeFlags_ = 0; pub const ImGuiDockNodeFlags_KeepAliveOnly: ImGuiDockNodeFlags_ = 1; -pub const ImGuiDockNodeFlags_NoDockingInCentralNode: ImGuiDockNodeFlags_ = 4; +pub const ImGuiDockNodeFlags_NoDockingOverCentralNode: ImGuiDockNodeFlags_ = 4; pub const ImGuiDockNodeFlags_PassthruCentralNode: ImGuiDockNodeFlags_ = 8; -pub const ImGuiDockNodeFlags_NoSplit: ImGuiDockNodeFlags_ = 16; +pub const ImGuiDockNodeFlags_NoDockingSplit: ImGuiDockNodeFlags_ = 16; pub const ImGuiDockNodeFlags_NoResize: ImGuiDockNodeFlags_ = 32; pub const ImGuiDockNodeFlags_AutoHideTabBar: ImGuiDockNodeFlags_ = 64; +pub const ImGuiDockNodeFlags_NoUndocking: ImGuiDockNodeFlags_ = 128; pub type ImGuiDockNodeFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -478,7 +455,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -494,19 +473,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -580,106 +560,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -687,7 +674,8 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; -pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; +pub const ImGuiConfigFlags_DockingEnable: ImGuiConfigFlags_ = 128; pub const ImGuiConfigFlags_ViewportsEnable: ImGuiConfigFlags_ = 1024; pub const ImGuiConfigFlags_DpiEnableScaleViewports: ImGuiConfigFlags_ = 16384; pub const ImGuiConfigFlags_DpiEnableScaleFonts: ImGuiConfigFlags_ = 32768; @@ -736,29 +724,32 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_DockingPreview: ImGuiCol_ = 38; -pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 39; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 49; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 50; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 51; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 52; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 53; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 54; -pub const ImGuiCol_COUNT: ImGuiCol_ = 55; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_DockingPreview: ImGuiCol_ = 40; +pub const ImGuiCol_DockingEmptyBg: ImGuiCol_ = 41; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 42; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 43; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 44; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 45; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 46; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 47; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 48; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 49; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 50; +pub const ImGuiCol_TextLink: ImGuiCol_ = 51; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 52; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 53; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 54; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 55; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 56; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 57; +pub const ImGuiCol_COUNT: ImGuiCol_ = 58; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -783,16 +774,24 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_DockingSeparatorSize: ImGuiStyleVar_ = 33; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 34; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -829,6 +828,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -848,12 +848,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -886,18 +999,31 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, + pub DockingSeparatorSize: f32, pub MouseCursorScale: f32, pub AntiAliasedLines: bool, pub AntiAliasedLinesUseTex: bool, pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 55usize], + pub Colors: [ImVec4; 58usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -942,13 +1068,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -965,6 +1084,7 @@ pub struct ImGuiIO { pub ConfigViewportsNoDefaultParent: bool, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -972,22 +1092,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -1000,22 +1120,20 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub MouseHoveredViewport: ImGuiID, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -1027,6 +1145,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceAbs: [ImVec2; 5usize], @@ -1051,6 +1171,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1095,6 +1216,7 @@ impl Default for ImGuiSizeCallbackData { pub struct ImGuiWindowClass { pub ClassId: ImGuiID, pub ParentViewportId: ImGuiID, + pub FocusRouteParentWindowId: ImGuiID, pub ViewportFlagsOverrideSet: ImGuiViewportFlags, pub ViewportFlagsOverrideClear: ImGuiViewportFlags, pub TabItemFlagsOverrideSet: ImGuiTabItemFlags, @@ -1125,56 +1247,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1333,11 +1405,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1354,6 +1428,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1518,6 +1709,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1549,13 +1756,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1565,25 +1784,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1599,7 +1806,7 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, @@ -1633,6 +1840,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1902,7 +2110,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1929,10 +2139,11 @@ pub const ImGuiViewportFlags_NoFocusOnAppearing: ImGuiViewportFlags_ = 32; pub const ImGuiViewportFlags_NoFocusOnClick: ImGuiViewportFlags_ = 64; pub const ImGuiViewportFlags_NoInputs: ImGuiViewportFlags_ = 128; pub const ImGuiViewportFlags_NoRendererClear: ImGuiViewportFlags_ = 256; -pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 512; -pub const ImGuiViewportFlags_Minimized: ImGuiViewportFlags_ = 1024; -pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 2048; -pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_NoAutoMerge: ImGuiViewportFlags_ = 512; +pub const ImGuiViewportFlags_TopMost: ImGuiViewportFlags_ = 1024; +pub const ImGuiViewportFlags_CanHostOtherWindows: ImGuiViewportFlags_ = 2048; +pub const ImGuiViewportFlags_IsMinimized: ImGuiViewportFlags_ = 4096; +pub const ImGuiViewportFlags_IsFocused: ImGuiViewportFlags_ = 8192; pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -1999,6 +2210,25 @@ impl Default for ImVector_ImGuiViewportPtr { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, pub Platform_CreateWindow: ::core::option::Option, pub Platform_DestroyWindow: ::core::option::Option, @@ -2033,6 +2263,8 @@ pub struct ImGuiPlatformIO { ::core::option::Option f32>, pub Platform_OnChangedViewport: ::core::option::Option, + pub Platform_GetWindowWorkAreaInsets: + ::core::option::Option ImVec4>, pub Platform_CreateVkSurface: ::core::option::Option< unsafe extern "C" fn( vp: *mut ImGuiViewport, @@ -2065,13 +2297,23 @@ impl Default for ImGuiPlatformIO { } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiPlatformMonitor { pub MainPos: ImVec2, pub MainSize: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, pub DpiScale: f32, + pub PlatformHandle: *mut cty::c_void, +} +impl Default for ImGuiPlatformMonitor { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2084,8 +2326,7 @@ pub type ImGuiDataAuthority = cty::c_int; pub type ImGuiLayoutType = cty::c_int; pub type ImGuiActivateFlags = cty::c_int; pub type ImGuiDebugLogFlags = cty::c_int; -pub type ImGuiInputFlags = cty::c_int; -pub type ImGuiItemFlags = cty::c_int; +pub type ImGuiFocusRequestFlags = cty::c_int; pub type ImGuiItemStatusFlags = cty::c_int; pub type ImGuiOldColumnFlags = cty::c_int; pub type ImGuiNavHighlightFlags = cty::c_int; @@ -2096,73 +2337,11 @@ pub type ImGuiScrollFlags = cty::c_int; pub type ImGuiSeparatorFlags = cty::c_int; pub type ImGuiTextFlags = cty::c_int; pub type ImGuiTooltipFlags = cty::c_int; +pub type ImGuiTypingSelectFlags = cty::c_int; +pub type ImGuiWindowRefreshFlags = cty::c_int; pub type ImGuiErrorLogCallback = ::core::option::Option< unsafe extern "C" fn(user_data: *mut cty::c_void, fmt: *const cty::c_char, ...), >; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoRecord { - pub where_: cty::c_int, - pub insert_length: cty::c_int, - pub delete_length: cty::c_int, - pub char_storage: cty::c_int, -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct StbUndoState { - pub undo_rec: [StbUndoRecord; 99usize], - pub undo_char: [ImWchar; 999usize], - pub undo_point: cty::c_short, - pub redo_point: cty::c_short, - pub undo_char_point: cty::c_int, - pub redo_char_point: cty::c_int, -} -impl Default for StbUndoState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct STB_TexteditState { - pub cursor: cty::c_int, - pub select_start: cty::c_int, - pub select_end: cty::c_int, - pub insert_mode: cty::c_uchar, - pub row_count_per_page: cty::c_int, - pub cursor_at_end_of_line: cty::c_uchar, - pub initialized: cty::c_uchar, - pub has_preferred_x: cty::c_uchar, - pub single_line: cty::c_uchar, - pub padding1: cty::c_uchar, - pub padding2: cty::c_uchar, - pub padding3: cty::c_uchar, - pub preferred_x: f32, - pub undostate: StbUndoState, -} -impl Default for STB_TexteditState { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] -pub struct StbTexteditRow { - pub x0: f32, - pub x1: f32, - pub baseline_y_delta: f32, - pub ymin: f32, - pub ymax: f32, - pub num_chars: cty::c_int, -} pub type ImFileHandle = *mut FILE; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2181,6 +2360,7 @@ pub struct ImRect { pub Min: ImVec2, pub Max: ImVec2, } +pub type ImBitArrayPtr = *mut ImU32; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImBitVector { @@ -2233,6 +2413,7 @@ pub struct ImDrawListSharedData { pub TexUvWhitePixel: ImVec2, pub Font: *mut ImFont, pub FontSize: f32, + pub FontScale: f32, pub CurveTessellationTol: f32, pub CircleSegmentMaxError: f32, pub ClipRectFullscreen: ImVec4, @@ -2254,24 +2435,9 @@ impl Default for ImDrawListSharedData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImDrawListPtr { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut *mut ImDrawList, -} -impl Default for ImVector_ImDrawListPtr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImDrawDataBuilder { - pub Layers: [ImVector_ImDrawListPtr; 2usize], + pub Layers: [*mut ImVector_ImDrawListPtr; 2usize], + pub LayerData1: ImVector_ImDrawListPtr, } impl Default for ImDrawDataBuilder { fn default() -> Self { @@ -2282,18 +2448,49 @@ impl Default for ImDrawDataBuilder { } } } -pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; -pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; -pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 2; -pub const ImGuiItemFlags_Disabled: ImGuiItemFlags_ = 4; -pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 8; -pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 16; -pub const ImGuiItemFlags_SelectableDontClosePopup: ImGuiItemFlags_ = 32; -pub const ImGuiItemFlags_MixedValue: ImGuiItemFlags_ = 64; -pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlags_ = 128; -pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlags_ = 256; -pub const ImGuiItemFlags_Inputable: ImGuiItemFlags_ = 1024; -pub type ImGuiItemFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataVarInfo { + pub Type: ImGuiDataType, + pub Count: ImU32, + pub Offset: ImU32, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeStorage { + pub Data: [ImU8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDataTypeInfo { + pub Size: usize, + pub Name: *const cty::c_char, + pub PrintFmt: *const cty::c_char, + pub ScanFmt: *const cty::c_char, +} +impl Default for ImGuiDataTypeInfo { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 12; +pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 13; +pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 14; +pub type ImGuiDataTypePrivate_ = cty::c_uint; +pub const ImGuiItemFlags_Disabled: ImGuiItemFlagsPrivate_ = 1024; +pub const ImGuiItemFlags_ReadOnly: ImGuiItemFlagsPrivate_ = 2048; +pub const ImGuiItemFlags_MixedValue: ImGuiItemFlagsPrivate_ = 4096; +pub const ImGuiItemFlags_NoWindowHoverableCheck: ImGuiItemFlagsPrivate_ = 8192; +pub const ImGuiItemFlags_AllowOverlap: ImGuiItemFlagsPrivate_ = 16384; +pub const ImGuiItemFlags_Inputable: ImGuiItemFlagsPrivate_ = 1048576; +pub const ImGuiItemFlags_HasSelectionUserData: ImGuiItemFlagsPrivate_ = 2097152; +pub const ImGuiItemFlags_IsMultiSelect: ImGuiItemFlagsPrivate_ = 4194304; +pub const ImGuiItemFlags_Default_: ImGuiItemFlagsPrivate_ = 16; +pub type ImGuiItemFlagsPrivate_ = cty::c_uint; pub const ImGuiItemStatusFlags_None: ImGuiItemStatusFlags_ = 0; pub const ImGuiItemStatusFlags_HoveredRect: ImGuiItemStatusFlags_ = 1; pub const ImGuiItemStatusFlags_HasDisplayRect: ImGuiItemStatusFlags_ = 2; @@ -2303,12 +2500,18 @@ pub const ImGuiItemStatusFlags_ToggledOpen: ImGuiItemStatusFlags_ = 16; pub const ImGuiItemStatusFlags_HasDeactivated: ImGuiItemStatusFlags_ = 32; pub const ImGuiItemStatusFlags_Deactivated: ImGuiItemStatusFlags_ = 64; pub const ImGuiItemStatusFlags_HoveredWindow: ImGuiItemStatusFlags_ = 128; -pub const ImGuiItemStatusFlags_FocusedByTabbing: ImGuiItemStatusFlags_ = 256; -pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_Visible: ImGuiItemStatusFlags_ = 256; +pub const ImGuiItemStatusFlags_HasClipRect: ImGuiItemStatusFlags_ = 512; +pub const ImGuiItemStatusFlags_HasShortcut: ImGuiItemStatusFlags_ = 1024; pub type ImGuiItemStatusFlags_ = cty::c_uint; +pub const ImGuiHoveredFlags_DelayMask_: ImGuiHoveredFlagsPrivate_ = 245760; +pub const ImGuiHoveredFlags_AllowedMaskForIsWindowHovered: ImGuiHoveredFlagsPrivate_ = 12479; +pub const ImGuiHoveredFlags_AllowedMaskForIsItemHovered: ImGuiHoveredFlagsPrivate_ = 262048; +pub type ImGuiHoveredFlagsPrivate_ = cty::c_uint; pub const ImGuiInputTextFlags_Multiline: ImGuiInputTextFlagsPrivate_ = 67108864; pub const ImGuiInputTextFlags_NoMarkEdited: ImGuiInputTextFlagsPrivate_ = 134217728; pub const ImGuiInputTextFlags_MergedItem: ImGuiInputTextFlagsPrivate_ = 268435456; +pub const ImGuiInputTextFlags_LocalizeDecimalPoint: ImGuiInputTextFlagsPrivate_ = 536870912; pub type ImGuiInputTextFlagsPrivate_ = cty::c_uint; pub const ImGuiButtonFlags_PressedOnClick: ImGuiButtonFlagsPrivate_ = 16; pub const ImGuiButtonFlags_PressedOnClickRelease: ImGuiButtonFlagsPrivate_ = 32; @@ -2318,7 +2521,7 @@ pub const ImGuiButtonFlags_PressedOnDoubleClick: ImGuiButtonFlagsPrivate_ = 256; pub const ImGuiButtonFlags_PressedOnDragDropHold: ImGuiButtonFlagsPrivate_ = 512; pub const ImGuiButtonFlags_Repeat: ImGuiButtonFlagsPrivate_ = 1024; pub const ImGuiButtonFlags_FlattenChildren: ImGuiButtonFlagsPrivate_ = 2048; -pub const ImGuiButtonFlags_AllowItemOverlap: ImGuiButtonFlagsPrivate_ = 4096; +pub const ImGuiButtonFlags_AllowOverlap: ImGuiButtonFlagsPrivate_ = 4096; pub const ImGuiButtonFlags_DontClosePopups: ImGuiButtonFlagsPrivate_ = 8192; pub const ImGuiButtonFlags_AlignTextBaseLine: ImGuiButtonFlagsPrivate_ = 32768; pub const ImGuiButtonFlags_NoKeyModifiers: ImGuiButtonFlagsPrivate_ = 65536; @@ -2344,18 +2547,24 @@ pub const ImGuiSelectableFlags_SetNavIdOnHover: ImGuiSelectableFlagsPrivate_ = 3 pub const ImGuiSelectableFlags_NoPadWithHalfSpacing: ImGuiSelectableFlagsPrivate_ = 67108864; pub const ImGuiSelectableFlags_NoSetKeyOwner: ImGuiSelectableFlagsPrivate_ = 134217728; pub type ImGuiSelectableFlagsPrivate_ = cty::c_uint; -pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 1048576; +pub const ImGuiTreeNodeFlags_ClipLabelForTrailingButton: ImGuiTreeNodeFlagsPrivate_ = 268435456; +pub const ImGuiTreeNodeFlags_UpsideDownArrow: ImGuiTreeNodeFlagsPrivate_ = 536870912; +pub const ImGuiTreeNodeFlags_OpenOnMask_: ImGuiTreeNodeFlagsPrivate_ = 192; pub type ImGuiTreeNodeFlagsPrivate_ = cty::c_uint; pub const ImGuiSeparatorFlags_None: ImGuiSeparatorFlags_ = 0; pub const ImGuiSeparatorFlags_Horizontal: ImGuiSeparatorFlags_ = 1; pub const ImGuiSeparatorFlags_Vertical: ImGuiSeparatorFlags_ = 2; pub const ImGuiSeparatorFlags_SpanAllColumns: ImGuiSeparatorFlags_ = 4; pub type ImGuiSeparatorFlags_ = cty::c_uint; +pub const ImGuiFocusRequestFlags_None: ImGuiFocusRequestFlags_ = 0; +pub const ImGuiFocusRequestFlags_RestoreFocusedChild: ImGuiFocusRequestFlags_ = 1; +pub const ImGuiFocusRequestFlags_UnlessBelowModal: ImGuiFocusRequestFlags_ = 2; +pub type ImGuiFocusRequestFlags_ = cty::c_uint; pub const ImGuiTextFlags_None: ImGuiTextFlags_ = 0; pub const ImGuiTextFlags_NoWidthForLargeClippedText: ImGuiTextFlags_ = 1; pub type ImGuiTextFlags_ = cty::c_uint; pub const ImGuiTooltipFlags_None: ImGuiTooltipFlags_ = 0; -pub const ImGuiTooltipFlags_OverridePreviousTooltip: ImGuiTooltipFlags_ = 1; +pub const ImGuiTooltipFlags_OverridePrevious: ImGuiTooltipFlags_ = 2; pub type ImGuiTooltipFlags_ = cty::c_uint; pub const ImGuiLayoutType_Horizontal: ImGuiLayoutType_ = 0; pub const ImGuiLayoutType_Vertical: ImGuiLayoutType_ = 1; @@ -2373,36 +2582,6 @@ pub type ImGuiAxis = cty::c_int; pub const ImGuiPlotType_Lines: ImGuiPlotType = 0; pub const ImGuiPlotType_Histogram: ImGuiPlotType = 1; pub type ImGuiPlotType = cty::c_uint; -pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; -pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; -pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; -pub type ImGuiPopupPositionPolicy = cty::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeTempStorage { - pub Data: [ImU8; 8usize], -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiDataTypeInfo { - pub Size: usize, - pub Name: *const cty::c_char, - pub PrintFmt: *const cty::c_char, - pub ScanFmt: *const cty::c_char, -} -impl Default for ImGuiDataTypeInfo { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub const ImGuiDataType_String: ImGuiDataTypePrivate_ = 11; -pub const ImGuiDataType_Pointer: ImGuiDataTypePrivate_ = 12; -pub const ImGuiDataType_ID: ImGuiDataTypePrivate_ = 13; -pub type ImGuiDataTypePrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiColorMod { @@ -2469,6 +2648,7 @@ pub struct ImGuiGroupData { pub WindowID: ImGuiID, pub BackupCursorPos: ImVec2, pub BackupCursorMaxPos: ImVec2, + pub BackupCursorPosPrevLine: ImVec2, pub BackupIndent: ImVec1, pub BackupGroupOffset: ImVec1, pub BackupCurrLineSize: ImVec2, @@ -2476,6 +2656,7 @@ pub struct ImGuiGroupData { pub BackupActiveIdIsAlive: ImGuiID, pub BackupActiveIdPreviousFrameIsAlive: bool, pub BackupHoveredIdIsAlive: bool, + pub BackupIsSameLine: bool, pub EmitItem: bool, } #[repr(C)] @@ -2491,24 +2672,41 @@ pub struct ImGuiMenuColumns { pub Widths: [ImU16; 4usize], } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiInputTextDeactivatedState { + pub ID: ImGuiID, + pub TextA: ImVector_char, +} +impl Default for ImGuiInputTextDeactivatedState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub type ImStbTexteditState = STB_TexteditState; +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputTextState { pub Ctx: *mut ImGuiContext, + pub Stb: *mut ImStbTexteditState, pub ID: ImGuiID, - pub CurLenW: cty::c_int, pub CurLenA: cty::c_int, - pub TextW: ImVector_ImWchar, pub TextA: ImVector_char, pub InitialTextA: ImVector_char, - pub TextAIsValid: bool, + pub CallbackTextBackup: ImVector_char, pub BufCapacityA: cty::c_int, - pub ScrollX: f32, - pub Stb: STB_TexteditState, + pub Scroll: ImVec2, pub CursorAnim: f32, pub CursorFollow: bool, pub SelectedAllMouseLock: bool, pub Edited: bool, pub Flags: ImGuiInputTextFlags, + pub ReloadUserBuf: bool, + pub ReloadSelectionStart: cty::c_int, + pub ReloadSelectionEnd: cty::c_int, } impl Default for ImGuiInputTextState { fn default() -> Self { @@ -2519,27 +2717,11 @@ impl Default for ImGuiInputTextState { } } } -#[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiPopupData { - pub PopupId: ImGuiID, - pub Window: *mut ImGuiWindow, - pub BackupNavWindow: *mut ImGuiWindow, - pub ParentNavLayer: cty::c_int, - pub OpenFrameCount: cty::c_int, - pub OpenParentId: ImGuiID, - pub OpenPopupPos: ImVec2, - pub OpenMousePos: ImVec2, -} -impl Default for ImGuiPopupData { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} +pub const ImGuiWindowRefreshFlags_None: ImGuiWindowRefreshFlags_ = 0; +pub const ImGuiWindowRefreshFlags_TryToAvoidRefresh: ImGuiWindowRefreshFlags_ = 1; +pub const ImGuiWindowRefreshFlags_RefreshOnHover: ImGuiWindowRefreshFlags_ = 2; +pub const ImGuiWindowRefreshFlags_RefreshOnFocus: ImGuiWindowRefreshFlags_ = 4; +pub type ImGuiWindowRefreshFlags_ = cty::c_uint; pub const ImGuiNextWindowDataFlags_None: ImGuiNextWindowDataFlags_ = 0; pub const ImGuiNextWindowDataFlags_HasPos: ImGuiNextWindowDataFlags_ = 1; pub const ImGuiNextWindowDataFlags_HasSize: ImGuiNextWindowDataFlags_ = 2; @@ -2549,9 +2731,11 @@ pub const ImGuiNextWindowDataFlags_HasSizeConstraint: ImGuiNextWindowDataFlags_ pub const ImGuiNextWindowDataFlags_HasFocus: ImGuiNextWindowDataFlags_ = 32; pub const ImGuiNextWindowDataFlags_HasBgAlpha: ImGuiNextWindowDataFlags_ = 64; pub const ImGuiNextWindowDataFlags_HasScroll: ImGuiNextWindowDataFlags_ = 128; -pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 256; -pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 512; -pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasChildFlags: ImGuiNextWindowDataFlags_ = 256; +pub const ImGuiNextWindowDataFlags_HasRefreshPolicy: ImGuiNextWindowDataFlags_ = 512; +pub const ImGuiNextWindowDataFlags_HasViewport: ImGuiNextWindowDataFlags_ = 1024; +pub const ImGuiNextWindowDataFlags_HasDock: ImGuiNextWindowDataFlags_ = 2048; +pub const ImGuiNextWindowDataFlags_HasWindowClass: ImGuiNextWindowDataFlags_ = 4096; pub type ImGuiNextWindowDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -2566,6 +2750,7 @@ pub struct ImGuiNextWindowData { pub SizeVal: ImVec2, pub ContentSizeVal: ImVec2, pub ScrollVal: ImVec2, + pub ChildFlags: ImGuiChildFlags, pub PosUndock: bool, pub CollapsedVal: bool, pub SizeConstraintRect: ImRect, @@ -2576,6 +2761,7 @@ pub struct ImGuiNextWindowData { pub DockId: ImGuiID, pub WindowClass: ImGuiWindowClass, pub MenuBarOffsetMinVal: ImVec2, + pub RefreshFlagsVal: ImGuiWindowRefreshFlags, } impl Default for ImGuiNextWindowData { fn default() -> Self { @@ -2589,15 +2775,24 @@ impl Default for ImGuiNextWindowData { pub const ImGuiNextItemDataFlags_None: ImGuiNextItemDataFlags_ = 0; pub const ImGuiNextItemDataFlags_HasWidth: ImGuiNextItemDataFlags_ = 1; pub const ImGuiNextItemDataFlags_HasOpen: ImGuiNextItemDataFlags_ = 2; +pub const ImGuiNextItemDataFlags_HasShortcut: ImGuiNextItemDataFlags_ = 4; +pub const ImGuiNextItemDataFlags_HasRefVal: ImGuiNextItemDataFlags_ = 8; +pub const ImGuiNextItemDataFlags_HasStorageID: ImGuiNextItemDataFlags_ = 16; pub type ImGuiNextItemDataFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiNextItemData { pub Flags: ImGuiNextItemDataFlags, - pub Width: f32, + pub ItemFlags: ImGuiItemFlags, pub FocusScopeId: ImGuiID, - pub OpenCond: ImGuiCond, + pub SelectionUserData: ImGuiSelectionUserData, + pub Width: f32, + pub Shortcut: ImGuiKeyChord, + pub ShortcutFlags: ImGuiInputFlags, pub OpenVal: bool, + pub OpenCond: ImU8, + pub RefVal: ImGuiDataTypeStorage, + pub StorageId: ImGuiID, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] @@ -2608,6 +2803,16 @@ pub struct ImGuiLastItemData { pub Rect: ImRect, pub NavRect: ImRect, pub DisplayRect: ImRect, + pub ClipRect: ImRect, + pub Shortcut: ImGuiKeyChord, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, PartialEq)] +pub struct ImGuiTreeNodeStackData { + pub ID: ImGuiID, + pub TreeFlags: ImGuiTreeNodeFlags, + pub InFlags: ImGuiItemFlags, + pub NavRect: ImRect, } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2628,6 +2833,7 @@ pub struct ImGuiWindowStackData { pub Window: *mut ImGuiWindow, pub ParentLastItemDataBackup: ImGuiLastItemData, pub StackSizesOnBegin: ImGuiStackSizes, + pub DisabledOverrideReenable: bool, } impl Default for ImGuiWindowStackData { fn default() -> Self { @@ -2660,6 +2866,37 @@ impl Default for ImGuiPtrOrIndex { } } } +pub const ImGuiPopupPositionPolicy_Default: ImGuiPopupPositionPolicy = 0; +pub const ImGuiPopupPositionPolicy_ComboBox: ImGuiPopupPositionPolicy = 1; +pub const ImGuiPopupPositionPolicy_Tooltip: ImGuiPopupPositionPolicy = 2; +pub type ImGuiPopupPositionPolicy = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiPopupData { + pub PopupId: ImGuiID, + pub Window: *mut ImGuiWindow, + pub RestoreNavWindow: *mut ImGuiWindow, + pub ParentNavLayer: cty::c_int, + pub OpenFrameCount: cty::c_int, + pub OpenParentId: ImGuiID, + pub OpenPopupPos: ImVec2, + pub OpenMousePos: ImVec2, +} +impl Default for ImGuiPopupData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN { + pub Storage: [ImU32; 5usize], +} +pub type ImBitArrayForNamedKeys = ImBitArray_ImGuiKey_NamedKey_COUNT__lessImGuiKey_NamedKey_BEGIN; pub const ImGuiInputEventType_None: ImGuiInputEventType = 0; pub const ImGuiInputEventType_MousePos: ImGuiInputEventType = 1; pub const ImGuiInputEventType_MouseWheel: ImGuiInputEventType = 2; @@ -2674,27 +2911,55 @@ pub const ImGuiInputSource_None: ImGuiInputSource = 0; pub const ImGuiInputSource_Mouse: ImGuiInputSource = 1; pub const ImGuiInputSource_Keyboard: ImGuiInputSource = 2; pub const ImGuiInputSource_Gamepad: ImGuiInputSource = 3; -pub const ImGuiInputSource_Clipboard: ImGuiInputSource = 4; -pub const ImGuiInputSource_Nav: ImGuiInputSource = 5; -pub const ImGuiInputSource_COUNT: ImGuiInputSource = 6; +pub const ImGuiInputSource_COUNT: ImGuiInputSource = 4; pub type ImGuiInputSource = cty::c_uint; #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMousePos { pub PosX: f32, pub PosY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMousePos { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, PartialEq)] +#[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiInputEventMouseWheel { pub WheelX: f32, pub WheelY: f32, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseWheel { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputEventMouseButton { pub Button: cty::c_int, pub Down: bool, + pub MouseSource: ImGuiMouseSource, +} +impl Default for ImGuiInputEventMouseButton { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] @@ -2732,6 +2997,7 @@ pub struct ImGuiInputEventAppFocused { pub struct ImGuiInputEvent { pub Type: ImGuiInputEventType, pub Source: ImGuiInputSource, + pub EventId: ImU32, pub __bindgen_anon_1: ImGuiInputEvent__bindgen_ty_1, pub AddedByTestEngine: bool, } @@ -2771,7 +3037,7 @@ impl Default for ImGuiInputEvent { } impl ::core::fmt::Debug for ImGuiInputEvent { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . __bindgen_anon_1 , self . AddedByTestEngine) + write ! (f , "ImGuiInputEvent {{ Type: {:?}, Source: {:?}, EventId: {:?}, __bindgen_anon_1: {:?}, AddedByTestEngine: {:?} }}" , self . Type , self . Source , self . EventId , self . __bindgen_anon_1 , self . AddedByTestEngine) } } pub type ImGuiKeyRoutingIndex = ImS16; @@ -2780,6 +3046,7 @@ pub type ImGuiKeyRoutingIndex = ImS16; pub struct ImGuiKeyRoutingData { pub NextEntryIndex: ImGuiKeyRoutingIndex, pub Mods: ImU16, + pub RoutingCurrScore: ImU8, pub RoutingNextScore: ImU8, pub RoutingCurr: ImGuiID, pub RoutingNext: ImGuiID, @@ -2803,7 +3070,7 @@ impl Default for ImVector_ImGuiKeyRoutingData { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiKeyRoutingTable { - pub Index: [ImGuiKeyRoutingIndex; 140usize], + pub Index: [ImGuiKeyRoutingIndex; 154usize], pub Entries: ImVector_ImGuiKeyRoutingData, pub EntriesNext: ImVector_ImGuiKeyRoutingData, } @@ -2824,31 +3091,31 @@ pub struct ImGuiKeyOwnerData { pub LockThisFrame: bool, pub LockUntilRelease: bool, } -pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; -pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; -pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlags_ = 2; -pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlags_ = 4; -pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlags_ = 8; -pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlags_ = 14; -pub const ImGuiInputFlags_CondHovered: ImGuiInputFlags_ = 16; -pub const ImGuiInputFlags_CondActive: ImGuiInputFlags_ = 32; -pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_CondMask_: ImGuiInputFlags_ = 48; -pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlags_ = 64; -pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlags_ = 128; -pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 256; -pub const ImGuiInputFlags_RouteGlobalLow: ImGuiInputFlags_ = 512; -pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 1024; -pub const ImGuiInputFlags_RouteGlobalHigh: ImGuiInputFlags_ = 2048; -pub const ImGuiInputFlags_RouteMask_: ImGuiInputFlags_ = 3840; -pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 4096; -pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 8192; -pub const ImGuiInputFlags_RouteExtraMask_: ImGuiInputFlags_ = 12288; -pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlags_ = 15; -pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlags_ = 16143; -pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlags_ = 192; -pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlags_ = 240; -pub type ImGuiInputFlags_ = cty::c_uint; +pub const ImGuiInputFlags_RepeatRateDefault: ImGuiInputFlagsPrivate_ = 2; +pub const ImGuiInputFlags_RepeatRateNavMove: ImGuiInputFlagsPrivate_ = 4; +pub const ImGuiInputFlags_RepeatRateNavTweak: ImGuiInputFlagsPrivate_ = 8; +pub const ImGuiInputFlags_RepeatUntilRelease: ImGuiInputFlagsPrivate_ = 16; +pub const ImGuiInputFlags_RepeatUntilKeyModsChange: ImGuiInputFlagsPrivate_ = 32; +pub const ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone: ImGuiInputFlagsPrivate_ = 64; +pub const ImGuiInputFlags_RepeatUntilOtherKeyPress: ImGuiInputFlagsPrivate_ = 128; +pub const ImGuiInputFlags_LockThisFrame: ImGuiInputFlagsPrivate_ = 1048576; +pub const ImGuiInputFlags_LockUntilRelease: ImGuiInputFlagsPrivate_ = 2097152; +pub const ImGuiInputFlags_CondHovered: ImGuiInputFlagsPrivate_ = 4194304; +pub const ImGuiInputFlags_CondActive: ImGuiInputFlagsPrivate_ = 8388608; +pub const ImGuiInputFlags_CondDefault_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RepeatRateMask_: ImGuiInputFlagsPrivate_ = 14; +pub const ImGuiInputFlags_RepeatUntilMask_: ImGuiInputFlagsPrivate_ = 240; +pub const ImGuiInputFlags_RepeatMask_: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_CondMask_: ImGuiInputFlagsPrivate_ = 12582912; +pub const ImGuiInputFlags_RouteTypeMask_: ImGuiInputFlagsPrivate_ = 15360; +pub const ImGuiInputFlags_RouteOptionsMask_: ImGuiInputFlagsPrivate_ = 245760; +pub const ImGuiInputFlags_SupportedByIsKeyPressed: ImGuiInputFlagsPrivate_ = 255; +pub const ImGuiInputFlags_SupportedByIsMouseClicked: ImGuiInputFlagsPrivate_ = 1; +pub const ImGuiInputFlags_SupportedByShortcut: ImGuiInputFlagsPrivate_ = 261375; +pub const ImGuiInputFlags_SupportedBySetNextItemShortcut: ImGuiInputFlagsPrivate_ = 523519; +pub const ImGuiInputFlags_SupportedBySetKeyOwner: ImGuiInputFlagsPrivate_ = 3145728; +pub const ImGuiInputFlags_SupportedBySetItemKeyOwner: ImGuiInputFlagsPrivate_ = 15728640; +pub type ImGuiInputFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiListClipperRange { @@ -2896,6 +3163,8 @@ pub const ImGuiActivateFlags_None: ImGuiActivateFlags_ = 0; pub const ImGuiActivateFlags_PreferInput: ImGuiActivateFlags_ = 1; pub const ImGuiActivateFlags_PreferTweak: ImGuiActivateFlags_ = 2; pub const ImGuiActivateFlags_TryToPreserveState: ImGuiActivateFlags_ = 4; +pub const ImGuiActivateFlags_FromTabbing: ImGuiActivateFlags_ = 8; +pub const ImGuiActivateFlags_FromShortcut: ImGuiActivateFlags_ = 16; pub type ImGuiActivateFlags_ = cty::c_uint; pub const ImGuiScrollFlags_None: ImGuiScrollFlags_ = 0; pub const ImGuiScrollFlags_KeepVisibleEdgeX: ImGuiScrollFlags_ = 1; @@ -2909,8 +3178,7 @@ pub const ImGuiScrollFlags_MaskX_: ImGuiScrollFlags_ = 21; pub const ImGuiScrollFlags_MaskY_: ImGuiScrollFlags_ = 42; pub type ImGuiScrollFlags_ = cty::c_uint; pub const ImGuiNavHighlightFlags_None: ImGuiNavHighlightFlags_ = 0; -pub const ImGuiNavHighlightFlags_TypeDefault: ImGuiNavHighlightFlags_ = 1; -pub const ImGuiNavHighlightFlags_TypeThin: ImGuiNavHighlightFlags_ = 2; +pub const ImGuiNavHighlightFlags_Compact: ImGuiNavHighlightFlags_ = 2; pub const ImGuiNavHighlightFlags_AlwaysDraw: ImGuiNavHighlightFlags_ = 4; pub const ImGuiNavHighlightFlags_NoRounding: ImGuiNavHighlightFlags_ = 8; pub type ImGuiNavHighlightFlags_ = cty::c_uint; @@ -2919,15 +3187,19 @@ pub const ImGuiNavMoveFlags_LoopX: ImGuiNavMoveFlags_ = 1; pub const ImGuiNavMoveFlags_LoopY: ImGuiNavMoveFlags_ = 2; pub const ImGuiNavMoveFlags_WrapX: ImGuiNavMoveFlags_ = 4; pub const ImGuiNavMoveFlags_WrapY: ImGuiNavMoveFlags_ = 8; +pub const ImGuiNavMoveFlags_WrapMask_: ImGuiNavMoveFlags_ = 15; pub const ImGuiNavMoveFlags_AllowCurrentNavId: ImGuiNavMoveFlags_ = 16; pub const ImGuiNavMoveFlags_AlsoScoreVisibleSet: ImGuiNavMoveFlags_ = 32; pub const ImGuiNavMoveFlags_ScrollToEdgeY: ImGuiNavMoveFlags_ = 64; pub const ImGuiNavMoveFlags_Forwarded: ImGuiNavMoveFlags_ = 128; pub const ImGuiNavMoveFlags_DebugNoResult: ImGuiNavMoveFlags_ = 256; pub const ImGuiNavMoveFlags_FocusApi: ImGuiNavMoveFlags_ = 512; -pub const ImGuiNavMoveFlags_Tabbing: ImGuiNavMoveFlags_ = 1024; -pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 2048; -pub const ImGuiNavMoveFlags_DontSetNavHighlight: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_IsTabbing: ImGuiNavMoveFlags_ = 1024; +pub const ImGuiNavMoveFlags_IsPageMove: ImGuiNavMoveFlags_ = 2048; +pub const ImGuiNavMoveFlags_Activate: ImGuiNavMoveFlags_ = 4096; +pub const ImGuiNavMoveFlags_NoSelect: ImGuiNavMoveFlags_ = 8192; +pub const ImGuiNavMoveFlags_NoSetNavHighlight: ImGuiNavMoveFlags_ = 16384; +pub const ImGuiNavMoveFlags_NoClearActiveId: ImGuiNavMoveFlags_ = 32768; pub type ImGuiNavMoveFlags_ = cty::c_uint; pub const ImGuiNavLayer_Main: ImGuiNavLayer = 0; pub const ImGuiNavLayer_Menu: ImGuiNavLayer = 1; @@ -2944,6 +3216,7 @@ pub struct ImGuiNavItemData { pub DistBox: f32, pub DistCenter: f32, pub DistAxial: f32, + pub SelectionUserData: ImGuiSelectionUserData, } impl Default for ImGuiNavItemData { fn default() -> Self { @@ -2954,6 +3227,54 @@ impl Default for ImGuiNavItemData { } } } +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiFocusScopeData { + pub ID: ImGuiID, + pub WindowID: ImGuiID, +} +pub const ImGuiTypingSelectFlags_None: ImGuiTypingSelectFlags_ = 0; +pub const ImGuiTypingSelectFlags_AllowBackspace: ImGuiTypingSelectFlags_ = 1; +pub const ImGuiTypingSelectFlags_AllowSingleCharMode: ImGuiTypingSelectFlags_ = 2; +pub type ImGuiTypingSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTypingSelectRequest { + pub Flags: ImGuiTypingSelectFlags, + pub SearchBufferLen: cty::c_int, + pub SearchBuffer: *const cty::c_char, + pub SelectRequest: bool, + pub SingleCharMode: bool, + pub SingleCharSize: ImS8, +} +impl Default for ImGuiTypingSelectRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiTypingSelectState { + pub Request: ImGuiTypingSelectRequest, + pub SearchBuffer: [cty::c_char; 64usize], + pub FocusScope: ImGuiID, + pub LastRequestFrame: cty::c_int, + pub LastRequestTime: f32, + pub SingleCharModeLock: bool, +} +impl Default for ImGuiTypingSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiOldColumnFlags_None: ImGuiOldColumnFlags_ = 0; pub const ImGuiOldColumnFlags_NoBorder: ImGuiOldColumnFlags_ = 1; pub const ImGuiOldColumnFlags_NoResize: ImGuiOldColumnFlags_ = 2; @@ -3015,25 +3336,125 @@ impl Default for ImGuiOldColumns { } } } +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiBoxSelectState { + pub ID: ImGuiID, + pub IsActive: bool, + pub IsStarting: bool, + pub IsStartedFromVoid: bool, + pub IsStartedSetNavIdOnce: bool, + pub RequestClear: bool, + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, + pub StartPosRel: ImVec2, + pub EndPosRel: ImVec2, + pub ScrollAccum: ImVec2, + pub Window: *mut ImGuiWindow, + pub UnclipMode: bool, + pub UnclipRect: ImRect, + pub BoxSelectRectPrev: ImRect, + pub BoxSelectRectCurr: ImRect, +} +impl Default for ImGuiBoxSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +impl ImGuiBoxSelectState { + #[inline] + pub fn KeyMods(&self) -> ImGuiKeyChord { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_KeyMods(&mut self, val: ImGuiKeyChord) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(KeyMods: ImGuiKeyChord) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let KeyMods: u32 = unsafe { ::core::mem::transmute(KeyMods) }; + KeyMods as u64 + }); + __bindgen_bitfield_unit + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImGuiMultiSelectTempData { + pub IO: ImGuiMultiSelectIO, + pub Storage: *mut ImGuiMultiSelectState, + pub FocusScopeId: ImGuiID, + pub Flags: ImGuiMultiSelectFlags, + pub ScopeRectMin: ImVec2, + pub BackupCursorMaxPos: ImVec2, + pub LastSubmittedItem: ImGuiSelectionUserData, + pub BoxSelectId: ImGuiID, + pub KeyMods: ImGuiKeyChord, + pub LoopRequestSetAll: ImS8, + pub IsEndIO: bool, + pub IsFocused: bool, + pub IsKeyboardSetRange: bool, + pub NavIdPassedBy: bool, + pub RangeSrcPassedBy: bool, + pub RangeDstPassedBy: bool, +} +impl Default for ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectState { + pub Window: *mut ImGuiWindow, + pub ID: ImGuiID, + pub LastFrameActive: cty::c_int, + pub LastSelectionSize: cty::c_int, + pub RangeSelected: ImS8, + pub NavIdSelected: ImS8, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, +} +impl Default for ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub const ImGuiDockNodeFlags_DockSpace: ImGuiDockNodeFlagsPrivate_ = 1024; pub const ImGuiDockNodeFlags_CentralNode: ImGuiDockNodeFlagsPrivate_ = 2048; pub const ImGuiDockNodeFlags_NoTabBar: ImGuiDockNodeFlagsPrivate_ = 4096; pub const ImGuiDockNodeFlags_HiddenTabBar: ImGuiDockNodeFlagsPrivate_ = 8192; pub const ImGuiDockNodeFlags_NoWindowMenuButton: ImGuiDockNodeFlagsPrivate_ = 16384; pub const ImGuiDockNodeFlags_NoCloseButton: ImGuiDockNodeFlagsPrivate_ = 32768; -pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 65536; -pub const ImGuiDockNodeFlags_NoDockingSplitMe: ImGuiDockNodeFlagsPrivate_ = 131072; -pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 262144; -pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 524288; -pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 1048576; -pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 2097152; -pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 4194304; -pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 8388608; +pub const ImGuiDockNodeFlags_NoResizeX: ImGuiDockNodeFlagsPrivate_ = 65536; +pub const ImGuiDockNodeFlags_NoResizeY: ImGuiDockNodeFlagsPrivate_ = 131072; +pub const ImGuiDockNodeFlags_DockedWindowsInFocusRoute: ImGuiDockNodeFlagsPrivate_ = 262144; +pub const ImGuiDockNodeFlags_NoDockingSplitOther: ImGuiDockNodeFlagsPrivate_ = 524288; +pub const ImGuiDockNodeFlags_NoDockingOverMe: ImGuiDockNodeFlagsPrivate_ = 1048576; +pub const ImGuiDockNodeFlags_NoDockingOverOther: ImGuiDockNodeFlagsPrivate_ = 2097152; +pub const ImGuiDockNodeFlags_NoDockingOverEmpty: ImGuiDockNodeFlagsPrivate_ = 4194304; +pub const ImGuiDockNodeFlags_NoDocking: ImGuiDockNodeFlagsPrivate_ = 7864336; pub const ImGuiDockNodeFlags_SharedFlagsInheritMask_: ImGuiDockNodeFlagsPrivate_ = -1; -pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12582944; -pub const ImGuiDockNodeFlags_LocalFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12713072; -pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 12712048; -pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 12712992; +pub const ImGuiDockNodeFlags_NoResizeFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 196640; +pub const ImGuiDockNodeFlags_LocalFlagsTransferMask_: ImGuiDockNodeFlagsPrivate_ = 260208; +pub const ImGuiDockNodeFlags_SavedFlagsMask_: ImGuiDockNodeFlagsPrivate_ = 261152; pub type ImGuiDockNodeFlagsPrivate_ = cty::c_int; pub const ImGuiDataAuthority_Auto: ImGuiDataAuthority_ = 0; pub const ImGuiDataAuthority_DockNode: ImGuiDataAuthority_ = 1; @@ -3090,9 +3511,10 @@ pub struct ImGuiDockNode { pub LastFocusedNodeId: ImGuiID, pub SelectedTabId: ImGuiID, pub WantCloseTabId: ImGuiID, + pub RefViewportId: ImGuiID, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>, - pub __bindgen_padding_0: u8, + pub __bindgen_padding_0: [u8; 5usize], } impl Default for ImGuiDockNode { fn default() -> Self { @@ -3338,17 +3760,19 @@ impl ImGuiDockNode { } } pub const ImGuiWindowDockStyleCol_Text: ImGuiWindowDockStyleCol = 0; -pub const ImGuiWindowDockStyleCol_Tab: ImGuiWindowDockStyleCol = 1; -pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 2; -pub const ImGuiWindowDockStyleCol_TabActive: ImGuiWindowDockStyleCol = 3; -pub const ImGuiWindowDockStyleCol_TabUnfocused: ImGuiWindowDockStyleCol = 4; -pub const ImGuiWindowDockStyleCol_TabUnfocusedActive: ImGuiWindowDockStyleCol = 5; -pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabHovered: ImGuiWindowDockStyleCol = 1; +pub const ImGuiWindowDockStyleCol_TabFocused: ImGuiWindowDockStyleCol = 2; +pub const ImGuiWindowDockStyleCol_TabSelected: ImGuiWindowDockStyleCol = 3; +pub const ImGuiWindowDockStyleCol_TabSelectedOverline: ImGuiWindowDockStyleCol = 4; +pub const ImGuiWindowDockStyleCol_TabDimmed: ImGuiWindowDockStyleCol = 5; +pub const ImGuiWindowDockStyleCol_TabDimmedSelected: ImGuiWindowDockStyleCol = 6; +pub const ImGuiWindowDockStyleCol_TabDimmedSelectedOverline: ImGuiWindowDockStyleCol = 7; +pub const ImGuiWindowDockStyleCol_COUNT: ImGuiWindowDockStyleCol = 8; pub type ImGuiWindowDockStyleCol = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiWindowDockStyle { - pub Colors: [ImU32; 6usize], + pub Colors: [ImU32; 8usize], } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3403,26 +3827,28 @@ impl Default for ImGuiDockContext { #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewportP { pub _ImGuiViewport: ImGuiViewport, + pub Window: *mut ImGuiWindow, pub Idx: cty::c_int, pub LastFrameActive: cty::c_int, - pub LastFrontMostStampCount: cty::c_int, + pub LastFocusedStampCount: cty::c_int, pub LastNameHash: ImGuiID, pub LastPos: ImVec2, + pub LastSize: ImVec2, pub Alpha: f32, pub LastAlpha: f32, + pub LastFocusedHadNavWindow: bool, pub PlatformMonitor: cty::c_short, - pub Window: *mut ImGuiWindow, - pub DrawListsLastFrame: [cty::c_int; 2usize], - pub DrawLists: [*mut ImDrawList; 2usize], + pub BgFgDrawListsLastFrame: [cty::c_int; 2usize], + pub BgFgDrawLists: [*mut ImDrawList; 2usize], pub DrawDataP: ImDrawData, pub DrawDataBuilder: ImDrawDataBuilder, pub LastPlatformPos: ImVec2, pub LastPlatformSize: ImVec2, pub LastRendererSize: ImVec2, - pub WorkOffsetMin: ImVec2, - pub WorkOffsetMax: ImVec2, - pub BuildWorkOffsetMin: ImVec2, - pub BuildWorkOffsetMax: ImVec2, + pub WorkInsetMin: ImVec2, + pub WorkInsetMax: ImVec2, + pub BuildWorkInsetMin: ImVec2, + pub BuildWorkInsetMax: ImVec2, } impl Default for ImGuiViewportP { fn default() -> Self { @@ -3445,7 +3871,9 @@ pub struct ImGuiWindowSettings { pub ClassId: ImGuiID, pub DockOrder: cty::c_short, pub Collapsed: bool, + pub IsChild: bool, pub WantApply: bool, + pub WantDelete: bool, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3494,15 +3922,20 @@ impl Default for ImGuiSettingsHandler { } } } -pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 0; -pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 1; -pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 2; -pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 3; -pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 4; -pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 5; -pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 6; -pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 7; -pub const ImGuiLocKey_COUNT: ImGuiLocKey = 8; +pub const ImGuiLocKey_VersionStr: ImGuiLocKey = 0; +pub const ImGuiLocKey_TableSizeOne: ImGuiLocKey = 1; +pub const ImGuiLocKey_TableSizeAllFit: ImGuiLocKey = 2; +pub const ImGuiLocKey_TableSizeAllDefault: ImGuiLocKey = 3; +pub const ImGuiLocKey_TableResetOrder: ImGuiLocKey = 4; +pub const ImGuiLocKey_WindowingMainMenuBar: ImGuiLocKey = 5; +pub const ImGuiLocKey_WindowingPopup: ImGuiLocKey = 6; +pub const ImGuiLocKey_WindowingUntitled: ImGuiLocKey = 7; +pub const ImGuiLocKey_OpenLink_s: ImGuiLocKey = 8; +pub const ImGuiLocKey_CopyLink: ImGuiLocKey = 9; +pub const ImGuiLocKey_DockingHideTabBar: ImGuiLocKey = 10; +pub const ImGuiLocKey_DockingHoldShiftToDock: ImGuiLocKey = 11; +pub const ImGuiLocKey_DockingDragToUndockOrMoveNode: ImGuiLocKey = 12; +pub const ImGuiLocKey_COUNT: ImGuiLocKey = 13; pub type ImGuiLocKey = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3525,25 +3958,47 @@ pub const ImGuiDebugLogFlags_EventFocus: ImGuiDebugLogFlags_ = 2; pub const ImGuiDebugLogFlags_EventPopup: ImGuiDebugLogFlags_ = 4; pub const ImGuiDebugLogFlags_EventNav: ImGuiDebugLogFlags_ = 8; pub const ImGuiDebugLogFlags_EventClipper: ImGuiDebugLogFlags_ = 16; -pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 32; -pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 64; -pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 128; -pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 255; -pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1024; +pub const ImGuiDebugLogFlags_EventSelection: ImGuiDebugLogFlags_ = 32; +pub const ImGuiDebugLogFlags_EventIO: ImGuiDebugLogFlags_ = 64; +pub const ImGuiDebugLogFlags_EventInputRouting: ImGuiDebugLogFlags_ = 128; +pub const ImGuiDebugLogFlags_EventDocking: ImGuiDebugLogFlags_ = 256; +pub const ImGuiDebugLogFlags_EventViewport: ImGuiDebugLogFlags_ = 512; +pub const ImGuiDebugLogFlags_EventMask_: ImGuiDebugLogFlags_ = 1023; +pub const ImGuiDebugLogFlags_OutputToTTY: ImGuiDebugLogFlags_ = 1048576; +pub const ImGuiDebugLogFlags_OutputToTestEngine: ImGuiDebugLogFlags_ = 2097152; pub type ImGuiDebugLogFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocEntry { + pub FrameCount: cty::c_int, + pub AllocCount: ImS16, + pub FreeCount: ImS16, +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiDebugAllocInfo { + pub TotalAllocCount: cty::c_int, + pub TotalFreeCount: cty::c_int, + pub LastEntriesIdx: ImS16, + pub LastEntriesBuf: [ImGuiDebugAllocEntry; 6usize], +} +#[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiMetricsConfig { pub ShowDebugLog: bool, - pub ShowStackTool: bool, + pub ShowIDStackTool: bool, pub ShowWindowsRects: bool, pub ShowWindowsBeginOrder: bool, pub ShowTablesRects: bool, pub ShowDrawCmdMesh: bool, pub ShowDrawCmdBoundingBoxes: bool, + pub ShowTextEncodingViewer: bool, + pub ShowAtlasTintedWithTextColor: bool, pub ShowDockingNodes: bool, pub ShowWindowsRectsType: cty::c_int, pub ShowTablesRectsType: cty::c_int, + pub HighlightMonitorIdx: cty::c_int, + pub HighlightViewportID: ImGuiID, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -3604,7 +4059,7 @@ impl Default for ImVector_ImGuiStackLevelInfo { } #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImGuiStackTool { +pub struct ImGuiIDStackTool { pub LastActiveFrame: cty::c_int, pub StackLevel: cty::c_int, pub QueryId: ImGuiID, @@ -3612,7 +4067,7 @@ pub struct ImGuiStackTool { pub CopyToClipboardOnCtrlC: bool, pub CopyToClipboardLastTime: f32, } -impl Default for ImGuiStackTool { +impl Default for ImGuiIDStackTool { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3717,12 +4172,12 @@ impl Default for ImVector_ImGuiStyleMod { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImGuiID { +pub struct ImVector_ImGuiFocusScopeData { pub Size: cty::c_int, pub Capacity: cty::c_int, - pub Data: *mut ImGuiID, + pub Data: *mut ImGuiFocusScopeData, } -impl Default for ImVector_ImGuiID { +impl Default for ImVector_ImGuiFocusScopeData { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -3781,6 +4236,22 @@ impl Default for ImVector_ImGuiPopupData { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTreeNodeStackData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTreeNodeStackData, +} +impl Default for ImVector_ImGuiTreeNodeStackData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiViewportPPtr { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -3943,6 +4414,71 @@ impl Default for ImVector_ImGuiShrinkWidthItem { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectTempData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectTempData, +} +impl Default for ImVector_ImGuiMultiSelectTempData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiMultiSelectState { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiMultiSelectState, +} +impl Default for ImVector_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImPool_ImGuiMultiSelectState { + pub Buf: ImVector_ImGuiMultiSelectState, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +impl Default for ImPool_ImGuiMultiSelectState { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiID { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiID, +} +impl Default for ImVector_ImGuiID { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImGuiSettingsHandler { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -4008,14 +4544,14 @@ pub struct ImGuiContext { pub FontAtlasOwnedByContext: bool, pub IO: ImGuiIO, pub PlatformIO: ImGuiPlatformIO, - pub InputEventsQueue: ImVector_ImGuiInputEvent, - pub InputEventsTrail: ImVector_ImGuiInputEvent, pub Style: ImGuiStyle, pub ConfigFlagsCurrFrame: ImGuiConfigFlags, pub ConfigFlagsLastFrame: ImGuiConfigFlags, pub Font: *mut ImFont, pub FontSize: f32, pub FontBaseSize: f32, + pub FontScale: f32, + pub CurrentDpiScale: f32, pub DrawListSharedData: ImDrawListSharedData, pub Time: f64, pub FrameCount: cty::c_int, @@ -4028,6 +4564,11 @@ pub struct ImGuiContext { pub GcCompactAll: bool, pub TestEngineHookItems: bool, pub TestEngine: *mut cty::c_void, + pub ContextName: [cty::c_char; 16usize], + pub InputEventsQueue: ImVector_ImGuiInputEvent, + pub InputEventsTrail: ImVector_ImGuiInputEvent, + pub InputEventsNextMouseSource: ImGuiMouseSource, + pub InputEventsNextEventId: ImU32, pub Windows: ImVector_ImGuiWindowPtr, pub WindowsFocusOrder: ImVector_ImGuiWindowPtr, pub WindowsTempSortBuffer: ImVector_ImGuiWindowPtr, @@ -4035,23 +4576,29 @@ pub struct ImGuiContext { pub WindowsById: ImGuiStorage, pub WindowsActiveCount: cty::c_int, pub WindowsHoverPadding: ImVec2, + pub DebugBreakInWindow: ImGuiID, pub CurrentWindow: *mut ImGuiWindow, pub HoveredWindow: *mut ImGuiWindow, pub HoveredWindowUnderMovingWindow: *mut ImGuiWindow, + pub HoveredWindowBeforeClear: *mut ImGuiWindow, pub MovingWindow: *mut ImGuiWindow, pub WheelingWindow: *mut ImGuiWindow, pub WheelingWindowRefMousePos: ImVec2, pub WheelingWindowStartFrame: cty::c_int, + pub WheelingWindowScrolledFrame: cty::c_int, pub WheelingWindowReleaseTimer: f32, pub WheelingWindowWheelRemainder: ImVec2, pub WheelingAxisAvg: ImVec2, + pub DebugDrawIdConflicts: ImGuiID, pub DebugHookIdInfo: ImGuiID, pub HoveredId: ImGuiID, pub HoveredIdPreviousFrame: ImGuiID, - pub HoveredIdAllowOverlap: bool, - pub HoveredIdDisabled: bool, + pub HoveredIdPreviousFrameItemCount: cty::c_int, pub HoveredIdTimer: f32, pub HoveredIdNotActiveTimer: f32, + pub HoveredIdAllowOverlap: bool, + pub HoveredIdIsDisabled: bool, + pub ItemUnclipByLog: bool, pub ActiveId: ImGuiID, pub ActiveIdIsAlive: ImGuiID, pub ActiveIdTimer: f32, @@ -4061,59 +4608,69 @@ pub struct ImGuiContext { pub ActiveIdHasBeenPressedBefore: bool, pub ActiveIdHasBeenEditedBefore: bool, pub ActiveIdHasBeenEditedThisFrame: bool, + pub ActiveIdFromShortcut: bool, + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, pub ActiveIdClickOffset: ImVec2, pub ActiveIdWindow: *mut ImGuiWindow, pub ActiveIdSource: ImGuiInputSource, - pub ActiveIdMouseButton: cty::c_int, pub ActiveIdPreviousFrame: ImGuiID, pub ActiveIdPreviousFrameIsAlive: bool, pub ActiveIdPreviousFrameHasBeenEditedBefore: bool, pub ActiveIdPreviousFrameWindow: *mut ImGuiWindow, pub LastActiveId: ImGuiID, pub LastActiveIdTimer: f32, - pub KeysOwnerData: [ImGuiKeyOwnerData; 140usize], + pub LastKeyModsChangeTime: f64, + pub LastKeyModsChangeFromNoneTime: f64, + pub LastKeyboardKeyPressTime: f64, + pub KeysMayBeCharInput: ImBitArrayForNamedKeys, + pub KeysOwnerData: [ImGuiKeyOwnerData; 154usize], pub KeysRoutingTable: ImGuiKeyRoutingTable, pub ActiveIdUsingNavDirMask: ImU32, pub ActiveIdUsingAllKeyboardKeys: bool, - pub ActiveIdUsingNavInputMask: ImU32, + pub DebugBreakInShortcutRouting: ImGuiKeyChord, pub CurrentFocusScopeId: ImGuiID, pub CurrentItemFlags: ImGuiItemFlags, pub DebugLocateId: ImGuiID, pub NextItemData: ImGuiNextItemData, pub LastItemData: ImGuiLastItemData, pub NextWindowData: ImGuiNextWindowData, + pub DebugShowGroupRects: bool, + pub DebugFlashStyleColorIdx: ImGuiCol, pub ColorStack: ImVector_ImGuiColorMod, pub StyleVarStack: ImVector_ImGuiStyleMod, pub FontStack: ImVector_ImFontPtr, - pub FocusScopeStack: ImVector_ImGuiID, + pub FocusScopeStack: ImVector_ImGuiFocusScopeData, pub ItemFlagsStack: ImVector_ImGuiItemFlags, pub GroupStack: ImVector_ImGuiGroupData, pub OpenPopupStack: ImVector_ImGuiPopupData, pub BeginPopupStack: ImVector_ImGuiPopupData, - pub BeginMenuCount: cty::c_int, + pub TreeNodeStack: ImVector_ImGuiTreeNodeStackData, pub Viewports: ImVector_ImGuiViewportPPtr, - pub CurrentDpiScale: f32, pub CurrentViewport: *mut ImGuiViewportP, pub MouseViewport: *mut ImGuiViewportP, pub MouseLastHoveredViewport: *mut ImGuiViewportP, pub PlatformLastFocusedViewportId: ImGuiID, pub FallbackMonitor: ImGuiPlatformMonitor, - pub ViewportFrontMostStampCount: cty::c_int, + pub PlatformMonitorsFullWorkRect: ImRect, + pub ViewportCreatedCount: cty::c_int, + pub PlatformWindowsCreatedCount: cty::c_int, + pub ViewportFocusedStampCount: cty::c_int, pub NavWindow: *mut ImGuiWindow, pub NavId: ImGuiID, pub NavFocusScopeId: ImGuiID, + pub NavLayer: ImGuiNavLayer, pub NavActivateId: ImGuiID, pub NavActivateDownId: ImGuiID, pub NavActivatePressedId: ImGuiID, - pub NavActivateInputId: ImGuiID, pub NavActivateFlags: ImGuiActivateFlags, - pub NavJustMovedToId: ImGuiID, - pub NavJustMovedToFocusScopeId: ImGuiID, - pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavFocusRoute: ImVector_ImGuiFocusScopeData, + pub NavHighlightActivatedId: ImGuiID, + pub NavHighlightActivatedTimer: f32, pub NavNextActivateId: ImGuiID, pub NavNextActivateFlags: ImGuiActivateFlags, pub NavInputSource: ImGuiInputSource, - pub NavLayer: ImGuiNavLayer, + pub NavLastValidSelectionUserData: ImGuiSelectionUserData, pub NavIdIsAlive: bool, pub NavMousePosDirty: bool, pub NavDisableHighlight: bool, @@ -4121,8 +4678,7 @@ pub struct ImGuiContext { pub NavAnyRequest: bool, pub NavInitRequest: bool, pub NavInitRequestFromMove: bool, - pub NavInitResultId: ImGuiID, - pub NavInitResultRectRel: ImRect, + pub NavInitResult: ImGuiNavItemData, pub NavMoveSubmitted: bool, pub NavMoveScoringItems: bool, pub NavMoveForwardToNextFrame: bool, @@ -4141,6 +4697,12 @@ pub struct ImGuiContext { pub NavMoveResultLocalVisible: ImGuiNavItemData, pub NavMoveResultOther: ImGuiNavItemData, pub NavTabbingResultFirst: ImGuiNavItemData, + pub NavJustMovedFromFocusScopeId: ImGuiID, + pub NavJustMovedToId: ImGuiID, + pub NavJustMovedToFocusScopeId: ImGuiID, + pub NavJustMovedToKeyMods: ImGuiKeyChord, + pub NavJustMovedToIsTabbing: bool, + pub NavJustMovedToHasSelectionData: bool, pub ConfigNavWindowingKeyNext: ImGuiKeyChord, pub ConfigNavWindowingKeyPrev: ImGuiKeyChord, pub NavWindowingTarget: *mut ImGuiWindow, @@ -4149,10 +4711,10 @@ pub struct ImGuiContext { pub NavWindowingTimer: f32, pub NavWindowingHighlightAlpha: f32, pub NavWindowingToggleLayer: bool, + pub NavWindowingToggleKey: ImGuiKey, pub NavWindowingAccumDeltaPos: ImVec2, pub NavWindowingAccumDeltaSize: ImVec2, pub DimBgRatio: f32, - pub MouseCursor: ImGuiMouseCursor, pub DragDropActive: bool, pub DragDropWithinSource: bool, pub DragDropWithinTarget: bool, @@ -4161,6 +4723,7 @@ pub struct ImGuiContext { pub DragDropMouseButton: cty::c_int, pub DragDropPayload: ImGuiPayload, pub DragDropTargetRect: ImRect, + pub DragDropTargetClipRect: ImRect, pub DragDropTargetId: ImGuiID, pub DragDropAcceptFlags: ImGuiDragDropFlags, pub DragDropAcceptIdCurrRectSurface: f32, @@ -4173,6 +4736,7 @@ pub struct ImGuiContext { pub ClipperTempDataStacked: cty::c_int, pub ClipperTempData: ImVector_ImGuiListClipperData, pub CurrentTable: *mut ImGuiTable, + pub DebugBreakInTable: ImGuiID, pub TablesTempDataStacked: cty::c_int, pub TablesTempData: ImVector_ImGuiTableTempData, pub Tables: ImPool_ImGuiTable, @@ -4182,37 +4746,63 @@ pub struct ImGuiContext { pub TabBars: ImPool_ImGuiTabBar, pub CurrentTabBarStack: ImVector_ImGuiPtrOrIndex, pub ShrinkWidthBuffer: ImVector_ImGuiShrinkWidthItem, - pub HoverDelayId: ImGuiID, - pub HoverDelayIdPreviousFrame: ImGuiID, - pub HoverDelayTimer: f32, - pub HoverDelayClearTimer: f32, + pub BoxSelectState: ImGuiBoxSelectState, + pub CurrentMultiSelect: *mut ImGuiMultiSelectTempData, + pub MultiSelectTempDataStacked: cty::c_int, + pub MultiSelectTempData: ImVector_ImGuiMultiSelectTempData, + pub MultiSelectStorage: ImPool_ImGuiMultiSelectState, + pub HoverItemDelayId: ImGuiID, + pub HoverItemDelayIdPreviousFrame: ImGuiID, + pub HoverItemDelayTimer: f32, + pub HoverItemDelayClearTimer: f32, + pub HoverItemUnlockedStationaryId: ImGuiID, + pub HoverWindowUnlockedStationaryId: ImGuiID, + pub MouseCursor: ImGuiMouseCursor, + pub MouseStationaryTimer: f32, pub MouseLastValidPos: ImVec2, pub InputTextState: ImGuiInputTextState, + pub InputTextDeactivatedState: ImGuiInputTextDeactivatedState, pub InputTextPasswordFont: ImFont, pub TempInputId: ImGuiID, + pub DataTypeZeroValue: ImGuiDataTypeStorage, + pub BeginMenuDepth: cty::c_int, + pub BeginComboDepth: cty::c_int, pub ColorEditOptions: ImGuiColorEditFlags, - pub ColorEditLastHue: f32, - pub ColorEditLastSat: f32, - pub ColorEditLastColor: ImU32, + pub ColorEditCurrentID: ImGuiID, + pub ColorEditSavedID: ImGuiID, + pub ColorEditSavedHue: f32, + pub ColorEditSavedSat: f32, + pub ColorEditSavedColor: ImU32, pub ColorPickerRef: ImVec4, pub ComboPreviewData: ImGuiComboPreviewData, + pub WindowResizeBorderExpectedRect: ImRect, + pub WindowResizeRelativeMode: bool, + pub ScrollbarSeekMode: cty::c_short, + pub ScrollbarClickDeltaToGrabCenter: f32, pub SliderGrabClickOffset: f32, pub SliderCurrentAccum: f32, pub SliderCurrentAccumDirty: bool, pub DragCurrentAccumDirty: bool, pub DragCurrentAccum: f32, pub DragSpeedDefaultRatio: f32, - pub ScrollbarClickDeltaToGrabCenter: f32, pub DisabledAlphaBackup: f32, pub DisabledStackSize: cty::c_short, + pub LockMarkEdited: cty::c_short, pub TooltipOverrideCount: cty::c_short, pub ClipboardHandlerData: ImVector_char, pub MenusIdSubmittedThisFrame: ImVector_ImGuiID, + pub TypingSelectState: ImGuiTypingSelectState, pub PlatformImeData: ImGuiPlatformImeData, pub PlatformImeDataPrev: ImGuiPlatformImeData, pub PlatformImeViewport: ImGuiID, - pub PlatformLocaleDecimalPoint: cty::c_char, pub DockContext: ImGuiDockContext, + pub DockNodeWindowMenuHandler: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ), + >, pub SettingsLoaded: bool, pub SettingsDirtyTimer: f32, pub SettingsIniData: ImGuiTextBuffer, @@ -4221,7 +4811,7 @@ pub struct ImGuiContext { pub SettingsTables: ImChunkStream_ImGuiTableSettings, pub Hooks: ImVector_ImGuiContextHook, pub HookIdNext: ImGuiID, - pub LocalizationTable: [*const cty::c_char; 8usize], + pub LocalizationTable: [*const cty::c_char; 13usize], pub LogEnabled: bool, pub LogType: ImGuiLogType, pub LogFile: ImFileHandle, @@ -4236,12 +4826,20 @@ pub struct ImGuiContext { pub DebugLogFlags: ImGuiDebugLogFlags, pub DebugLogBuf: ImGuiTextBuffer, pub DebugLogIndex: ImGuiTextIndex, + pub DebugLogAutoDisableFlags: ImGuiDebugLogFlags, + pub DebugLogAutoDisableFrames: ImU8, pub DebugLocateFrames: ImU8, + pub DebugBreakInLocateId: bool, + pub DebugBreakKeyChord: ImGuiKeyChord, + pub DebugBeginReturnValueCullDepth: ImS8, pub DebugItemPickerActive: bool, pub DebugItemPickerMouseButton: ImU8, pub DebugItemPickerBreakId: ImGuiID, + pub DebugFlashStyleColorTime: f32, + pub DebugFlashStyleColorBackup: ImVec4, pub DebugMetricsConfig: ImGuiMetricsConfig, - pub DebugStackTool: ImGuiStackTool, + pub DebugIDStackTool: ImGuiIDStackTool, + pub DebugAllocInfo: ImGuiDebugAllocInfo, pub DebugHoveredDockNode: *mut ImGuiDockNode, pub FramerateSecPerFrame: [f32; 60usize], pub FramerateSecPerFrameIdx: cty::c_int, @@ -4251,6 +4849,7 @@ pub struct ImGuiContext { pub WantCaptureKeyboardNextFrame: cty::c_int, pub WantTextInputNextFrame: cty::c_int, pub TempBuffer: ImVector_char, + pub TempKeychordName: [cty::c_char; 64usize], } impl Default for ImGuiContext { fn default() -> Self { @@ -4261,6 +4860,28 @@ impl Default for ImGuiContext { } } } +impl ImGuiContext { + #[inline] + pub fn ActiveIdMouseButton(&self) -> cty::c_int { + unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } + } + #[inline] + pub fn set_ActiveIdMouseButton(&mut self, val: cty::c_int) { + unsafe { + let val: u32 = ::core::mem::transmute(val); + self._bitfield_1.set(0usize, 8u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1(ActiveIdMouseButton: cty::c_int) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 8u8, { + let ActiveIdMouseButton: u32 = unsafe { ::core::mem::transmute(ActiveIdMouseButton) }; + ActiveIdMouseButton as u64 + }); + __bindgen_bitfield_unit + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindowTempData { @@ -4282,19 +4903,21 @@ pub struct ImGuiWindowTempData { pub NavLayerCurrent: ImGuiNavLayer, pub NavLayersActiveMask: cty::c_short, pub NavLayersActiveMaskNext: cty::c_short, + pub NavIsScrollPushableX: bool, pub NavHideHighlightOneFrame: bool, - pub NavHasScroll: bool, + pub NavWindowHasScrollY: bool, pub MenuBarAppending: bool, pub MenuBarOffset: ImVec2, pub MenuColumns: ImGuiMenuColumns, pub TreeDepth: cty::c_int, - pub TreeJumpToParentOnPopMask: ImU32, + pub TreeHasStackDataDepthMask: ImU32, pub ChildWindows: ImVector_ImGuiWindowPtr, pub StateStorage: *mut ImGuiStorage, pub CurrentColumns: *mut ImGuiOldColumns, pub CurrentTableIdx: cty::c_int, pub LayoutType: ImGuiLayoutType, pub ParentLayoutType: ImGuiLayoutType, + pub ModalDimBgColor: ImU32, pub ItemWidth: f32, pub TextWrapPos: f32, pub ItemWidthStack: ImVector_float, @@ -4328,10 +4951,12 @@ impl Default for ImVector_ImGuiOldColumns { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiWindow { + pub Ctx: *mut ImGuiContext, pub Name: *mut cty::c_char, pub ID: ImGuiID, pub Flags: ImGuiWindowFlags, pub FlagsPreviousFrame: ImGuiWindowFlags, + pub ChildFlags: ImGuiChildFlags, pub WindowClass: ImGuiWindowClass, pub Viewport: *mut ImGuiViewportP, pub ViewportId: ImGuiID, @@ -4346,6 +4971,8 @@ pub struct ImGuiWindow { pub WindowPadding: ImVec2, pub WindowRounding: f32, pub WindowBorderSize: f32, + pub TitleBarHeight: f32, + pub MenuBarHeight: f32, pub DecoOuterSizeX1: f32, pub DecoOuterSizeY1: f32, pub DecoOuterSizeX2: f32, @@ -4356,6 +4983,7 @@ pub struct ImGuiWindow { pub MoveId: ImGuiID, pub TabId: ImGuiID, pub ChildId: ImGuiID, + pub PopupId: ImGuiID, pub Scroll: ImVec2, pub ScrollMax: ImVec2, pub ScrollTarget: ImVec2, @@ -4371,21 +4999,21 @@ pub struct ImGuiWindow { pub Collapsed: bool, pub WantCollapseToggle: bool, pub SkipItems: bool, + pub SkipRefresh: bool, pub Appearing: bool, pub Hidden: bool, pub IsFallbackWindow: bool, pub IsExplicitChild: bool, pub HasCloseButton: bool, + pub ResizeBorderHovered: cty::c_schar, pub ResizeBorderHeld: cty::c_schar, pub BeginCount: cty::c_short, pub BeginCountPreviousFrame: cty::c_short, pub BeginOrderWithinParent: cty::c_short, pub BeginOrderWithinContext: cty::c_short, pub FocusOrder: cty::c_short, - pub PopupId: ImGuiID, pub AutoFitFramesX: ImS8, pub AutoFitFramesY: ImS8, - pub AutoFitChildAxises: ImS8, pub AutoFitOnlyGrows: bool, pub AutoPosLastDirection: ImGuiDir, pub HiddenFramesCanSkipItems: ImS8, @@ -4425,9 +5053,11 @@ pub struct ImGuiWindow { pub RootWindowDockTree: *mut ImGuiWindow, pub RootWindowForTitleBarHighlight: *mut ImGuiWindow, pub RootWindowForNav: *mut ImGuiWindow, + pub ParentWindowForFocusRoute: *mut ImGuiWindow, pub NavLastChildNavWindow: *mut ImGuiWindow, pub NavLastIds: [ImGuiID; 2usize], pub NavRectRel: [ImRect; 2usize], + pub NavPreferredScoringPosRel: [ImVec2; 2usize], pub NavRootFocusScopeId: ImGuiID, pub MemoryDrawListIdxCapacity: cty::c_int, pub MemoryDrawListVtxCapacity: cty::c_int, @@ -4605,7 +5235,6 @@ pub const ImGuiTabItemFlags_SectionMask_: ImGuiTabItemFlagsPrivate_ = 192; pub const ImGuiTabItemFlags_NoCloseButton: ImGuiTabItemFlagsPrivate_ = 1048576; pub const ImGuiTabItemFlags_Button: ImGuiTabItemFlagsPrivate_ = 2097152; pub const ImGuiTabItemFlags_Unsorted: ImGuiTabItemFlagsPrivate_ = 4194304; -pub const ImGuiTabItemFlags_Preview: ImGuiTabItemFlagsPrivate_ = 8388608; pub type ImGuiTabItemFlagsPrivate_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] @@ -4671,6 +5300,8 @@ pub struct ImGuiTabBar { pub ScrollingSpeed: f32, pub ScrollingRectMinX: f32, pub ScrollingRectMaxX: f32, + pub SeparatorMinX: f32, + pub SeparatorMaxX: f32, pub ReorderRequestTabId: ImGuiID, pub ReorderRequestOffset: ImS16, pub BeginCount: ImS8, @@ -4693,8 +5324,8 @@ impl Default for ImGuiTabBar { } } } -pub type ImGuiTableColumnIdx = ImS8; -pub type ImGuiTableDrawChannelIdx = ImU8; +pub type ImGuiTableColumnIdx = ImS16; +pub type ImGuiTableDrawChannelIdx = ImU16; #[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableColumn { @@ -4704,6 +5335,7 @@ pub struct ImGuiTableColumn { pub MaxX: f32, pub WidthRequest: f32, pub WidthAuto: f32, + pub WidthMax: f32, pub StretchWeight: f32, pub InitStretchWeightOrWidth: f32, pub ClipRect: ImRect, @@ -4804,11 +5436,22 @@ pub struct ImGuiTableCellData { pub Column: ImGuiTableColumnIdx, } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableHeaderData { + pub Index: ImGuiTableColumnIdx, + pub TextColor: ImU32, + pub BgColor0: ImU32, + pub BgColor1: ImU32, +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiTableInstanceData { + pub TableInstanceID: ImGuiID, pub LastOuterHeight: f32, - pub LastFirstRowHeight: f32, + pub LastTopHeadersRowHeight: f32, pub LastFrozenHeight: f32, + pub HoveredRowLast: cty::c_int, + pub HoveredRowNext: cty::c_int, } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] @@ -4897,10 +5540,9 @@ pub struct ImGuiTable { pub Columns: ImSpan_ImGuiTableColumn, pub DisplayOrderToIndex: ImSpan_ImGuiTableColumnIdx, pub RowCellData: ImSpan_ImGuiTableCellData, - pub EnabledMaskByDisplayOrder: ImU64, - pub EnabledMaskByIndex: ImU64, - pub VisibleMaskByIndex: ImU64, - pub RequestOutputMaskByIndex: ImU64, + pub EnabledMaskByDisplayOrder: ImBitArrayPtr, + pub EnabledMaskByIndex: ImBitArrayPtr, + pub VisibleMaskByIndex: ImBitArrayPtr, pub SettingsLoadedFlags: ImGuiTableFlags, pub SettingsOffset: cty::c_int, pub LastFrameActive: cty::c_int, @@ -4912,6 +5554,7 @@ pub struct ImGuiTable { pub RowPosY1: f32, pub RowPosY2: f32, pub RowMinHeight: f32, + pub RowCellPaddingY: f32, pub RowTextBaseline: f32, pub RowIndentOffsetX: f32, pub _bitfield_align_1: [u16; 0], @@ -4926,7 +5569,6 @@ pub struct ImGuiTable { pub MinColumnWidth: f32, pub OuterPaddingX: f32, pub CellPaddingX: f32, - pub CellPaddingY: f32, pub CellSpacingX1: f32, pub CellSpacingX2: f32, pub InnerWidth: f32, @@ -4936,6 +5578,8 @@ pub struct ImGuiTable { pub ResizedColumnNextWidth: f32, pub ResizeLockMinContentsX2: f32, pub RefScale: f32, + pub AngledHeadersHeight: f32, + pub AngledHeadersSlope: f32, pub OuterRect: ImRect, pub InnerRect: ImRect, pub WorkRect: ImRect, @@ -4958,8 +5602,10 @@ pub struct ImGuiTable { pub ColumnsEnabledCount: ImGuiTableColumnIdx, pub ColumnsEnabledFixedCount: ImGuiTableColumnIdx, pub DeclColumnsCount: ImGuiTableColumnIdx, + pub AngledHeadersCount: ImGuiTableColumnIdx, pub HoveredColumnBody: ImGuiTableColumnIdx, pub HoveredColumnBorder: ImGuiTableColumnIdx, + pub HighlightColumnHeader: ImGuiTableColumnIdx, pub AutoFitSingleColumn: ImGuiTableColumnIdx, pub ResizedColumn: ImGuiTableColumnIdx, pub LastResizedColumn: ImGuiTableColumnIdx, @@ -4985,6 +5631,7 @@ pub struct ImGuiTable { pub IsSortSpecsDirty: bool, pub IsUsingHeaders: bool, pub IsContextPopupOpen: bool, + pub DisableDefaultContextMenu: bool, pub IsSettingsRequestLoad: bool, pub IsSettingsDirty: bool, pub IsDefaultDisplayOrder: bool, @@ -4992,6 +5639,8 @@ pub struct ImGuiTable { pub IsResetDisplayOrderRequest: bool, pub IsUnfrozenRows: bool, pub IsDefaultSizingPolicy: bool, + pub IsActiveIdAliveBeforeTable: bool, + pub IsActiveIdInTable: bool, pub HasScrollbarYCurr: bool, pub HasScrollbarYPrev: bool, pub MemoryCompacted: bool, @@ -5047,10 +5696,28 @@ impl ImGuiTable { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiTableHeaderData { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiTableHeaderData, +} +impl Default for ImVector_ImGuiTableHeaderData { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiTableTempData { pub TableIndex: cty::c_int, pub LastTimeActive: f32, + pub AngledHeadersExtraWidth: f32, + pub AngledHeadersRequests: ImVector_ImGuiTableHeaderData, pub UserOuterSize: ImVec2, pub DrawSplitter: ImDrawListSplitter, pub HostBackupWorkRect: ImRect, @@ -5081,6 +5748,7 @@ pub struct ImGuiTableColumnSettings { pub SortOrder: ImGuiTableColumnIdx, pub _bitfield_align_1: [u8; 0], pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, + pub __bindgen_padding_0: u8, } impl ImGuiTableColumnSettings { #[inline] @@ -5210,6 +5878,10 @@ extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -5243,7 +5915,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -5294,8 +5966,8 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -5303,8 +5975,8 @@ extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -5433,22 +6105,6 @@ extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetScrollX() -> f32; } @@ -5517,24 +6173,24 @@ extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igPopStyleVar(count: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -5582,13 +6238,53 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSeparator(); } @@ -5625,42 +6321,6 @@ extern "C" { pub fn igEndGroup(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAlignTextToFramePadding(); } @@ -5716,6 +6376,10 @@ extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -5744,6 +6408,10 @@ extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -5804,10 +6472,18 @@ extern "C" { pub fn igBullet(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -5819,7 +6495,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -5859,17 +6535,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -6445,6 +7120,10 @@ extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -6463,6 +7142,26 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -6482,17 +7181,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -6617,7 +7315,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6628,6 +7326,14 @@ extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -6688,7 +7394,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -6724,12 +7430,16 @@ extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6760,12 +7470,16 @@ extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -6826,7 +7540,7 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockSpace( - id: ImGuiID, + dockspace_id: ImGuiID, size: ImVec2, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6835,6 +7549,7 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockSpaceOverViewport( + dockspace_id: ImGuiID, viewport: *const ImGuiViewport, flags: ImGuiDockNodeFlags, window_class: *const ImGuiWindowClass, @@ -6941,6 +7656,10 @@ extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -7009,24 +7728,12 @@ extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetItemAllowOverlap(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetBackgroundDrawList_Nil() -> *mut ImDrawList; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetForegroundDrawList_Nil() -> *mut ImDrawList; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetBackgroundDrawList_ViewportPtr(viewport: *mut ImGuiViewport) -> *mut ImDrawList; + pub fn igGetBackgroundDrawList(viewport: *mut ImGuiViewport) -> *mut ImDrawList; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7065,14 +7772,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igEndChildFrame(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -7125,6 +7824,10 @@ extern "C" { pub fn igIsKeyReleased_Nil(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed_Nil(key_chord: ImGuiKeyChord) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -7137,6 +7840,18 @@ extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut_Nil(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner_Nil(key: ImGuiKey); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown_Nil(button: ImGuiMouseButton) -> bool; } @@ -7150,7 +7865,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsMouseDoubleClicked(button: ImGuiMouseButton) -> bool; + pub fn igIsMouseDoubleClicked_Nil(button: ImGuiMouseButton) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7229,6 +7944,14 @@ extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugStartItemPicker(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -7241,6 +7964,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -7265,10 +7992,6 @@ extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igUpdatePlatformWindows(); } @@ -7292,6 +8015,22 @@ extern "C" { pub fn igFindViewportByPlatformHandle(platform_handle: *mut cty::c_void) -> *mut ImGuiViewport; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -7321,7 +8060,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7359,13 +8102,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -7443,22 +8190,6 @@ extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -7579,7 +8310,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -7590,14 +8321,14 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -7674,11 +8405,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -7706,13 +8437,24 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -7750,6 +8492,78 @@ extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -7970,6 +8784,29 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -7994,26 +8831,6 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -8039,6 +8856,35 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -8097,6 +8943,10 @@ extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -8127,6 +8977,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -8270,6 +9132,10 @@ extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -8311,6 +9177,10 @@ extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -8421,7 +9291,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8432,7 +9302,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -8745,15 +9615,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; + pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImGuiID) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igImHashData(data: *const cty::c_void, data_size: usize, seed: ImU32) -> ImGuiID; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImU32) -> ImGuiID; + pub fn igImHashStr(data: *const cty::c_char, data_size: usize, seed: ImGuiID) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -8819,10 +9685,6 @@ extern "C" { ) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImStreolRange( str_: *const cty::c_char, @@ -8830,10 +9692,6 @@ extern "C" { ) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImStrbolW(buf_mid_line: *const ImWchar, buf_begin: *const ImWchar) -> *const ImWchar; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImStristr( haystack: *const cty::c_char, @@ -8851,6 +9709,17 @@ extern "C" { pub fn igImStrSkipBlank(str_: *const cty::c_char) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImStrlenW(str_: *const ImWchar) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImStrbol( + buf_mid_line: *const cty::c_char, + buf_begin: *const cty::c_char, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImToUpper(c: cty::c_char) -> cty::c_char; } @@ -8863,6 +9732,10 @@ extern "C" { pub fn igImCharIsBlankW(c: cty::c_uint) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImCharIsXdigitA(c: cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFormatString( buf: *mut cty::c_char, @@ -8972,6 +9845,20 @@ extern "C" { ) -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTextFindPreviousUtf8Codepoint( + in_text_start: *const cty::c_char, + in_text_curr: *const cty::c_char, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTextCountLines( + in_text: *const cty::c_char, + in_text_end: *const cty::c_char, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFileOpen(filename: *const cty::c_char, mode: *const cty::c_char) -> ImFileHandle; } @@ -9095,22 +9982,22 @@ extern "C" { pub fn igImInvLength(lhs: ImVec2, fail_value: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTrunc_Float(f: f32) -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImTrunc_Vec2(pOut: *mut ImVec2, v: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFloor_Float(f: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImFloorSigned_Float(f: f32) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImFloor_Vec2(pOut: *mut ImVec2, v: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igImFloorSigned_Vec2(pOut: *mut ImVec2, v: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImModPositive(a: cty::c_int, b: cty::c_int) -> cty::c_int; } @@ -9127,6 +10014,10 @@ extern "C" { pub fn igImLinearSweep(current: f32, target: f32, speed: f32) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImLinearRemapClamp(s0: f32, s1: f32, d0: f32, d1: f32, x: f32) -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImMul(pOut: *mut ImVec2, lhs: ImVec2, rhs: ImVec2); } @@ -9207,7 +10098,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igImGetDirQuadrantFromDelta(dx: f32, dy: f32) -> ImGuiDir; + pub fn igImTriangleIsClockwise(a: ImVec2, b: ImVec2, c: ImVec2) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9302,6 +10193,10 @@ extern "C" { pub fn ImRect_Contains_Rect(self_: *mut ImRect, r: ImRect) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImRect_ContainsWithPad(self_: *mut ImRect, p: ImVec2, pad: ImVec2) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImRect_Overlaps(self_: *mut ImRect, r: ImRect) -> bool; } @@ -9354,6 +10249,14 @@ extern "C" { pub fn ImRect_ToVec4(pOut: *mut ImVec4, self_: *mut ImRect); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImBitArrayGetStorageSizeInBytes(bitcount: cty::c_int) -> usize; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImBitArrayClearAllBits(arr: *mut ImU32, bitcount: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImBitArrayTestBit(arr: *const ImU32, n: cty::c_int) -> bool; } @@ -9423,6 +10326,14 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igImLowerBound( + in_begin: *mut ImGuiStoragePair, + in_end: *mut ImGuiStoragePair, + key: ImGuiID, + ) -> *mut ImGuiStoragePair; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawListSharedData_ImDrawListSharedData() -> *mut ImDrawListSharedData; } @@ -9439,19 +10350,18 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_Clear(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_ImDrawDataBuilder() -> *mut ImDrawDataBuilder; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_ClearFreeMemory(self_: *mut ImDrawDataBuilder); + pub fn ImDrawDataBuilder_destroy(self_: *mut ImDrawDataBuilder); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImDrawDataBuilder_GetDrawListCount(self_: *mut ImDrawDataBuilder) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawDataBuilder_FlattenIntoSingleLayer(self_: *mut ImDrawDataBuilder); + pub fn ImGuiDataVarInfo_GetVarPtr( + self_: *mut ImGuiDataVarInfo, + parent: *mut cty::c_void, + ) -> *mut cty::c_void; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9510,9 +10420,22 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiInputTextState_ImGuiInputTextState( - ctx: *mut ImGuiContext, - ) -> *mut ImGuiInputTextState; + pub fn ImGuiInputTextDeactivatedState_ImGuiInputTextDeactivatedState( + ) -> *mut ImGuiInputTextDeactivatedState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextDeactivatedState_destroy(self_: *mut ImGuiInputTextDeactivatedState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextDeactivatedState_ClearFreeMemory( + self_: *mut ImGuiInputTextDeactivatedState, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_ImGuiInputTextState() -> *mut ImGuiInputTextState; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9527,18 +10450,14 @@ extern "C" { pub fn ImGuiInputTextState_ClearFreeMemory(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiInputTextState_GetUndoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiInputTextState_GetRedoAvailCount(self_: *mut ImGuiInputTextState) -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputTextState_OnKeyPressed(self_: *mut ImGuiInputTextState, key: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_OnCharPressed(self_: *mut ImGuiInputTextState, c: cty::c_uint); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputTextState_CursorAnimReset(self_: *mut ImGuiInputTextState); } @@ -9572,11 +10491,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; + pub fn ImGuiInputTextState_ReloadUserBufAndSelectAll(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); + pub fn ImGuiInputTextState_ReloadUserBufAndKeepSelection(self_: *mut ImGuiInputTextState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiInputTextState_ReloadUserBufAndMoveToEnd(self_: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9620,11 +10543,14 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_SetToCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_SetToContextState(self_: *mut ImGuiStackSizes, ctx: *mut ImGuiContext); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackSizes_CompareWithCurrentState(self_: *mut ImGuiStackSizes); + pub fn ImGuiStackSizes_CompareWithContextState( + self_: *mut ImGuiStackSizes, + ctx: *mut ImGuiContext, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9639,6 +10565,14 @@ extern "C" { pub fn ImGuiPtrOrIndex_ImGuiPtrOrIndex_Int(index: cty::c_int) -> *mut ImGuiPtrOrIndex; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPopupData_ImGuiPopupData() -> *mut ImGuiPopupData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPopupData_destroy(self_: *mut ImGuiPopupData); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiInputEvent_ImGuiInputEvent() -> *mut ImGuiInputEvent; } @@ -9718,6 +10652,18 @@ extern "C" { pub fn ImGuiNavItemData_Clear(self_: *mut ImGuiNavItemData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_ImGuiTypingSelectState() -> *mut ImGuiTypingSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_destroy(self_: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTypingSelectState_Clear(self_: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOldColumnData_ImGuiOldColumnData() -> *mut ImGuiOldColumnData; } @@ -9734,6 +10680,38 @@ extern "C" { pub fn ImGuiOldColumns_destroy(self_: *mut ImGuiOldColumns); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiBoxSelectState_ImGuiBoxSelectState() -> *mut ImGuiBoxSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiBoxSelectState_destroy(self_: *mut ImGuiBoxSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_ImGuiMultiSelectTempData() -> *mut ImGuiMultiSelectTempData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_destroy(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_Clear(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectTempData_ClearIO(self_: *mut ImGuiMultiSelectTempData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectState_ImGuiMultiSelectState() -> *mut ImGuiMultiSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiMultiSelectState_destroy(self_: *mut ImGuiMultiSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiDockNode_ImGuiDockNode(id: ImGuiID) -> *mut ImGuiDockNode; } @@ -9814,7 +10792,7 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectPos( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, + inset_min: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -9822,8 +10800,8 @@ extern "C" { pub fn ImGuiViewportP_CalcWorkRectSize( pOut: *mut ImVec2, self_: *mut ImGuiViewportP, - off_min: ImVec2, - off_max: ImVec2, + inset_min: ImVec2, + inset_max: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -9864,11 +10842,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiMetricsConfig_ImGuiMetricsConfig() -> *mut ImGuiMetricsConfig; + pub fn ImGuiDebugAllocInfo_ImGuiDebugAllocInfo() -> *mut ImGuiDebugAllocInfo; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiMetricsConfig_destroy(self_: *mut ImGuiMetricsConfig); + pub fn ImGuiDebugAllocInfo_destroy(self_: *mut ImGuiDebugAllocInfo); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9880,11 +10858,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackTool_ImGuiStackTool() -> *mut ImGuiStackTool; + pub fn ImGuiIDStackTool_ImGuiIDStackTool() -> *mut ImGuiIDStackTool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStackTool_destroy(self_: *mut ImGuiStackTool); + pub fn ImGuiIDStackTool_destroy(self_: *mut ImGuiIDStackTool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -9930,6 +10908,10 @@ extern "C" { pub fn ImGuiWindow_GetID_Int(self_: *mut ImGuiWindow, n: cty::c_int) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiWindow_GetIDFromPos(self_: *mut ImGuiWindow, p_abs: ImVec2) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_GetIDFromRectangle(self_: *mut ImGuiWindow, r_abs: ImRect) -> ImGuiID; } @@ -9942,18 +10924,10 @@ extern "C" { pub fn ImGuiWindow_CalcFontSize(self_: *mut ImGuiWindow) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiWindow_TitleBarHeight(self_: *mut ImGuiWindow) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_TitleBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiWindow_MenuBarHeight(self_: *mut ImGuiWindow) -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiWindow_MenuBarRect(pOut: *mut ImRect, self_: *mut ImGuiWindow); } @@ -9974,18 +10948,6 @@ extern "C" { pub fn ImGuiTabBar_destroy(self_: *mut ImGuiTabBar); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTabBar_GetTabOrder(self_: *mut ImGuiTabBar, tab: *const ImGuiTabItem) - -> cty::c_int; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTabBar_GetTabName( - self_: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, - ) -> *const cty::c_char; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiTableColumn_ImGuiTableColumn() -> *mut ImGuiTableColumn; } @@ -10064,6 +11026,10 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igUpdateWindowSkipRefresh(window: *mut ImGuiWindow); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcWindowNextAutoFitSize(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -10115,6 +11081,17 @@ extern "C" { pub fn igSetWindowHitTestHole(window: *mut ImGuiWindow, pos: ImVec2, size: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetWindowHiddenAndSkipItemsForCurrentFrame(window: *mut ImGuiWindow); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetWindowParentWindowForFocusRoute( + window: *mut ImGuiWindow, + parent_window: *mut ImGuiWindow, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igWindowRectAbsToRel(pOut: *mut ImRect, window: *mut ImGuiWindow, r: ImRect); } @@ -10124,13 +11101,23 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igFocusWindow(window: *mut ImGuiWindow); + pub fn igWindowPosAbsToRel(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igWindowPosRelToAbs(pOut: *mut ImVec2, window: *mut ImGuiWindow, p: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFocusWindow(window: *mut ImGuiWindow, flags: ImGuiFocusRequestFlags); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFocusTopMostWindowUnderOne( under_this_window: *mut ImGuiWindow, ignore_window: *mut ImGuiWindow, + filter_viewport: *mut ImGuiViewport, + flags: ImGuiFocusRequestFlags, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10160,6 +11147,10 @@ extern "C" { ) -> *mut ImGuiWindow; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextWindowRefreshPolicy(flags: ImGuiWindowRefreshFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetCurrentFont(font: *mut ImFont); } @@ -10172,6 +11163,14 @@ extern "C" { pub fn igGetForegroundDrawList_WindowPtr(window: *mut ImGuiWindow) -> *mut ImDrawList; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igAddDrawListToDrawDataEx( + draw_data: *mut ImDrawData, + out_list: *mut ImVector_ImDrawListPtr, + draw_list: *mut ImDrawList, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igInitialize(); } @@ -10188,6 +11187,15 @@ extern "C" { pub fn igUpdateHoveredWindowAndCaptureFlags(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindHoveredWindowEx( + pos: ImVec2, + find_first_and_in_any_viewport: bool, + out_hovered_window: *mut *mut ImGuiWindow, + out_hovered_window_under_moving_window: *mut *mut ImGuiWindow, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igStartMouseMovingWindow(window: *mut ImGuiWindow); } @@ -10196,7 +11204,7 @@ extern "C" { pub fn igStartMouseMovingWindowOrNode( window: *mut ImGuiWindow, node: *mut ImGuiDockNode, - undock_floating_node: bool, + undock: bool, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10225,6 +11233,8 @@ extern "C" { viewport: *mut ImGuiViewportP, old_pos: ImVec2, new_pos: ImVec2, + old_size: ImVec2, + new_size: ImVec2, ); } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10268,18 +11278,6 @@ extern "C" { pub fn igClearIniSettings(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igFindWindowSettings(id: ImGuiID) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igFindOrCreateWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAddSettingsHandler(handler: *const ImGuiSettingsHandler); } @@ -10292,6 +11290,22 @@ extern "C" { pub fn igFindSettingsHandler(type_name: *const cty::c_char) -> *mut ImGuiSettingsHandler; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igCreateNewWindowSettings(name: *const cty::c_char) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindWindowSettingsByID(id: ImGuiID) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindWindowSettingsByWindow(window: *mut ImGuiWindow) -> *mut ImGuiWindowSettings; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igClearWindowSettings(name: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igLocalizeRegisterEntries(entries: *const ImGuiLocEntry, count: cty::c_int); } @@ -10394,13 +11408,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetIDWithSeed( + pub fn igGetIDWithSeed_Str( str_id_begin: *const cty::c_char, str_id_end: *const cty::c_char, seed: ImGuiID, ) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetIDWithSeed_Int(n: cty::c_int, seed: ImGuiID) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igItemSize_Vec2(size: ImVec2, text_baseline_y: f32); } @@ -10419,7 +11437,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igItemHoverable(bb: ImRect, id: ImGuiID) -> bool; + pub fn igItemHoverable(bb: ImRect, id: ImGuiID, item_flags: ImGuiItemFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsWindowContentHoverable(window: *mut ImGuiWindow, flags: ImGuiHoveredFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10447,24 +11469,20 @@ extern "C" { pub fn igPushMultiItemsWidths(components: cty::c_int, width_full: f32); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igIsItemToggledSelection() -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMaxAbs(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igShrinkWidths(items: *mut ImGuiShrinkWidthItem, count: cty::c_int, width_excess: f32); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); + pub fn igGetStyleVarInfo(idx: ImGuiStyleVar) -> *const ImGuiDataVarInfo; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopItemFlag(); + pub fn igBeginDisabledOverrideReenable(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndDisabledOverrideReenable(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10492,11 +11510,15 @@ extern "C" { name: *const cty::c_char, id: ImGuiID, size_arg: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginPopupEx(id: ImGuiID, extra_window_flags: ImGuiWindowFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igOpenPopupEx(id: ImGuiID, popup_flags: ImGuiPopupFlags); } @@ -10520,14 +11542,6 @@ extern "C" { pub fn igIsPopupOpen_ID(id: ImGuiID, popup_flags: ImGuiPopupFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginPopupEx(id: ImGuiID, extra_flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginTooltipEx(tooltip_flags: ImGuiTooltipFlags, extra_window_flags: ImGuiWindowFlags); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetPopupAllowedExtentRect(pOut: *mut ImRect, window: *mut ImGuiWindow); } @@ -10540,6 +11554,10 @@ extern "C" { pub fn igGetTopMostAndVisiblePopupModal() -> *mut ImGuiWindow; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFindBlockingModal(window: *mut ImGuiWindow) -> *mut ImGuiWindow; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igFindBestWindowPosForPopup(pOut: *mut ImVec2, window: *mut ImGuiWindow); } @@ -10556,6 +11574,17 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTooltipEx( + tooltip_flags: ImGuiTooltipFlags, + extra_window_flags: ImGuiWindowFlags, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTooltipHidden() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginViewportSideBar( name: *const cty::c_char, @@ -10630,6 +11659,13 @@ extern "C" { pub fn igNavMoveRequestResolveWithLastItem(result: *mut ImGuiNavItemData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavMoveRequestResolveWithPastTreeNode( + result: *mut ImGuiNavItemData, + tree_node_data: *mut ImGuiTreeNodeStackData, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igNavMoveRequestCancel(); } @@ -10643,7 +11679,19 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igActivateItem(id: ImGuiID); + pub fn igNavHighlightActivated(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavClearPreferredPosForAxis(axis: ImGuiAxis); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavRestoreHighlightAfterMove(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igNavUpdateCurrentWindowIsScrollPushableX(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10659,12 +11707,24 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNavFocusScope(focus_scope_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFocusItem(); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igActivateItemByID(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsNamedKey(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsNamedKeyOrModKey(key: ImGuiKey) -> bool; + pub fn igIsNamedKeyOrMod(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10688,7 +11748,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igConvertShortcutMod(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; + pub fn igIsLRModKey(key: ImGuiKey) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igFixupKeyChord(key_chord: ImGuiKeyChord) -> ImGuiKeyChord; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10696,15 +11760,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyData(key: ImGuiKey) -> *mut ImGuiKeyData; + pub fn igGetKeyData_ContextPtr(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyData; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyChordName( - key_chord: ImGuiKeyChord, - out_buf: *mut cty::c_char, - out_buf_size: cty::c_int, - ); + pub fn igGetKeyData_Key(key: ImGuiKey) -> *mut ImGuiKeyData; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetKeyChordName(key_chord: ImGuiKeyChord) -> *const cty::c_char; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10746,6 +11810,10 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTeleportMousePos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetActiveIdUsingAllKeyboardKeys(); } @@ -10763,7 +11831,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igSetItemKeyOwner(key: ImGuiKey, flags: ImGuiInputFlags); + pub fn igSetKeyOwnersForKeyChord(key: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner_InputFlags(key: ImGuiKey, flags: ImGuiInputFlags); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10771,7 +11843,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetKeyOwnerData(key: ImGuiKey) -> *mut ImGuiKeyOwnerData; + pub fn igGetKeyOwnerData(ctx: *mut ImGuiContext, key: ImGuiKey) -> *mut ImGuiKeyOwnerData; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -10779,22 +11851,34 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsKeyPressed_ID(key: ImGuiKey, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsKeyPressed_InputFlags( + key: ImGuiKey, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsKeyReleased_ID(key: ImGuiKey, owner_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed_InputFlags( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsMouseClicked_ID( + pub fn igIsMouseClicked_InputFlags( button: ImGuiMouseButton, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10803,14 +11887,22 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShortcut(key_chord: ImGuiKeyChord, owner_id: ImGuiID, flags: ImGuiInputFlags) -> bool; + pub fn igIsMouseDoubleClicked_ID(button: ImGuiMouseButton, owner_id: ImGuiID) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut_ID( + key_chord: ImGuiKeyChord, + flags: ImGuiInputFlags, + owner_id: ImGuiID, + ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetShortcutRouting( key_chord: ImGuiKeyChord, - owner_id: ImGuiID, flags: ImGuiInputFlags, + owner_id: ImGuiID, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -10878,6 +11970,18 @@ extern "C" { pub fn igDockContextQueueUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockContextProcessUndockWindow( + ctx: *mut ImGuiContext, + window: *mut ImGuiWindow, + clear_persistent_docking_ref: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockContextProcessUndockNode(ctx: *mut ImGuiContext, node: *mut ImGuiDockNode); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockContextCalcDropPosForDocking( target: *mut ImGuiWindow, @@ -10894,6 +11998,14 @@ extern "C" { pub fn igDockContextFindNodeByID(ctx: *mut ImGuiContext, id: ImGuiID) -> *mut ImGuiDockNode; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDockNodeWindowMenuHandler_Default( + ctx: *mut ImGuiContext, + node: *mut ImGuiDockNode, + tab_bar: *mut ImGuiTabBar, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDockNodeBeginAmendTabBar(node: *mut ImGuiDockNode) -> bool; } @@ -11044,7 +12156,94 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igRenderDragDropTargetRect(bb: ImRect); + pub fn igRenderDragDropTargetRect(bb: ImRect, item_clip_rect: ImRect); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetTypingSelectRequest(flags: ImGuiTypingSelectFlags) + -> *mut ImGuiTypingSelectRequest; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindNextSingleCharMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + nav_item_idx: cty::c_int, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTypingSelectFindBestLeadingMatch( + req: *mut ImGuiTypingSelectRequest, + items_count: cty::c_int, + get_item_name_func: ::core::option::Option< + unsafe extern "C" fn(arg1: *mut cty::c_void, arg2: cty::c_int) -> *const cty::c_char, + >, + user_data: *mut cty::c_void, + ) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginBoxSelect( + scope_rect: ImRect, + window: *mut ImGuiWindow, + box_select_id: ImGuiID, + ms_flags: ImGuiMultiSelectFlags, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndBoxSelect(scope_rect: ImRect, ms_flags: ImGuiMultiSelectFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectItemHeader( + id: ImGuiID, + p_selected: *mut bool, + p_button_flags: *mut ImGuiButtonFlags, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectItemFooter(id: ImGuiID, p_selected: *mut bool, p_pressed: *mut bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectAddSetAll(ms: *mut ImGuiMultiSelectTempData, selected: bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igMultiSelectAddSetRange( + ms: *mut ImGuiMultiSelectTempData, + selected: bool, + range_dir: cty::c_int, + first_item: ImGuiSelectionUserData, + last_item: ImGuiSelectionUserData, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetBoxSelectState(id: ImGuiID) -> *mut ImGuiBoxSelectState; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetMultiSelectState(id: ImGuiID) -> *mut ImGuiMultiSelectState; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11108,13 +12307,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableGetHoveredColumn() -> cty::c_int; + pub fn igTableGetHoveredRow() -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableGetHeaderRowHeight() -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHeaderAngledMaxLabelWidth() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTablePushBackgroundChannel(); } @@ -11123,6 +12326,16 @@ extern "C" { pub fn igTablePopBackgroundChannel(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableAngledHeadersRowEx( + row_id: ImGuiID, + angle: f32, + max_label_width: f32, + data: *const ImGuiTableHeaderData, + data_count: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetCurrentTable() -> *mut ImGuiTable; } @@ -11171,7 +12384,10 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableDrawContextMenu(table: *mut ImGuiTable); + pub fn igTableDrawDefaultContextMenu( + table: *mut ImGuiTable, + flags_for_section_to_display: ImGuiTableFlags, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11189,6 +12405,10 @@ extern "C" { ) -> *mut ImGuiTableInstanceData; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetInstanceID(table: *mut ImGuiTable, instance_no: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSortSpecsSanitize(table: *mut ImGuiTable); } @@ -11238,14 +12458,14 @@ extern "C" { #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableGetColumnResizeID( - table: *const ImGuiTable, + table: *mut ImGuiTable, column_n: cty::c_int, instance_no: cty::c_int, ) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableGetMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; + pub fn igTableCalcMaxColumnWidth(table: *const ImGuiTable, column_n: cty::c_int) -> f32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11302,24 +12522,45 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTabBarEx( - tab_bar: *mut ImGuiTabBar, - bb: ImRect, - flags: ImGuiTabBarFlags, - dock_node: *mut ImGuiDockNode, - ) -> bool; + pub fn igGetCurrentTabBar() -> *mut ImGuiTabBar; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginTabBarEx(tab_bar: *mut ImGuiTabBar, bb: ImRect, flags: ImGuiTabBarFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarFindTabByID(tab_bar: *mut ImGuiTabBar, tab_id: ImGuiID) -> *mut ImGuiTabItem; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarFindTabByOrder( + tab_bar: *mut ImGuiTabBar, + order: cty::c_int, + ) -> *mut ImGuiTabItem; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarFindMostRecentlySelectedTabForActiveWindow( tab_bar: *mut ImGuiTabBar, ) -> *mut ImGuiTabItem; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetCurrentTab(tab_bar: *mut ImGuiTabBar) -> *mut ImGuiTabItem; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetTabOrder(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem) -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarGetTabName( + tab_bar: *mut ImGuiTabBar, + tab: *mut ImGuiTabItem, + ) -> *const cty::c_char; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarAddTab( tab_bar: *mut ImGuiTabBar, @@ -11336,10 +12577,14 @@ extern "C" { pub fn igTabBarCloseTab(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTabBarQueueFocus(tab_bar: *mut ImGuiTabBar, tab: *mut ImGuiTabItem); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTabBarQueueReorder( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, offset: cty::c_int, ); } @@ -11347,7 +12592,7 @@ extern "C" { extern "C" { pub fn igTabBarQueueReorderFromMousePos( tab_bar: *mut ImGuiTabBar, - tab: *const ImGuiTabItem, + tab: *mut ImGuiTabItem, mouse_pos: ImVec2, ); } @@ -11463,7 +12708,7 @@ extern "C" { p_min: ImVec2, p_max: ImVec2, fill_col: ImU32, - border: bool, + borders: bool, rounding: f32, ); } @@ -11590,16 +12835,26 @@ extern "C" { pub fn igImageButtonEx( id: ImGuiID, texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, tint_col: ImVec4, + flags: ImGuiButtonFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igSeparatorEx(flags: ImGuiSeparatorFlags); + pub fn igSeparatorEx(flags: ImGuiSeparatorFlags, thickness: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorTextEx( + id: ImGuiID, + label: *const cty::c_char, + label_end: *const cty::c_char, + extra_width: f32, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11724,11 +12979,15 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTreeNodeSetOpen(id: ImGuiID, open: bool); + pub fn igTreeNodeGetOpen(storage_id: ImGuiID) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTreeNodeUpdateNextOpen(id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; + pub fn igTreeNodeSetOpen(storage_id: ImGuiID, open: bool); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTreeNodeUpdateNextOpen(storage_id: ImGuiID, flags: ImGuiTreeNodeFlags) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11761,6 +13020,7 @@ extern "C" { data_type: ImGuiDataType, p_data: *mut cty::c_void, format: *const cty::c_char, + p_data_when_empty: *mut cty::c_void, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -11794,6 +13054,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igInputTextDeactivateHook(id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTempInputText( bb: ImRect, @@ -11826,6 +13090,10 @@ extern "C" { pub fn igGetInputTextState(id: ImGuiID) -> *mut ImGuiInputTextState; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemRefVal(data_type: ImGuiDataType, p_data: *mut cty::c_void); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igColorTooltip(text: *const cty::c_char, col: *const f32, flags: ImGuiColorEditFlags); } @@ -11851,7 +13119,7 @@ extern "C" { overlay_text: *const cty::c_char, scale_min: f32, scale_max: f32, - frame_size: ImVec2, + size_arg: ImVec2, ) -> cty::c_int; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -11880,6 +13148,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShadeVertsTransformPos( + draw_list: *mut ImDrawList, + vert_start_idx: cty::c_int, + vert_end_idx: cty::c_int, + pivot_in: ImVec2, + cos_a: f32, + sin_a: f32, + pivot_out: ImVec2, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGcCompactTransientMiscBuffers(); } @@ -11893,7 +13173,12 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugLog(fmt: *const cty::c_char, ...); + pub fn igDebugAllocHook( + info: *mut ImGuiDebugAllocInfo, + frame_count: cty::c_int, + ptr: *mut cty::c_void, + size: usize, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -11914,6 +13199,25 @@ extern "C" { pub fn igErrorCheckUsingSetCursorPosToExtendParentBoundaries(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawCursorPos(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawLineExtents(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugDrawItemRect(col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugTextUnformattedWithLocateItem( + line_begin: *const cty::c_char, + line_end: *const cty::c_char, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugLocateItem(target_id: ImGuiID); } @@ -11927,11 +13231,21 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugDrawItemRect(col: ImU32); + pub fn igDebugBreakClearData(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igDebugStartItemPicker(); + pub fn igDebugBreakButton( + label: *const cty::c_char, + description_of_location: *const cty::c_char, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugBreakButtonTooltip( + keyboard_only: bool, + description_of_location: *const cty::c_char, + ); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -12002,6 +13316,14 @@ extern "C" { pub fn igDebugNodeInputTextState(state: *mut ImGuiInputTextState); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodeTypingSelectState(state: *mut ImGuiTypingSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodeMultiSelectState(state: *mut ImGuiMultiSelectState); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugNodeWindow(window: *mut ImGuiWindow, label: *const cty::c_char); } @@ -12026,6 +13348,14 @@ extern "C" { pub fn igDebugNodeViewport(viewport: *mut ImGuiViewportP); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugNodePlatformMonitor( + monitor: *mut ImGuiPlatformMonitor, + label: *const cty::c_char, + idx: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugRenderKeyboardPreview(draw_list: *mut ImDrawList); } @@ -12039,7 +13369,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igIsKeyPressedMap(key: ImGuiKey, repeat: bool) -> bool; + pub fn igImFontAtlasUpdateConfigDataPointers(atlas: *mut ImFontAtlas); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { diff --git a/imgui-sys/src/wasm_freetype_bindings.rs b/imgui-sys/src/wasm_freetype_bindings.rs index 0aa0cdb..58f128c 100644 --- a/imgui-sys/src/wasm_freetype_bindings.rs +++ b/imgui-sys/src/wasm_freetype_bindings.rs @@ -97,13 +97,18 @@ pub struct ImFontBuilderIO { pub struct ImGuiContext { _unused: [u8; 0], } +pub type ImGuiID = cty::c_uint; +pub type ImS8 = cty::c_schar; +pub type ImU8 = cty::c_uchar; +pub type ImS16 = cty::c_short; +pub type ImU16 = cty::c_ushort; +pub type ImU32 = cty::c_uint; +pub type ImS64 = cty::c_longlong; pub type ImGuiCol = cty::c_int; pub type ImGuiCond = cty::c_int; pub type ImGuiDataType = cty::c_int; -pub type ImGuiDir = cty::c_int; pub type ImGuiMouseButton = cty::c_int; pub type ImGuiMouseCursor = cty::c_int; -pub type ImGuiSortDirection = cty::c_int; pub type ImGuiStyleVar = cty::c_int; pub type ImGuiTableBgTarget = cty::c_int; pub type ImDrawFlags = cty::c_int; @@ -111,15 +116,19 @@ pub type ImDrawListFlags = cty::c_int; pub type ImFontAtlasFlags = cty::c_int; pub type ImGuiBackendFlags = cty::c_int; pub type ImGuiButtonFlags = cty::c_int; +pub type ImGuiChildFlags = cty::c_int; pub type ImGuiColorEditFlags = cty::c_int; pub type ImGuiConfigFlags = cty::c_int; pub type ImGuiComboFlags = cty::c_int; pub type ImGuiDragDropFlags = cty::c_int; pub type ImGuiFocusedFlags = cty::c_int; pub type ImGuiHoveredFlags = cty::c_int; +pub type ImGuiInputFlags = cty::c_int; pub type ImGuiInputTextFlags = cty::c_int; +pub type ImGuiItemFlags = cty::c_int; pub type ImGuiKeyChord = cty::c_int; pub type ImGuiPopupFlags = cty::c_int; +pub type ImGuiMultiSelectFlags = cty::c_int; pub type ImGuiSelectableFlags = cty::c_int; pub type ImGuiSliderFlags = cty::c_int; pub type ImGuiTabBarFlags = cty::c_int; @@ -132,15 +141,10 @@ pub type ImGuiViewportFlags = cty::c_int; pub type ImGuiWindowFlags = cty::c_int; pub type ImTextureID = *mut cty::c_void; pub type ImDrawIdx = cty::c_ushort; -pub type ImGuiID = cty::c_uint; -pub type ImS8 = cty::c_schar; -pub type ImU8 = cty::c_uchar; -pub type ImS16 = cty::c_short; -pub type ImU16 = cty::c_ushort; -pub type ImU32 = cty::c_uint; -pub type ImWchar16 = cty::c_ushort; pub type ImWchar32 = cty::c_uint; +pub type ImWchar16 = cty::c_ushort; pub type ImWchar = ImWchar32; +pub type ImGuiSelectionUserData = ImS64; pub type ImGuiInputTextCallback = ::core::option::Option< unsafe extern "C" fn(data: *mut ImGuiInputTextCallbackData) -> cty::c_int, >; @@ -183,47 +187,66 @@ pub const ImGuiWindowFlags_NoFocusOnAppearing: ImGuiWindowFlags_ = 4096; pub const ImGuiWindowFlags_NoBringToFrontOnFocus: ImGuiWindowFlags_ = 8192; pub const ImGuiWindowFlags_AlwaysVerticalScrollbar: ImGuiWindowFlags_ = 16384; pub const ImGuiWindowFlags_AlwaysHorizontalScrollbar: ImGuiWindowFlags_ = 32768; -pub const ImGuiWindowFlags_AlwaysUseWindowPadding: ImGuiWindowFlags_ = 65536; -pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 262144; -pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 524288; -pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 1048576; -pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 786432; +pub const ImGuiWindowFlags_NoNavInputs: ImGuiWindowFlags_ = 65536; +pub const ImGuiWindowFlags_NoNavFocus: ImGuiWindowFlags_ = 131072; +pub const ImGuiWindowFlags_UnsavedDocument: ImGuiWindowFlags_ = 262144; +pub const ImGuiWindowFlags_NoNav: ImGuiWindowFlags_ = 196608; pub const ImGuiWindowFlags_NoDecoration: ImGuiWindowFlags_ = 43; -pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 786944; -pub const ImGuiWindowFlags_NavFlattened: ImGuiWindowFlags_ = 8388608; +pub const ImGuiWindowFlags_NoInputs: ImGuiWindowFlags_ = 197120; pub const ImGuiWindowFlags_ChildWindow: ImGuiWindowFlags_ = 16777216; pub const ImGuiWindowFlags_Tooltip: ImGuiWindowFlags_ = 33554432; pub const ImGuiWindowFlags_Popup: ImGuiWindowFlags_ = 67108864; pub const ImGuiWindowFlags_Modal: ImGuiWindowFlags_ = 134217728; pub const ImGuiWindowFlags_ChildMenu: ImGuiWindowFlags_ = 268435456; pub type ImGuiWindowFlags_ = cty::c_uint; +pub const ImGuiChildFlags_None: ImGuiChildFlags_ = 0; +pub const ImGuiChildFlags_Borders: ImGuiChildFlags_ = 1; +pub const ImGuiChildFlags_AlwaysUseWindowPadding: ImGuiChildFlags_ = 2; +pub const ImGuiChildFlags_ResizeX: ImGuiChildFlags_ = 4; +pub const ImGuiChildFlags_ResizeY: ImGuiChildFlags_ = 8; +pub const ImGuiChildFlags_AutoResizeX: ImGuiChildFlags_ = 16; +pub const ImGuiChildFlags_AutoResizeY: ImGuiChildFlags_ = 32; +pub const ImGuiChildFlags_AlwaysAutoResize: ImGuiChildFlags_ = 64; +pub const ImGuiChildFlags_FrameStyle: ImGuiChildFlags_ = 128; +pub const ImGuiChildFlags_NavFlattened: ImGuiChildFlags_ = 256; +pub type ImGuiChildFlags_ = cty::c_uint; +pub const ImGuiItemFlags_None: ImGuiItemFlags_ = 0; +pub const ImGuiItemFlags_NoTabStop: ImGuiItemFlags_ = 1; +pub const ImGuiItemFlags_NoNav: ImGuiItemFlags_ = 2; +pub const ImGuiItemFlags_NoNavDefaultFocus: ImGuiItemFlags_ = 4; +pub const ImGuiItemFlags_ButtonRepeat: ImGuiItemFlags_ = 8; +pub const ImGuiItemFlags_AutoClosePopups: ImGuiItemFlags_ = 16; +pub const ImGuiItemFlags_AllowDuplicateId: ImGuiItemFlags_ = 32; +pub type ImGuiItemFlags_ = cty::c_uint; pub const ImGuiInputTextFlags_None: ImGuiInputTextFlags_ = 0; pub const ImGuiInputTextFlags_CharsDecimal: ImGuiInputTextFlags_ = 1; pub const ImGuiInputTextFlags_CharsHexadecimal: ImGuiInputTextFlags_ = 2; -pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 4; -pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 8; -pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 16; -pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 32; -pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 64; -pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 128; -pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 256; -pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 512; -pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 1024; -pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 2048; -pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 4096; -pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 8192; -pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 16384; -pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 32768; +pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 4; +pub const ImGuiInputTextFlags_CharsUppercase: ImGuiInputTextFlags_ = 8; +pub const ImGuiInputTextFlags_CharsNoBlank: ImGuiInputTextFlags_ = 16; +pub const ImGuiInputTextFlags_AllowTabInput: ImGuiInputTextFlags_ = 32; +pub const ImGuiInputTextFlags_EnterReturnsTrue: ImGuiInputTextFlags_ = 64; +pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 128; +pub const ImGuiInputTextFlags_CtrlEnterForNewLine: ImGuiInputTextFlags_ = 256; +pub const ImGuiInputTextFlags_ReadOnly: ImGuiInputTextFlags_ = 512; +pub const ImGuiInputTextFlags_Password: ImGuiInputTextFlags_ = 1024; +pub const ImGuiInputTextFlags_AlwaysOverwrite: ImGuiInputTextFlags_ = 2048; +pub const ImGuiInputTextFlags_AutoSelectAll: ImGuiInputTextFlags_ = 4096; +pub const ImGuiInputTextFlags_ParseEmptyRefVal: ImGuiInputTextFlags_ = 8192; +pub const ImGuiInputTextFlags_DisplayEmptyRefVal: ImGuiInputTextFlags_ = 16384; +pub const ImGuiInputTextFlags_NoHorizontalScroll: ImGuiInputTextFlags_ = 32768; pub const ImGuiInputTextFlags_NoUndoRedo: ImGuiInputTextFlags_ = 65536; -pub const ImGuiInputTextFlags_CharsScientific: ImGuiInputTextFlags_ = 131072; -pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 262144; -pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 524288; -pub const ImGuiInputTextFlags_EscapeClearsAll: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackCompletion: ImGuiInputTextFlags_ = 131072; +pub const ImGuiInputTextFlags_CallbackHistory: ImGuiInputTextFlags_ = 262144; +pub const ImGuiInputTextFlags_CallbackAlways: ImGuiInputTextFlags_ = 524288; +pub const ImGuiInputTextFlags_CallbackCharFilter: ImGuiInputTextFlags_ = 1048576; +pub const ImGuiInputTextFlags_CallbackResize: ImGuiInputTextFlags_ = 2097152; +pub const ImGuiInputTextFlags_CallbackEdit: ImGuiInputTextFlags_ = 4194304; pub type ImGuiInputTextFlags_ = cty::c_uint; pub const ImGuiTreeNodeFlags_None: ImGuiTreeNodeFlags_ = 0; pub const ImGuiTreeNodeFlags_Selected: ImGuiTreeNodeFlags_ = 1; pub const ImGuiTreeNodeFlags_Framed: ImGuiTreeNodeFlags_ = 2; -pub const ImGuiTreeNodeFlags_AllowItemOverlap: ImGuiTreeNodeFlags_ = 4; +pub const ImGuiTreeNodeFlags_AllowOverlap: ImGuiTreeNodeFlags_ = 4; pub const ImGuiTreeNodeFlags_NoTreePushOnOpen: ImGuiTreeNodeFlags_ = 8; pub const ImGuiTreeNodeFlags_NoAutoOpenOnLog: ImGuiTreeNodeFlags_ = 16; pub const ImGuiTreeNodeFlags_DefaultOpen: ImGuiTreeNodeFlags_ = 32; @@ -234,7 +257,9 @@ pub const ImGuiTreeNodeFlags_Bullet: ImGuiTreeNodeFlags_ = 512; pub const ImGuiTreeNodeFlags_FramePadding: ImGuiTreeNodeFlags_ = 1024; pub const ImGuiTreeNodeFlags_SpanAvailWidth: ImGuiTreeNodeFlags_ = 2048; pub const ImGuiTreeNodeFlags_SpanFullWidth: ImGuiTreeNodeFlags_ = 4096; -pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanTextWidth: ImGuiTreeNodeFlags_ = 8192; +pub const ImGuiTreeNodeFlags_SpanAllColumns: ImGuiTreeNodeFlags_ = 16384; +pub const ImGuiTreeNodeFlags_NavLeftJumpsBackHere: ImGuiTreeNodeFlags_ = 32768; pub const ImGuiTreeNodeFlags_CollapsingHeader: ImGuiTreeNodeFlags_ = 26; pub type ImGuiTreeNodeFlags_ = cty::c_uint; pub const ImGuiPopupFlags_None: ImGuiPopupFlags_ = 0; @@ -243,18 +268,20 @@ pub const ImGuiPopupFlags_MouseButtonRight: ImGuiPopupFlags_ = 1; pub const ImGuiPopupFlags_MouseButtonMiddle: ImGuiPopupFlags_ = 2; pub const ImGuiPopupFlags_MouseButtonMask_: ImGuiPopupFlags_ = 31; pub const ImGuiPopupFlags_MouseButtonDefault_: ImGuiPopupFlags_ = 1; -pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 32; -pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 64; -pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 128; -pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 256; -pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 384; +pub const ImGuiPopupFlags_NoReopen: ImGuiPopupFlags_ = 32; +pub const ImGuiPopupFlags_NoOpenOverExistingPopup: ImGuiPopupFlags_ = 128; +pub const ImGuiPopupFlags_NoOpenOverItems: ImGuiPopupFlags_ = 256; +pub const ImGuiPopupFlags_AnyPopupId: ImGuiPopupFlags_ = 1024; +pub const ImGuiPopupFlags_AnyPopupLevel: ImGuiPopupFlags_ = 2048; +pub const ImGuiPopupFlags_AnyPopup: ImGuiPopupFlags_ = 3072; pub type ImGuiPopupFlags_ = cty::c_uint; pub const ImGuiSelectableFlags_None: ImGuiSelectableFlags_ = 0; -pub const ImGuiSelectableFlags_DontClosePopups: ImGuiSelectableFlags_ = 1; +pub const ImGuiSelectableFlags_NoAutoClosePopups: ImGuiSelectableFlags_ = 1; pub const ImGuiSelectableFlags_SpanAllColumns: ImGuiSelectableFlags_ = 2; pub const ImGuiSelectableFlags_AllowDoubleClick: ImGuiSelectableFlags_ = 4; pub const ImGuiSelectableFlags_Disabled: ImGuiSelectableFlags_ = 8; -pub const ImGuiSelectableFlags_AllowItemOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_AllowOverlap: ImGuiSelectableFlags_ = 16; +pub const ImGuiSelectableFlags_Highlight: ImGuiSelectableFlags_ = 32; pub type ImGuiSelectableFlags_ = cty::c_uint; pub const ImGuiComboFlags_None: ImGuiComboFlags_ = 0; pub const ImGuiComboFlags_PopupAlignLeft: ImGuiComboFlags_ = 1; @@ -264,6 +291,7 @@ pub const ImGuiComboFlags_HeightLarge: ImGuiComboFlags_ = 8; pub const ImGuiComboFlags_HeightLargest: ImGuiComboFlags_ = 16; pub const ImGuiComboFlags_NoArrowButton: ImGuiComboFlags_ = 32; pub const ImGuiComboFlags_NoPreview: ImGuiComboFlags_ = 64; +pub const ImGuiComboFlags_WidthFitPreview: ImGuiComboFlags_ = 128; pub const ImGuiComboFlags_HeightMask_: ImGuiComboFlags_ = 30; pub type ImGuiComboFlags_ = cty::c_uint; pub const ImGuiTabBarFlags_None: ImGuiTabBarFlags_ = 0; @@ -273,10 +301,11 @@ pub const ImGuiTabBarFlags_TabListPopupButton: ImGuiTabBarFlags_ = 4; pub const ImGuiTabBarFlags_NoCloseWithMiddleMouseButton: ImGuiTabBarFlags_ = 8; pub const ImGuiTabBarFlags_NoTabListScrollingButtons: ImGuiTabBarFlags_ = 16; pub const ImGuiTabBarFlags_NoTooltip: ImGuiTabBarFlags_ = 32; -pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 64; -pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 128; -pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 192; -pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_DrawSelectedOverline: ImGuiTabBarFlags_ = 64; +pub const ImGuiTabBarFlags_FittingPolicyResizeDown: ImGuiTabBarFlags_ = 128; +pub const ImGuiTabBarFlags_FittingPolicyScroll: ImGuiTabBarFlags_ = 256; +pub const ImGuiTabBarFlags_FittingPolicyMask_: ImGuiTabBarFlags_ = 384; +pub const ImGuiTabBarFlags_FittingPolicyDefault_: ImGuiTabBarFlags_ = 128; pub type ImGuiTabBarFlags_ = cty::c_uint; pub const ImGuiTabItemFlags_None: ImGuiTabItemFlags_ = 0; pub const ImGuiTabItemFlags_UnsavedDocument: ImGuiTabItemFlags_ = 1; @@ -287,80 +316,8 @@ pub const ImGuiTabItemFlags_NoTooltip: ImGuiTabItemFlags_ = 16; pub const ImGuiTabItemFlags_NoReorder: ImGuiTabItemFlags_ = 32; pub const ImGuiTabItemFlags_Leading: ImGuiTabItemFlags_ = 64; pub const ImGuiTabItemFlags_Trailing: ImGuiTabItemFlags_ = 128; +pub const ImGuiTabItemFlags_NoAssumedClosure: ImGuiTabItemFlags_ = 256; pub type ImGuiTabItemFlags_ = cty::c_uint; -pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; -pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; -pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; -pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; -pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; -pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; -pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; -pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; -pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; -pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; -pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; -pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; -pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; -pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; -pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; -pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; -pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; -pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; -pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; -pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; -pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; -pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; -pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; -pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; -pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; -pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; -pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; -pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; -pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; -pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; -pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; -pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; -pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; -pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; -pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; -pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; -pub type ImGuiTableFlags_ = cty::c_uint; -pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; -pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; -pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; -pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; -pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; -pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; -pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; -pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; -pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; -pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; -pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; -pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; -pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; -pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; -pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; -pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; -pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; -pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; -pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; -pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; -pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; -pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; -pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; -pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; -pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; -pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; -pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; -pub type ImGuiTableColumnFlags_ = cty::c_uint; -pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; -pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; -pub type ImGuiTableRowFlags_ = cty::c_uint; -pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; -pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; -pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; -pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; -pub type ImGuiTableBgTarget_ = cty::c_uint; pub const ImGuiFocusedFlags_None: ImGuiFocusedFlags_ = 0; pub const ImGuiFocusedFlags_ChildWindows: ImGuiFocusedFlags_ = 1; pub const ImGuiFocusedFlags_RootWindow: ImGuiFocusedFlags_ = 2; @@ -375,14 +332,19 @@ pub const ImGuiHoveredFlags_AnyWindow: ImGuiHoveredFlags_ = 4; pub const ImGuiHoveredFlags_NoPopupHierarchy: ImGuiHoveredFlags_ = 8; pub const ImGuiHoveredFlags_AllowWhenBlockedByPopup: ImGuiHoveredFlags_ = 32; pub const ImGuiHoveredFlags_AllowWhenBlockedByActiveItem: ImGuiHoveredFlags_ = 128; -pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 256; -pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 512; -pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 1024; -pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 416; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByItem: ImGuiHoveredFlags_ = 256; +pub const ImGuiHoveredFlags_AllowWhenOverlappedByWindow: ImGuiHoveredFlags_ = 512; +pub const ImGuiHoveredFlags_AllowWhenDisabled: ImGuiHoveredFlags_ = 1024; +pub const ImGuiHoveredFlags_NoNavOverride: ImGuiHoveredFlags_ = 2048; +pub const ImGuiHoveredFlags_AllowWhenOverlapped: ImGuiHoveredFlags_ = 768; +pub const ImGuiHoveredFlags_RectOnly: ImGuiHoveredFlags_ = 928; pub const ImGuiHoveredFlags_RootAndChildWindows: ImGuiHoveredFlags_ = 3; -pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 2048; -pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 4096; -pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_ForTooltip: ImGuiHoveredFlags_ = 4096; +pub const ImGuiHoveredFlags_Stationary: ImGuiHoveredFlags_ = 8192; +pub const ImGuiHoveredFlags_DelayNone: ImGuiHoveredFlags_ = 16384; +pub const ImGuiHoveredFlags_DelayShort: ImGuiHoveredFlags_ = 32768; +pub const ImGuiHoveredFlags_DelayNormal: ImGuiHoveredFlags_ = 65536; +pub const ImGuiHoveredFlags_NoSharedDelay: ImGuiHoveredFlags_ = 131072; pub type ImGuiHoveredFlags_ = cty::c_uint; pub const ImGuiDragDropFlags_None: ImGuiDragDropFlags_ = 0; pub const ImGuiDragDropFlags_SourceNoPreviewTooltip: ImGuiDragDropFlags_ = 1; @@ -390,7 +352,9 @@ pub const ImGuiDragDropFlags_SourceNoDisableHover: ImGuiDragDropFlags_ = 2; pub const ImGuiDragDropFlags_SourceNoHoldToOpenOthers: ImGuiDragDropFlags_ = 4; pub const ImGuiDragDropFlags_SourceAllowNullID: ImGuiDragDropFlags_ = 8; pub const ImGuiDragDropFlags_SourceExtern: ImGuiDragDropFlags_ = 16; -pub const ImGuiDragDropFlags_SourceAutoExpirePayload: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadAutoExpire: ImGuiDragDropFlags_ = 32; +pub const ImGuiDragDropFlags_PayloadNoCrossContext: ImGuiDragDropFlags_ = 64; +pub const ImGuiDragDropFlags_PayloadNoCrossProcess: ImGuiDragDropFlags_ = 128; pub const ImGuiDragDropFlags_AcceptBeforeDelivery: ImGuiDragDropFlags_ = 1024; pub const ImGuiDragDropFlags_AcceptNoDrawDefaultRect: ImGuiDragDropFlags_ = 2048; pub const ImGuiDragDropFlags_AcceptNoPreviewTooltip: ImGuiDragDropFlags_ = 4096; @@ -406,19 +370,20 @@ pub const ImGuiDataType_S64: ImGuiDataType_ = 6; pub const ImGuiDataType_U64: ImGuiDataType_ = 7; pub const ImGuiDataType_Float: ImGuiDataType_ = 8; pub const ImGuiDataType_Double: ImGuiDataType_ = 9; -pub const ImGuiDataType_COUNT: ImGuiDataType_ = 10; +pub const ImGuiDataType_Bool: ImGuiDataType_ = 10; +pub const ImGuiDataType_COUNT: ImGuiDataType_ = 11; pub type ImGuiDataType_ = cty::c_uint; -pub const ImGuiDir_None: ImGuiDir_ = -1; -pub const ImGuiDir_Left: ImGuiDir_ = 0; -pub const ImGuiDir_Right: ImGuiDir_ = 1; -pub const ImGuiDir_Up: ImGuiDir_ = 2; -pub const ImGuiDir_Down: ImGuiDir_ = 3; -pub const ImGuiDir_COUNT: ImGuiDir_ = 4; -pub type ImGuiDir_ = cty::c_int; -pub const ImGuiSortDirection_None: ImGuiSortDirection_ = 0; -pub const ImGuiSortDirection_Ascending: ImGuiSortDirection_ = 1; -pub const ImGuiSortDirection_Descending: ImGuiSortDirection_ = 2; -pub type ImGuiSortDirection_ = cty::c_uint; +pub const ImGuiDir_None: ImGuiDir = -1; +pub const ImGuiDir_Left: ImGuiDir = 0; +pub const ImGuiDir_Right: ImGuiDir = 1; +pub const ImGuiDir_Up: ImGuiDir = 2; +pub const ImGuiDir_Down: ImGuiDir = 3; +pub const ImGuiDir_COUNT: ImGuiDir = 4; +pub type ImGuiDir = cty::c_int; +pub const ImGuiSortDirection_None: ImGuiSortDirection = 0; +pub const ImGuiSortDirection_Ascending: ImGuiSortDirection = 1; +pub const ImGuiSortDirection_Descending: ImGuiSortDirection = 2; +pub type ImGuiSortDirection = cty::c_uint; pub const ImGuiKey_None: ImGuiKey = 0; pub const ImGuiKey_Tab: ImGuiKey = 512; pub const ImGuiKey_LeftArrow: ImGuiKey = 513; @@ -492,106 +457,113 @@ pub const ImGuiKey_F9: ImGuiKey = 580; pub const ImGuiKey_F10: ImGuiKey = 581; pub const ImGuiKey_F11: ImGuiKey = 582; pub const ImGuiKey_F12: ImGuiKey = 583; -pub const ImGuiKey_Apostrophe: ImGuiKey = 584; -pub const ImGuiKey_Comma: ImGuiKey = 585; -pub const ImGuiKey_Minus: ImGuiKey = 586; -pub const ImGuiKey_Period: ImGuiKey = 587; -pub const ImGuiKey_Slash: ImGuiKey = 588; -pub const ImGuiKey_Semicolon: ImGuiKey = 589; -pub const ImGuiKey_Equal: ImGuiKey = 590; -pub const ImGuiKey_LeftBracket: ImGuiKey = 591; -pub const ImGuiKey_Backslash: ImGuiKey = 592; -pub const ImGuiKey_RightBracket: ImGuiKey = 593; -pub const ImGuiKey_GraveAccent: ImGuiKey = 594; -pub const ImGuiKey_CapsLock: ImGuiKey = 595; -pub const ImGuiKey_ScrollLock: ImGuiKey = 596; -pub const ImGuiKey_NumLock: ImGuiKey = 597; -pub const ImGuiKey_PrintScreen: ImGuiKey = 598; -pub const ImGuiKey_Pause: ImGuiKey = 599; -pub const ImGuiKey_Keypad0: ImGuiKey = 600; -pub const ImGuiKey_Keypad1: ImGuiKey = 601; -pub const ImGuiKey_Keypad2: ImGuiKey = 602; -pub const ImGuiKey_Keypad3: ImGuiKey = 603; -pub const ImGuiKey_Keypad4: ImGuiKey = 604; -pub const ImGuiKey_Keypad5: ImGuiKey = 605; -pub const ImGuiKey_Keypad6: ImGuiKey = 606; -pub const ImGuiKey_Keypad7: ImGuiKey = 607; -pub const ImGuiKey_Keypad8: ImGuiKey = 608; -pub const ImGuiKey_Keypad9: ImGuiKey = 609; -pub const ImGuiKey_KeypadDecimal: ImGuiKey = 610; -pub const ImGuiKey_KeypadDivide: ImGuiKey = 611; -pub const ImGuiKey_KeypadMultiply: ImGuiKey = 612; -pub const ImGuiKey_KeypadSubtract: ImGuiKey = 613; -pub const ImGuiKey_KeypadAdd: ImGuiKey = 614; -pub const ImGuiKey_KeypadEnter: ImGuiKey = 615; -pub const ImGuiKey_KeypadEqual: ImGuiKey = 616; -pub const ImGuiKey_GamepadStart: ImGuiKey = 617; -pub const ImGuiKey_GamepadBack: ImGuiKey = 618; -pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 619; -pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 620; -pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 621; -pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 622; -pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 623; -pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 624; -pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 625; -pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 626; -pub const ImGuiKey_GamepadL1: ImGuiKey = 627; -pub const ImGuiKey_GamepadR1: ImGuiKey = 628; -pub const ImGuiKey_GamepadL2: ImGuiKey = 629; -pub const ImGuiKey_GamepadR2: ImGuiKey = 630; -pub const ImGuiKey_GamepadL3: ImGuiKey = 631; -pub const ImGuiKey_GamepadR3: ImGuiKey = 632; -pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 633; -pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 634; -pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 635; -pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 636; -pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 637; -pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 638; -pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 639; -pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 640; -pub const ImGuiKey_MouseLeft: ImGuiKey = 641; -pub const ImGuiKey_MouseRight: ImGuiKey = 642; -pub const ImGuiKey_MouseMiddle: ImGuiKey = 643; -pub const ImGuiKey_MouseX1: ImGuiKey = 644; -pub const ImGuiKey_MouseX2: ImGuiKey = 645; -pub const ImGuiKey_MouseWheelX: ImGuiKey = 646; -pub const ImGuiKey_MouseWheelY: ImGuiKey = 647; -pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 648; -pub const ImGuiKey_ReservedForModShift: ImGuiKey = 649; -pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 650; -pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 651; -pub const ImGuiKey_COUNT: ImGuiKey = 652; +pub const ImGuiKey_F13: ImGuiKey = 584; +pub const ImGuiKey_F14: ImGuiKey = 585; +pub const ImGuiKey_F15: ImGuiKey = 586; +pub const ImGuiKey_F16: ImGuiKey = 587; +pub const ImGuiKey_F17: ImGuiKey = 588; +pub const ImGuiKey_F18: ImGuiKey = 589; +pub const ImGuiKey_F19: ImGuiKey = 590; +pub const ImGuiKey_F20: ImGuiKey = 591; +pub const ImGuiKey_F21: ImGuiKey = 592; +pub const ImGuiKey_F22: ImGuiKey = 593; +pub const ImGuiKey_F23: ImGuiKey = 594; +pub const ImGuiKey_F24: ImGuiKey = 595; +pub const ImGuiKey_Apostrophe: ImGuiKey = 596; +pub const ImGuiKey_Comma: ImGuiKey = 597; +pub const ImGuiKey_Minus: ImGuiKey = 598; +pub const ImGuiKey_Period: ImGuiKey = 599; +pub const ImGuiKey_Slash: ImGuiKey = 600; +pub const ImGuiKey_Semicolon: ImGuiKey = 601; +pub const ImGuiKey_Equal: ImGuiKey = 602; +pub const ImGuiKey_LeftBracket: ImGuiKey = 603; +pub const ImGuiKey_Backslash: ImGuiKey = 604; +pub const ImGuiKey_RightBracket: ImGuiKey = 605; +pub const ImGuiKey_GraveAccent: ImGuiKey = 606; +pub const ImGuiKey_CapsLock: ImGuiKey = 607; +pub const ImGuiKey_ScrollLock: ImGuiKey = 608; +pub const ImGuiKey_NumLock: ImGuiKey = 609; +pub const ImGuiKey_PrintScreen: ImGuiKey = 610; +pub const ImGuiKey_Pause: ImGuiKey = 611; +pub const ImGuiKey_Keypad0: ImGuiKey = 612; +pub const ImGuiKey_Keypad1: ImGuiKey = 613; +pub const ImGuiKey_Keypad2: ImGuiKey = 614; +pub const ImGuiKey_Keypad3: ImGuiKey = 615; +pub const ImGuiKey_Keypad4: ImGuiKey = 616; +pub const ImGuiKey_Keypad5: ImGuiKey = 617; +pub const ImGuiKey_Keypad6: ImGuiKey = 618; +pub const ImGuiKey_Keypad7: ImGuiKey = 619; +pub const ImGuiKey_Keypad8: ImGuiKey = 620; +pub const ImGuiKey_Keypad9: ImGuiKey = 621; +pub const ImGuiKey_KeypadDecimal: ImGuiKey = 622; +pub const ImGuiKey_KeypadDivide: ImGuiKey = 623; +pub const ImGuiKey_KeypadMultiply: ImGuiKey = 624; +pub const ImGuiKey_KeypadSubtract: ImGuiKey = 625; +pub const ImGuiKey_KeypadAdd: ImGuiKey = 626; +pub const ImGuiKey_KeypadEnter: ImGuiKey = 627; +pub const ImGuiKey_KeypadEqual: ImGuiKey = 628; +pub const ImGuiKey_AppBack: ImGuiKey = 629; +pub const ImGuiKey_AppForward: ImGuiKey = 630; +pub const ImGuiKey_GamepadStart: ImGuiKey = 631; +pub const ImGuiKey_GamepadBack: ImGuiKey = 632; +pub const ImGuiKey_GamepadFaceLeft: ImGuiKey = 633; +pub const ImGuiKey_GamepadFaceRight: ImGuiKey = 634; +pub const ImGuiKey_GamepadFaceUp: ImGuiKey = 635; +pub const ImGuiKey_GamepadFaceDown: ImGuiKey = 636; +pub const ImGuiKey_GamepadDpadLeft: ImGuiKey = 637; +pub const ImGuiKey_GamepadDpadRight: ImGuiKey = 638; +pub const ImGuiKey_GamepadDpadUp: ImGuiKey = 639; +pub const ImGuiKey_GamepadDpadDown: ImGuiKey = 640; +pub const ImGuiKey_GamepadL1: ImGuiKey = 641; +pub const ImGuiKey_GamepadR1: ImGuiKey = 642; +pub const ImGuiKey_GamepadL2: ImGuiKey = 643; +pub const ImGuiKey_GamepadR2: ImGuiKey = 644; +pub const ImGuiKey_GamepadL3: ImGuiKey = 645; +pub const ImGuiKey_GamepadR3: ImGuiKey = 646; +pub const ImGuiKey_GamepadLStickLeft: ImGuiKey = 647; +pub const ImGuiKey_GamepadLStickRight: ImGuiKey = 648; +pub const ImGuiKey_GamepadLStickUp: ImGuiKey = 649; +pub const ImGuiKey_GamepadLStickDown: ImGuiKey = 650; +pub const ImGuiKey_GamepadRStickLeft: ImGuiKey = 651; +pub const ImGuiKey_GamepadRStickRight: ImGuiKey = 652; +pub const ImGuiKey_GamepadRStickUp: ImGuiKey = 653; +pub const ImGuiKey_GamepadRStickDown: ImGuiKey = 654; +pub const ImGuiKey_MouseLeft: ImGuiKey = 655; +pub const ImGuiKey_MouseRight: ImGuiKey = 656; +pub const ImGuiKey_MouseMiddle: ImGuiKey = 657; +pub const ImGuiKey_MouseX1: ImGuiKey = 658; +pub const ImGuiKey_MouseX2: ImGuiKey = 659; +pub const ImGuiKey_MouseWheelX: ImGuiKey = 660; +pub const ImGuiKey_MouseWheelY: ImGuiKey = 661; +pub const ImGuiKey_ReservedForModCtrl: ImGuiKey = 662; +pub const ImGuiKey_ReservedForModShift: ImGuiKey = 663; +pub const ImGuiKey_ReservedForModAlt: ImGuiKey = 664; +pub const ImGuiKey_ReservedForModSuper: ImGuiKey = 665; +pub const ImGuiKey_COUNT: ImGuiKey = 666; pub const ImGuiMod_None: ImGuiKey = 0; pub const ImGuiMod_Ctrl: ImGuiKey = 4096; pub const ImGuiMod_Shift: ImGuiKey = 8192; pub const ImGuiMod_Alt: ImGuiKey = 16384; pub const ImGuiMod_Super: ImGuiKey = 32768; -pub const ImGuiMod_Shortcut: ImGuiKey = 2048; -pub const ImGuiMod_Mask_: ImGuiKey = 63488; +pub const ImGuiMod_Mask_: ImGuiKey = 61440; pub const ImGuiKey_NamedKey_BEGIN: ImGuiKey = 512; -pub const ImGuiKey_NamedKey_END: ImGuiKey = 652; -pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 140; -pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 652; -pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 0; +pub const ImGuiKey_NamedKey_END: ImGuiKey = 666; +pub const ImGuiKey_NamedKey_COUNT: ImGuiKey = 154; +pub const ImGuiKey_KeysData_SIZE: ImGuiKey = 154; +pub const ImGuiKey_KeysData_OFFSET: ImGuiKey = 512; pub type ImGuiKey = cty::c_uint; -pub const ImGuiNavInput_Activate: ImGuiNavInput = 0; -pub const ImGuiNavInput_Cancel: ImGuiNavInput = 1; -pub const ImGuiNavInput_Input: ImGuiNavInput = 2; -pub const ImGuiNavInput_Menu: ImGuiNavInput = 3; -pub const ImGuiNavInput_DpadLeft: ImGuiNavInput = 4; -pub const ImGuiNavInput_DpadRight: ImGuiNavInput = 5; -pub const ImGuiNavInput_DpadUp: ImGuiNavInput = 6; -pub const ImGuiNavInput_DpadDown: ImGuiNavInput = 7; -pub const ImGuiNavInput_LStickLeft: ImGuiNavInput = 8; -pub const ImGuiNavInput_LStickRight: ImGuiNavInput = 9; -pub const ImGuiNavInput_LStickUp: ImGuiNavInput = 10; -pub const ImGuiNavInput_LStickDown: ImGuiNavInput = 11; -pub const ImGuiNavInput_FocusPrev: ImGuiNavInput = 12; -pub const ImGuiNavInput_FocusNext: ImGuiNavInput = 13; -pub const ImGuiNavInput_TweakSlow: ImGuiNavInput = 14; -pub const ImGuiNavInput_TweakFast: ImGuiNavInput = 15; -pub const ImGuiNavInput_COUNT: ImGuiNavInput = 16; -pub type ImGuiNavInput = cty::c_uint; +pub const ImGuiInputFlags_None: ImGuiInputFlags_ = 0; +pub const ImGuiInputFlags_Repeat: ImGuiInputFlags_ = 1; +pub const ImGuiInputFlags_RouteActive: ImGuiInputFlags_ = 1024; +pub const ImGuiInputFlags_RouteFocused: ImGuiInputFlags_ = 2048; +pub const ImGuiInputFlags_RouteGlobal: ImGuiInputFlags_ = 4096; +pub const ImGuiInputFlags_RouteAlways: ImGuiInputFlags_ = 8192; +pub const ImGuiInputFlags_RouteOverFocused: ImGuiInputFlags_ = 16384; +pub const ImGuiInputFlags_RouteOverActive: ImGuiInputFlags_ = 32768; +pub const ImGuiInputFlags_RouteUnlessBgFocused: ImGuiInputFlags_ = 65536; +pub const ImGuiInputFlags_RouteFromRootWindow: ImGuiInputFlags_ = 131072; +pub const ImGuiInputFlags_Tooltip: ImGuiInputFlags_ = 262144; +pub type ImGuiInputFlags_ = cty::c_uint; pub const ImGuiConfigFlags_None: ImGuiConfigFlags_ = 0; pub const ImGuiConfigFlags_NavEnableKeyboard: ImGuiConfigFlags_ = 1; pub const ImGuiConfigFlags_NavEnableGamepad: ImGuiConfigFlags_ = 2; @@ -599,6 +571,7 @@ pub const ImGuiConfigFlags_NavEnableSetMousePos: ImGuiConfigFlags_ = 4; pub const ImGuiConfigFlags_NavNoCaptureKeyboard: ImGuiConfigFlags_ = 8; pub const ImGuiConfigFlags_NoMouse: ImGuiConfigFlags_ = 16; pub const ImGuiConfigFlags_NoMouseCursorChange: ImGuiConfigFlags_ = 32; +pub const ImGuiConfigFlags_NoKeyboard: ImGuiConfigFlags_ = 64; pub const ImGuiConfigFlags_IsSRGB: ImGuiConfigFlags_ = 1048576; pub const ImGuiConfigFlags_IsTouchScreen: ImGuiConfigFlags_ = 2097152; pub type ImGuiConfigFlags_ = cty::c_uint; @@ -641,27 +614,30 @@ pub const ImGuiCol_SeparatorActive: ImGuiCol_ = 29; pub const ImGuiCol_ResizeGrip: ImGuiCol_ = 30; pub const ImGuiCol_ResizeGripHovered: ImGuiCol_ = 31; pub const ImGuiCol_ResizeGripActive: ImGuiCol_ = 32; -pub const ImGuiCol_Tab: ImGuiCol_ = 33; -pub const ImGuiCol_TabHovered: ImGuiCol_ = 34; -pub const ImGuiCol_TabActive: ImGuiCol_ = 35; -pub const ImGuiCol_TabUnfocused: ImGuiCol_ = 36; -pub const ImGuiCol_TabUnfocusedActive: ImGuiCol_ = 37; -pub const ImGuiCol_PlotLines: ImGuiCol_ = 38; -pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 39; -pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 40; -pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 41; -pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 42; -pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 43; -pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 44; -pub const ImGuiCol_TableRowBg: ImGuiCol_ = 45; -pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 46; -pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 47; -pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 48; -pub const ImGuiCol_NavHighlight: ImGuiCol_ = 49; -pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 50; -pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 51; -pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 52; -pub const ImGuiCol_COUNT: ImGuiCol_ = 53; +pub const ImGuiCol_TabHovered: ImGuiCol_ = 33; +pub const ImGuiCol_Tab: ImGuiCol_ = 34; +pub const ImGuiCol_TabSelected: ImGuiCol_ = 35; +pub const ImGuiCol_TabSelectedOverline: ImGuiCol_ = 36; +pub const ImGuiCol_TabDimmed: ImGuiCol_ = 37; +pub const ImGuiCol_TabDimmedSelected: ImGuiCol_ = 38; +pub const ImGuiCol_TabDimmedSelectedOverline: ImGuiCol_ = 39; +pub const ImGuiCol_PlotLines: ImGuiCol_ = 40; +pub const ImGuiCol_PlotLinesHovered: ImGuiCol_ = 41; +pub const ImGuiCol_PlotHistogram: ImGuiCol_ = 42; +pub const ImGuiCol_PlotHistogramHovered: ImGuiCol_ = 43; +pub const ImGuiCol_TableHeaderBg: ImGuiCol_ = 44; +pub const ImGuiCol_TableBorderStrong: ImGuiCol_ = 45; +pub const ImGuiCol_TableBorderLight: ImGuiCol_ = 46; +pub const ImGuiCol_TableRowBg: ImGuiCol_ = 47; +pub const ImGuiCol_TableRowBgAlt: ImGuiCol_ = 48; +pub const ImGuiCol_TextLink: ImGuiCol_ = 49; +pub const ImGuiCol_TextSelectedBg: ImGuiCol_ = 50; +pub const ImGuiCol_DragDropTarget: ImGuiCol_ = 51; +pub const ImGuiCol_NavHighlight: ImGuiCol_ = 52; +pub const ImGuiCol_NavWindowingHighlight: ImGuiCol_ = 53; +pub const ImGuiCol_NavWindowingDimBg: ImGuiCol_ = 54; +pub const ImGuiCol_ModalWindowDimBg: ImGuiCol_ = 55; +pub const ImGuiCol_COUNT: ImGuiCol_ = 56; pub type ImGuiCol_ = cty::c_uint; pub const ImGuiStyleVar_Alpha: ImGuiStyleVar_ = 0; pub const ImGuiStyleVar_DisabledAlpha: ImGuiStyleVar_ = 1; @@ -686,16 +662,23 @@ pub const ImGuiStyleVar_ScrollbarRounding: ImGuiStyleVar_ = 19; pub const ImGuiStyleVar_GrabMinSize: ImGuiStyleVar_ = 20; pub const ImGuiStyleVar_GrabRounding: ImGuiStyleVar_ = 21; pub const ImGuiStyleVar_TabRounding: ImGuiStyleVar_ = 22; -pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 23; -pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 24; -pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TabBorderSize: ImGuiStyleVar_ = 23; +pub const ImGuiStyleVar_TabBarBorderSize: ImGuiStyleVar_ = 24; +pub const ImGuiStyleVar_TabBarOverlineSize: ImGuiStyleVar_ = 25; +pub const ImGuiStyleVar_TableAngledHeadersAngle: ImGuiStyleVar_ = 26; +pub const ImGuiStyleVar_TableAngledHeadersTextAlign: ImGuiStyleVar_ = 27; +pub const ImGuiStyleVar_ButtonTextAlign: ImGuiStyleVar_ = 28; +pub const ImGuiStyleVar_SelectableTextAlign: ImGuiStyleVar_ = 29; +pub const ImGuiStyleVar_SeparatorTextBorderSize: ImGuiStyleVar_ = 30; +pub const ImGuiStyleVar_SeparatorTextAlign: ImGuiStyleVar_ = 31; +pub const ImGuiStyleVar_SeparatorTextPadding: ImGuiStyleVar_ = 32; +pub const ImGuiStyleVar_COUNT: ImGuiStyleVar_ = 33; pub type ImGuiStyleVar_ = cty::c_uint; pub const ImGuiButtonFlags_None: ImGuiButtonFlags_ = 0; pub const ImGuiButtonFlags_MouseButtonLeft: ImGuiButtonFlags_ = 1; pub const ImGuiButtonFlags_MouseButtonRight: ImGuiButtonFlags_ = 2; pub const ImGuiButtonFlags_MouseButtonMiddle: ImGuiButtonFlags_ = 4; pub const ImGuiButtonFlags_MouseButtonMask_: ImGuiButtonFlags_ = 7; -pub const ImGuiButtonFlags_MouseButtonDefault_: ImGuiButtonFlags_ = 1; pub type ImGuiButtonFlags_ = cty::c_uint; pub const ImGuiColorEditFlags_None: ImGuiColorEditFlags_ = 0; pub const ImGuiColorEditFlags_NoAlpha: ImGuiColorEditFlags_ = 2; @@ -732,6 +715,7 @@ pub const ImGuiSliderFlags_AlwaysClamp: ImGuiSliderFlags_ = 16; pub const ImGuiSliderFlags_Logarithmic: ImGuiSliderFlags_ = 32; pub const ImGuiSliderFlags_NoRoundToFormat: ImGuiSliderFlags_ = 64; pub const ImGuiSliderFlags_NoInput: ImGuiSliderFlags_ = 128; +pub const ImGuiSliderFlags_WrapAround: ImGuiSliderFlags_ = 256; pub const ImGuiSliderFlags_InvalidMask_: ImGuiSliderFlags_ = 1879048207; pub type ImGuiSliderFlags_ = cty::c_uint; pub const ImGuiMouseButton_Left: ImGuiMouseButton_ = 0; @@ -751,12 +735,125 @@ pub const ImGuiMouseCursor_Hand: ImGuiMouseCursor_ = 7; pub const ImGuiMouseCursor_NotAllowed: ImGuiMouseCursor_ = 8; pub const ImGuiMouseCursor_COUNT: ImGuiMouseCursor_ = 9; pub type ImGuiMouseCursor_ = cty::c_int; +pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; +pub type ImGuiMouseSource = cty::c_uint; pub const ImGuiCond_None: ImGuiCond_ = 0; pub const ImGuiCond_Always: ImGuiCond_ = 1; pub const ImGuiCond_Once: ImGuiCond_ = 2; pub const ImGuiCond_FirstUseEver: ImGuiCond_ = 4; pub const ImGuiCond_Appearing: ImGuiCond_ = 8; pub type ImGuiCond_ = cty::c_uint; +pub const ImGuiTableFlags_None: ImGuiTableFlags_ = 0; +pub const ImGuiTableFlags_Resizable: ImGuiTableFlags_ = 1; +pub const ImGuiTableFlags_Reorderable: ImGuiTableFlags_ = 2; +pub const ImGuiTableFlags_Hideable: ImGuiTableFlags_ = 4; +pub const ImGuiTableFlags_Sortable: ImGuiTableFlags_ = 8; +pub const ImGuiTableFlags_NoSavedSettings: ImGuiTableFlags_ = 16; +pub const ImGuiTableFlags_ContextMenuInBody: ImGuiTableFlags_ = 32; +pub const ImGuiTableFlags_RowBg: ImGuiTableFlags_ = 64; +pub const ImGuiTableFlags_BordersInnerH: ImGuiTableFlags_ = 128; +pub const ImGuiTableFlags_BordersOuterH: ImGuiTableFlags_ = 256; +pub const ImGuiTableFlags_BordersInnerV: ImGuiTableFlags_ = 512; +pub const ImGuiTableFlags_BordersOuterV: ImGuiTableFlags_ = 1024; +pub const ImGuiTableFlags_BordersH: ImGuiTableFlags_ = 384; +pub const ImGuiTableFlags_BordersV: ImGuiTableFlags_ = 1536; +pub const ImGuiTableFlags_BordersInner: ImGuiTableFlags_ = 640; +pub const ImGuiTableFlags_BordersOuter: ImGuiTableFlags_ = 1280; +pub const ImGuiTableFlags_Borders: ImGuiTableFlags_ = 1920; +pub const ImGuiTableFlags_NoBordersInBody: ImGuiTableFlags_ = 2048; +pub const ImGuiTableFlags_NoBordersInBodyUntilResize: ImGuiTableFlags_ = 4096; +pub const ImGuiTableFlags_SizingFixedFit: ImGuiTableFlags_ = 8192; +pub const ImGuiTableFlags_SizingFixedSame: ImGuiTableFlags_ = 16384; +pub const ImGuiTableFlags_SizingStretchProp: ImGuiTableFlags_ = 24576; +pub const ImGuiTableFlags_SizingStretchSame: ImGuiTableFlags_ = 32768; +pub const ImGuiTableFlags_NoHostExtendX: ImGuiTableFlags_ = 65536; +pub const ImGuiTableFlags_NoHostExtendY: ImGuiTableFlags_ = 131072; +pub const ImGuiTableFlags_NoKeepColumnsVisible: ImGuiTableFlags_ = 262144; +pub const ImGuiTableFlags_PreciseWidths: ImGuiTableFlags_ = 524288; +pub const ImGuiTableFlags_NoClip: ImGuiTableFlags_ = 1048576; +pub const ImGuiTableFlags_PadOuterX: ImGuiTableFlags_ = 2097152; +pub const ImGuiTableFlags_NoPadOuterX: ImGuiTableFlags_ = 4194304; +pub const ImGuiTableFlags_NoPadInnerX: ImGuiTableFlags_ = 8388608; +pub const ImGuiTableFlags_ScrollX: ImGuiTableFlags_ = 16777216; +pub const ImGuiTableFlags_ScrollY: ImGuiTableFlags_ = 33554432; +pub const ImGuiTableFlags_SortMulti: ImGuiTableFlags_ = 67108864; +pub const ImGuiTableFlags_SortTristate: ImGuiTableFlags_ = 134217728; +pub const ImGuiTableFlags_HighlightHoveredColumn: ImGuiTableFlags_ = 268435456; +pub const ImGuiTableFlags_SizingMask_: ImGuiTableFlags_ = 57344; +pub type ImGuiTableFlags_ = cty::c_uint; +pub const ImGuiTableColumnFlags_None: ImGuiTableColumnFlags_ = 0; +pub const ImGuiTableColumnFlags_Disabled: ImGuiTableColumnFlags_ = 1; +pub const ImGuiTableColumnFlags_DefaultHide: ImGuiTableColumnFlags_ = 2; +pub const ImGuiTableColumnFlags_DefaultSort: ImGuiTableColumnFlags_ = 4; +pub const ImGuiTableColumnFlags_WidthStretch: ImGuiTableColumnFlags_ = 8; +pub const ImGuiTableColumnFlags_WidthFixed: ImGuiTableColumnFlags_ = 16; +pub const ImGuiTableColumnFlags_NoResize: ImGuiTableColumnFlags_ = 32; +pub const ImGuiTableColumnFlags_NoReorder: ImGuiTableColumnFlags_ = 64; +pub const ImGuiTableColumnFlags_NoHide: ImGuiTableColumnFlags_ = 128; +pub const ImGuiTableColumnFlags_NoClip: ImGuiTableColumnFlags_ = 256; +pub const ImGuiTableColumnFlags_NoSort: ImGuiTableColumnFlags_ = 512; +pub const ImGuiTableColumnFlags_NoSortAscending: ImGuiTableColumnFlags_ = 1024; +pub const ImGuiTableColumnFlags_NoSortDescending: ImGuiTableColumnFlags_ = 2048; +pub const ImGuiTableColumnFlags_NoHeaderLabel: ImGuiTableColumnFlags_ = 4096; +pub const ImGuiTableColumnFlags_NoHeaderWidth: ImGuiTableColumnFlags_ = 8192; +pub const ImGuiTableColumnFlags_PreferSortAscending: ImGuiTableColumnFlags_ = 16384; +pub const ImGuiTableColumnFlags_PreferSortDescending: ImGuiTableColumnFlags_ = 32768; +pub const ImGuiTableColumnFlags_IndentEnable: ImGuiTableColumnFlags_ = 65536; +pub const ImGuiTableColumnFlags_IndentDisable: ImGuiTableColumnFlags_ = 131072; +pub const ImGuiTableColumnFlags_AngledHeader: ImGuiTableColumnFlags_ = 262144; +pub const ImGuiTableColumnFlags_IsEnabled: ImGuiTableColumnFlags_ = 16777216; +pub const ImGuiTableColumnFlags_IsVisible: ImGuiTableColumnFlags_ = 33554432; +pub const ImGuiTableColumnFlags_IsSorted: ImGuiTableColumnFlags_ = 67108864; +pub const ImGuiTableColumnFlags_IsHovered: ImGuiTableColumnFlags_ = 134217728; +pub const ImGuiTableColumnFlags_WidthMask_: ImGuiTableColumnFlags_ = 24; +pub const ImGuiTableColumnFlags_IndentMask_: ImGuiTableColumnFlags_ = 196608; +pub const ImGuiTableColumnFlags_StatusMask_: ImGuiTableColumnFlags_ = 251658240; +pub const ImGuiTableColumnFlags_NoDirectResize_: ImGuiTableColumnFlags_ = 1073741824; +pub type ImGuiTableColumnFlags_ = cty::c_uint; +pub const ImGuiTableRowFlags_None: ImGuiTableRowFlags_ = 0; +pub const ImGuiTableRowFlags_Headers: ImGuiTableRowFlags_ = 1; +pub type ImGuiTableRowFlags_ = cty::c_uint; +pub const ImGuiTableBgTarget_None: ImGuiTableBgTarget_ = 0; +pub const ImGuiTableBgTarget_RowBg0: ImGuiTableBgTarget_ = 1; +pub const ImGuiTableBgTarget_RowBg1: ImGuiTableBgTarget_ = 2; +pub const ImGuiTableBgTarget_CellBg: ImGuiTableBgTarget_ = 3; +pub type ImGuiTableBgTarget_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableSortSpecs { + pub Specs: *const ImGuiTableColumnSortSpecs, + pub SpecsCount: cty::c_int, + pub SpecsDirty: bool, +} +impl Default for ImGuiTableSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiTableColumnSortSpecs { + pub ColumnUserID: ImGuiID, + pub ColumnIndex: ImS16, + pub SortOrder: ImS16, + pub SortDirection: ImGuiSortDirection, +} +impl Default for ImGuiTableColumnSortSpecs { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiStyle { @@ -789,9 +886,16 @@ pub struct ImGuiStyle { pub TabRounding: f32, pub TabBorderSize: f32, pub TabMinWidthForCloseButton: f32, + pub TabBarBorderSize: f32, + pub TabBarOverlineSize: f32, + pub TableAngledHeadersAngle: f32, + pub TableAngledHeadersTextAlign: ImVec2, pub ColorButtonPosition: ImGuiDir, pub ButtonTextAlign: ImVec2, pub SelectableTextAlign: ImVec2, + pub SeparatorTextBorderSize: f32, + pub SeparatorTextAlign: ImVec2, + pub SeparatorTextPadding: ImVec2, pub DisplayWindowPadding: ImVec2, pub DisplaySafeAreaPadding: ImVec2, pub MouseCursorScale: f32, @@ -800,7 +904,12 @@ pub struct ImGuiStyle { pub AntiAliasedFill: bool, pub CurveTessellationTol: f32, pub CircleTessellationMaxError: f32, - pub Colors: [ImVec4; 53usize], + pub Colors: [ImVec4; 56usize], + pub HoverStationaryDelay: f32, + pub HoverDelayShort: f32, + pub HoverDelayNormal: f32, + pub HoverFlagsForTooltipMouse: ImGuiHoveredFlags, + pub HoverFlagsForTooltipNav: ImGuiHoveredFlags, } impl Default for ImGuiStyle { fn default() -> Self { @@ -845,13 +954,6 @@ pub struct ImGuiIO { pub IniSavingRate: f32, pub IniFilename: *const cty::c_char, pub LogFilename: *const cty::c_char, - pub MouseDoubleClickTime: f32, - pub MouseDoubleClickMaxDist: f32, - pub MouseDragThreshold: f32, - pub KeyRepeatDelay: f32, - pub KeyRepeatRate: f32, - pub HoverDelayNormal: f32, - pub HoverDelayShort: f32, pub UserData: *mut cty::c_void, pub Fonts: *mut ImFontAtlas, pub FontGlobalScale: f32, @@ -860,6 +962,7 @@ pub struct ImGuiIO { pub DisplayFramebufferScale: ImVec2, pub MouseDrawCursor: bool, pub ConfigMacOSXBehaviors: bool, + pub ConfigNavSwapGamepadButtons: bool, pub ConfigInputTrickleEventQueue: bool, pub ConfigInputTextCursorBlink: bool, pub ConfigInputTextEnterKeepActive: bool, @@ -867,22 +970,22 @@ pub struct ImGuiIO { pub ConfigWindowsResizeFromEdges: bool, pub ConfigWindowsMoveFromTitleBarOnly: bool, pub ConfigMemoryCompactTimer: f32, + pub MouseDoubleClickTime: f32, + pub MouseDoubleClickMaxDist: f32, + pub MouseDragThreshold: f32, + pub KeyRepeatDelay: f32, + pub KeyRepeatRate: f32, + pub ConfigDebugIsDebuggerPresent: bool, + pub ConfigDebugHighlightIdConflicts: bool, + pub ConfigDebugBeginReturnValueOnce: bool, + pub ConfigDebugBeginReturnValueLoop: bool, + pub ConfigDebugIgnoreFocusLoss: bool, + pub ConfigDebugIniSettings: bool, pub BackendPlatformName: *const cty::c_char, pub BackendRendererName: *const cty::c_char, pub BackendPlatformUserData: *mut cty::c_void, pub BackendRendererUserData: *mut cty::c_void, pub BackendLanguageUserData: *mut cty::c_void, - pub GetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void) -> *const cty::c_char, - >, - pub SetClipboardTextFn: ::core::option::Option< - unsafe extern "C" fn(user_data: *mut cty::c_void, text: *const cty::c_char), - >, - pub ClipboardUserData: *mut cty::c_void, - pub SetPlatformImeDataFn: ::core::option::Option< - unsafe extern "C" fn(viewport: *mut ImGuiViewport, data: *mut ImGuiPlatformImeData), - >, - pub _UnusedPadding: *mut cty::c_void, pub WantCaptureMouse: bool, pub WantCaptureKeyboard: bool, pub WantTextInput: bool, @@ -895,21 +998,19 @@ pub struct ImGuiIO { pub MetricsRenderIndices: cty::c_int, pub MetricsRenderWindows: cty::c_int, pub MetricsActiveWindows: cty::c_int, - pub MetricsActiveAllocations: cty::c_int, pub MouseDelta: ImVec2, - pub KeyMap: [cty::c_int; 652usize], - pub KeysDown: [bool; 652usize], - pub NavInputs: [f32; 16usize], + pub Ctx: *mut ImGuiContext, pub MousePos: ImVec2, pub MouseDown: [bool; 5usize], pub MouseWheel: f32, pub MouseWheelH: f32, + pub MouseSource: ImGuiMouseSource, pub KeyCtrl: bool, pub KeyShift: bool, pub KeyAlt: bool, pub KeySuper: bool, pub KeyMods: ImGuiKeyChord, - pub KeysData: [ImGuiKeyData; 652usize], + pub KeysData: [ImGuiKeyData; 154usize], pub WantCaptureMouseUnlessPopupClose: bool, pub MousePosPrev: ImVec2, pub MouseClickedPos: [ImVec2; 5usize], @@ -921,6 +1022,8 @@ pub struct ImGuiIO { pub MouseReleased: [bool; 5usize], pub MouseDownOwned: [bool; 5usize], pub MouseDownOwnedUnlessPopupClose: [bool; 5usize], + pub MouseWheelRequestAxisSwap: bool, + pub MouseCtrlLeftAsRightClick: bool, pub MouseDownDuration: [f32; 5usize], pub MouseDownDurationPrev: [f32; 5usize], pub MouseDragMaxDistanceSqr: [f32; 5usize], @@ -944,6 +1047,7 @@ impl Default for ImGuiIO { #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiInputTextCallbackData { + pub Ctx: *mut ImGuiContext, pub EventFlag: ImGuiInputTextFlags, pub Flags: ImGuiInputTextFlags, pub UserData: *mut cty::c_void, @@ -1006,56 +1110,6 @@ impl Default for ImGuiPayload { } #[repr(C)] #[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableColumnSortSpecs { - pub ColumnUserID: ImGuiID, - pub ColumnIndex: ImS16, - pub SortOrder: ImS16, - pub _bitfield_align_1: [u8; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, - pub __bindgen_padding_0: [u8; 3usize], -} -impl ImGuiTableColumnSortSpecs { - #[inline] - pub fn SortDirection(&self) -> ImGuiSortDirection { - unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) } - } - #[inline] - pub fn set_SortDirection(&mut self, val: ImGuiSortDirection) { - unsafe { - let val: u32 = ::core::mem::transmute(val); - self._bitfield_1.set(0usize, 8u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - SortDirection: ImGuiSortDirection, - ) -> __BindgenBitfieldUnit<[u8; 1usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 8u8, { - let SortDirection: u32 = unsafe { ::core::mem::transmute(SortDirection) }; - SortDirection as u64 - }); - __bindgen_bitfield_unit - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImGuiTableSortSpecs { - pub Specs: *const ImGuiTableColumnSortSpecs, - pub SpecsCount: cty::c_int, - pub SpecsDirty: bool, -} -impl Default for ImGuiTableSortSpecs { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImGuiOnceUponAFrame { pub RefFrame: cty::c_int, } @@ -1214,11 +1268,13 @@ impl Default for ImGuiStorage { #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiListClipper { + pub Ctx: *mut ImGuiContext, pub DisplayStart: cty::c_int, pub DisplayEnd: cty::c_int, pub ItemsCount: cty::c_int, pub ItemsHeight: f32, pub StartPosY: f32, + pub StartSeekOffsetY: f64, pub TempData: *mut cty::c_void, } impl Default for ImGuiListClipper { @@ -1235,6 +1291,123 @@ impl Default for ImGuiListClipper { pub struct ImColor { pub Value: ImVec4, } +pub const ImGuiMultiSelectFlags_None: ImGuiMultiSelectFlags_ = 0; +pub const ImGuiMultiSelectFlags_SingleSelect: ImGuiMultiSelectFlags_ = 1; +pub const ImGuiMultiSelectFlags_NoSelectAll: ImGuiMultiSelectFlags_ = 2; +pub const ImGuiMultiSelectFlags_NoRangeSelect: ImGuiMultiSelectFlags_ = 4; +pub const ImGuiMultiSelectFlags_NoAutoSelect: ImGuiMultiSelectFlags_ = 8; +pub const ImGuiMultiSelectFlags_NoAutoClear: ImGuiMultiSelectFlags_ = 16; +pub const ImGuiMultiSelectFlags_NoAutoClearOnReselect: ImGuiMultiSelectFlags_ = 32; +pub const ImGuiMultiSelectFlags_BoxSelect1d: ImGuiMultiSelectFlags_ = 64; +pub const ImGuiMultiSelectFlags_BoxSelect2d: ImGuiMultiSelectFlags_ = 128; +pub const ImGuiMultiSelectFlags_BoxSelectNoScroll: ImGuiMultiSelectFlags_ = 256; +pub const ImGuiMultiSelectFlags_ClearOnEscape: ImGuiMultiSelectFlags_ = 512; +pub const ImGuiMultiSelectFlags_ClearOnClickVoid: ImGuiMultiSelectFlags_ = 1024; +pub const ImGuiMultiSelectFlags_ScopeWindow: ImGuiMultiSelectFlags_ = 2048; +pub const ImGuiMultiSelectFlags_ScopeRect: ImGuiMultiSelectFlags_ = 4096; +pub const ImGuiMultiSelectFlags_SelectOnClick: ImGuiMultiSelectFlags_ = 8192; +pub const ImGuiMultiSelectFlags_SelectOnClickRelease: ImGuiMultiSelectFlags_ = 16384; +pub const ImGuiMultiSelectFlags_NavWrapX: ImGuiMultiSelectFlags_ = 65536; +pub type ImGuiMultiSelectFlags_ = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImGuiSelectionRequest { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImGuiSelectionRequest, +} +impl Default for ImVector_ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiMultiSelectIO { + pub Requests: ImVector_ImGuiSelectionRequest, + pub RangeSrcItem: ImGuiSelectionUserData, + pub NavIdItem: ImGuiSelectionUserData, + pub NavIdSelected: bool, + pub RangeSrcReset: bool, + pub ItemsCount: cty::c_int, +} +impl Default for ImGuiMultiSelectIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +pub const ImGuiSelectionRequestType_None: ImGuiSelectionRequestType = 0; +pub const ImGuiSelectionRequestType_SetAll: ImGuiSelectionRequestType = 1; +pub const ImGuiSelectionRequestType_SetRange: ImGuiSelectionRequestType = 2; +pub type ImGuiSelectionRequestType = cty::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionRequest { + pub Type: ImGuiSelectionRequestType, + pub Selected: bool, + pub RangeDirection: ImS8, + pub RangeFirstItem: ImGuiSelectionUserData, + pub RangeLastItem: ImGuiSelectionUserData, +} +impl Default for ImGuiSelectionRequest { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionBasicStorage { + pub Size: cty::c_int, + pub PreserveOrder: bool, + pub UserData: *mut cty::c_void, + pub AdapterIndexToStorageId: ::core::option::Option< + unsafe extern "C" fn(self_: *mut ImGuiSelectionBasicStorage, idx: cty::c_int) -> ImGuiID, + >, + pub _SelectionOrder: cty::c_int, + pub _Storage: ImGuiStorage, +} +impl Default for ImGuiSelectionBasicStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiSelectionExternalStorage { + pub UserData: *mut cty::c_void, + pub AdapterSetItemSelected: ::core::option::Option< + unsafe extern "C" fn( + self_: *mut ImGuiSelectionExternalStorage, + idx: cty::c_int, + selected: bool, + ), + >, +} +impl Default for ImGuiSelectionExternalStorage { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} pub type ImDrawCallback = ::core::option::Option< unsafe extern "C" fn(parent_list: *const ImDrawList, cmd: *const ImDrawCmd), >; @@ -1399,6 +1572,22 @@ impl Default for ImVector_ImDrawVert { } #[repr(C)] #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImVec2 { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut ImVec2, +} +impl Default for ImVector_ImVec2 { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] pub struct ImVector_ImVec4 { pub Size: cty::c_int, pub Capacity: cty::c_int, @@ -1430,13 +1619,25 @@ impl Default for ImVector_ImTextureID { } } #[repr(C)] -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] -pub struct ImVector_ImVec2 { - pub Size: cty::c_int, - pub Capacity: cty::c_int, - pub Data: *mut ImVec2, +#[derive(Debug, Copy, Clone, PartialEq)] +pub struct ImDrawList { + pub CmdBuffer: ImVector_ImDrawCmd, + pub IdxBuffer: ImVector_ImDrawIdx, + pub VtxBuffer: ImVector_ImDrawVert, + pub Flags: ImDrawListFlags, + pub _VtxCurrentIdx: cty::c_uint, + pub _Data: *mut ImDrawListSharedData, + pub _VtxWritePtr: *mut ImDrawVert, + pub _IdxWritePtr: *mut ImDrawIdx, + pub _Path: ImVector_ImVec2, + pub _CmdHeader: ImDrawCmdHeader, + pub _Splitter: ImDrawListSplitter, + pub _ClipRectStack: ImVector_ImVec4, + pub _TextureIdStack: ImVector_ImTextureID, + pub _FringeScale: f32, + pub _OwnerName: *const cty::c_char, } -impl Default for ImVector_ImVec2 { +impl Default for ImDrawList { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1446,25 +1647,13 @@ impl Default for ImVector_ImVec2 { } } #[repr(C)] -#[derive(Debug, Copy, Clone, PartialEq)] -pub struct ImDrawList { - pub CmdBuffer: ImVector_ImDrawCmd, - pub IdxBuffer: ImVector_ImDrawIdx, - pub VtxBuffer: ImVector_ImDrawVert, - pub Flags: ImDrawListFlags, - pub _VtxCurrentIdx: cty::c_uint, - pub _Data: *mut ImDrawListSharedData, - pub _OwnerName: *const cty::c_char, - pub _VtxWritePtr: *mut ImDrawVert, - pub _IdxWritePtr: *mut ImDrawIdx, - pub _ClipRectStack: ImVector_ImVec4, - pub _TextureIdStack: ImVector_ImTextureID, - pub _Path: ImVector_ImVec2, - pub _CmdHeader: ImDrawCmdHeader, - pub _Splitter: ImDrawListSplitter, - pub _FringeScale: f32, +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImVector_ImDrawListPtr { + pub Size: cty::c_int, + pub Capacity: cty::c_int, + pub Data: *mut *mut ImDrawList, } -impl Default for ImDrawList { +impl Default for ImVector_ImDrawListPtr { fn default() -> Self { let mut s = ::core::mem::MaybeUninit::::uninit(); unsafe { @@ -1480,10 +1669,11 @@ pub struct ImDrawData { pub CmdListsCount: cty::c_int, pub TotalIdxCount: cty::c_int, pub TotalVtxCount: cty::c_int, - pub CmdLists: *mut *mut ImDrawList, + pub CmdLists: ImVector_ImDrawListPtr, pub DisplayPos: ImVec2, pub DisplaySize: ImVec2, pub FramebufferScale: ImVec2, + pub OwnerViewport: *mut ImGuiViewport, } impl Default for ImDrawData { fn default() -> Self { @@ -1513,6 +1703,7 @@ pub struct ImFontConfig { pub MergeMode: bool, pub FontBuilderFlags: cty::c_uint, pub RasterizerMultiply: f32, + pub RasterizerDensity: f32, pub EllipsisChar: ImWchar, pub Name: [cty::c_char; 40usize], pub DstFont: *mut ImFont, @@ -1782,7 +1973,9 @@ pub struct ImFont { pub ConfigDataCount: cty::c_short, pub FallbackChar: ImWchar, pub EllipsisChar: ImWchar, - pub DotChar: ImWchar, + pub EllipsisCharCount: cty::c_short, + pub EllipsisWidth: f32, + pub EllipsisCharStep: f32, pub DirtyLookupTables: bool, pub Scale: f32, pub Ascent: f32, @@ -1807,11 +2000,13 @@ pub type ImGuiViewportFlags_ = cty::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, PartialEq)] pub struct ImGuiViewport { + pub ID: ImGuiID, pub Flags: ImGuiViewportFlags, pub Pos: ImVec2, pub Size: ImVec2, pub WorkPos: ImVec2, pub WorkSize: ImVec2, + pub PlatformHandle: *mut cty::c_void, pub PlatformHandleRaw: *mut cty::c_void, } impl Default for ImGuiViewport { @@ -1824,6 +2019,38 @@ impl Default for ImGuiViewport { } } #[repr(C)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub struct ImGuiPlatformIO { + pub Platform_GetClipboardTextFn: + ::core::option::Option *const cty::c_char>, + pub Platform_SetClipboardTextFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, text: *const cty::c_char), + >, + pub Platform_ClipboardUserData: *mut cty::c_void, + pub Platform_OpenInShellFn: ::core::option::Option< + unsafe extern "C" fn(ctx: *mut ImGuiContext, path: *const cty::c_char) -> bool, + >, + pub Platform_OpenInShellUserData: *mut cty::c_void, + pub Platform_SetImeDataFn: ::core::option::Option< + unsafe extern "C" fn( + ctx: *mut ImGuiContext, + viewport: *mut ImGuiViewport, + data: *mut ImGuiPlatformImeData, + ), + >, + pub Platform_ImeUserData: *mut cty::c_void, + pub Platform_LocaleDecimalPoint: ImWchar, +} +impl Default for ImGuiPlatformIO { + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} +#[repr(C)] #[derive(Debug, Default, Copy, Clone, PartialEq)] pub struct ImGuiPlatformImeData { pub WantVisible: bool, @@ -1886,6 +2113,10 @@ extern "C" { pub fn igGetIO() -> *mut ImGuiIO; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyle() -> *mut ImGuiStyle; } @@ -1919,7 +2150,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igShowStackToolWindow(p_open: *mut bool); + pub fn igShowIDStackToolWindow(p_open: *mut bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -1970,8 +2201,8 @@ extern "C" { pub fn igBeginChild_Str( str_id: *const cty::c_char, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -1979,8 +2210,8 @@ extern "C" { pub fn igBeginChild_ID( id: ImGuiID, size: ImVec2, - border: bool, - flags: ImGuiWindowFlags, + child_flags: ImGuiChildFlags, + window_flags: ImGuiWindowFlags, ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -2097,22 +2328,6 @@ extern "C" { pub fn igSetWindowFocus_Str(name: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionAvail(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMin(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetWindowContentRegionMax(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetScrollX() -> f32; } @@ -2181,24 +2396,24 @@ extern "C" { pub fn igPushStyleVar_Vec2(idx: ImGuiStyleVar, val: ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarX(idx: ImGuiStyleVar, val_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igPushStyleVarY(idx: ImGuiStyleVar, val_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igPopStyleVar(count: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPushAllowKeyboardFocus(allow_keyboard_focus: bool); + pub fn igPushItemFlag(option: ImGuiItemFlags, enabled: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igPopAllowKeyboardFocus(); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPushButtonRepeat(repeat: bool); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igPopButtonRepeat(); + pub fn igPopItemFlag(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -2246,13 +2461,53 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igGetColorU32_U32(col: ImU32) -> ImU32; + pub fn igGetColorU32_U32(col: ImU32, alpha_mul: f32) -> ImU32; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetStyleColorVec4(idx: ImGuiCol) -> *const ImVec4; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorScreenPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorScreenPos(pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetContentRegionAvail(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosX() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorPosY() -> f32; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPos(local_pos: ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosX(local_x: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetCursorPosY(local_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetCursorStartPos(pOut: *mut ImVec2); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSeparator(); } @@ -2289,42 +2544,6 @@ extern "C" { pub fn igEndGroup(); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosX() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorPosY() -> f32; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPos(local_pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosX(local_x: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorPosY(local_y: f32); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorStartPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetCursorScreenPos(pOut: *mut ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetCursorScreenPos(pos: ImVec2); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igAlignTextToFramePadding(); } @@ -2380,6 +2599,10 @@ extern "C" { pub fn igGetID_Ptr(ptr_id: *const cty::c_void) -> ImGuiID; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igGetID_Int(int_id: cty::c_int) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTextUnformatted(text: *const cty::c_char, text_end: *const cty::c_char); } @@ -2408,6 +2631,10 @@ extern "C" { pub fn igBulletText(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSeparatorText(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igButton(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -2468,10 +2695,18 @@ extern "C" { pub fn igBullet(); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLink(label: *const cty::c_char) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTextLinkOpenURL(label: *const cty::c_char, url: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igImage( user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, tint_col: ImVec4, @@ -2483,7 +2718,7 @@ extern "C" { pub fn igImageButton( str_id: *const cty::c_char, user_texture_id: ImTextureID, - size: ImVec2, + image_size: ImVec2, uv0: ImVec2, uv1: ImVec2, bg_col: ImVec4, @@ -2523,17 +2758,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igCombo_FnBoolPtr( + pub fn igCombo_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, popup_max_height_in_items: cty::c_int, ) -> bool; @@ -3109,6 +3343,10 @@ extern "C" { pub fn igSetNextItemOpen(is_open: bool, cond: ImGuiCond); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemStorageID(storage_id: ImGuiID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSelectable_Bool( label: *const cty::c_char, @@ -3127,6 +3365,26 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginMultiSelect( + flags: ImGuiMultiSelectFlags, + selection_size: cty::c_int, + items_count: cty::c_int, + ) -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igEndMultiSelect() -> *mut ImGuiMultiSelectIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemSelectionUserData(selection_user_data: ImGuiSelectionUserData); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsItemToggledSelection() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginListBox(label: *const cty::c_char, size: ImVec2) -> bool; } @@ -3146,17 +3404,16 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igListBox_FnBoolPtr( + pub fn igListBox_FnStrPtr( label: *const cty::c_char, current_item: *mut cty::c_int, - items_getter: ::core::option::Option< + getter: ::core::option::Option< unsafe extern "C" fn( - data: *mut cty::c_void, + user_data: *mut cty::c_void, idx: cty::c_int, - out_text: *mut *const cty::c_char, - ) -> bool, + ) -> *const cty::c_char, >, - data: *mut cty::c_void, + user_data: *mut cty::c_void, items_count: cty::c_int, height_in_items: cty::c_int, ) -> bool; @@ -3281,7 +3538,7 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igBeginTooltip(); + pub fn igBeginTooltip() -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3292,6 +3549,14 @@ extern "C" { pub fn igSetTooltip(fmt: *const cty::c_char, ...); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igBeginItemTooltip() -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemTooltip(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igBeginPopup(str_id: *const cty::c_char, flags: ImGuiWindowFlags) -> bool; } @@ -3352,7 +3617,7 @@ extern "C" { extern "C" { pub fn igBeginTable( str_id: *const cty::c_char, - column: cty::c_int, + columns: cty::c_int, flags: ImGuiTableFlags, outer_size: ImVec2, inner_width: f32, @@ -3388,12 +3653,16 @@ extern "C" { pub fn igTableSetupScrollFreeze(cols: cty::c_int, rows: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableHeader(label: *const cty::c_char); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igTableHeader(label: *const cty::c_char); + pub fn igTableAngledHeadersRow(); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3424,12 +3693,16 @@ extern "C" { pub fn igTableSetColumnEnabled(column_n: cty::c_int, v: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igTableGetHoveredColumn() -> cty::c_int; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igTableSetBgColor(target: ImGuiTableBgTarget, color: ImU32, column_n: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn igColumns(count: cty::c_int, id: *const cty::c_char, border: bool); + pub fn igColumns(count: cty::c_int, id: *const cty::c_char, borders: bool); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3572,6 +3845,10 @@ extern "C" { pub fn igSetKeyboardFocusHere(offset: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemAllowOverlap(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsItemHovered(flags: ImGuiHoveredFlags) -> bool; } @@ -3640,10 +3917,6 @@ extern "C" { pub fn igGetItemRectSize(pOut: *mut ImVec2); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igSetItemAllowOverlap(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetMainViewport() -> *mut ImGuiViewport; } @@ -3688,14 +3961,6 @@ extern "C" { pub fn igGetStateStorage() -> *mut ImGuiStorage; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igBeginChildFrame(id: ImGuiID, size: ImVec2, flags: ImGuiWindowFlags) -> bool; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igEndChildFrame(); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igCalcTextSize( pOut: *mut ImVec2, @@ -3748,6 +4013,10 @@ extern "C" { pub fn igIsKeyReleased(key: ImGuiKey) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igIsKeyChordPressed(key_chord: ImGuiKeyChord) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igGetKeyPressedAmount(key: ImGuiKey, repeat_delay: f32, rate: f32) -> cty::c_int; } @@ -3760,6 +4029,18 @@ extern "C" { pub fn igSetNextFrameWantCaptureKeyboard(want_capture_keyboard: bool); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetNextItemShortcut(key_chord: ImGuiKeyChord, flags: ImGuiInputFlags); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igSetItemKeyOwner(key: ImGuiKey); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igIsMouseDown(button: ImGuiMouseButton) -> bool; } @@ -3852,6 +4133,14 @@ extern "C" { pub fn igDebugTextEncoding(text: *const cty::c_char); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugFlashStyleColor(idx: ImGuiCol); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugStartItemPicker(); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igDebugCheckVersionAndDataLayout( version_str: *const cty::c_char, @@ -3864,6 +4153,10 @@ extern "C" { ) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn igDebugLog(fmt: *const cty::c_char, ...); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn igSetAllocatorFunctions( alloc_func: ImGuiMemAllocFunc, @@ -3888,6 +4181,22 @@ extern "C" { pub fn igMemFree(ptr: *mut cty::c_void); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStyle_ImGuiStyle() -> *mut ImGuiStyle; } @@ -3917,7 +4226,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wh_x: f32, wh_y: f32); + pub fn ImGuiIO_AddMouseWheelEvent(self_: *mut ImGuiIO, wheel_x: f32, wheel_y: f32); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_AddMouseSourceEvent(self_: *mut ImGuiIO, source: ImGuiMouseSource); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -3951,13 +4264,17 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiIO_ClearInputCharacters(self_: *mut ImGuiIO); + pub fn ImGuiIO_ClearEventsQueue(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ClearInputKeys(self_: *mut ImGuiIO); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiIO_ClearInputMouse(self_: *mut ImGuiIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiIO_ImGuiIO() -> *mut ImGuiIO; } @@ -4027,22 +4344,6 @@ extern "C" { pub fn ImGuiPayload_IsDelivery(self_: *mut ImGuiPayload) -> bool; } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_ImGuiTableColumnSortSpecs() -> *mut ImGuiTableColumnSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableColumnSortSpecs_destroy(self_: *mut ImGuiTableColumnSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_ImGuiTableSortSpecs() -> *mut ImGuiTableSortSpecs; -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImGuiTableSortSpecs_destroy(self_: *mut ImGuiTableSortSpecs); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiOnceUponAFrame_ImGuiOnceUponAFrame() -> *mut ImGuiOnceUponAFrame; } @@ -4163,7 +4464,7 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Int( _key: ImGuiID, - _val_i: cty::c_int, + _val: cty::c_int, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -4174,14 +4475,14 @@ extern "C" { extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Float( _key: ImGuiID, - _val_f: f32, + _val: f32, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiStoragePair_ImGuiStoragePair_Ptr( _key: ImGuiID, - _val_p: *mut cty::c_void, + _val: *mut cty::c_void, ) -> *mut ImGuiStoragePair; } #[link(wasm_import_module = "imgui-sys-v0")] @@ -4258,11 +4559,11 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); + pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiStorage_BuildSortByKey(self_: *mut ImGuiStorage); + pub fn ImGuiStorage_SetAllInt(self_: *mut ImGuiStorage, val: cty::c_int); } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { @@ -4290,13 +4591,24 @@ extern "C" { } #[link(wasm_import_module = "imgui-sys-v0")] extern "C" { - pub fn ImGuiListClipper_ForceDisplayRangeByIndices( + pub fn ImGuiListClipper_IncludeItemByIndex( self_: *mut ImGuiListClipper, - item_min: cty::c_int, - item_max: cty::c_int, + item_index: cty::c_int, ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_IncludeItemsByIndex( + self_: *mut ImGuiListClipper, + item_begin: cty::c_int, + item_end: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiListClipper_SeekCursorForItem(self_: *mut ImGuiListClipper, item_index: cty::c_int); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImColor_ImColor_Nil() -> *mut ImColor; } @@ -4334,6 +4646,78 @@ extern "C" { pub fn ImColor_HSV(pOut: *mut ImColor, h: f32, s: f32, v: f32, a: f32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ImGuiSelectionBasicStorage() -> *mut ImGuiSelectionBasicStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_destroy(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_ApplyRequests( + self_: *mut ImGuiSelectionBasicStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Contains( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Clear(self_: *mut ImGuiSelectionBasicStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_Swap( + self_: *mut ImGuiSelectionBasicStorage, + r: *mut ImGuiSelectionBasicStorage, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_SetItemSelected( + self_: *mut ImGuiSelectionBasicStorage, + id: ImGuiID, + selected: bool, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetNextSelectedItem( + self_: *mut ImGuiSelectionBasicStorage, + opaque_it: *mut *mut cty::c_void, + out_id: *mut ImGuiID, + ) -> bool; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionBasicStorage_GetStorageIdFromIndex( + self_: *mut ImGuiSelectionBasicStorage, + idx: cty::c_int, + ) -> ImGuiID; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ImGuiSelectionExternalStorage( + ) -> *mut ImGuiSelectionExternalStorage; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_destroy(self_: *mut ImGuiSelectionExternalStorage); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiSelectionExternalStorage_ApplyRequests( + self_: *mut ImGuiSelectionExternalStorage, + ms_io: *mut ImGuiMultiSelectIO, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawCmd_ImDrawCmd() -> *mut ImDrawCmd; } @@ -4554,6 +4938,29 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipse( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddEllipseFilled( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + col: ImU32, + rot: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddText_Vec2( self_: *mut ImDrawList, @@ -4578,26 +4985,6 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddPolyline( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - flags: ImDrawFlags, - thickness: f32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn ImDrawList_AddConvexPolyFilled( - self_: *mut ImDrawList, - points: *const ImVec2, - num_points: cty::c_int, - col: ImU32, - ); -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddBezierCubic( self_: *mut ImDrawList, @@ -4623,6 +5010,35 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddPolyline( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + flags: ImDrawFlags, + thickness: f32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConvexPolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_AddConcavePolyFilled( + self_: *mut ImDrawList, + points: *const ImVec2, + num_points: cty::c_int, + col: ImU32, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_AddImage( self_: *mut ImDrawList, @@ -4681,6 +5097,10 @@ extern "C" { pub fn ImDrawList_PathFillConvex(self_: *mut ImDrawList, col: ImU32); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathFillConcave(self_: *mut ImDrawList, col: ImU32); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathStroke( self_: *mut ImDrawList, @@ -4711,6 +5131,18 @@ extern "C" { ); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList_PathEllipticalArcTo( + self_: *mut ImDrawList, + center: ImVec2, + radius: ImVec2, + rot: f32, + a_min: f32, + a_max: f32, + num_segments: cty::c_int, + ); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList_PathBezierCubicCurveTo( self_: *mut ImDrawList, @@ -4854,6 +5286,10 @@ extern "C" { pub fn ImDrawList__OnChangedVtxOffset(self_: *mut ImDrawList); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawList__SetTextureID(self_: *mut ImDrawList, texture_id: ImTextureID); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawList__CalcCircleAutoSegmentCount( self_: *mut ImDrawList, @@ -4895,6 +5331,10 @@ extern "C" { pub fn ImDrawData_Clear(self_: *mut ImDrawData); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImDrawData_AddDrawList(self_: *mut ImDrawData, draw_list: *mut ImDrawList); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImDrawData_DeIndexAllBuffers(self_: *mut ImDrawData); } @@ -5005,7 +5445,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryTTF( self_: *mut ImFontAtlas, font_data: *mut cty::c_void, - font_size: cty::c_int, + font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -5016,7 +5456,7 @@ extern "C" { pub fn ImFontAtlas_AddFontFromMemoryCompressedTTF( self_: *mut ImFontAtlas, compressed_font_data: *const cty::c_void, - compressed_font_size: cty::c_int, + compressed_font_data_size: cty::c_int, size_pixels: f32, font_cfg: *const ImFontConfig, glyph_ranges: *const ImWchar, @@ -5304,6 +5744,14 @@ extern "C" { pub fn ImGuiViewport_GetWorkCenter(pOut: *mut ImVec2, self_: *mut ImGuiViewport); } #[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPlatformIO_ImGuiPlatformIO() -> *mut ImGuiPlatformIO; +} +#[link(wasm_import_module = "imgui-sys-v0")] +extern "C" { + pub fn ImGuiPlatformIO_destroy(self_: *mut ImGuiPlatformIO); +} +#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiPlatformImeData_ImGuiPlatformImeData() -> *mut ImGuiPlatformImeData; } @@ -5312,10 +5760,6 @@ extern "C" { pub fn ImGuiPlatformImeData_destroy(self_: *mut ImGuiPlatformImeData); } #[link(wasm_import_module = "imgui-sys-v0")] -extern "C" { - pub fn igGetKeyIndex(key: ImGuiKey) -> ImGuiKey; -} -#[link(wasm_import_module = "imgui-sys-v0")] extern "C" { pub fn ImGuiFreeType_GetBuilderForFreeType() -> *const ImFontBuilderIO; } diff --git a/imgui/src/clipboard.rs b/imgui/src/clipboard.rs index 13c3863..9664637 100644 --- a/imgui/src/clipboard.rs +++ b/imgui/src/clipboard.rs @@ -1,6 +1,6 @@ use std::ffi::{CStr, CString}; use std::fmt; -use std::os::raw::{c_char, c_void}; +use std::os::raw::c_char; use std::panic::catch_unwind; use std::process; use std::ptr; @@ -62,8 +62,12 @@ impl fmt::Debug for ClipboardContext { } } -pub(crate) unsafe extern "C" fn get_clipboard_text(user_data: *mut c_void) -> *const c_char { +pub(crate) unsafe extern "C" fn get_clipboard_text( + _user_data: *mut sys::ImGuiContext, +) -> *const c_char { let result = catch_unwind(|| { + let user_data = unsafe { (*sys::igGetPlatformIO()).Platform_ClipboardUserData }; + let ctx = &mut *(user_data as *mut ClipboardContext); match ctx.backend.get() { Some(text) => { @@ -79,8 +83,13 @@ pub(crate) unsafe extern "C" fn get_clipboard_text(user_data: *mut c_void) -> *c }) } -pub(crate) unsafe extern "C" fn set_clipboard_text(user_data: *mut c_void, text: *const c_char) { +pub(crate) unsafe extern "C" fn set_clipboard_text( + _user_data: *mut sys::ImGuiContext, + text: *const c_char, +) { let result = catch_unwind(|| { + let user_data = unsafe { (*sys::igGetPlatformIO()).Platform_ClipboardUserData }; + let ctx = &mut *(user_data as *mut ClipboardContext); let text = CStr::from_ptr(text).to_owned(); ctx.backend.set(text.to_str().unwrap()); @@ -97,15 +106,20 @@ impl Ui { /// Returns the current clipboard contents as text, or None if the clipboard is empty or cannot /// be accessed pub fn clipboard_text(&self) -> Option { - let io = self.io(); - io.get_clipboard_text_fn.and_then(|get_clipboard_text_fn| { + let platform_io = unsafe { sys::igGetPlatformIO() }; + + let current_clipboard_text_fn = unsafe { (*platform_io).Platform_GetClipboardTextFn }; + + current_clipboard_text_fn.and_then(|get_clipboard_text_fn| { // Bypass FFI if we end up calling our own function anyway if get_clipboard_text_fn == get_clipboard_text { - let ctx = unsafe { &mut *(io.clipboard_user_data as *mut ClipboardContext) }; + let ctx = unsafe { + &mut *((*platform_io).Platform_ClipboardUserData as *mut ClipboardContext) + }; ctx.backend.get() } else { unsafe { - let text_ptr = get_clipboard_text_fn(io.clipboard_user_data); + let text_ptr = get_clipboard_text_fn(sys::igGetCurrentContext()); if text_ptr.is_null() || *text_ptr == b'\0' as c_char { None } else { @@ -126,15 +140,19 @@ impl Ui { /// /// Does nothing if the clipboard cannot be accessed. pub fn set_clipboard_text(&self, text: impl AsRef) { - let io = self.io(); - if let Some(set_clipboard_text_fn) = io.set_clipboard_text_fn { + let platform_io = unsafe { sys::igGetPlatformIO() }; + let set_clipboard_text_fn = unsafe { (*platform_io).Platform_SetClipboardTextFn }; + + if let Some(set_clipboard_text_fn) = set_clipboard_text_fn { // Bypass FFI if we end up calling our own function anyway if set_clipboard_text_fn == set_clipboard_text { - let ctx = unsafe { &mut *(io.clipboard_user_data as *mut ClipboardContext) }; + let ctx = unsafe { + &mut *((*platform_io).Platform_ClipboardUserData as *mut ClipboardContext) + }; ctx.backend.set(text.as_ref()); } else { unsafe { - set_clipboard_text_fn(io.clipboard_user_data, self.scratch_txt(text)); + set_clipboard_text_fn(sys::igGetCurrentContext(), self.scratch_txt(text)); } } } diff --git a/imgui/src/context.rs b/imgui/src/context.rs index e469df5..9175a31 100644 --- a/imgui/src/context.rs +++ b/imgui/src/context.rs @@ -216,7 +216,7 @@ impl Context { /// Sets the clipboard backend used for clipboard operations pub fn set_clipboard_backend(&mut self, backend: T) { let clipboard_ctx: Box> = Box::new(ClipboardContext::new(backend).into()); - let io = self.io_mut(); + let io = self.platform_io_mut(); io.set_clipboard_text_fn = Some(crate::clipboard::set_clipboard_text); io.get_clipboard_text_fn = Some(crate::clipboard::get_clipboard_text); @@ -451,8 +451,7 @@ fn test_ini_load_save() { let (_guard, mut ctx) = crate::test::test_ctx(); let data = "[Window][Debug##Default] Pos=60,60 -Size=400,400 -Collapsed=0"; +Size=400,400"; ctx.load_ini_settings(data); let mut buf = String::new(); ctx.save_ini_settings(&mut buf); @@ -502,6 +501,24 @@ impl Context { &mut *(sys::igGetIO() as *mut Io) } } + + /// Returns an immutable reference to the Context's [`PlatformIo`](crate::PlatformIo) object. + pub fn platform_io(&self) -> &crate::PlatformIo { + unsafe { + // safe because PlatformIo is a transparent wrapper around sys::ImGuiPlatformIO + // and &self ensures we have shared ownership of PlatformIo. + &*(sys::igGetPlatformIO() as *const crate::PlatformIo) + } + } + /// Returns a mutable reference to the Context's [`PlatformIo`](crate::PlatformIo) object. + pub fn platform_io_mut(&mut self) -> &mut crate::PlatformIo { + unsafe { + // safe because PlatformIo is a transparent wrapper around sys::ImGuiPlatformIO + // and &mut self ensures exclusive ownership of PlatformIo. + &mut *(sys::igGetPlatformIO() as *mut crate::PlatformIo) + } + } + /// Returns an immutable reference to the user interface style #[doc(alias = "GetStyle")] pub fn style(&self) -> &Style { @@ -594,22 +611,6 @@ impl Context { #[cfg(feature = "docking")] impl Context { - /// Returns an immutable reference to the Context's [`PlatformIo`](crate::PlatformIo) object. - pub fn platform_io(&self) -> &crate::PlatformIo { - unsafe { - // safe because PlatformIo is a transparent wrapper around sys::ImGuiPlatformIO - // and &self ensures we have shared ownership of PlatformIo. - &*(sys::igGetPlatformIO() as *const crate::PlatformIo) - } - } - /// Returns a mutable reference to the Context's [`PlatformIo`](crate::PlatformIo) object. - pub fn platform_io_mut(&mut self) -> &mut crate::PlatformIo { - unsafe { - // safe because PlatformIo is a transparent wrapper around sys::ImGuiPlatformIO - // and &mut self ensures exclusive ownership of PlatformIo. - &mut *(sys::igGetPlatformIO() as *mut crate::PlatformIo) - } - } /// Returns an immutable reference to the main [`Viewport`](crate::Viewport) pub fn main_viewport(&self) -> &crate::Viewport { unsafe { diff --git a/imgui/src/docking_utils.rs b/imgui/src/docking_utils.rs new file mode 100644 index 0000000..124b690 --- /dev/null +++ b/imgui/src/docking_utils.rs @@ -0,0 +1,396 @@ +use std::{ + ffi::{c_void, CStr}, + os::raw::{c_char, c_int}, +}; + +use crate::{ + internal::{ImVector, RawCast}, + Io, ViewportFlags, +}; + +todo!("needs to be checked with docking feature..."); + +/// Trait holding functions needed when the platform integration supports viewports. +/// +/// Register it via [`Context::set_platform_backend()`](crate::context::Context::set_platform_backend()) +pub trait PlatformViewportBackend: 'static { + /// Called by imgui when a new [`Viewport`] is created. + /// + /// # Notes + /// This function should initiate the creation of a platform window. + /// The window should be invisible. + fn create_window(&mut self, viewport: &mut Viewport); + /// Called by imgui when a [`Viewport`] is about to be destroyed. + /// + /// # Notes + /// This function should initiate the destruction of the platform window. + fn destroy_window(&mut self, viewport: &mut Viewport); + /// Called by imgui to make a [`Viewport`] visible. + fn show_window(&mut self, viewport: &mut Viewport); + /// Called by imgui to reposition a [`Viewport`]. + /// + /// # Notes + /// `pos` specifies the position of the windows content area (excluding title bar etc.) + fn set_window_pos(&mut self, viewport: &mut Viewport, pos: [f32; 2]); + /// Called by imgui to get the position of a [`Viewport`]. + /// + /// # Notes + /// You should return the position of the window's content area (excluding title bar etc.) + fn get_window_pos(&mut self, viewport: &mut Viewport) -> [f32; 2]; + /// Called by imgui to set the size of a [`Viewport`]. + /// + /// # Notes + /// `size` specifies the size of the window's content area (excluding title bar etc.) + fn set_window_size(&mut self, viewport: &mut Viewport, size: [f32; 2]); + /// Called by imgui to get the size of a [`Viewport`]. + /// + /// # Notes + /// you should return the size of the window's content area (excluding title bar etc.) + fn get_window_size(&mut self, viewport: &mut Viewport) -> [f32; 2]; + /// Called by imgui to make a [`Viewport`] steal the focus. + fn set_window_focus(&mut self, viewport: &mut Viewport); + /// Called by imgui to query whether a [`Viewport`] is in focus. + fn get_window_focus(&mut self, viewport: &mut Viewport) -> bool; + /// Called by imgui to query whether a [`Viewport`] is minimized. + fn get_window_minimized(&mut self, viewport: &mut Viewport) -> bool; + /// Called by imgui to set a [`Viewport`] title. + fn set_window_title(&mut self, viewport: &mut Viewport, title: &str); + /// Called by imgui to set the opacity of an entire [`Viewport`]. + /// + /// If your backend does not support opactiy, it is safe to just do nothing in this function. + fn set_window_alpha(&mut self, viewport: &mut Viewport, alpha: f32); + fn update_window(&mut self, viewport: &mut Viewport); + fn render_window(&mut self, viewport: &mut Viewport); + fn swap_buffers(&mut self, viewport: &mut Viewport); + fn create_vk_surface( + &mut self, + viewport: &mut Viewport, + instance: u64, + out_surface: &mut u64, + ) -> i32; +} + +/// Used to get the current Contexts [`PlatformViewportContext`]. +fn get_platform_ctx() -> &'static mut PlatformViewportContext { + unsafe { + // should be safe as it is impossible to call any imgui function on a non-active context. + &mut *((*(sys::igGetIO() as *const Io)).backend_platform_user_data + as *mut PlatformViewportContext) + } +} + +/// Used to get the current Contexts [`RendererViewportContext`]. +fn get_renderer_ctx() -> &'static mut RendererViewportContext { + unsafe { + // should be safe as it is impossible to call any imgui function on a non-active context. + &mut *((*(sys::igGetIO() as *const Io)).backend_renderer_user_data + as *mut RendererViewportContext) + } +} + +pub(crate) extern "C" fn platform_create_window(viewport: *mut Viewport) { + let ctx = get_platform_ctx(); + ctx.backend.create_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_destroy_window(viewport: *mut Viewport) { + let ctx = get_platform_ctx(); + ctx.backend.destroy_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_show_window(viewport: *mut Viewport) { + let ctx = get_platform_ctx(); + ctx.backend.show_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_set_window_pos(viewport: *mut Viewport, pos: sys::ImVec2) { + let ctx = get_platform_ctx(); + ctx.backend + .set_window_pos(unsafe { &mut *viewport }, [pos.x, pos.y]); +} +pub(crate) extern "C" fn platform_get_window_pos( + viewport: *mut Viewport, + out_pos: *mut sys::ImVec2, +) { + let ctx = get_platform_ctx(); + let pos = ctx.backend.get_window_pos(unsafe { &mut *viewport }); + unsafe { + *out_pos = sys::ImVec2::new(pos[0], pos[1]); + } +} +pub(crate) extern "C" fn platform_set_window_size(viewport: *mut Viewport, size: sys::ImVec2) { + let ctx = get_platform_ctx(); + ctx.backend + .set_window_size(unsafe { &mut *viewport }, [size.x, size.y]); +} +pub(crate) extern "C" fn platform_get_window_size( + viewport: *mut Viewport, + out_size: *mut sys::ImVec2, +) { + let ctx = get_platform_ctx(); + let size = ctx.backend.get_window_size(unsafe { &mut *viewport }); + unsafe { + *out_size = sys::ImVec2::new(size[0], size[1]); + } +} +pub(crate) extern "C" fn platform_set_window_focus(viewport: *mut Viewport) { + let ctx = get_platform_ctx(); + ctx.backend.set_window_focus(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_get_window_focus(viewport: *mut Viewport) -> bool { + let ctx = get_platform_ctx(); + ctx.backend.get_window_focus(unsafe { &mut *viewport }) +} +pub(crate) extern "C" fn platform_get_window_minimized(viewport: *mut Viewport) -> bool { + let ctx = get_platform_ctx(); + ctx.backend.get_window_minimized(unsafe { &mut *viewport }) +} +pub(crate) extern "C" fn platform_set_window_title(viewport: *mut Viewport, title: *const c_char) { + let ctx = get_platform_ctx(); + let title = unsafe { CStr::from_ptr(title).to_str().unwrap() }; + ctx.backend + .set_window_title(unsafe { &mut *viewport }, title); +} +pub(crate) extern "C" fn platform_set_window_alpha(viewport: *mut Viewport, alpha: f32) { + let ctx = get_platform_ctx(); + ctx.backend + .set_window_alpha(unsafe { &mut *viewport }, alpha); +} +pub(crate) extern "C" fn platform_update_window(viewport: *mut Viewport) { + let ctx = get_platform_ctx(); + ctx.backend.update_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_render_window(viewport: *mut Viewport, _arg: *mut c_void) { + let ctx = get_platform_ctx(); + ctx.backend.render_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_swap_buffers(viewport: *mut Viewport, _arg: *mut c_void) { + let ctx = get_platform_ctx(); + ctx.backend.swap_buffers(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn platform_create_vk_surface( + viewport: *mut Viewport, + instance: u64, + _arg: *const c_void, + out_surface: *mut u64, +) -> c_int { + let ctx = get_platform_ctx(); + ctx.backend + .create_vk_surface(unsafe { &mut *viewport }, instance, unsafe { + &mut *out_surface + }) +} + +/// The default [`PlatformViewportBackend`], does nothing. +pub(crate) struct DummyPlatformViewportBackend {} +impl PlatformViewportBackend for DummyPlatformViewportBackend { + fn create_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn destroy_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn show_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn set_window_pos(&mut self, _viewport: &mut Viewport, _pos: [f32; 2]) { + unimplemented!() + } + + fn get_window_pos(&mut self, _viewport: &mut Viewport) -> [f32; 2] { + unimplemented!() + } + + fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { + unimplemented!() + } + + fn get_window_size(&mut self, _viewport: &mut Viewport) -> [f32; 2] { + unimplemented!() + } + + fn set_window_focus(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn get_window_focus(&mut self, _viewport: &mut Viewport) -> bool { + unimplemented!() + } + + fn get_window_minimized(&mut self, _viewport: &mut Viewport) -> bool { + unimplemented!() + } + + fn set_window_title(&mut self, _viewport: &mut Viewport, _title: &str) { + unimplemented!() + } + + fn set_window_alpha(&mut self, _viewport: &mut Viewport, _alpha: f32) { + unimplemented!() + } + + fn update_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn render_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn swap_buffers(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn create_vk_surface( + &mut self, + _viewport: &mut Viewport, + _instance: u64, + _out_surface: &mut u64, + ) -> i32 { + unimplemented!() + } +} + +/// Just holds a [`PlatformViewportBackend`]. +pub(crate) struct PlatformViewportContext { + pub(crate) backend: Box, +} + +impl PlatformViewportContext { + pub(crate) fn dummy() -> Self { + Self { + backend: Box::new(DummyPlatformViewportBackend {}), + } + } +} + +/// Trait that holds optional functions for a rendering backend to support multiple viewports. +/// +/// It is completely fine to not use this Backend at all, as all functions are optional. +pub trait RendererViewportBackend: 'static { + /// Called after [`PlatformViewportBackend::create_window()`]. + fn create_window(&mut self, viewport: &mut Viewport); + /// Called before [`PlatformViewportBackend::destroy_window()`]. + fn destroy_window(&mut self, viewport: &mut Viewport); + /// Called after [`PlatformViewportBackend::set_window_size()`]. + fn set_window_size(&mut self, viewport: &mut Viewport, size: [f32; 2]); + fn render_window(&mut self, viewport: &mut Viewport); + fn swap_buffers(&mut self, viewport: &mut Viewport); +} + +pub(crate) extern "C" fn renderer_create_window(viewport: *mut Viewport) { + let ctx = get_renderer_ctx(); + ctx.backend.create_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn renderer_destroy_window(viewport: *mut Viewport) { + let ctx = get_renderer_ctx(); + ctx.backend.destroy_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn renderer_set_window_size(viewport: *mut Viewport, size: sys::ImVec2) { + let ctx = get_renderer_ctx(); + ctx.backend + .set_window_size(unsafe { &mut *viewport }, [size.x, size.y]); +} +pub(crate) extern "C" fn renderer_render_window(viewport: *mut Viewport, _arg: *mut c_void) { + let ctx = get_renderer_ctx(); + ctx.backend.render_window(unsafe { &mut *viewport }); +} +pub(crate) extern "C" fn renderer_swap_buffers(viewport: *mut Viewport, _arg: *mut c_void) { + let ctx = get_renderer_ctx(); + ctx.backend.swap_buffers(unsafe { &mut *viewport }); +} + +/// The default [`RendererViewportBackend`], does nothing. +pub(crate) struct DummyRendererViewportBackend {} +impl RendererViewportBackend for DummyRendererViewportBackend { + fn create_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn destroy_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { + unimplemented!() + } + + fn render_window(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } + + fn swap_buffers(&mut self, _viewport: &mut Viewport) { + unimplemented!() + } +} + +/// Just holds a [`RendererViewportBackend`]. +pub(crate) struct RendererViewportContext { + pub(crate) backend: Box, +} + +impl RendererViewportContext { + pub(crate) fn dummy() -> Self { + Self { + backend: Box::new(DummyRendererViewportBackend {}), + } + } +} + +/// Describes a monitor that can be used by ImGui. +#[repr(C)] +pub struct PlatformMonitor { + /// Position of the monitor on the virtual desktop. + pub main_pos: [f32; 2], + /// Size of the monitor on the virtual desktop. + pub main_size: [f32; 2], + /// Working position of the monitor, should exclude task bar etc. + /// + /// Set to `main_pos` if not known. + pub work_pos: [f32; 2], + /// Working size of the monitor, should exclude task bar etc. + /// + /// Set to `work_size` if not known. + pub work_size: [f32; 2], + pub dpi_scale: f32, +} + +#[test] +#[cfg(test)] +fn test_platform_monitor_memory_layout() { + use std::mem; + assert_eq!( + mem::size_of::(), + mem::size_of::() + ); + assert_eq!( + mem::align_of::(), + mem::align_of::() + ); + use sys::ImGuiPlatformMonitor; + macro_rules! assert_field_offset { + ($l:ident, $r:ident) => { + assert_eq!( + memoffset::offset_of!(PlatformMonitor, $l), + memoffset::offset_of!(ImGuiPlatformMonitor, $r) + ); + }; + } + + assert_field_offset!(main_pos, MainPos); + assert_field_offset!(main_size, MainSize); + assert_field_offset!(work_pos, WorkPos); + assert_field_offset!(work_size, WorkSize); + assert_field_offset!(dpi_scale, DpiScale); +} + +extern "C" { + pub(crate) fn ImGuiPlatformIO_Set_Platform_GetWindowPos( + pio: *mut PlatformIo, + func: extern "C" fn(*mut Viewport, *mut sys::ImVec2), + ); + pub(crate) fn ImGuiPlatformIO_Set_Platform_GetWindowSize( + pio: *mut PlatformIo, + func: extern "C" fn(*mut Viewport, *mut sys::ImVec2), + ); +} diff --git a/imgui/src/drag_drop.rs b/imgui/src/drag_drop.rs index 5e19e5e..575cd1f 100644 --- a/imgui/src/drag_drop.rs +++ b/imgui/src/drag_drop.rs @@ -56,7 +56,7 @@ bitflags!( const SOURCE_EXTERN = sys::ImGuiDragDropFlags_SourceExtern; /// Automatically expire the payload if the source ceases to be submitted (otherwise /// payloads are persisting while being dragged) - const SOURCE_AUTO_EXPIRE_PAYLOAD = sys::ImGuiDragDropFlags_SourceAutoExpirePayload; + const SOURCE_AUTO_EXPIRE_PAYLOAD = sys::ImGuiDragDropFlags_PayloadAutoExpire; /// igAcceptDragDropPayload() will returns true even before the mouse button is released. /// You can then call igIsDelivery() to test if the payload needs to be delivered. const ACCEPT_BEFORE_DELIVERY = sys::ImGuiDragDropFlags_AcceptBeforeDelivery; diff --git a/imgui/src/fonts/atlas.rs b/imgui/src/fonts/atlas.rs index 9d23e58..2767468 100644 --- a/imgui/src/fonts/atlas.rs +++ b/imgui/src/fonts/atlas.rs @@ -318,6 +318,11 @@ pub struct FontConfig { pub font_builder_flags: u32, /// Brighten (>1.0) or darken (<1.0) font output pub rasterizer_multiply: f32, + /// DPI scale for rasterization, not altering other font metrics: + /// make it easy to swap between e.g. a 100% and a 400% fonts for a zooming display. + /// IMPORTANT: If you increase this it is expected that you increase font scale + /// accordingly, otherwise quality may look lowered. + pub rasterizer_density: f32, /// Explicitly specify the ellipsis character. /// /// With multiple font sources the first specified ellipsis is used. @@ -329,7 +334,7 @@ impl Default for FontConfig { fn default() -> FontConfig { FontConfig { size_pixels: 0.0, - oversample_h: 3, + oversample_h: 2, oversample_v: 1, pixel_snap_h: false, glyph_extra_spacing: [0.0, 0.0], @@ -339,6 +344,7 @@ impl Default for FontConfig { glyph_max_advance_x: f32::MAX, font_builder_flags: 0, rasterizer_multiply: 1.0, + rasterizer_density: 1.0, ellipsis_char: None, name: None, } @@ -358,6 +364,7 @@ impl FontConfig { raw.GlyphMaxAdvanceX = self.glyph_max_advance_x; raw.FontBuilderFlags = self.font_builder_flags; raw.RasterizerMultiply = self.rasterizer_multiply; + raw.RasterizerMultiply = self.rasterizer_density; // char is used as "unset" for EllipsisChar raw.EllipsisChar = self.ellipsis_char.map(|c| c as u32).unwrap_or(!0); if let Some(name) = self.name.as_ref() { diff --git a/imgui/src/fonts/font.rs b/imgui/src/fonts/font.rs index 815ca9f..808413d 100644 --- a/imgui/src/fonts/font.rs +++ b/imgui/src/fonts/font.rs @@ -1,3 +1,4 @@ +use std::ffi::c_short; use std::os::raw::c_int; use crate::fonts::atlas::{FontAtlas, FontId}; @@ -19,7 +20,9 @@ pub struct Font { pub config_data_count: i16, pub fallback_char: sys::ImWchar, pub ellipsis_char: sys::ImWchar, - pub dot_char: sys::ImWchar, + pub ellipsis_char_count: c_short, + pub ellipsis_width: f32, + pub ellipsis_char_step: f32, pub dirty_lookup_tables: bool, pub scale: f32, pub ascent: f32, @@ -51,6 +54,7 @@ fn test_font_memory_layout() { ); }; } + assert_field_offset!(index_advance_x, IndexAdvanceX); assert_field_offset!(fallback_advance_x, FallbackAdvanceX); assert_field_offset!(font_size, FontSize); @@ -62,7 +66,9 @@ fn test_font_memory_layout() { assert_field_offset!(config_data_count, ConfigDataCount); assert_field_offset!(fallback_char, FallbackChar); assert_field_offset!(ellipsis_char, EllipsisChar); - assert_field_offset!(dot_char, DotChar); + assert_field_offset!(ellipsis_char_count, EllipsisCharCount); + assert_field_offset!(ellipsis_width, EllipsisWidth); + assert_field_offset!(ellipsis_char_step, EllipsisCharStep); assert_field_offset!(dirty_lookup_tables, DirtyLookupTables); assert_field_offset!(scale, Scale); assert_field_offset!(ascent, Ascent); diff --git a/imgui/src/input/keyboard.rs b/imgui/src/input/keyboard.rs index 0860595..7ae8299 100644 --- a/imgui/src/input/keyboard.rs +++ b/imgui/src/input/keyboard.rs @@ -79,6 +79,18 @@ pub enum Key { F10 = sys::ImGuiKey_F10, F11 = sys::ImGuiKey_F11, F12 = sys::ImGuiKey_F12, + F13 = sys::ImGuiKey_F13, + F14 = sys::ImGuiKey_F14, + F15 = sys::ImGuiKey_F15, + F16 = sys::ImGuiKey_F16, + F17 = sys::ImGuiKey_F17, + F18 = sys::ImGuiKey_F18, + F19 = sys::ImGuiKey_F19, + F20 = sys::ImGuiKey_F20, + F21 = sys::ImGuiKey_F21, + F22 = sys::ImGuiKey_F22, + F23 = sys::ImGuiKey_F23, + F24 = sys::ImGuiKey_F24, Apostrophe = sys::ImGuiKey_Apostrophe, Comma = sys::ImGuiKey_Comma, Minus = sys::ImGuiKey_Minus, @@ -112,6 +124,8 @@ pub enum Key { KeypadAdd = sys::ImGuiKey_KeypadAdd, KeypadEnter = sys::ImGuiKey_KeypadEnter, KeypadEqual = sys::ImGuiKey_KeypadEqual, + AppBack = sys::ImGuiKey_AppBack, + AppForward = sys::ImGuiKey_AppForward, GamepadStart = sys::ImGuiKey_GamepadStart, GamepadBack = sys::ImGuiKey_GamepadBack, GamepadFaceLeft = sys::ImGuiKey_GamepadFaceLeft, @@ -147,11 +161,6 @@ pub enum Key { ReservedForModShift = sys::ImGuiKey_ReservedForModShift, ReservedForModAlt = sys::ImGuiKey_ReservedForModAlt, ReservedForModSuper = sys::ImGuiKey_ReservedForModSuper, - ModCtrl = sys::ImGuiMod_Ctrl, - ModShift = sys::ImGuiMod_Shift, - ModAlt = sys::ImGuiMod_Alt, - ModSuper = sys::ImGuiMod_Super, - ModShortcut = sys::ImGuiMod_Shortcut, } impl Key { @@ -229,6 +238,18 @@ impl Key { Key::F10, Key::F11, Key::F12, + Key::F13, + Key::F14, + Key::F15, + Key::F16, + Key::F17, + Key::F18, + Key::F19, + Key::F20, + Key::F21, + Key::F22, + Key::F23, + Key::F24, Key::Apostrophe, Key::Comma, Key::Minus, @@ -262,6 +283,8 @@ impl Key { Key::KeypadAdd, Key::KeypadEnter, Key::KeypadEqual, + Key::AppBack, + Key::AppForward, Key::GamepadStart, Key::GamepadBack, Key::GamepadFaceLeft, @@ -328,34 +351,15 @@ impl FocusedWidget { /// # Input: Keyboard impl Ui { - /// Returns the key index of the given key identifier. - /// - /// Equivalent to indexing the Io struct `key_map` field: `ui.io().key_map[key]` - #[inline] - #[doc(alias = "GetKeyIndex")] - fn key_index(&self, key: Key) -> u32 { - unsafe { sys::igGetKeyIndex(key as u32) } - } /// Returns true if the key is being held. - /// - /// Equivalent to indexing the Io struct `keys_down` field: `ui.io().keys_down[key_index]` #[inline] #[doc(alias = "IsKeyDown")] pub fn is_key_down(&self, key: Key) -> bool { - let key_index = self.key_index(key); - self.is_key_index_down(key_index) - } - - /// Same as [`is_key_down`](Self::is_key_down) but takes a key index. The meaning of - /// index is defined by your backend implementation. - #[inline] - #[doc(alias = "IsKeyDown")] - pub fn is_key_index_down(&self, key_index: u32) -> bool { cfg_if::cfg_if! { if #[cfg(feature = "docking")] { - unsafe { sys::igIsKeyDown_Nil(key_index) } + unsafe { sys::igIsKeyDown_Nil(key as u32) } } else { - unsafe { sys::igIsKeyDown(key_index) } + unsafe { sys::igIsKeyDown(key as u32) } } } } @@ -366,22 +370,11 @@ impl Ui { #[inline] #[doc(alias = "IsKeyPressed")] pub fn is_key_pressed(&self, key: Key) -> bool { - let key_index = self.key_index(key); - self.is_key_index_pressed(key_index) - } - - /// Same as [`is_key_pressed`](Self::is_key_pressed) but takes a key index. - /// - /// The meaning of index is defined by your backend - /// implementation. - #[inline] - #[doc(alias = "IsKeyPressed")] - pub fn is_key_index_pressed(&self, key_index: u32) -> bool { cfg_if::cfg_if! { if #[cfg(feature = "docking")] { - unsafe { sys::igIsKeyPressed_Bool(key_index, true) } + unsafe { sys::igIsKeyPressed_Bool(key as u32, true) } } else { - unsafe { sys::igIsKeyPressed(key_index, true) } + unsafe { sys::igIsKeyPressed(key as u32, true) } } } } @@ -392,23 +385,11 @@ impl Ui { #[inline] #[doc(alias = "IsKeyPressed")] pub fn is_key_pressed_no_repeat(&self, key: Key) -> bool { - let key_index = self.key_index(key); - self.is_key_index_pressed_no_repeat(key_index) - } - - /// Same as [`is_key_pressed_no_repeat`](Self::is_key_pressed_no_repeat) - /// but takes a key index. - /// - /// The meaning of index is defined by your backend - /// implementation. - #[inline] - #[doc(alias = "IsKeyPressed")] - pub fn is_key_index_pressed_no_repeat(&self, key_index: u32) -> bool { cfg_if::cfg_if! { if #[cfg(feature = "docking")] { - unsafe { sys::igIsKeyPressed_Bool(key_index, false) } + unsafe { sys::igIsKeyPressed_Bool(key as u32, false) } } else { - unsafe { sys::igIsKeyPressed(key_index, false) } + unsafe { sys::igIsKeyPressed(key as u32, false) } } } } @@ -417,22 +398,11 @@ impl Ui { #[inline] #[doc(alias = "IsKeyReleased")] pub fn is_key_released(&self, key: Key) -> bool { - let key_index = self.key_index(key); - self.is_key_index_released(key_index) - } - - /// Same as [`is_key_released`](Self::is_key_released) but takes a key index. - /// - /// The meaning of index is defined by your backend - /// implementation. - #[inline] - #[doc(alias = "IsKeyReleased")] - pub fn is_key_index_released(&self, key_index: u32) -> bool { cfg_if::cfg_if! { if #[cfg(feature = "docking")] { - unsafe { sys::igIsKeyReleased_Nil(key_index) } + unsafe { sys::igIsKeyReleased_Nil(key as u32) } } else { - unsafe { sys::igIsKeyReleased(key_index) } + unsafe { sys::igIsKeyReleased(key as u32) } } } } @@ -444,15 +414,7 @@ impl Ui { #[inline] #[doc(alias = "GetKeyPressedAmount")] pub fn key_pressed_amount(&self, key: Key, repeat_delay: f32, rate: f32) -> u32 { - let key_index = self.key_index(key); - self.key_index_pressed_amount(key_index, repeat_delay, rate) - } - - /// Same as [`crate::Ui::key_pressed_amount`] but takes a key index. - #[inline] - #[doc(alias = "GetKeyPressedAmount")] - pub fn key_index_pressed_amount(&self, key_index: u32, repeat_delay: f32, rate: f32) -> u32 { - unsafe { sys::igGetKeyPressedAmount(key_index, repeat_delay, rate) as u32 } + unsafe { sys::igGetKeyPressedAmount(key as u32, repeat_delay, rate) as u32 } } /// Focuses keyboard on the next widget. diff --git a/imgui/src/input/mouse.rs b/imgui/src/input/mouse.rs index 2656b1e..e88fd55 100644 --- a/imgui/src/input/mouse.rs +++ b/imgui/src/input/mouse.rs @@ -81,6 +81,34 @@ impl MouseCursor { pub const COUNT: usize = sys::ImGuiMouseCursor_COUNT as usize; } +// pub const ImGuiMouseSource_Mouse: ImGuiMouseSource = 0; +// pub const ImGuiMouseSource_TouchScreen: ImGuiMouseSource = 1; +// pub const ImGuiMouseSource_Pen: ImGuiMouseSource = 2; +// pub const ImGuiMouseSource_COUNT: ImGuiMouseSource = 3; + +/// Notates the type and origin of a mouse input. +#[repr(u32)] +#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] +pub enum MouseSource { + /// From an normal cursor mouse. + Mouse = sys::ImGuiMouseSource_Mouse, + /// From a touchscreen used with a finger. + Touchscreen = sys::ImGuiMouseSource_TouchScreen, + /// From a pen. + Pen = sys::ImGuiMouseSource_Pen, +} + +impl MouseSource { + /// All possible [`MouseSource`] varirants + pub const VARIANTS: [MouseSource; MouseSource::COUNT] = [ + MouseSource::Mouse, + MouseSource::Touchscreen, + MouseSource::Pen, + ]; + /// Total count of [`MouseSource`] variants + pub const COUNT: usize = sys::ImGuiMouseSource_COUNT as usize; +} + #[test] fn test_mouse_cursor_variants() { for (idx, &value) in MouseCursor::VARIANTS.iter().enumerate() { @@ -122,7 +150,13 @@ impl Ui { /// Returns true if the given mouse button was double-clicked #[doc(alias = "IsMouseDoubleClicked")] pub fn is_mouse_double_clicked(&self, button: MouseButton) -> bool { - unsafe { sys::igIsMouseDoubleClicked(button as i32) } + cfg_if::cfg_if! { + if #[cfg(feature = "docking")] { + unsafe { sys::igIsMouseDoubleClicked_Nil(button as i32) } + } else { + unsafe { sys::igIsMouseDoubleClicked(button as i32) } + } + } } /// Returns true if the given mouse button was released (went from down to !down) #[doc(alias = "IsMouseReleased")] diff --git a/imgui/src/internal.rs b/imgui/src/internal.rs index ad68764..a5ae660 100644 --- a/imgui/src/internal.rs +++ b/imgui/src/internal.rs @@ -1,12 +1,12 @@ //! Internal raw utilities (don't use unless you know what you're doing!) -use std::slice; +use std::{ffi::c_int, slice}; /// A generic version of the raw imgui-sys ImVector struct types #[repr(C)] pub struct ImVector { - size: i32, - capacity: i32, + size: c_int, + capacity: c_int, pub(crate) data: *mut T, } diff --git a/imgui/src/io.rs b/imgui/src/io.rs index cf30d89..cddee84 100644 --- a/imgui/src/io.rs +++ b/imgui/src/io.rs @@ -9,7 +9,7 @@ use crate::fonts::font::Font; use crate::input::keyboard::Key; use crate::input::mouse::MouseButton; use crate::internal::{ImVector, RawCast}; -use crate::sys; +use crate::{sys, MouseSource}; bitflags! { /// Configuration flags @@ -61,22 +61,31 @@ bitflags! { } } -#[cfg(feature = "docking")] bitflags! { #[repr(transparent)] pub struct ViewportFlags: u32 { const IS_PLATFORM_WINDOW = sys::ImGuiViewportFlags_IsPlatformWindow; const IS_PLATFORM_MONITOR = sys::ImGuiViewportFlags_IsPlatformMonitor; const OWNED_BY_APP = sys::ImGuiViewportFlags_OwnedByApp; + #[cfg(feature = "docking")] const NO_DECORATION = sys::ImGuiViewportFlags_NoDecoration; + #[cfg(feature = "docking")] const NO_TASK_BAR_ICON = sys::ImGuiViewportFlags_NoTaskBarIcon; + #[cfg(feature = "docking")] const NO_FOCUS_ON_APPEARING = sys::ImGuiViewportFlags_NoFocusOnAppearing; + #[cfg(feature = "docking")] const NO_FOCUS_ON_CLICK = sys::ImGuiViewportFlags_NoFocusOnClick; + #[cfg(feature = "docking")] const NO_INPUTS = sys::ImGuiViewportFlags_NoInputs; + #[cfg(feature = "docking")] const NO_RENDERER_CLEAR = sys::ImGuiViewportFlags_NoRendererClear; + #[cfg(feature = "docking")] const TOP_MOST = sys::ImGuiViewportFlags_TopMost; + #[cfg(feature = "docking")] const MINIMIZED = sys::ImGuiViewportFlags_Minimized; + #[cfg(feature = "docking")] const NO_AUTO_MERGE = sys::ImGuiViewportFlags_NoAutoMerge; + #[cfg(feature = "docking")] const CAN_HOST_OTHER_WINDOWS = sys::ImGuiViewportFlags_CanHostOtherWindows; } } @@ -107,61 +116,6 @@ bitflags! { } } -/// An input identifier for navigation -#[repr(u32)] -#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] -pub enum NavInput { - Activate = sys::ImGuiNavInput_Activate, - Cancel = sys::ImGuiNavInput_Cancel, - Input = sys::ImGuiNavInput_Input, - Menu = sys::ImGuiNavInput_Menu, - DpadLeft = sys::ImGuiNavInput_DpadLeft, - DpadRight = sys::ImGuiNavInput_DpadRight, - DpadUp = sys::ImGuiNavInput_DpadUp, - DpadDown = sys::ImGuiNavInput_DpadDown, - LStickLeft = sys::ImGuiNavInput_LStickLeft, - LStickRight = sys::ImGuiNavInput_LStickRight, - LStickUp = sys::ImGuiNavInput_LStickUp, - LStickDown = sys::ImGuiNavInput_LStickDown, - FocusPrev = sys::ImGuiNavInput_FocusPrev, - FocusNext = sys::ImGuiNavInput_FocusNext, - TweakSlow = sys::ImGuiNavInput_TweakSlow, - TweakFast = sys::ImGuiNavInput_TweakFast, -} - -impl NavInput { - /// All possible `NavInput` variants - pub const VARIANTS: [NavInput; NavInput::COUNT] = [ - NavInput::Activate, - NavInput::Cancel, - NavInput::Input, - NavInput::Menu, - NavInput::DpadLeft, - NavInput::DpadRight, - NavInput::DpadUp, - NavInput::DpadDown, - NavInput::LStickLeft, - NavInput::LStickRight, - NavInput::LStickUp, - NavInput::LStickDown, - NavInput::FocusPrev, - NavInput::FocusNext, - NavInput::TweakSlow, - NavInput::TweakFast, - ]; - /// Amount of internal/hidden variants (not exposed by imgui-rs) - const INTERNAL_COUNT: usize = 0; - /// Total count of `NavInput` variants - pub const COUNT: usize = sys::ImGuiNavInput_COUNT as usize - NavInput::INTERNAL_COUNT; -} - -#[test] -fn test_nav_input_variants() { - for (idx, &value) in NavInput::VARIANTS.iter().enumerate() { - assert_eq!(idx, value as usize); - } -} - /// Settings and inputs/outputs for imgui-rs #[repr(C)] pub struct Io { @@ -178,24 +132,8 @@ pub struct Io { pub(crate) ini_filename: *const c_char, pub(crate) log_filename: *const c_char, - - /// Time for a double-click, in seconds - pub mouse_double_click_time: f32, - /// Distance threshold to stay in to validate a double-click, in pixels - pub mouse_double_click_max_dist: f32, - /// Distance threshold before considering we are dragging - pub mouse_drag_threshold: f32, - /// When holding a key/button, time before it starts repeating, in seconds - pub key_repeat_delay: f32, - /// When holding a key/button, rate at which it repeats, in seconds - pub key_repeat_rate: f32, - - /// Delay on hover before [`ui.is_item_hovered_with_flags(ItemHoveredFlags::DELAY_NORMAL)`](crate::Ui::is_item_hovered_with_flags) returns true - pub hover_delay_normal: f32, - /// Delay on hover before [`ui.is_item_hovered_with_flags(ItemHoveredFlags::DELAY_SHORT)`](crate::Ui::is_item_hovered_with_flags) returns true - pub hover_delay_short: f32, - user_data: *mut c_void, + pub(crate) fonts: *mut FontAtlas, /// Global scale for all fonts @@ -204,28 +142,10 @@ pub struct Io { pub font_allow_user_scaling: bool, pub(crate) font_default: *mut Font, - /// For retina display or other situations where window coordinates are different from /// framebuffer coordinates pub display_framebuffer_scale: [f32; 2], - #[cfg(feature = "docking")] - pub config_docking_no_split: bool, - #[cfg(feature = "docking")] - pub config_docking_with_shift: bool, - #[cfg(feature = "docking")] - pub config_docking_always_tab_bar: bool, - #[cfg(feature = "docking")] - pub config_docking_transparent_payload: bool, - #[cfg(feature = "docking")] - pub config_viewports_no_auto_merge: bool, - #[cfg(feature = "docking")] - pub config_viewports_no_task_bar_icon: bool, - #[cfg(feature = "docking")] - pub config_viewports_no_decoration: bool, - #[cfg(feature = "docking")] - pub config_viewports_no_default_parent: bool, - /// Request imgui-rs to draw a mouse cursor for you pub mouse_draw_cursor: bool, /// macOS-style input behavior. @@ -238,6 +158,11 @@ pub struct Io { /// * Double-click selects by word instead of selecting the whole text /// * Multi-selection in lists uses Cmd/Super instead of Ctrl pub config_mac_os_behaviors: bool, + + /// Swap Activate/Cancel (A<>B) buttons, to match the typical "Nintendo/Japanese consoles" + /// button layout when using Gamepad navigation + pub config_nav_swap_gamepad_buttons: bool, + /// Enable input queue trickling: some types of events submitted during the same frame (e.g. button down + up) /// will be spread over multiple frames, improving interactions with low framerates. pub config_input_trickle_event_queue: bool, @@ -262,23 +187,44 @@ pub struct Io { /// Set to -1.0 to disable. pub config_memory_compact_timer: f32, + /// Time for a double-click, in seconds + pub mouse_double_click_time: f32, + /// Distance threshold to stay in to validate a double-click, in pixels + pub mouse_double_click_max_dist: f32, + /// Distance threshold before considering we are dragging + pub mouse_drag_threshold: f32, + /// When holding a key/button, time before it starts repeating, in seconds + pub key_repeat_delay: f32, + /// When holding a key/button, rate at which it repeats, in seconds + pub key_repeat_rate: f32, + + /// Option to enable various debug tools showing buttons that will call the IM_DEBUG_BREAK() macro. + /// - The Item Picker tool will be available regardless of this being enabled, in order to maximize its discoverability. + /// - Requires a debugger being attached, otherwise IM_DEBUG_BREAK() options will appear to crash your application. + pub config_debug_is_debugger_present: bool, + + /// Highlight and show an error message when multiple items have conflicting identifiers. + pub config_debug_highlight_id_conflicts: bool, + + /// First-time calls to Begin()/BeginChild() will return false. NEEDS TO BE SET AT APPLICATION BOOT TIME if you don't want to miss windows. + pub config_debug_begin_return_value_once: bool, + + /// Some calls to Begin()/BeginChild() will return false. + /// Will cycle through window depths then repeat. + pub config_debug_begin_return_value_loop: bool, + + /// Ignore `add_focus_event(false)`, consequently not calling io.clear_input_keys()/io.clear_mouse_input() in input processing. + pub config_debug_ignore_focus_loss: bool, + + /// Save .ini data with extra comments (particularly helpful for Docking, but makes saving slower) + pub config_debug_ini_settings: bool, + pub(crate) backend_platform_name: *const c_char, pub(crate) backend_renderer_name: *const c_char, pub(crate) backend_platform_user_data: *mut c_void, pub(crate) backend_renderer_user_data: *mut c_void, backend_language_user_data: *mut c_void, - pub(crate) get_clipboard_text_fn: - Option *const c_char>, - pub(crate) set_clipboard_text_fn: - Option, - pub(crate) clipboard_user_data: *mut c_void, - pub set_platform_ime_data_fn: Option< - unsafe extern "C" fn( - viewport: *mut sys::ImGuiViewport, - data: *mut sys::ImGuiPlatformImeData, - ), - >, - unused_padding: *mut c_void, + /// When true, imgui-rs will use the mouse inputs, so do not dispatch them to your main /// game/application pub want_capture_mouse: bool, @@ -315,23 +261,13 @@ pub struct Io { pub metrics_render_windows: i32, /// Number of active windows pub metrics_active_windows: i32, - /// Number of active internal imgui-rs allocations - pub metrics_active_allocations: i32, + /// Mouse delta. /// /// Note that this is zero if either current or previous position is invalid ([f32::MAX, /// f32::MAX]), so a disappearing/reappearing mouse won't have a huge delta. pub mouse_delta: [f32; 2], - /// Map of indices into the `keys_down` entries array, which represent your "native" keyboard - /// state - pub key_map: [u32; sys::ImGuiKey_COUNT as usize], - /// Keyboard keys that are pressed (indexing defined by the user/application) - pub keys_down: [bool; sys::ImGuiKey_COUNT as usize], - /// Gamepad inputs. - /// - /// Cleared back to zero after each frame. Keyboard keys will be auto-mapped and written - /// here by `frame()`. - pub nav_inputs: [f32; NavInput::COUNT + NavInput::INTERNAL_COUNT], + pub(crate) ctx: *mut sys::ImGuiContext, /// Mouse position, in pixels. /// /// Set to [f32::MAX, f32::MAX] if mouse is unavailable (on another screen, etc.). @@ -347,8 +283,10 @@ pub struct Io { /// Most users don't have a mouse with a horizontal wheel, and may not be filled by all /// backends. pub mouse_wheel_h: f32, - #[cfg(feature = "docking")] - mouse_hovered_viewport: sys::ImGuiID, + + /// Notates the origin of the mouse input event. + pub mouse_source: MouseSource, + /// Keyboard modifier pressed: Control pub key_ctrl: bool, /// Keyboard modifier pressed: Shift @@ -358,7 +296,11 @@ pub struct Io { /// Keyboard modifier pressed: Cmd/Super/Windows pub key_super: bool, key_mods: sys::ImGuiKeyChord, - keys_data: [sys::ImGuiKeyData; sys::ImGuiKey_COUNT as usize], + + // note: this *should* be `ImGuiKey_COUNT` but that appears to end up + // being a very different value -- I suspect there's some namespace collision + // going on here. + keys_data: [sys::ImGuiKeyData; sys::ImGuiKey_NamedKey_COUNT as usize], pub want_capture_mouse_unless_popup_close: bool, @@ -372,6 +314,10 @@ pub struct Io { mouse_released: [bool; 5], mouse_down_owned: [bool; 5], mouse_down_owned_unless_popup_close: [bool; 5], + + mouse_wheel_request_axis_swap: bool, + mouse_ctrl_left_as_right_click: bool, + mouse_down_duration: [f32; 5], mouse_down_duration_prev: [f32; 5], #[cfg(feature = "docking")] @@ -390,6 +336,38 @@ pub struct Io { input_queue_surrogate: sys::ImWchar16, input_queue_characters: ImVector, + + #[cfg(feature = "docking")] + mouse_hovered_viewport: sys::ImGuiID, + + #[cfg(feature = "docking")] + pub config_docking_no_split: bool, + #[cfg(feature = "docking")] + pub config_docking_with_shift: bool, + #[cfg(feature = "docking")] + pub config_docking_always_tab_bar: bool, + #[cfg(feature = "docking")] + pub config_docking_transparent_payload: bool, + #[cfg(feature = "docking")] + pub config_viewports_no_auto_merge: bool, + #[cfg(feature = "docking")] + pub config_viewports_no_task_bar_icon: bool, + #[cfg(feature = "docking")] + pub config_viewports_no_decoration: bool, + #[cfg(feature = "docking")] + pub config_viewports_no_default_parent: bool, + // pub(crate) get_clipboard_text_fn: + // Option *const c_char>, + // pub(crate) set_clipboard_text_fn: + // Option, + // pub(crate) clipboard_user_data: *mut c_void, + // pub set_platform_ime_data_fn: Option< + // unsafe extern "C" fn( + // viewport: *mut sys::ImGuiViewport, + // data: *mut sys::ImGuiPlatformImeData, + // ), + // >, + // unused_padding: *mut c_void, } unsafe impl RawCast for Io {} @@ -408,7 +386,7 @@ impl Io { #[doc(alias = "ClearCharacters")] pub fn clear_input_characters(&mut self) { unsafe { - sys::ImGuiIO_ClearInputCharacters(self.raw_mut()); + sys::ImGuiIO_ClearInputKeys(self.raw_mut()); } } /// Peek character input buffer, return a copy of entire buffer @@ -467,32 +445,6 @@ impl Io { } } -impl Index for Io { - type Output = u32; - fn index(&self, index: Key) -> &u32 { - &self.key_map[index as usize] - } -} - -impl IndexMut for Io { - fn index_mut(&mut self, index: Key) -> &mut u32 { - &mut self.key_map[index as usize] - } -} - -impl Index for Io { - type Output = f32; - fn index(&self, index: NavInput) -> &f32 { - &self.nav_inputs[index as usize] - } -} - -impl IndexMut for Io { - fn index_mut(&mut self, index: NavInput) -> &mut f32 { - &mut self.nav_inputs[index as usize] - } -} - impl Index for Io { type Output = bool; fn index(&self, index: MouseButton) -> &bool { @@ -540,8 +492,6 @@ fn test_io_memory_layout() { assert_field_offset!(mouse_drag_threshold, MouseDragThreshold); assert_field_offset!(key_repeat_delay, KeyRepeatDelay); assert_field_offset!(key_repeat_rate, KeyRepeatRate); - assert_field_offset!(hover_delay_normal, HoverDelayNormal); - assert_field_offset!(hover_delay_short, HoverDelayShort); assert_field_offset!(user_data, UserData); assert_field_offset!(fonts, Fonts); assert_field_offset!(font_global_scale, FontGlobalScale); @@ -572,11 +522,6 @@ fn test_io_memory_layout() { assert_field_offset!(backend_platform_user_data, BackendPlatformUserData); assert_field_offset!(backend_renderer_user_data, BackendRendererUserData); assert_field_offset!(backend_language_user_data, BackendLanguageUserData); - assert_field_offset!(get_clipboard_text_fn, GetClipboardTextFn); - assert_field_offset!(set_clipboard_text_fn, SetClipboardTextFn); - assert_field_offset!(clipboard_user_data, ClipboardUserData); - assert_field_offset!(set_platform_ime_data_fn, SetPlatformImeDataFn); - assert_field_offset!(unused_padding, _UnusedPadding); assert_field_offset!(want_capture_mouse, WantCaptureMouse); assert_field_offset!(want_capture_keyboard, WantCaptureKeyboard); assert_field_offset!(want_text_input, WantTextInput); @@ -589,11 +534,7 @@ fn test_io_memory_layout() { assert_field_offset!(metrics_render_indices, MetricsRenderIndices); assert_field_offset!(metrics_render_windows, MetricsRenderWindows); assert_field_offset!(metrics_active_windows, MetricsActiveWindows); - assert_field_offset!(metrics_active_allocations, MetricsActiveAllocations); assert_field_offset!(mouse_delta, MouseDelta); - assert_field_offset!(key_map, KeyMap); - assert_field_offset!(keys_down, KeysDown); - assert_field_offset!(nav_inputs, NavInputs); assert_field_offset!(mouse_pos, MousePos); assert_field_offset!(mouse_down, MouseDown); assert_field_offset!(mouse_wheel, MouseWheel); diff --git a/imgui/src/layout.rs b/imgui/src/layout.rs index b385d91..1d6116c 100644 --- a/imgui/src/layout.rs +++ b/imgui/src/layout.rs @@ -21,6 +21,12 @@ impl Ui { unsafe { sys::igSeparator() } } + /// Renders a separator with text. + #[doc(alias = "SeparatorText")] + pub fn separator_with_text(&self, text: impl AsRef) { + unsafe { sys::igSeparatorText(self.scratch_txt(text)) } + } + /// Call between widgets or groups to layout them horizontally. /// /// X position is given in window coordinates. diff --git a/imgui/src/lib.rs b/imgui/src/lib.rs index 42eca04..1695686 100644 --- a/imgui/src/lib.rs +++ b/imgui/src/lib.rs @@ -105,7 +105,6 @@ pub use self::input_widget::*; pub use self::io::*; pub use self::layout::*; pub use self::list_clipper::ListClipper; -#[cfg(feature = "docking")] pub use self::platform_io::*; pub use self::plothistogram::PlotHistogram; pub use self::plotlines::PlotLines; @@ -149,6 +148,8 @@ mod columns; mod context; #[cfg(feature = "docking")] mod dock_space; +#[cfg(feature = "docking")] +mod docking_utils; pub mod drag_drop; pub mod draw_list; mod fonts; @@ -159,8 +160,8 @@ mod io; mod layout; mod list_clipper; mod math; -#[cfg(feature = "docking")] mod platform_io; + mod plothistogram; mod plotlines; mod popups; @@ -683,17 +684,21 @@ impl Ui { /// ``` #[doc(alias = "BeginTooltip", alias = "EndTootip")] pub fn tooltip(&self, f: F) { - unsafe { sys::igBeginTooltip() }; - f(); - unsafe { sys::igEndTooltip() }; + if unsafe { sys::igBeginTooltip() } { + f(); + unsafe { sys::igEndTooltip() }; + } } /// Construct a tooltip window that can have any kind of content. /// - /// Returns a `TooltipToken` that must be ended by calling `.end()` + /// Can return a `TooltipToken` that must be ended by calling `.end()` #[doc(alias = "BeginTooltip")] - pub fn begin_tooltip(&self) -> TooltipToken<'_> { - unsafe { sys::igBeginTooltip() }; - TooltipToken::new(self) + pub fn begin_tooltip(&self) -> Option> { + if unsafe { sys::igBeginTooltip() } { + Some(TooltipToken::new(self)) + } else { + None + } } /// Shortcut to call [`Self::tooltip`] with simple text content. @@ -709,7 +714,7 @@ impl Ui { /// } /// } /// ``` - #[doc(alias = "BeginTooltip", alias = "EndTootip")] + #[doc(alias = "BeginTooltip", alias = "EndTooltip", alias = "SetTooltip")] pub fn tooltip_text>(&self, text: T) { self.tooltip(|| self.text(text)); } diff --git a/imgui/src/platform_io.rs b/imgui/src/platform_io.rs index 72d040a..f66a7ff 100644 --- a/imgui/src/platform_io.rs +++ b/imgui/src/platform_io.rs @@ -1,47 +1,87 @@ -use std::{ - ffi::{c_void, CStr}, - os::raw::{c_char, c_int}, -}; +use std::ffi::{c_char, c_void}; -use crate::{ - internal::{ImVector, RawCast}, - Io, ViewportFlags, -}; +use crate::{internal::RawCast, ViewportFlags}; /// Holds the information needed to enable multiple viewports. #[repr(C)] pub struct PlatformIo { + pub(crate) get_clipboard_text_fn: + Option *const c_char>, + + pub(crate) set_clipboard_text_fn: + Option, + + pub(crate) clipboard_user_data: *mut c_void, + + pub(crate) open_in_shell_fn: + Option bool>, + pub(crate) open_in_shell_user_data: *mut c_void, + pub(crate) set_ime_data_fn: Option< + unsafe extern "C" fn( + ctx: *mut sys::ImGuiContext, + viewport: *mut sys::ImGuiViewport, + data: *mut sys::ImGuiPlatformImeData, + ), + >, + pub(crate) ime_user_data: *mut c_void, + pub(crate) locale_decimal_point: sys::ImWchar, + + #[cfg(feature = "docking")] pub(crate) platform_create_window: Option, + #[cfg(feature = "docking")] pub(crate) platform_destroy_window: Option, + #[cfg(feature = "docking")] pub(crate) platform_show_window: Option, + #[cfg(feature = "docking")] pub(crate) platform_set_window_pos: Option, + #[cfg(feature = "docking")] pub(crate) platform_get_window_pos: Option sys::ImVec2>, + #[cfg(feature = "docking")] pub(crate) platform_set_window_size: Option, + #[cfg(feature = "docking")] pub(crate) platform_get_window_size: Option sys::ImVec2>, + #[cfg(feature = "docking")] pub(crate) platform_set_window_focus: Option, + #[cfg(feature = "docking")] pub(crate) platform_get_window_focus: Option bool>, + #[cfg(feature = "docking")] pub(crate) platform_get_window_minimized: Option bool>, + #[cfg(feature = "docking")] pub(crate) platform_set_window_title: Option, + #[cfg(feature = "docking")] pub(crate) platform_set_window_alpha: Option, + #[cfg(feature = "docking")] pub(crate) platform_update_window: Option, + #[cfg(feature = "docking")] pub(crate) platform_render_window: Option, + #[cfg(feature = "docking")] pub(crate) platform_swap_buffers: Option, + #[cfg(feature = "docking")] pub(crate) platform_get_window_dpi_scale: Option f32>, + #[cfg(feature = "docking")] pub(crate) platform_on_changed_viewport: Option, + #[cfg(feature = "docking")] pub(crate) platform_create_vk_surface: Option c_int>, + #[cfg(feature = "docking")] pub(crate) renderer_create_window: Option, + #[cfg(feature = "docking")] pub(crate) renderer_destroy_window: Option, + #[cfg(feature = "docking")] pub(crate) renderer_set_window_size: Option, + #[cfg(feature = "docking")] pub(crate) renderer_render_window: Option, + #[cfg(feature = "docking")] pub(crate) renderer_swap_buffers: Option, /// Holds information about the available monitors. /// Should be initialized and updated by the [`PlatformViewportBackend`]. + #[cfg(feature = "docking")] pub monitors: ImVector, + #[cfg(feature = "docking")] pub(crate) viewports: ImVector<*mut Viewport>, } @@ -69,359 +109,44 @@ fn test_platform_io_memory_layout() { }; } - assert_field_offset!(platform_create_window, Platform_CreateWindow); - assert_field_offset!(platform_destroy_window, Platform_DestroyWindow); - assert_field_offset!(platform_show_window, Platform_ShowWindow); - assert_field_offset!(platform_set_window_pos, Platform_SetWindowPos); - assert_field_offset!(platform_get_window_pos, Platform_GetWindowPos); - assert_field_offset!(platform_set_window_size, Platform_SetWindowSize); - assert_field_offset!(platform_get_window_size, Platform_GetWindowSize); - assert_field_offset!(platform_set_window_focus, Platform_SetWindowFocus); - assert_field_offset!(platform_get_window_focus, Platform_GetWindowFocus); - assert_field_offset!(platform_get_window_minimized, Platform_GetWindowMinimized); - assert_field_offset!(platform_set_window_title, Platform_SetWindowTitle); - assert_field_offset!(platform_set_window_alpha, Platform_SetWindowAlpha); - assert_field_offset!(platform_update_window, Platform_UpdateWindow); - assert_field_offset!(platform_render_window, Platform_RenderWindow); - assert_field_offset!(platform_swap_buffers, Platform_SwapBuffers); - assert_field_offset!(platform_get_window_dpi_scale, Platform_GetWindowDpiScale); - assert_field_offset!(platform_on_changed_viewport, Platform_OnChangedViewport); - assert_field_offset!(platform_create_vk_surface, Platform_CreateVkSurface); + assert_field_offset!(get_clipboard_text_fn, Platform_GetClipboardTextFn); + assert_field_offset!(set_clipboard_text_fn, Platform_SetClipboardTextFn); + assert_field_offset!(clipboard_user_data, Platform_ClipboardUserData); + assert_field_offset!(open_in_shell_fn, Platform_OpenInShellFn); + assert_field_offset!(open_in_shell_user_data, Platform_OpenInShellUserData); + assert_field_offset!(set_ime_data_fn, Platform_SetImeDataFn); + assert_field_offset!(ime_user_data, Platform_ImeUserData); + assert_field_offset!(locale_decimal_point, Platform_LocaleDecimalPoint); - assert_field_offset!(renderer_create_window, Renderer_CreateWindow); - assert_field_offset!(renderer_destroy_window, Renderer_DestroyWindow); - assert_field_offset!(renderer_set_window_size, Renderer_SetWindowSize); - assert_field_offset!(renderer_render_window, Renderer_RenderWindow); - assert_field_offset!(renderer_swap_buffers, Renderer_SwapBuffers); + #[cfg(feature = "docking")] + { + assert_field_offset!(platform_create_window, Platform_CreateWindow); + assert_field_offset!(platform_destroy_window, Platform_DestroyWindow); + assert_field_offset!(platform_show_window, Platform_ShowWindow); + assert_field_offset!(platform_set_window_pos, Platform_SetWindowPos); + assert_field_offset!(platform_get_window_pos, Platform_GetWindowPos); + assert_field_offset!(platform_set_window_size, Platform_SetWindowSize); + assert_field_offset!(platform_get_window_size, Platform_GetWindowSize); + assert_field_offset!(platform_set_window_focus, Platform_SetWindowFocus); + assert_field_offset!(platform_get_window_focus, Platform_GetWindowFocus); + assert_field_offset!(platform_get_window_minimized, Platform_GetWindowMinimized); + assert_field_offset!(platform_set_window_title, Platform_SetWindowTitle); + assert_field_offset!(platform_set_window_alpha, Platform_SetWindowAlpha); + assert_field_offset!(platform_update_window, Platform_UpdateWindow); + assert_field_offset!(platform_render_window, Platform_RenderWindow); + assert_field_offset!(platform_swap_buffers, Platform_SwapBuffers); + assert_field_offset!(platform_get_window_dpi_scale, Platform_GetWindowDpiScale); + assert_field_offset!(platform_on_changed_viewport, Platform_OnChangedViewport); + assert_field_offset!(platform_create_vk_surface, Platform_CreateVkSurface); - assert_field_offset!(monitors, Monitors); - assert_field_offset!(viewports, Viewports); -} + assert_field_offset!(renderer_create_window, Renderer_CreateWindow); + assert_field_offset!(renderer_destroy_window, Renderer_DestroyWindow); + assert_field_offset!(renderer_set_window_size, Renderer_SetWindowSize); + assert_field_offset!(renderer_render_window, Renderer_RenderWindow); + assert_field_offset!(renderer_swap_buffers, Renderer_SwapBuffers); -/// Trait holding functions needed when the platform integration supports viewports. -/// -/// Register it via [`Context::set_platform_backend()`](crate::context::Context::set_platform_backend()) -pub trait PlatformViewportBackend: 'static { - /// Called by imgui when a new [`Viewport`] is created. - /// - /// # Notes - /// This function should initiate the creation of a platform window. - /// The window should be invisible. - fn create_window(&mut self, viewport: &mut Viewport); - /// Called by imgui when a [`Viewport`] is about to be destroyed. - /// - /// # Notes - /// This function should initiate the destruction of the platform window. - fn destroy_window(&mut self, viewport: &mut Viewport); - /// Called by imgui to make a [`Viewport`] visible. - fn show_window(&mut self, viewport: &mut Viewport); - /// Called by imgui to reposition a [`Viewport`]. - /// - /// # Notes - /// `pos` specifies the position of the windows content area (excluding title bar etc.) - fn set_window_pos(&mut self, viewport: &mut Viewport, pos: [f32; 2]); - /// Called by imgui to get the position of a [`Viewport`]. - /// - /// # Notes - /// You should return the position of the window's content area (excluding title bar etc.) - fn get_window_pos(&mut self, viewport: &mut Viewport) -> [f32; 2]; - /// Called by imgui to set the size of a [`Viewport`]. - /// - /// # Notes - /// `size` specifies the size of the window's content area (excluding title bar etc.) - fn set_window_size(&mut self, viewport: &mut Viewport, size: [f32; 2]); - /// Called by imgui to get the size of a [`Viewport`]. - /// - /// # Notes - /// you should return the size of the window's content area (excluding title bar etc.) - fn get_window_size(&mut self, viewport: &mut Viewport) -> [f32; 2]; - /// Called by imgui to make a [`Viewport`] steal the focus. - fn set_window_focus(&mut self, viewport: &mut Viewport); - /// Called by imgui to query whether a [`Viewport`] is in focus. - fn get_window_focus(&mut self, viewport: &mut Viewport) -> bool; - /// Called by imgui to query whether a [`Viewport`] is minimized. - fn get_window_minimized(&mut self, viewport: &mut Viewport) -> bool; - /// Called by imgui to set a [`Viewport`] title. - fn set_window_title(&mut self, viewport: &mut Viewport, title: &str); - /// Called by imgui to set the opacity of an entire [`Viewport`]. - /// - /// If your backend does not support opactiy, it is safe to just do nothing in this function. - fn set_window_alpha(&mut self, viewport: &mut Viewport, alpha: f32); - fn update_window(&mut self, viewport: &mut Viewport); - fn render_window(&mut self, viewport: &mut Viewport); - fn swap_buffers(&mut self, viewport: &mut Viewport); - fn create_vk_surface( - &mut self, - viewport: &mut Viewport, - instance: u64, - out_surface: &mut u64, - ) -> i32; -} - -/// Used to get the current Contexts [`PlatformViewportContext`]. -fn get_platform_ctx() -> &'static mut PlatformViewportContext { - unsafe { - // should be safe as it is impossible to call any imgui function on a non-active context. - &mut *((*(sys::igGetIO() as *const Io)).backend_platform_user_data - as *mut PlatformViewportContext) - } -} - -/// Used to get the current Contexts [`RendererViewportContext`]. -fn get_renderer_ctx() -> &'static mut RendererViewportContext { - unsafe { - // should be safe as it is impossible to call any imgui function on a non-active context. - &mut *((*(sys::igGetIO() as *const Io)).backend_renderer_user_data - as *mut RendererViewportContext) - } -} - -pub(crate) extern "C" fn platform_create_window(viewport: *mut Viewport) { - let ctx = get_platform_ctx(); - ctx.backend.create_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_destroy_window(viewport: *mut Viewport) { - let ctx = get_platform_ctx(); - ctx.backend.destroy_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_show_window(viewport: *mut Viewport) { - let ctx = get_platform_ctx(); - ctx.backend.show_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_set_window_pos(viewport: *mut Viewport, pos: sys::ImVec2) { - let ctx = get_platform_ctx(); - ctx.backend - .set_window_pos(unsafe { &mut *viewport }, [pos.x, pos.y]); -} -pub(crate) extern "C" fn platform_get_window_pos( - viewport: *mut Viewport, - out_pos: *mut sys::ImVec2, -) { - let ctx = get_platform_ctx(); - let pos = ctx.backend.get_window_pos(unsafe { &mut *viewport }); - unsafe { - *out_pos = sys::ImVec2::new(pos[0], pos[1]); - } -} -pub(crate) extern "C" fn platform_set_window_size(viewport: *mut Viewport, size: sys::ImVec2) { - let ctx = get_platform_ctx(); - ctx.backend - .set_window_size(unsafe { &mut *viewport }, [size.x, size.y]); -} -pub(crate) extern "C" fn platform_get_window_size( - viewport: *mut Viewport, - out_size: *mut sys::ImVec2, -) { - let ctx = get_platform_ctx(); - let size = ctx.backend.get_window_size(unsafe { &mut *viewport }); - unsafe { - *out_size = sys::ImVec2::new(size[0], size[1]); - } -} -pub(crate) extern "C" fn platform_set_window_focus(viewport: *mut Viewport) { - let ctx = get_platform_ctx(); - ctx.backend.set_window_focus(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_get_window_focus(viewport: *mut Viewport) -> bool { - let ctx = get_platform_ctx(); - ctx.backend.get_window_focus(unsafe { &mut *viewport }) -} -pub(crate) extern "C" fn platform_get_window_minimized(viewport: *mut Viewport) -> bool { - let ctx = get_platform_ctx(); - ctx.backend.get_window_minimized(unsafe { &mut *viewport }) -} -pub(crate) extern "C" fn platform_set_window_title(viewport: *mut Viewport, title: *const c_char) { - let ctx = get_platform_ctx(); - let title = unsafe { CStr::from_ptr(title).to_str().unwrap() }; - ctx.backend - .set_window_title(unsafe { &mut *viewport }, title); -} -pub(crate) extern "C" fn platform_set_window_alpha(viewport: *mut Viewport, alpha: f32) { - let ctx = get_platform_ctx(); - ctx.backend - .set_window_alpha(unsafe { &mut *viewport }, alpha); -} -pub(crate) extern "C" fn platform_update_window(viewport: *mut Viewport) { - let ctx = get_platform_ctx(); - ctx.backend.update_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_render_window(viewport: *mut Viewport, _arg: *mut c_void) { - let ctx = get_platform_ctx(); - ctx.backend.render_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_swap_buffers(viewport: *mut Viewport, _arg: *mut c_void) { - let ctx = get_platform_ctx(); - ctx.backend.swap_buffers(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn platform_create_vk_surface( - viewport: *mut Viewport, - instance: u64, - _arg: *const c_void, - out_surface: *mut u64, -) -> c_int { - let ctx = get_platform_ctx(); - ctx.backend - .create_vk_surface(unsafe { &mut *viewport }, instance, unsafe { - &mut *out_surface - }) -} - -/// The default [`PlatformViewportBackend`], does nothing. -pub(crate) struct DummyPlatformViewportBackend {} -impl PlatformViewportBackend for DummyPlatformViewportBackend { - fn create_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn destroy_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn show_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn set_window_pos(&mut self, _viewport: &mut Viewport, _pos: [f32; 2]) { - unimplemented!() - } - - fn get_window_pos(&mut self, _viewport: &mut Viewport) -> [f32; 2] { - unimplemented!() - } - - fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { - unimplemented!() - } - - fn get_window_size(&mut self, _viewport: &mut Viewport) -> [f32; 2] { - unimplemented!() - } - - fn set_window_focus(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn get_window_focus(&mut self, _viewport: &mut Viewport) -> bool { - unimplemented!() - } - - fn get_window_minimized(&mut self, _viewport: &mut Viewport) -> bool { - unimplemented!() - } - - fn set_window_title(&mut self, _viewport: &mut Viewport, _title: &str) { - unimplemented!() - } - - fn set_window_alpha(&mut self, _viewport: &mut Viewport, _alpha: f32) { - unimplemented!() - } - - fn update_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn render_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn swap_buffers(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn create_vk_surface( - &mut self, - _viewport: &mut Viewport, - _instance: u64, - _out_surface: &mut u64, - ) -> i32 { - unimplemented!() - } -} - -/// Just holds a [`PlatformViewportBackend`]. -pub(crate) struct PlatformViewportContext { - pub(crate) backend: Box, -} - -impl PlatformViewportContext { - pub(crate) fn dummy() -> Self { - Self { - backend: Box::new(DummyPlatformViewportBackend {}), - } - } -} - -/// Trait that holds optional functions for a rendering backend to support multiple viewports. -/// -/// It is completely fine to not use this Backend at all, as all functions are optional. -pub trait RendererViewportBackend: 'static { - /// Called after [`PlatformViewportBackend::create_window()`]. - fn create_window(&mut self, viewport: &mut Viewport); - /// Called before [`PlatformViewportBackend::destroy_window()`]. - fn destroy_window(&mut self, viewport: &mut Viewport); - /// Called after [`PlatformViewportBackend::set_window_size()`]. - fn set_window_size(&mut self, viewport: &mut Viewport, size: [f32; 2]); - fn render_window(&mut self, viewport: &mut Viewport); - fn swap_buffers(&mut self, viewport: &mut Viewport); -} - -pub(crate) extern "C" fn renderer_create_window(viewport: *mut Viewport) { - let ctx = get_renderer_ctx(); - ctx.backend.create_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn renderer_destroy_window(viewport: *mut Viewport) { - let ctx = get_renderer_ctx(); - ctx.backend.destroy_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn renderer_set_window_size(viewport: *mut Viewport, size: sys::ImVec2) { - let ctx = get_renderer_ctx(); - ctx.backend - .set_window_size(unsafe { &mut *viewport }, [size.x, size.y]); -} -pub(crate) extern "C" fn renderer_render_window(viewport: *mut Viewport, _arg: *mut c_void) { - let ctx = get_renderer_ctx(); - ctx.backend.render_window(unsafe { &mut *viewport }); -} -pub(crate) extern "C" fn renderer_swap_buffers(viewport: *mut Viewport, _arg: *mut c_void) { - let ctx = get_renderer_ctx(); - ctx.backend.swap_buffers(unsafe { &mut *viewport }); -} - -/// The default [`RendererViewportBackend`], does nothing. -pub(crate) struct DummyRendererViewportBackend {} -impl RendererViewportBackend for DummyRendererViewportBackend { - fn create_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn destroy_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn set_window_size(&mut self, _viewport: &mut Viewport, _size: [f32; 2]) { - unimplemented!() - } - - fn render_window(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } - - fn swap_buffers(&mut self, _viewport: &mut Viewport) { - unimplemented!() - } -} - -/// Just holds a [`RendererViewportBackend`]. -pub(crate) struct RendererViewportContext { - pub(crate) backend: Box, -} - -impl RendererViewportContext { - pub(crate) fn dummy() -> Self { - Self { - backend: Box::new(DummyRendererViewportBackend {}), - } + assert_field_offset!(monitors, Monitors); + assert_field_offset!(viewports, Viewports); } } @@ -436,20 +161,31 @@ pub struct Viewport { pub size: [f32; 2], pub work_pos: [f32; 2], pub work_size: [f32; 2], - pub dpi_scale: f32, - pub(crate) parent_viewport_id: crate::Id, - pub(crate) draw_data: *mut crate::DrawData, - - pub renderer_user_data: *mut c_void, - pub platform_user_data: *mut c_void, pub platform_handle: *mut c_void, pub platform_handle_raw: *mut c_void, + + #[cfg(feature = "docking")] + pub dpi_scale: f32, + #[cfg(feature = "docking")] + pub(crate) parent_viewport_id: crate::Id, + #[cfg(feature = "docking")] + pub(crate) draw_data: *mut crate::DrawData, + + #[cfg(feature = "docking")] + pub renderer_user_data: *mut c_void, + #[cfg(feature = "docking")] + pub platform_user_data: *mut c_void, + #[cfg(feature = "docking")] pub platform_window_created: bool, + #[cfg(feature = "docking")] pub platform_request_move: bool, + #[cfg(feature = "docking")] pub platform_request_resize: bool, + #[cfg(feature = "docking")] pub platform_request_close: bool, } +#[cfg(feature = "docking")] impl Viewport { /// Returns the draw data of the respective Viewport. pub fn draw_data(&self) -> &crate::DrawData { @@ -485,74 +221,20 @@ fn test_viewport_memory_layout() { assert_field_offset!(size, Size); assert_field_offset!(work_pos, WorkPos); assert_field_offset!(work_size, WorkSize); - assert_field_offset!(dpi_scale, DpiScale); - assert_field_offset!(parent_viewport_id, ParentViewportId); - assert_field_offset!(draw_data, DrawData); - - assert_field_offset!(renderer_user_data, RendererUserData); - assert_field_offset!(platform_user_data, PlatformUserData); assert_field_offset!(platform_handle, PlatformHandle); assert_field_offset!(platform_handle_raw, PlatformHandleRaw); - assert_field_offset!(platform_window_created, PlatformWindowCreated); - assert_field_offset!(platform_request_move, PlatformRequestMove); - assert_field_offset!(platform_request_resize, PlatformRequestResize); - assert_field_offset!(platform_request_close, PlatformRequestClose); -} -/// Describes a monitor that can be used by ImGui. -#[repr(C)] -pub struct PlatformMonitor { - /// Position of the monitor on the virtual desktop. - pub main_pos: [f32; 2], - /// Size of the monitor on the virtual desktop. - pub main_size: [f32; 2], - /// Working position of the monitor, should exclude task bar etc. - /// - /// Set to `main_pos` if not known. - pub work_pos: [f32; 2], - /// Working size of the monitor, should exclude task bar etc. - /// - /// Set to `work_size` if not known. - pub work_size: [f32; 2], - pub dpi_scale: f32, -} + #[cfg(feature = "docking")] + { + assert_field_offset!(dpi_scale, DpiScale); + assert_field_offset!(parent_viewport_id, ParentViewportId); + assert_field_offset!(draw_data, DrawData); -#[test] -#[cfg(test)] -fn test_platform_monitor_memory_layout() { - use std::mem; - assert_eq!( - mem::size_of::(), - mem::size_of::() - ); - assert_eq!( - mem::align_of::(), - mem::align_of::() - ); - use sys::ImGuiPlatformMonitor; - macro_rules! assert_field_offset { - ($l:ident, $r:ident) => { - assert_eq!( - memoffset::offset_of!(PlatformMonitor, $l), - memoffset::offset_of!(ImGuiPlatformMonitor, $r) - ); - }; + assert_field_offset!(renderer_user_data, RendererUserData); + assert_field_offset!(platform_user_data, PlatformUserData); + assert_field_offset!(platform_window_created, PlatformWindowCreated); + assert_field_offset!(platform_request_move, PlatformRequestMove); + assert_field_offset!(platform_request_resize, PlatformRequestResize); + assert_field_offset!(platform_request_close, PlatformRequestClose); } - - assert_field_offset!(main_pos, MainPos); - assert_field_offset!(main_size, MainSize); - assert_field_offset!(work_pos, WorkPos); - assert_field_offset!(work_size, WorkSize); - assert_field_offset!(dpi_scale, DpiScale); -} - -extern "C" { - pub(crate) fn ImGuiPlatformIO_Set_Platform_GetWindowPos( - pio: *mut PlatformIo, - func: extern "C" fn(*mut Viewport, *mut sys::ImVec2), - ); - pub(crate) fn ImGuiPlatformIO_Set_Platform_GetWindowSize( - pio: *mut PlatformIo, - func: extern "C" fn(*mut Viewport, *mut sys::ImVec2), - ); } diff --git a/imgui/src/popups.rs b/imgui/src/popups.rs index a94bcec..c9566c3 100644 --- a/imgui/src/popups.rs +++ b/imgui/src/popups.rs @@ -112,11 +112,6 @@ impl<'ui, 'p, Label: AsRef> PopupModal<'ui, 'p, Label> { .set(WindowFlags::ALWAYS_HORIZONTAL_SCROLLBAR, value); self } - pub fn always_use_window_padding(mut self, value: bool) -> Self { - self.flags - .set(WindowFlags::ALWAYS_USE_WINDOW_PADDING, value); - self - } /// Consume and draw the PopupModal. /// Returns the result of the closure, if it is called. diff --git a/imgui/src/render/draw_data.rs b/imgui/src/render/draw_data.rs index 9ce0621..977ce68 100644 --- a/imgui/src/render/draw_data.rs +++ b/imgui/src/render/draw_data.rs @@ -1,7 +1,6 @@ -use std::mem::size_of; use std::slice; -use crate::internal::{RawCast, RawWrapper}; +use crate::internal::{ImVector, RawCast, RawWrapper}; use crate::math::MintVec2; use crate::render::renderer::TextureId; use crate::sys; @@ -18,7 +17,7 @@ pub struct DrawData { /// For convenience, sum of all draw list vertex buffer sizes. pub total_vtx_count: i32, // Array of DrawList. - cmd_lists: *mut *mut DrawList, + cmd_lists: ImVector, /// Upper-left position of the viewport to render. /// /// (= upper-left corner of the orthogonal projection matrix to use) @@ -33,7 +32,7 @@ pub struct DrawData { /// [2.0, 2.0] on Retina displays, but fractional values are also possible. pub framebuffer_scale: [f32; 2], - #[cfg(feature = "docking")] + /// Viewport carrying the DrawData instance, might be of use to the renderer (generally not). owner_viewport: *mut sys::ImGuiViewport, } @@ -56,11 +55,11 @@ impl DrawData { } #[inline] pub(crate) unsafe fn cmd_lists(&self) -> &[*const DrawList] { - if self.cmd_lists_count <= 0 || self.cmd_lists.is_null() { + if self.cmd_lists_count <= 0 || self.cmd_lists.data.is_null() { return &[]; } slice::from_raw_parts( - self.cmd_lists as *const *const DrawList, + self.cmd_lists.data as *const *const DrawList, self.cmd_lists_count as usize, ) } @@ -332,13 +331,6 @@ impl OwnedDrawData { None } } - - #[cfg(feature = "docking")] - unsafe fn copy_docking_properties(source: &sys::ImDrawData, dest: *mut sys::ImDrawData) { - (*dest).OwnerViewport = source.OwnerViewport; - } - #[cfg(not(feature = "docking"))] - unsafe fn copy_docking_properties(_source: &sys::ImDrawData, _dest: *mut sys::ImDrawData) {} } impl Default for OwnedDrawData { @@ -364,16 +356,12 @@ impl From<&DrawData> for OwnedDrawData { (*result).DisplayPos = other_ptr.DisplayPos; (*result).DisplaySize = other_ptr.DisplaySize; (*result).FramebufferScale = other_ptr.FramebufferScale; - (*result).CmdListsCount = other_ptr.CmdListsCount; - (*result).CmdLists = sys::igMemAlloc( - size_of::<*mut sys::ImDrawList>() * other_ptr.CmdListsCount as usize, - ) as *mut *mut sys::ImDrawList; - OwnedDrawData::copy_docking_properties(other_ptr, result); + (*result).OwnerViewport = other_ptr.OwnerViewport; - let mut current_draw_list = (*result).CmdLists; + (*result).CmdListsCount = 0; for i in 0..other_ptr.CmdListsCount as usize { - *current_draw_list = sys::ImDrawList_CloneOutput(*other_ptr.CmdLists.add(i)); - current_draw_list = current_draw_list.add(1); + sys::ImDrawData_AddDrawList(result, *other_ptr.CmdLists.Data.add(i)); + (*result).CmdListsCount += 1; } result }, @@ -386,14 +374,14 @@ impl Drop for OwnedDrawData { fn drop(&mut self) { unsafe { if !self.draw_data.is_null() { - if !(*self.draw_data).CmdLists.is_null() { + if !(*self.draw_data).CmdLists.Data.is_null() { for i in 0..(*self.draw_data).CmdListsCount as usize { - let ptr = *(*self.draw_data).CmdLists.add(i); + let ptr = *(*self.draw_data).CmdLists.Data.add(i); if !ptr.is_null() { sys::ImDrawList_destroy(ptr); } } - sys::igMemFree((*self.draw_data).CmdLists as *mut std::ffi::c_void); + sys::igMemFree((*self.draw_data).CmdLists.Data as *mut std::ffi::c_void); } sys::ImDrawData_destroy(self.draw_data); self.draw_data = std::ptr::null_mut(); @@ -420,13 +408,16 @@ fn test_owneddrawdata_from_drawdata() { let draw_data_raw = sys::ImDrawData { Valid: true, CmdListsCount: 1, - CmdLists: draw_lists_raw.as_mut_ptr(), + CmdLists: sys::ImVector_ImDrawListPtr { + Size: 1, + Capacity: 1, + Data: draw_lists_raw.as_mut_ptr(), + }, TotalIdxCount: 123, TotalVtxCount: 456, DisplayPos: sys::ImVec2 { x: 123.0, y: 456.0 }, DisplaySize: sys::ImVec2 { x: 789.0, y: 012.0 }, FramebufferScale: sys::ImVec2 { x: 3.0, y: 7.0 }, - #[cfg(feature = "docking")] OwnerViewport: unsafe { std::ptr::null_mut::().offset(123) }, }; let draw_data = unsafe { DrawData::from_raw(&draw_data_raw) }; @@ -441,7 +432,7 @@ fn test_owneddrawdata_from_drawdata() { draw_data_raw.CmdListsCount, owned_draw_data_raw.CmdListsCount ); - assert!(!draw_data_raw.CmdLists.is_null()); + assert!(!draw_data_raw.CmdLists.Data.is_null()); assert_eq!( draw_data_raw.TotalIdxCount, owned_draw_data_raw.TotalIdxCount @@ -463,37 +454,3 @@ fn test_owneddrawdata_from_drawdata() { owned_draw_data_raw.OwnerViewport ); } - -#[test] -#[cfg(test)] -fn test_owneddrawdata_drop() { - let (_guard, _ctx) = crate::test::test_ctx(); - let initial_allocation_count = unsafe { (*sys::igGetIO()).MetricsActiveAllocations }; - - // Build a dummy draw data object - let mut draw_list = sys::ImDrawList::default(); - let mut draw_lists_raw = [std::ptr::addr_of_mut!(draw_list)]; - let draw_data_raw = sys::ImDrawData { - Valid: true, - CmdListsCount: 1, - CmdLists: draw_lists_raw.as_mut_ptr(), - TotalIdxCount: 0, - TotalVtxCount: 0, - DisplayPos: sys::ImVec2 { x: 0.0, y: 0.0 }, - DisplaySize: sys::ImVec2 { x: 800.0, y: 600.0 }, - FramebufferScale: sys::ImVec2 { x: 1.0, y: 1.0 }, - #[cfg(feature = "docking")] - OwnerViewport: std::ptr::null_mut(), - }; - let draw_data = unsafe { DrawData::from_raw(&draw_data_raw) }; - - // Clone it, then drop it, and ensure all allocations are returned - { - let _owned_draw_data: OwnedDrawData = draw_data.into(); - let cloned_allocation_count = unsafe { (*sys::igGetIO()).MetricsActiveAllocations }; - assert!(cloned_allocation_count > initial_allocation_count); - // owned_draw_data is dropped here... - } - let final_allocation_count = unsafe { (*sys::igGetIO()).MetricsActiveAllocations }; - assert_eq!(initial_allocation_count, final_allocation_count); -} diff --git a/imgui/src/stacks.rs b/imgui/src/stacks.rs index e730cc5..3345a12 100644 --- a/imgui/src/stacks.rs +++ b/imgui/src/stacks.rs @@ -4,7 +4,6 @@ use crate::math::MintVec4; use crate::style::{StyleColor, StyleVar}; use crate::sys; use crate::Ui; -use std::mem; use std::os::raw::c_char; /// # Parameter stacks (shared) @@ -239,60 +238,42 @@ impl Ui { } /// Tab stop enable. - /// Allow focusing using TAB/Shift-TAB, enabled by default but you can - /// disable it for certain widgets /// - /// Returns a [PushAllowKeyboardFocusToken] that should be dropped. + /// Deprecated since `0.13.0`, use [`Ui::push_item_flag`] with [`ItemFlag::NO_TAB_STOP`] + /// instead. #[doc(alias = "PushAllowKeyboardFocus")] - pub fn push_allow_keyboard_focus(&self, allow: bool) -> PushAllowKeyboardFocusToken<'_> { - unsafe { sys::igPushAllowKeyboardFocus(allow) }; - PushAllowKeyboardFocusToken::new(self) - } - - /// In 'repeat' mode, button_x functions return repeated true in a typematic - /// manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). - /// Note that you can call IsItemActive() after any Button() to tell if the - /// button is held in the current frame. - /// - /// Returns a [PushButtonRepeatToken] that should be dropped. - #[doc(alias = "PushAllowKeyboardFocus")] - pub fn push_button_repeat(&self, allow: bool) -> PushButtonRepeatToken<'_> { - unsafe { sys::igPushButtonRepeat(allow) }; - PushButtonRepeatToken::new(self) - } - - /// Changes an item flag by pushing a change to the item flag stack. - /// - /// Returns a `ItemFlagsStackToken` that may be popped by calling `.pop()` - /// - /// ## Deprecated - /// - /// This was deprecated in `0.9.0` because it isn't part of the dear imgui design, - /// and supporting it required a manual implementation of its drop token. - /// - /// Instead, just use [`push_allow_keyboard_focus`] and [`push_button_repeat`]. - /// - /// [`push_allow_keyboard_focus`]: Self::push_allow_keyboard_focus - /// [`push_button_repeat`]: Self::push_button_repeat #[deprecated( - since = "0.9.0", - note = "use `push_allow_keyboard_focus` or `push_button_repeat` instead" + since = "0.13.0", + note = "use `Ui::push_item_flag` with `ItemFlag::NO_TAB_STOP`" )] - pub fn push_item_flag(&self, item_flag: ItemFlag) -> ItemFlagsStackToken<'_> { - use self::ItemFlag::*; - match item_flag { - AllowKeyboardFocus(v) => unsafe { sys::igPushAllowKeyboardFocus(v) }, - ButtonRepeat(v) => unsafe { sys::igPushButtonRepeat(v) }, - } - ItemFlagsStackToken::new(self, item_flag) + pub fn push_allow_keyboard_focus(&self, tab_stop: bool) -> ItemFlagsStackToken<'_> { + self.push_item_flag(ItemFlag::NO_TAB_STOP, !tab_stop) } -} -/// A temporary change in item flags -#[derive(Copy, Clone, Debug, PartialEq, Eq)] -pub enum ItemFlag { - AllowKeyboardFocus(bool), - ButtonRepeat(bool), + /// Any button-like behavior will have repeat mode enabled + /// + /// Deprecated since `0.13.0`, use [`Ui::push_item_flag`] with [`ItemFlag::BUTTON_REPEAT`] + /// instead. + #[doc(alias = "PushButtonRepeat")] + #[deprecated( + since = "0.13.0", + note = "use `Ui::push_item_flag` with `ItemFlag::BUTTON_REPEAT`" + )] + pub fn push_button_repeat(&self, value: bool) -> ItemFlagsStackToken<'_> { + self.push_item_flag(ItemFlag::BUTTON_REPEAT, value) + } + + /// Changes an item flag by pushing a change to the item flag stack and a boolean + /// on whether to enable or disable the flag. + /// + /// Returns a `ItemFlagsStackToken` that may be popped by calling `.pop()` or dropping it. + pub fn push_item_flag(&self, item_flag: ItemFlag, enabled: bool) -> ItemFlagsStackToken<'_> { + unsafe { + sys::igPushItemFlag(item_flag.bits() as i32, enabled); + } + + ItemFlagsStackToken::new(self) + } } create_token!( @@ -309,56 +290,16 @@ create_token!( drop { sys::igPopTextWrapPos() } ); -create_token!( - pub struct PushAllowKeyboardFocusToken<'ui>; +crate::create_token!( + /// Tracks a change made with [`Ui::push_item_flag`] that can be popped + /// by calling [`ItemFlagsStackToken::end`] or dropping. + pub struct ItemFlagsStackToken<'ui>; - #[doc(alias = "PopAllowKeyboardFocus")] - drop { sys::igPopAllowKeyboardFocus() } + /// Pops an [`ItemFlag`] made with [`Ui::push_item_flag`]. + #[doc(alias = "PopItemFlag")] + drop { sys::igPopItemFlag() } ); -create_token!( - pub struct PushButtonRepeatToken<'ui>; - - #[doc(alias = "PopButtonRepeat")] - drop { sys::igPopButtonRepeat() } -); - -/// Tracks a change pushed to the item flags stack. -/// -/// The "item flags" stack was a concept invented in imgui-rs that doesn't have an -/// ImGui equivalent. We're phasing these out to make imgui-rs feel simpler to use. -#[must_use] -pub struct ItemFlagsStackToken<'a>( - std::marker::PhantomData<&'a Ui>, - mem::Discriminant, -); - -impl<'a> ItemFlagsStackToken<'a> { - /// Creates a new token type. - pub(crate) fn new(_: &'a crate::Ui, kind: ItemFlag) -> Self { - Self(std::marker::PhantomData, mem::discriminant(&kind)) - } - - #[inline] - pub fn end(self) { - // left empty for drop - } -} - -impl Drop for ItemFlagsStackToken<'_> { - fn drop(&mut self) { - unsafe { - if self.1 == mem::discriminant(&ItemFlag::AllowKeyboardFocus(true)) { - sys::igPopAllowKeyboardFocus(); - } else if self.1 == mem::discriminant(&ItemFlag::ButtonRepeat(true)) { - sys::igPopButtonRepeat(); - } else { - unreachable!(); - } - } - } -} - create_token!( /// Tracks an ID pushed to the ID stack that can be popped by calling `.pop()` /// or by dropping. See [`crate::Ui::push_id`] for more details. @@ -509,3 +450,25 @@ impl Ui { IdStackToken::new(self) } } + +bitflags::bitflags! { + /// A temporary change in item flags, used in [`Ui::push_item_flag`]. + pub struct ItemFlag: u32 { + /// Disable keyboard tabbing. This is a "lighter" version of [`ItemFlag::NO_NAV`]. + const NO_TAB_STOP = sys::ImGuiItemFlags_NoTabStop; + /// Disable any form of focusing (keyboard/gamepad directional navigation and + /// [`Ui::set_keyboard_focus_here`] calls). + const NO_NAV = sys::ImGuiItemFlags_NoNav; + /// Disable item being a candidate for default focus (e.g. used by title bar items). + const NO_NAV_DEFAULT_FOCUS = sys::ImGuiItemFlags_NoNavDefaultFocus; + /// Any button-like behavior will have repeat mode enabled (based on [`Io::key_repeat_delay`](crate::Io::key_repeat_delay) + /// and [`Io::key_repeat_rate`](crate::Io::key_repeat_rate) values). + /// Note that you can also call [`Ui::is_item_active`] after any button to tell if it is being held. + const BUTTON_REPEAT = sys::ImGuiItemFlags_ButtonRepeat; + /// [`Ui::menu_item`]/[`Ui::selectable`] automatically close their parent popup window. + const AUTO_CLOSE_POPUPS = sys::ImGuiItemFlags_AutoClosePopups; + /// Allow submitting an item with the same identifier as an item already submitted this frame without triggering + /// a warning tooltip if [`Io::config_debug_highlight_id_conflicts`](crate::Io::config_debug_highlight_id_conflicts) is set. + const ALLOW_DUPLICATE_ID = sys::ImGuiItemFlags_AllowDuplicateId; + } +} diff --git a/imgui/src/style.rs b/imgui/src/style.rs index d2b5d1f..b191eab 100644 --- a/imgui/src/style.rs +++ b/imgui/src/style.rs @@ -3,8 +3,8 @@ use std::fmt; use std::ops::{Index, IndexMut}; use crate::internal::RawCast; -use crate::sys; use crate::Direction; +use crate::{sys, HoveredFlags}; /// User interface style/colors #[repr(C)] @@ -103,6 +103,19 @@ pub struct Style { /// `= 0.0`: always show when hovering /// `= f32::MAX`: never show close button unless selected pub tab_min_width_for_close_button: f32, + + /// Thickness of tab-bar separator, which takes on the tab active color to denote focus. + pub tab_bar_border_size: f32, + + /// Thickness of tab-bar overline, which highlights the selected tab-bar. + pub tab_bar_overline_size: f32, + + /// Angle of angled headers (supported values range from -50.0f degrees to +50.0f degrees). + pub table_angled_headers_angle: f32, + + /// Alignment of angled headers within the cell + pub table_angled_headers_text_align: [f32; 2], + /// Side of the color buttonton pubin color editor widgets (left/right). pub color_button_position: Direction, /// Alignment of button text when button is larger than text. @@ -113,6 +126,14 @@ pub struct Style { /// /// Defaults to [0.5, 0.5] (top-left aligned). pub selectable_text_align: [f32; 2], + /// Thickkness of border in [`Ui::separator_with_text`](crate::Ui::separator_with_text) + pub separator_text_border_size: f32, + /// Alignment of text within the separator. Defaults to `[0.0, 0.5]` (left aligned, center). + pub separator_text_align: [f32; 2], + /// Horizontal offset of text from each edge of the separator + spacing on other axis. + /// Generally small values. .y is recommended to be == [`StyleVar::FramePadding`].y. + pub separator_text_padding: [f32; 2], + /// Window positions are clamped to be visible within the display area or monitors by at least /// this amount. /// @@ -149,8 +170,28 @@ pub struct Style { /// /// Decrease for higher quality but more geometry. pub circle_tesselation_max_error: f32, + /// Style colors. pub colors: [[f32; 4]; StyleColor::COUNT], + + /// Delay on hover before + /// [`Ui::is_item_hovered_with_flags`](crate::Ui::is_item_hovered_with_flags) + [`HoveredFlags::STATIONARY`] returns true + pub hover_stationary_delay: f32, + + /// Delay on hover before + /// [`Ui::is_item_hovered_with_flags`](crate::Ui::is_item_hovered_with_flags) + [`HoveredFlags::DELAY_SHORT`] returns true + pub hover_delay_short: f32, + + /// Delay on hover before + /// [`Ui::is_item_hovered_with_flags`](crate::Ui::is_item_hovered_with_flags) + [`HoveredFlags::DELAY_NORMAL`] returns true + pub hover_delay_normal: f32, + + /// Default flags when using [`HoveredFlags::FOR_TOOLTIP`] or [`Ui::begin_tooltip`](crate::Ui::begin_tooltip) + /// or [`Ui::tooltip_text`](crate::Ui::tooltip_text) while using mouse. + pub hover_flags_for_tooltip_mouse: HoveredFlags, + /// Default flags when using [`HoveredFlags::FOR_TOOLTIP`] or [`Ui::begin_tooltip`](crate::Ui::begin_tooltip) + /// or [`Ui::tooltip_text`](crate::Ui::tooltip_text) while using keyboard/gamepad. + pub hover_flags_for_tooltip_nav: HoveredFlags, } unsafe impl RawCast for Style {} @@ -280,24 +321,26 @@ pub enum StyleColor { ResizeGripHovered = sys::ImGuiCol_ResizeGripHovered, /// Resize handle when mouse button down ResizeGripActive = sys::ImGuiCol_ResizeGripActive, - /// Inactive tab color. Applies to both tab widgets and docked windows - Tab = sys::ImGuiCol_Tab, /// Hovered tab (applies regardless if tab is active, or is in the active window) TabHovered = sys::ImGuiCol_TabHovered, + /// Inactive tab color. Applies to both tab widgets and docked windows + Tab = sys::ImGuiCol_Tab, /// Color of currently selected tab - TabActive = sys::ImGuiCol_TabActive, + TabSelected = sys::ImGuiCol_TabSelected, + /// Tab horizontal overline, when tab-bar is focused & tab is selected + TabSelectedOverline = sys::ImGuiCol_TabSelectedOverline, /// Non-selected, when in an unfocused window - TabUnfocused = sys::ImGuiCol_TabUnfocused, + TabDimmed = sys::ImGuiCol_TabDimmed, /// Selected tab, in an unfocused window - TabUnfocusedActive = sys::ImGuiCol_TabUnfocusedActive, - + TabDimmedSelected = sys::ImGuiCol_TabDimmedSelected, + /// Non-selected, when in an unfocused window + TabDimmedSelectedOverline = sys::ImGuiCol_TabDimmedSelectedOverline, /// Color of widget which appears when moving windows around, allowing splitting/etc of dock areas #[cfg(feature = "docking")] DockingPreview = sys::ImGuiCol_DockingPreview, /// Colour when black area is present in docking setup (e.g while dragging a window away from a split area, leaving it temporarily empty) #[cfg(feature = "docking")] DockingEmptyBg = sys::ImGuiCol_DockingEmptyBg, - /// Lines in [`crate::Ui::plot_lines`] PlotLines = sys::ImGuiCol_PlotLines, /// `PlotLines` when hovered @@ -306,7 +349,6 @@ pub enum StyleColor { PlotHistogram = sys::ImGuiCol_PlotHistogram, /// `PlotHistogram` when hovered PlotHistogramHovered = sys::ImGuiCol_PlotHistogramHovered, - /// Background color of header rows in table widget TableHeaderBg = sys::ImGuiCol_TableHeaderBg, /// Main border color for table, used around whole table and around header cells @@ -317,10 +359,10 @@ pub enum StyleColor { TableRowBg = sys::ImGuiCol_TableRowBg, /// Used for alternating row colors, if enabled by `TableFlags::ROW_BG` TableRowBgAlt = sys::ImGuiCol_TableRowBgAlt, - + /// Hyperlink color + TextLink = sys::ImGuiCol_TextLink, /// The highlight color used for selection in text inputs TextSelectedBg = sys::ImGuiCol_TextSelectedBg, - /// Used for drag-and-drop system DragDropTarget = sys::ImGuiCol_DragDropTarget, /// Gamepad/keyboard: current highlighted item @@ -369,11 +411,13 @@ impl StyleColor { StyleColor::ResizeGrip, StyleColor::ResizeGripHovered, StyleColor::ResizeGripActive, - StyleColor::Tab, StyleColor::TabHovered, - StyleColor::TabActive, - StyleColor::TabUnfocused, - StyleColor::TabUnfocusedActive, + StyleColor::Tab, + StyleColor::TabSelected, + StyleColor::TabSelectedOverline, + StyleColor::TabDimmed, + StyleColor::TabDimmedSelected, + StyleColor::TabDimmedSelectedOverline, #[cfg(feature = "docking")] StyleColor::DockingPreview, #[cfg(feature = "docking")] @@ -387,6 +431,7 @@ impl StyleColor { StyleColor::TableBorderLight, StyleColor::TableRowBg, StyleColor::TableRowBgAlt, + StyleColor::TextLink, StyleColor::TextSelectedBg, StyleColor::DragDropTarget, StyleColor::NavHighlight, @@ -438,9 +483,9 @@ impl StyleColor { StyleColor::ResizeGripActive => "ResizeGripActive", StyleColor::Tab => "Tab", StyleColor::TabHovered => "TabHovered", - StyleColor::TabActive => "TabActive", - StyleColor::TabUnfocused => "TabUnfocused", - StyleColor::TabUnfocusedActive => "TabUnfocusedActive", + StyleColor::TabSelected => "TabSelected", + StyleColor::TabDimmed => "TabDimmed", + StyleColor::TabDimmedSelected => "TabDimmedSelected", StyleColor::PlotLines => "PlotLines", StyleColor::PlotLinesHovered => "PlotLinesHovered", StyleColor::PlotHistogram => "PlotHistogram", @@ -460,6 +505,9 @@ impl StyleColor { StyleColor::DockingPreview => "DockingPreview", #[cfg(feature = "docking")] StyleColor::DockingEmptyBg => "DockingEmptyBg", + StyleColor::TabSelectedOverline => "TabSelectedOverline", + StyleColor::TabDimmedSelectedOverline => "TabDimmedSelectedOverline", + StyleColor::TextLink => "TextLink", } } } diff --git a/imgui/src/utils.rs b/imgui/src/utils.rs index 3dbd247..c5c8da6 100644 --- a/imgui/src/utils.rs +++ b/imgui/src/utils.rs @@ -1,4 +1,5 @@ #![allow(clippy::float_cmp)] + use bitflags::bitflags; use crate::input::mouse::MouseButton; @@ -7,22 +8,77 @@ use crate::style::StyleColor; use crate::sys; use crate::Style; use crate::Ui; - bitflags! { - /// Item hover check option flags + /// Flags for [`Ui::is_item_hovered`], [`Ui::is_window_hovered`] + /// Note: if you are trying to check whether your mouse should be dispatched to + /// `Dear ImGui` or to your app, you should use [`Io::want_capture_mouse`](crate::Io::want_capture_mouse) + /// instead! Please read the FAQ! + /// + /// Note: windows with the [`WindowFlags::NO_INPUTS`](crate::WindowFlags::NO_INPUTS) flag + /// are ignored by [`Ui::is_window_hovered`] calls. + /// + /// Note: [`HoveredFlags::empty`] will return true in the above functions + /// if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them. #[repr(transparent)] - pub struct ItemHoveredFlags: u32 { - /// Return true even if a popup window is blocking access to this item + pub struct HoveredFlags: u32 { + /// [`Ui::is_item_hovered`] only: Return true if any children of the window is hovered + const CHILD_WINDOWS = sys::ImGuiHoveredFlags_ChildWindows; + /// [`Ui::is_item_hovered`] only: Test from root window (top most parent of the current hierarchy) + const ROOT_WINDOW = sys::ImGuiHoveredFlags_RootWindow; + /// [`Ui::is_item_hovered`] only: Return true if any window is hovered + const ANY_WINDOW = sys::ImGuiHoveredFlags_AnyWindow; + /// [`Ui::is_item_hovered`] only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow) + const NO_POPUP_HIERARCHY = sys::ImGuiHoveredFlags_NoPopupHierarchy; + /// Return true even if a popup window is normally blocking access to this item/window const ALLOW_WHEN_BLOCKED_BY_POPUP = sys::ImGuiHoveredFlags_AllowWhenBlockedByPopup; - /// Return true even if an active item is blocking access to this item + /// Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. const ALLOW_WHEN_BLOCKED_BY_ACTIVE_ITEM = sys::ImGuiHoveredFlags_AllowWhenBlockedByActiveItem; - /// Return true even if the position is obstructed or overlapped by another window - const ALLOW_WHEN_OVERLAPPED = sys::ImGuiHoveredFlags_AllowWhenOverlapped; - /// Return true even if the item is disabled + /// [`Ui::is_item_hovered`] only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item. + const ALLOW_WHEN_OVERLAPPED_BY_ITEM = sys::ImGuiHoveredFlags_AllowWhenOverlappedByItem; + /// [`Ui::is_item_hovered`] only: Return true even if the position is obstructed or overlapped by another window. + const ALLOW_WHEN_OVERLAPPED_BY_WINDOW = sys::ImGuiHoveredFlags_AllowWhenOverlappedByWindow; + /// [`Ui::is_item_hovered`] only: Return true even if the item is disabled const ALLOW_WHEN_DISABLED = sys::ImGuiHoveredFlags_AllowWhenDisabled; - const RECT_ONLY = sys::ImGuiHoveredFlags_RectOnly; - const DELAY_NORMAL = sys::ImGuiHoveredFlags_DelayNormal; + /// [`Ui::is_item_hovered`] only: Disable using gamepad/keyboard navigation state when active, always query mouse + const NO_NAV_OVERRIDE = sys::ImGuiHoveredFlags_NoNavOverride; + + /// Union of [`HoveredFlags::ALLOW_WHEN_OVERLAPPED_BY_ITEM`] and [`HoveredFlags::ALLOW_WHEN_OVERLAPPED_BY_WINDOW`], + const ALLOW_WHEN_OVERLAPPED = Self::ALLOW_WHEN_OVERLAPPED_BY_ITEM.bits | Self::ALLOW_WHEN_OVERLAPPED_BY_WINDOW.bits; + + /// Union of [`HoveredFlags::ALLOW_WHEN_BLOCKED_BY_POPUP`], [`HoveredFlags::ALLOW_WHEN_BLOCKED_BY_ACTIVE_ITEM`], + /// [`HoveredFlags::ALLOW_WHEN_OVERLAPPED_BY_ITEM`], and [`HoveredFlags::ALLOW_WHEN_OVERLAPPED_BY_WINDOW`], + const RECT_ONLY = Self::ALLOW_WHEN_BLOCKED_BY_POPUP.bits | Self::ALLOW_WHEN_BLOCKED_BY_ACTIVE_ITEM.bits | Self::ALLOW_WHEN_OVERLAPPED.bits; + + /// Union of [`HoveredFlags::ROOT_WINDOW`], [`HoveredFlags::CHILD_WINDOWS`], + const ROOT_AND_CHILD_WINDOWS = Self::ROOT_WINDOW.bits | Self::CHILD_WINDOWS.bits; + + /// Tooltips mode + /// - typically used in [`Ui::is_item_hovered`] + [`Ui::tooltip`] sequence. + /// - this is a shortcut to pull flags from [`Style::hover_flags_for_tooltip_mouse`] or + /// [`Style::hover_flags_for_tooltip_nav`] where you can reconfigure desired behavior. + /// - for frequently actioned or hovered items providing a tooltip, you want may to use + /// [`HoveredFlags::FOR_TOOLTIP`] (stationary + delay) so the tooltip doesn't show too often. + /// - for items which main purpose is to be hovered, or items with low affordance, or in less + /// consistent apps, prefer no delay or shorter delay. + const FOR_TOOLTIP = sys::ImGuiHoveredFlags_ForTooltip; + /// Require mouse to be stationary for [`Style::hover_stationary_delay`] (~0.15 sec) + /// _at least one time_. After this, can move on same item/window. + /// Using the stationary test tends to reduces the need for a long delay. + const STATIONARY = sys::ImGuiHoveredFlags_Stationary; + /// [`Ui::is_item_hovered`] only: Return true immediately (default). + /// As this is the default you generally ignore this. + const DELAY_NONE = sys::ImGuiHoveredFlags_DelayNone; + /// [`Ui::is_item_hovered`] only: Return true after [`Style::hover_delay_short`] + /// elapsed (~0.15 sec) (shared between items) + requires mouse to be stationary + /// for [`Style::hover_stationary_delay`] (once per item). const DELAY_SHORT = sys::ImGuiHoveredFlags_DelayShort; + // [`Ui::is_item_hovered`] only: Return true after [`Style::hover_delay_normal`] + // elapsed (~0.40 sec) (shared between items) + requires mouse to be stationary + /// for [`Style::hover_stationary_delay`] (once per item). + const DELAY_NORMAL = sys::ImGuiHoveredFlags_DelayNormal; + /// [`Ui::is_item_hovered`] only: Disable shared delay system where moving from one item to the next keeps + /// the previous timer for a short time (standard for tooltips with long delays) + const NO_SHARED_DELAY = sys::ImGuiHoveredFlags_NoSharedDelay; } } @@ -35,7 +91,7 @@ impl Ui { } /// Returns `true` if the last item is hovered based on the given flags #[doc(alias = "IsItemHovered")] - pub fn is_item_hovered_with_flags(&self, flags: ItemHoveredFlags) -> bool { + pub fn is_item_hovered_with_flags(&self, flags: HoveredFlags) -> bool { unsafe { sys::igIsItemHovered(flags.bits() as i32) } } /// Returns `true` if the last item is active @@ -132,9 +188,9 @@ impl Ui { /// Allows the last item to be overlapped by a subsequent item. /// /// Both may be activated during the same frame before the later one takes priority. - #[doc(alias = "SetItemAllowOverlap")] + #[doc(alias = "SetNextItemAllowOverlap")] pub fn set_item_allow_overlap(&self) { - unsafe { sys::igSetItemAllowOverlap() }; + unsafe { sys::igSetNextItemAllowOverlap() }; } /// Makes the last item the default focused item of the window #[doc(alias = "SetItemDefaultFocus")] diff --git a/imgui/src/widget/selectable.rs b/imgui/src/widget/selectable.rs index 63805b8..e644e82 100644 --- a/imgui/src/widget/selectable.rs +++ b/imgui/src/widget/selectable.rs @@ -9,15 +9,15 @@ bitflags!( #[repr(transparent)] pub struct SelectableFlags: u32 { /// Clicking this don't close parent popup window - const DONT_CLOSE_POPUPS = sys::ImGuiSelectableFlags_DontClosePopups; + const DONT_CLOSE_POPUPS = sys::ImGuiSelectableFlags_NoAutoClosePopups; /// Selectable frame can span all columns (text will still fit in current column) const SPAN_ALL_COLUMNS = sys::ImGuiSelectableFlags_SpanAllColumns; /// Generate press events on double clicks too const ALLOW_DOUBLE_CLICK = sys::ImGuiSelectableFlags_AllowDoubleClick; /// Cannot be selected, display greyed out text const DISABLED = sys::ImGuiSelectableFlags_Disabled; - /// (WIP) Hit testing to allow subsequent willdgets to overlap this one - const ALLOW_ITEM_OVERLAP = sys::ImGuiSelectableFlags_AllowItemOverlap; + /// Hit testing to allow subsequent willdgets to overlap this one + const ALLOW_OVERLAP = sys::ImGuiSelectableFlags_AllowOverlap; } ); diff --git a/imgui/src/widget/text.rs b/imgui/src/widget/text.rs index abe38be..7668b4c 100644 --- a/imgui/src/widget/text.rs +++ b/imgui/src/widget/text.rs @@ -53,4 +53,22 @@ impl Ui { pub fn bullet_text(&self, text: impl AsRef) { unsafe { sys::igBulletText(fmt_ptr(), self.scratch_txt(text)) } } + + /// Hyperlink style text button, returns true when clicked. + /// + /// See [`Ui::text_link_open_url`] for a way to open a hyperlink. + #[doc(alias = "TextLink")] + pub fn text_link(&self, text: impl AsRef) -> bool { + unsafe { sys::igTextLink(self.scratch_txt(text)) } + } + + /// Hyperlink style text button, opens link when clicked. + /// + /// See [`Ui::text_link_open_url`] for a text-link which + /// only returns true, rather than opening the link itself. + #[doc(alias = "TextLinkOpenURL")] + pub fn text_link_open_url(&self, label: impl AsRef, url: impl AsRef) { + let (label, url) = self.scratch_txt_two(label, url); + unsafe { sys::igTextLinkOpenURL(label, url) } + } } diff --git a/imgui/src/widget/tree.rs b/imgui/src/widget/tree.rs index bb92786..68a1ad9 100644 --- a/imgui/src/widget/tree.rs +++ b/imgui/src/widget/tree.rs @@ -14,7 +14,7 @@ bitflags!( /// Full colored frame (e.g. for CollapsingHeader) const FRAMED = sys::ImGuiTreeNodeFlags_Framed; /// Hit testing to allow subsequent widgets to overlap this one - const ALLOW_ITEM_OVERLAP = sys::ImGuiTreeNodeFlags_AllowItemOverlap; + const ALLOW_OVERLAP = sys::ImGuiTreeNodeFlags_AllowOverlap; /// Don't push a tree node when open (e.g. for CollapsingHeader) = no extra indent nor /// pushing on ID stack const NO_TREE_PUSH_ON_OPEN = sys::ImGuiTreeNodeFlags_NoTreePushOnOpen; @@ -195,7 +195,7 @@ impl<'a, T: AsRef, L: AsRef> TreeNode<'a, T, L> { /// /// Disabled by default. pub fn allow_item_overlap(mut self, value: bool) -> Self { - self.flags.set(TreeNodeFlags::ALLOW_ITEM_OVERLAP, value); + self.flags.set(TreeNodeFlags::ALLOW_OVERLAP, value); self } @@ -390,7 +390,7 @@ impl> CollapsingHeader { /// Disabled by default. #[inline] pub fn allow_item_overlap(mut self, value: bool) -> Self { - self.flags.set(TreeNodeFlags::ALLOW_ITEM_OVERLAP, value); + self.flags.set(TreeNodeFlags::ALLOW_OVERLAP, value); self } /// Sets the default open state for the collapsing header. diff --git a/imgui/src/window/child_window.rs b/imgui/src/window/child_window.rs index fe9cd45..436f590 100644 --- a/imgui/src/window/child_window.rs +++ b/imgui/src/window/child_window.rs @@ -11,12 +11,12 @@ use crate::{sys, Id}; pub struct ChildWindow<'ui> { ui: &'ui Ui, id: u32, + child_flags: ChildFlags, flags: WindowFlags, size: [f32; 2], content_size: [f32; 2], focused: bool, bg_alpha: f32, - border: bool, } impl<'ui> ChildWindow<'ui> { @@ -34,12 +34,12 @@ impl<'ui> ChildWindow<'ui> { Self { ui, id: id.0, + child_flags: ChildFlags::empty(), flags: WindowFlags::empty(), size: [0.0, 0.0], content_size: [0.0, 0.0], focused: false, bg_alpha: f32::NAN, - border: false, } } @@ -88,11 +88,10 @@ impl<'ui> ChildWindow<'ui> { self } /// Enables/disables the child window border. - /// - /// Disabled by default. + #[deprecated(since = "0.13.0", note = "use `child_flags` instead")] #[inline] pub fn border(mut self, border: bool) -> Self { - self.border = border; + self.child_flags.set(ChildFlags::BORDERS, border); self } /// Enables/disables moving the window when child window is dragged. @@ -199,15 +198,16 @@ impl<'ui> ChildWindow<'ui> { .set(WindowFlags::ALWAYS_HORIZONTAL_SCROLLBAR, value); self } - /// When enabled, ensures child windows without border use `style.window_padding`. + + /// Sets the child flags on the [`ChildWindow`]. /// - /// Disabled by default. - #[inline] - pub fn always_use_window_padding(mut self, value: bool) -> Self { - self.flags - .set(WindowFlags::ALWAYS_USE_WINDOW_PADDING, value); + /// See [`ChildFlags`] for more information on each flag. + /// The default flags are [`ChildFlags::empty`]. + pub fn child_flags(mut self, child_flags: ChildFlags) -> Self { + self.child_flags = child_flags; self } + /// Enables/disables gamepad/keyboard navigation within the window. /// /// Enabled by default. @@ -270,7 +270,7 @@ impl<'ui> ChildWindow<'ui> { sys::igBeginChild_ID( self.id, self.size.into(), - self.border, + self.child_flags.bits() as i32, self.flags.bits() as i32, ) }; @@ -299,3 +299,39 @@ create_token!( /// Ends a window drop { sys::igEndChild() } ); + +bitflags::bitflags! { + /// Configuration flags for child windows + /// Flags for [``] + /// About using AutoResizeX/AutoResizeY flags: + /// - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints"). + /// - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing. + /// - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped. + /// While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch. + /// - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view. + /// HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping. + #[repr(transparent)] + pub struct ChildFlags: u32 { + /// Show an outer border and enable WindowPadding + const BORDERS = sys::ImGuiChildFlags_Borders; + /// Pad with style.WindowPadding even if no border are drawn + /// (no padding by default for non-bordered child windows because it makes more sense) + const ALWAYS_USE_WINDOW_PADDING = sys::ImGuiChildFlags_AlwaysUseWindowPadding; + /// Allow resize from right border (layout direction). + const RESIZE_X = sys::ImGuiChildFlags_ResizeX; + /// Allow resize from bottom border (layout direction). + const RESIZE_Y = sys::ImGuiChildFlags_ResizeY; + /// Enable auto-resizing width. Read "IMPORTANT: Size measurement" details above. + const AUTO_RESIZE_X = sys::ImGuiChildFlags_AutoResizeX; + /// Enable auto-resizing height. Read "IMPORTANT: Size measurement" details above. + const AUTO_RESIZE_Y = sys::ImGuiChildFlags_AutoResizeY; + /// Combined with AutoResizeX/AutoResizeY. + /// Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED. + const ALWAYS_AUTO_RESIZE = sys::ImGuiChildFlags_AlwaysAutoResize; + /// Style the child window like a framed item: + /// use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding. + const FRAME_STYLE = sys::ImGuiChildFlags_FrameStyle; + /// [BETA] Share focus scope, allow gamepad/keyboard navigation to cross over parent border to this child or between sibling child windows. + const NAV_FLATTENED = sys::ImGuiChildFlags_NavFlattened; + } +} diff --git a/imgui/src/window/content_region.rs b/imgui/src/window/content_region.rs index eecdedb..78dec7d 100644 --- a/imgui/src/window/content_region.rs +++ b/imgui/src/window/content_region.rs @@ -3,13 +3,6 @@ use crate::Ui; /// # Content region impl Ui { - /// Returns the current content boundaries (in *window coordinates*) - #[doc(alias = "GetContentRegionMax")] - pub fn content_region_max(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetContentRegionMax(&mut out) }; - out.into() - } /// Equal to `ui.content_region_max()` - `ui.cursor_pos()` #[doc(alias = "GetContentRegionAvail")] pub fn content_region_avail(&self) -> [f32; 2] { @@ -17,30 +10,4 @@ impl Ui { unsafe { sys::igGetContentRegionAvail(&mut out) }; out.into() } - /// Content boundaries min (in *window coordinates*). - /// - /// Roughly equal to [0.0, 0.0] - scroll. - #[doc(alias = "GetContentRegionMin")] - pub fn window_content_region_min(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetWindowContentRegionMin(&mut out) }; - out.into() - } - /// Content boundaries max (in *window coordinates*). - /// - /// Roughly equal to [0.0, 0.0] + size - scroll. - #[doc(alias = "GetContentRegionMax")] - pub fn window_content_region_max(&self) -> [f32; 2] { - let mut out = sys::ImVec2::zero(); - unsafe { sys::igGetWindowContentRegionMax(&mut out) }; - out.into() - } - #[doc(alias = "GetContentRegionWidth")] - #[deprecated( - since = "0.9.0", - note = "Removed in Dear ImGui 1.85, 'not very useful in practice' and can be done with window_content_region_min/_max" - )] - pub fn window_content_region_width(&self) -> f32 { - self.window_content_region_max()[0] - self.window_content_region_min()[0] - } } diff --git a/imgui/src/window/mod.rs b/imgui/src/window/mod.rs index 587c58a..9c199a9 100644 --- a/imgui/src/window/mod.rs +++ b/imgui/src/window/mod.rs @@ -84,8 +84,6 @@ bitflags! { const ALWAYS_VERTICAL_SCROLLBAR = sys::ImGuiWindowFlags_AlwaysVerticalScrollbar; /// Always show horizontal scrollbar const ALWAYS_HORIZONTAL_SCROLLBAR = sys::ImGuiWindowFlags_AlwaysHorizontalScrollbar; - /// Ensure child windows without border use `style.window_padding` - const ALWAYS_USE_WINDOW_PADDING = sys::ImGuiWindowFlags_AlwaysUseWindowPadding; /// Disable gamepad/keyboard navigation within the window const NO_NAV_INPUTS = sys::ImGuiWindowFlags_NoNavInputs; /// No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by @@ -418,15 +416,6 @@ impl<'ui, 'a, Label: AsRef> Window<'ui, 'a, Label> { .set(WindowFlags::ALWAYS_HORIZONTAL_SCROLLBAR, value); self } - /// When enabled, ensures child windows without border use `style.window_padding`. - /// - /// Disabled by default. - #[inline] - pub fn always_use_window_padding(mut self, value: bool) -> Self { - self.flags - .set(WindowFlags::ALWAYS_USE_WINDOW_PADDING, value); - self - } /// Enables/disables gamepad/keyboard navigation within the window. /// /// Enabled by default.