Alpha=1.0f;// Global alpha applies to everything in Dear ImGui.
Alpha=1.0f;// Global alpha applies to everything in Dear ImGui.
DisabledAlpha=0.60f;// Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha.
DisabledAlpha=0.60f;// Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha.
WindowPadding=ImVec2(8,8);// Padding within a window
WindowPadding=ImVec2(8,8);// Padding within a window
WindowRounding=0.0f;// Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended.
WindowRounding=0.0f;// Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended.
WindowBorderSize=1.0f;// Thickness of border around windows. Generally set to 0.0f or 1.0f. Other values not well tested.
WindowBorderSize=1.0f;// Thickness of border around windows. Generally set to 0.0f or 1.0f. Other values not well tested.
WindowTitleAlign=ImVec2(0.0f,0.5f);// Alignment for title bar text
WindowTitleAlign=ImVec2(0.0f,0.5f);// Alignment for title bar text
WindowMenuButtonPosition=ImGuiDir_Left;// Position of the collapsing/docking button in the title bar (left/right). Defaults to ImGuiDir_Left.
WindowMenuButtonPosition=ImGuiDir_Left;// Position of the collapsing/docking button in the title bar (left/right). Defaults to ImGuiDir_Left.
ChildRounding=0.0f;// Radius of child window corners rounding. Set to 0.0f to have rectangular child windows
ChildRounding=0.0f;// Radius of child window corners rounding. Set to 0.0f to have rectangular child windows
ChildBorderSize=1.0f;// Thickness of border around child windows. Generally set to 0.0f or 1.0f. Other values not well tested.
ChildBorderSize=1.0f;// Thickness of border around child windows. Generally set to 0.0f or 1.0f. Other values not well tested.
PopupRounding=0.0f;// Radius of popup window corners rounding. Set to 0.0f to have rectangular child windows
PopupRounding=0.0f;// Radius of popup window corners rounding. Set to 0.0f to have rectangular child windows
PopupBorderSize=1.0f;// Thickness of border around popup or tooltip windows. Generally set to 0.0f or 1.0f. Other values not well tested.
PopupBorderSize=1.0f;// Thickness of border around popup or tooltip windows. Generally set to 0.0f or 1.0f. Other values not well tested.
FramePadding=ImVec2(4,3);// Padding within a framed rectangle (used by most widgets)
FramePadding=ImVec2(4,3);// Padding within a framed rectangle (used by most widgets)
FrameRounding=0.0f;// Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets).
FrameRounding=0.0f;// Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets).
FrameBorderSize=0.0f;// Thickness of border around frames. Generally set to 0.0f or 1.0f. Other values not well tested.
FrameBorderSize=0.0f;// Thickness of border around frames. Generally set to 0.0f or 1.0f. Other values not well tested.
ItemSpacing=ImVec2(8,4);// Horizontal and vertical spacing between widgets/lines
ItemSpacing=ImVec2(8,4);// Horizontal and vertical spacing between widgets/lines
ItemInnerSpacing=ImVec2(4,4);// Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)
ItemInnerSpacing=ImVec2(4,4);// Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)
CellPadding=ImVec2(4,2);// Padding within a table cell. Cellpadding.x is locked for entire table. CellPadding.y may be altered between different rows.
CellPadding=ImVec2(4,2);// Padding within a table cell. Cellpadding.x is locked for entire table. CellPadding.y may be altered between different rows.
TouchExtraPadding=ImVec2(0,0);// Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
TouchExtraPadding=ImVec2(0,0);// Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
IndentSpacing=21.0f;// Horizontal spacing when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
IndentSpacing=21.0f;// Horizontal spacing when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2).
ColumnsMinSpacing=6.0f;// Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
ColumnsMinSpacing=6.0f;// Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1).
ScrollbarSize=14.0f;// Width of the vertical scrollbar, Height of the horizontal scrollbar
ScrollbarSize=14.0f;// Width of the vertical scrollbar, Height of the horizontal scrollbar
ScrollbarRounding=9.0f;// Radius of grab corners rounding for scrollbar
ScrollbarRounding=9.0f;// Radius of grab corners rounding for scrollbar
GrabMinSize=12.0f;// Minimum width/height of a grab box for slider/scrollbar
GrabMinSize=12.0f;// Minimum width/height of a grab box for slider/scrollbar
GrabRounding=0.0f;// Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
GrabRounding=0.0f;// Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs.
LogSliderDeadzone=4.0f;// The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero.
LogSliderDeadzone=4.0f;// The size in pixels of the dead-zone around zero on logarithmic sliders that cross zero.
TabRounding=4.0f;// Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
TabRounding=4.0f;// Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs.
TabBorderSize=0.0f;// Thickness of border around tabs.
TabBorderSize=0.0f;// Thickness of border around tabs.
TabMinWidthForCloseButton=0.0f;// Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
TabMinWidthForCloseButton=0.0f;// Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
TabBarBorderSize=1.0f;// Thickness of tab-bar separator, which takes on the tab active color to denote focus.
TabBarBorderSize=1.0f;// Thickness of tab-bar separator, which takes on the tab active color to denote focus.
TableAngledHeadersAngle=35.0f*(IM_PI/180.0f);// Angle of angled headers (supported values range from -50 degrees to +50 degrees).
TableAngledHeadersAngle=35.0f*(IM_PI/180.0f);// Angle of angled headers (supported values range from -50 degrees to +50 degrees).
ColorButtonPosition=ImGuiDir_Right;// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
TableAngledHeadersTextAlign=ImVec2(0.5f,0.0f);// Alignment of angled headers within the cell
ButtonTextAlign=ImVec2(0.5f,0.5f);// Alignment of button text when button is larger than text.
ColorButtonPosition=ImGuiDir_Right;// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
SelectableTextAlign=ImVec2(0.0f,0.0f);// Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
ButtonTextAlign=ImVec2(0.5f,0.5f);// Alignment of button text when button is larger than text.
SeparatorTextBorderSize=3.0f;// Thickkness of border in SeparatorText()
SelectableTextAlign=ImVec2(0.0f,0.0f);// Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
SeparatorTextAlign=ImVec2(0.0f,0.5f);// Alignment of text within the separator. Defaults to (0.0f, 0.5f) (left aligned, center).
SeparatorTextBorderSize=3.0f;// Thickkness of border in SeparatorText()
SeparatorTextPadding=ImVec2(20.0f,3.f);// Horizontal offset of text from each edge of the separator + spacing on other axis. Generally small values. .y is recommended to be == FramePadding.y.
SeparatorTextAlign=ImVec2(0.0f,0.5f);// Alignment of text within the separator. Defaults to (0.0f, 0.5f) (left aligned, center).
DisplayWindowPadding=ImVec2(19,19);// Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows.
SeparatorTextPadding=ImVec2(20.0f,3.f);// Horizontal offset of text from each edge of the separator + spacing on other axis. Generally small values. .y is recommended to be == FramePadding.y.
DisplaySafeAreaPadding=ImVec2(3,3);// If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows.
DisplayWindowPadding=ImVec2(19,19);// Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows.
DockingSeparatorSize=2.0f;// Thickness of resizing border between docked windows
DisplaySafeAreaPadding=ImVec2(3,3);// If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows.
MouseCursorScale=1.0f;// Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
DockingSeparatorSize=2.0f;// Thickness of resizing border between docked windows
AntiAliasedLines=true;// Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU.
MouseCursorScale=1.0f;// Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
AntiAliasedLinesUseTex=true;// Enable anti-aliased lines/borders using textures where possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).
AntiAliasedLines=true;// Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU.
AntiAliasedLinesUseTex=true;// Enable anti-aliased lines/borders using textures where possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).
CurveTessellationTol=1.25f;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
CircleTessellationMaxError=0.30f;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
CurveTessellationTol=1.25f;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
CircleTessellationMaxError=0.30f;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
// Behaviors
// Behaviors
HoverStationaryDelay=0.15f;// Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary.
HoverStationaryDelay=0.15f;// Delay for IsItemHovered(ImGuiHoveredFlags_Stationary). Time required to consider mouse stationary.
HoverDelayShort=0.15f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
HoverDelayShort=0.15f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
HoverDelayNormal=0.40f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). "
HoverDelayNormal=0.40f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). "
HoverFlagsForTooltipMouse=ImGuiHoveredFlags_Stationary|ImGuiHoveredFlags_DelayShort|ImGuiHoveredFlags_AllowWhenDisabled;// Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse.
HoverFlagsForTooltipMouse=ImGuiHoveredFlags_Stationary|ImGuiHoveredFlags_DelayShort|ImGuiHoveredFlags_AllowWhenDisabled;// Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using mouse.
HoverFlagsForTooltipNav=ImGuiHoveredFlags_NoSharedDelay|ImGuiHoveredFlags_DelayNormal|ImGuiHoveredFlags_AllowWhenDisabled;// Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad.
HoverFlagsForTooltipNav=ImGuiHoveredFlags_NoSharedDelay|ImGuiHoveredFlags_DelayNormal|ImGuiHoveredFlags_AllowWhenDisabled;// Default flags when using IsItemHovered(ImGuiHoveredFlags_ForTooltip) or BeginItemTooltip()/SetItemTooltip() while using keyboard/gamepad.
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
#define IMGUI_VERSION "1.90.6 WIP"
#define IMGUI_VERSION "1.90.6 WIP"
#define IMGUI_VERSION_NUM 19053
#define IMGUI_VERSION_NUM 19054
#define IMGUI_HAS_TABLE
#define IMGUI_HAS_TABLE
#define IMGUI_HAS_VIEWPORT // Viewport WIP branch
#define IMGUI_HAS_VIEWPORT // Viewport WIP branch
#define IMGUI_HAS_DOCK // Docking WIP branch
#define IMGUI_HAS_DOCK // Docking WIP branch
@ -1637,39 +1637,40 @@ enum ImGuiCol_
// - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type.
// - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type.
enumImGuiStyleVar_
enumImGuiStyleVar_
{
{
// Enum name --------------------- // Member in ImGuiStyle structure (see ImGuiStyle for descriptions)
// Enum name -------------------------- // Member in ImGuiStyle structure (see ImGuiStyle for descriptions)
floatTabMinWidthForCloseButton;// Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
floatTabMinWidthForCloseButton;// Minimum width for close button to appear on an unselected tab when hovered. Set to 0.0f to always show when hovering, set to FLT_MAX to never show close button unless selected.
floatTabBarBorderSize;// Thickness of tab-bar separator, which takes on the tab active color to denote focus.
floatTabBarBorderSize;// Thickness of tab-bar separator, which takes on the tab active color to denote focus.
floatTableAngledHeadersAngle;// Angle of angled headers (supported values range from -50.0f degrees to +50.0f degrees).
floatTableAngledHeadersAngle;// Angle of angled headers (supported values range from -50.0f degrees to +50.0f degrees).
ImVec2TableAngledHeadersTextAlign;// Alignment of angled headers within the cell
ImGuiDirColorButtonPosition;// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
ImGuiDirColorButtonPosition;// Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right.
ImVec2ButtonTextAlign;// Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
ImVec2ButtonTextAlign;// Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered).
ImVec2SelectableTextAlign;// Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
ImVec2SelectableTextAlign;// Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line.
IMGUI_APIintImTextCountLines(constchar*in_text,constchar*in_text_end);// return number of lines taken by text. trailing carriage return doesn't count as an extra line.
// Helpers: File System
// Helpers: File System
#ifdef IMGUI_DISABLE_FILE_FUNCTIONS
#ifdef IMGUI_DISABLE_FILE_FUNCTIONS
@ -3019,13 +3021,24 @@ struct ImGuiTableColumn
};
};
// Transient cell data stored per row.
// Transient cell data stored per row.
// sizeof() ~ 6
// sizeof() ~ 6 bytes
structImGuiTableCellData
structImGuiTableCellData
{
{
ImU32BgColor;// Actual color
ImU32BgColor;// Actual color
ImGuiTableColumnIdxColumn;// Column number
ImGuiTableColumnIdxColumn;// Column number
};
};
// Parameters for TableAngledHeadersRowEx()
// This may end up being refactored for more general purpose.
// sizeof() ~ 12 bytes
structImGuiTableHeaderData
{
ImGuiTableColumnIdxIndex;// Column index
ImU32TextColor;
ImU32BgColor0;
ImU32BgColor1;
};
// Per-instance data that needs preserving across frames (seemingly most others do not need to be preserved aside from debug needs. Does that means they could be moved to ImGuiTableTempData?)
// Per-instance data that needs preserving across frames (seemingly most others do not need to be preserved aside from debug needs. Does that means they could be moved to ImGuiTableTempData?)
// sizeof() ~ 24 bytes
// sizeof() ~ 24 bytes
structImGuiTableInstanceData
structImGuiTableInstanceData
@ -3111,7 +3124,7 @@ struct IMGUI_API ImGuiTable
ImGuiTableSortSpecsSortSpecs;// Public facing sorts specs, this is what we return in TableGetSortSpecs()
ImGuiTableSortSpecsSortSpecs;// Public facing sorts specs, this is what we return in TableGetSortSpecs()
ImGuiTableColumnIdxSortSpecsCount;
ImGuiTableColumnIdxSortSpecsCount;
ImGuiTableColumnIdxColumnsEnabledCount;// Number of enabled columns (<= ColumnsCount)
ImGuiTableColumnIdxColumnsEnabledCount;// Number of enabled columns (<= ColumnsCount)
ImGuiTableColumnIdxColumnsEnabledFixedCount;// Number of enabled columns (<= ColumnsCount)
ImGuiTableColumnIdxColumnsEnabledFixedCount;// Number of enabled columns using fixed width (<= ColumnsCount)
ImGuiTableColumnIdxDeclColumnsCount;// Count calls to TableSetupColumn()
ImGuiTableColumnIdxDeclColumnsCount;// Count calls to TableSetupColumn()
ImGuiTableColumnIdxAngledHeadersCount;// Count columns with angled headers
ImGuiTableColumnIdxAngledHeadersCount;// Count columns with angled headers
ImGuiTableColumnIdxHoveredColumnBody;// Index of column whose visible region is being hovered. Important: == ColumnsCount when hovering empty region after the right-most column!
ImGuiTableColumnIdxHoveredColumnBody;// Index of column whose visible region is being hovered. Important: == ColumnsCount when hovering empty region after the right-most column!
draw_list->AddRectFilled(ImVec2(table->BgClipRect.Min.x,row_r.Min.y),ImVec2(table->BgClipRect.Max.x,row_r.Max.y),GetColorU32(ImGuiCol_TableHeaderBg,0.25f));// FIXME-STYLE: Change row background with an arbitrary color.
draw_list->AddRectFilled(ImVec2(table->BgClipRect.Min.x,row_r.Min.y),ImVec2(table->BgClipRect.Max.x,row_r.Max.y),GetColorU32(ImGuiCol_TableHeaderBg,0.25f));// FIXME-STYLE: Change row background with an arbitrary color.
PushClipRect(ImVec2(clip_rect_min_x,table->BgClipRect.Min.y),table->BgClipRect.Max,true);// Span all columns
PushClipRect(ImVec2(clip_rect_min_x,table->BgClipRect.Min.y),table->BgClipRect.Max,true);// Span all columns